新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 基于面向对象程序切片的软件度量

基于面向对象程序切片的软件度量

作者:时间:2018-09-12来源:网络收藏

3.2 技术的研究
是一个在近几十年研究非常活跃的工程领域。抽象来讲,它是一个函数,其输入是软件,输出是单一的数值,能解释软件所具有的一个给定属性对软件质量的影响。用于预测、评估和控制软件开发的过程,促进项目的成功,开发出高质量的产品。
软件主要包括复杂性度量、模块性度量、易修改性度量、易移植性度量、可扩充性度量、可靠性度量、易维护性度量、测试充分性度量等。有些可以用数值表示,称为“定量度量”;不能用单一数值表达的称为“定性度量”。研究集中在定量度量方面的内聚度和耦合度的度量,这两个方面是衡量软件质量非常重要的标准。二者之间密切相关,模块之间的强耦合通常意味着弱内聚,而模块之间的强内聚则意味着弱耦合。

本文引用地址:http://www.eepw.com.cn/article/201809/388955.htm

4 利用技术进行软件度量
软件开发的目标是开发出高内聚和低耦合的系统。这里研究利用切片技术度量面向程序的内聚度和耦合度,尤其是内聚度量。
4.1 耦合度量
耦合度(Coupling Degree)用来测量由两个或多个模块连接而引起的联结程度的强弱。强耦合使模块连接后的系统变得复杂。因为模块之间具有高度的关联,改写模块将十分困难。降低模块间的耦合则可以减少系统的复杂性。因此,在系统设计中应追求尽可能松散的耦合关系。
4.2 内聚度量
内聚度(Cohesion Degree)是软件的内在属性,反映软件设计和实现中模块组件之间结合的紧密程度。高内聚的软件模块有着最基本的功能,很难再切割其规模。
面向程序的基本特征是类。类由属性和方法组成,属性和方法间存在3种关系,因此类内聚度也从3个方面度量:属性问内聚度、方法与属性问内聚度、方法问内聚度。设类C共有n个属性,m个方法,其中m,n≥0。V_Union表示所有成员变量。M_Union表示所有成员方法。这里使用数据标记(data token)而非语句作为基本单元来修正切片这个概念。数据切片包含和切片变量存在依赖关系的数据集合,简写作DataSlice(L,V),其中L表示程序中的某个点,通常情况下特指某条语句:V表示在L定义或使用的变量的集合;#表示势操作,表示集合中元素的个数。则属性间内聚度、方法与属性间内聚度和方法间内聚度的计算公式分别为式(1)~(3),如下所示:

4.3 实验操作
采用目前最主流的技术,以系统依赖图为基础,利用图的可达性算法获得切片结果。然后利用将切片结果代入式(1)~(3)进行计算,得到内聚度。
以下面的程序为例进行切片,计算内聚度,并和基于依赖性分析的类内聚度度量方法相对比。



评论


相关推荐

技术专区

关闭