共查询到19条相似文献,搜索用时 62 毫秒
1.
软件产品复杂度在软件度量领域是一个非常重要的方面.软件开发的成本、进度和潜伏的错误数量均与复杂度有密切的关联.由于OOA和OOD被广泛运用,度量面向对象的软件复杂性成为必然的需求.UML是一种面向对象分析与设计的建模语言,已经被接受为工业标准.为此,提出了一种适用于Java语言的根据UML类图对类的复杂性进行度量的方法,并用Weyuker提出的复杂性度量的评价标准对其进行了评价. 相似文献
2.
一种基于程序切片技术的软件测试方法 总被引:4,自引:0,他引:4
1 引言软件测试是人们发现、纠正、预防软件错误以及完善软件功能的重要手段。软件测试的目的就是为了发现程序中的错误。对于传统程序设计语言书写的软件,软件测试人员普遍接受三个级别的测试:单元测试、集成测试和系统测试。无论在哪个级别上进行测试,其测试过程均为输入测试数据、处理和验证输出结果三个步骤。目前面向对象软件开发技术发展迅速,但面向对象软件测试技术的研究还相对薄弱。例如,对面向对象的程序测试应当分为多少级尚未达成共识。基于结构的传统集成策略并不适于面向对象的程序。这是因为面向对象的程序的执行实际上是执行一个由消息连接起来的方法序列,而这个方法序列往往是由外部事件驱动的,在面向对象语言中,虽然信息隐藏和封装使得类具有较好的独立性,有利于提高软件的易测试性和保证软件的质量,但是,这些机制与继承机制和 相似文献
3.
针对软件项目开发中维护阶段的成本和工作量难以估计的问题,提出一种基于Java程序的功能点度量方法,并介绍从目标程序中抽取数据功能点以及事务功能点的计算规则,同时以Java源代码为例说明具体的度量过程。实验结果表明,该方法是有效可行的。 相似文献
4.
5.
软件度量学是软件工程领域的一个重要研究方向。通过软件度量,可以改进软件的体系结构,采用合适的软件开发过程,从而降低软件开发的成本,提高软件开发的效率,保证软件能满足用户的需求,开发出高质量的软件。分析了面向对象软件度量的特点,阐述了常用的面向对象软件度量方法,并在此基础上提出了以切片为中心的度量方法。 相似文献
6.
当前程序切片的相关理论已经较为成熟,但针对Java程序的静态切片工具却非常少见。为便于展开切片应用研究,设计并实现了一个基于系统依赖图的Eclipse切片插件——Slithice。该插件支持不同粒度的底层分析和系统依赖图构建,从而可以使切片算法能够在精度和性能之间进行权衡,适应各种规模程序的分析需要。 相似文献
7.
面向对象系统的耦合性度量技术研究 总被引:2,自引:0,他引:2
度量技术是保证软件质量的重要方法,而耦合性是面向对象系统中一个复杂的软件属性。该文首先分析了面向对象系统的相关概念,然后概述了目前的耦合性定性度量框架,最后提出了一种综合耦合性的度量方法。 相似文献
8.
程序切片是一种程序分析技术,它通过把程序减少到只包含与某个特定计算相关的那些语句来分析程序,过程间切片作为图形可达性问题时,需要扩展过程内切片所用的程序依赖图(PDG)成系统依赖图(SDG),然后利用两阶段图形可达性算法计算比较精确的切片,目前程序切片技术的研究以面向对象程序切片为主,文中讨论了一种合适面向对象程序的分层切片方法,并综合分层切片方法和两阶段图形可达性算法提出了一种简化的计算面向对象程序过程间切片的算法。 相似文献
9.
一种基于依赖性分析的类内聚度度量方法 总被引:8,自引:2,他引:8
内聚度是指模块内各成分之间的联结强度.在面向对象程序中,内聚度主要是指类内部各成分之间的联结强度.在深入剖析了类的属性与属性、方法与属性以及方法与方法之间的关系及其性质的基础上,提出了一种基于依赖性分析的内聚度度量方法,并证明了它满足优良的内聚度度量方法应该具有的性质,从而克服了已有方法只是分析了某个方面的不足,为综合评价类内聚度提供了指南。 相似文献
10.
Exception是一类特殊的对象,它在Java方法出错时被创建,并利用try/catch/finally机制抛出、处理异常。本文提出了一种合理的新方法,在系统依赖图中表示异常处理模块,利用图可迭性算法实现了Java程序切片。 相似文献
11.
软件测试是软件开发过程的一个重要组成部分,是进行软件有效性检查、提高软件质量的重要手段。随着软件规模的不断增大、复杂度的不断提高,传统的软件测试技术在处理大规模复杂软件系统时会出现许多问题。程序切片是一种程序分解术,主要是通过寻找程序内部的相关性来分解程序,从而达到快速错误定位或理解程序的目的。主要探讨将程序切片技术引入到软件测试中,尤其是分析在回归测试中切片方法是如何提高效率的。 相似文献
12.
软件测试是软件开发过程的一个重要组成部分,是进行软件有效性检查、提高软件质量的重要手段。随着软件规模的不断增大、复杂度的不断提高,传统的软件测试技术在处理大规模复杂软件系统时会出现许多问题。程序切片是一种程序分解术,主要是通过寻找程序内部的相关性来分解程序,从而达到快速错误定位或理解程序的目的。主要探讨将程序切片技术引入到软件测试中,尤其是分析在回归测试中切片方法是如何提高效率的。 相似文献
13.
14.
程序切片作为软件理解领域的一种重要的分析技术,可以将程序分解为独立的程序线程。系统依赖图的概念及两阶段图形可达性算法的出现,则有效解决了程序切片的过程调用问题。文章介绍了程序切片的基本概念,并给出了在面向对象程序中进行静态分层切片的思想。作为分层切片思想的应用,文章给出了在一种Java程序切片工具模型JSTM(JavaSlicingToolsModel)中运用系统依赖图进行方法内切片的具体算法。 相似文献
15.
一种基于模块单子语义的动态程序切片方法 总被引:2,自引:0,他引:2
提出一种基于程序模块单子语义的新动态切片方法--模块单子动态切片.首先通过单子转换器,将切片这一类计算抽象成独立于具体语言的实体:切片单子转换器.然后,将该切片转换器作为模块加载到实际程序中,并给出相应的模块单子动态切片算法.据此,可直接在抽象语法结构上计算动态切片,不必记录程序执行历史;相应单子切片器也无需显式地构造诸如依赖图的中间结构.这种模块化抽象机制使得文中的动态切片算法具有很强的可扩展性和重用性. 相似文献
16.
In this paper we generalize the notion of compositional semantics to cope with transfinite reductions of a transition system. Standard denotational and predicate transformer semantics, even though compositional, provide inadequate models for some known program manipulation techniques. We are interested in the systematic design of extended compositional semantics, observing possible transfinite computations, i.e. computations that may occur after a given number of infinite loops. This generalization is necessary to deal with program manipulation techniques modifying the termination status of programs, such as program slicing. We include the transfinite generalization of semantics in the hierarchy developed in 1997 by P. Cousot, where semantics at different levels of abstraction are related with each other by abstract interpretation. We prove that a specular hierarchy of non-standard semantics modeling transfinite computations of programs can be specifiedin such a way that the standard hierarchy can be derived by abstract interpretation. We prove that non-standard transfinite denotational and predicate transformer semantics can be both systematically derived as solutions of simple abstract domain equations involving the basic operation of reduced power of abstract domains. This allows us to prove the optimality of these semantics, i.e. they are the most abstract semantics in the hierarchy which are compositional and observe respectively the terminating and initial states of transfinite computations, providing an adequate mathematical model for program manipulation. 相似文献
17.
用Z形式化描述程序切片 总被引:1,自引:0,他引:1
程序切片是一种重要技术,已广泛地应用于软件工程的各个领域,如程序理解、维护、调试、测试、复用、度量等.虽然,越来越多的研究者致力于程序切片工作,然而由于缺少形式化方面的工作导致程序切片可能存在不一致性和模糊性.本文尝试着用Z语言来形式化描述程序切片,考虑了程序切片中诸如程序依赖图和程序切片算法等常用的方面.该形式化描述不仅能帮助人们正确地理解程序切片的含义,而且还能够从比较严格的意义上明确程序切片的应用领域. 相似文献
18.
JAVA语言是目前一种主要的面向对象编程语言,由于JAVA语言复杂的结构,使得对JAVA程序进行程序切片非常困难.本文提出一种层次的构造JAVA系统依赖图的算法,基于JAVA程序本身的层次结构,自顶向下构造系统依赖图,然后基于构造的系统依赖图,用一种改进的两阶段算法得到JAVA程序切片. 相似文献
19.
Slicing concurrent Java programs using Indus and Kaveri 总被引:1,自引:0,他引:1
Venkatesh Prasad Ranganath John Hatcliff 《International Journal on Software Tools for Technology Transfer (STTT)》2007,9(5-6):489-504
Program slicing is a program analysis and transformation technique that has been successfully used in a wide range of applications
including program comprehension, debugging, maintenance, testing, and verification. However, there are only few fully featured
implementations of program slicing that are available for industrial applications or academic research. In particular, very
little tool support exists for slicing programs written in modern object-oriented languages such as Java, C#, or C++. In this
paper, we present Indus—a robust framework for analyzing and slicing concurrent Java programs, and Kaveri—a feature-rich Eclipse-based
GUI front end for Indus slicing. For Indus, we describe the underlying tool architecture, analysis components, and program
dependence capabilities required for slicing. In addition, we present a collection of advanced features useful for effective
slicing of Java programs including calling-context sensitive slicing, scoped slicing, control slicing, and chopping. For Kaveri,
we discuss the design goals and basic capabilities of the graphical facilities integrated into a Java development environment
to present the slicing information. This paper is an extended version of a tool demonstration paper presented at the International
Conference on Fundamental Aspects of Software Engineering (FASE 2005). Thus, the paper highlights tool capabilities and engineering
issues and refers the reader to other papers for technical details.
This work was supported in part by the US Army Research Office (DAAD190110564), by DARPA/IXO’s PCES program (AFRL Contract
F33615-00-C-3044), by NSF (CCR-0306607) by Lockheed Martin, and and by Intel Corporation. 相似文献