论文摘要
从60年代爆发软件危机,诞生软件工程这一新兴学科以来,软件工程的研究不断前进。一方面积累了一大批的成果和技术,形成了较为成熟的传统软件工程;另一方面不断引入新的先进的工程方法,使之日益完善。随着计算机软件的广泛应用,人们对其质量提出了新的更高的要求,迫切需要能够对软件开发过程和产品进行精确的、可预测的和可重复的控制,软件度量就是控制软件质量的一种行之有效的手段。软件度量的目的是用科学的方法来客观地评价软件质量,有力地对软件开发过程进行控制和管理,以低成本获得高质量软件。对于传统的软件开发,存在的度量方法有Halstead方法、语句行(LOC)度量方法、McCable方法、WoodWard方法、Harrison方法等。传统的度量方法由于不能很好地反映面向对象(Object-Oriented,OO)的技术特征而逐渐被OO软件度量方法所取代。现有流行的OO度量有C&K度量方法以及MOOD方法等,其中都包括对类内聚的度量。内聚性是一种重要的软件内部属性,标志模块内部各个元素彼此结合的紧密程度,通常被认为与可维护性、重用性和可靠性等外部属性具有强相关性,因此高内聚成为软件开发者追求的目标。现有方法主要是从类内部方法间的相似程度进行考虑,主要有基于图论、基于信息论、基于程序切片三类。本文分析总结了现有基于图论的内聚度量方法,认为其普遍存在以下三方面的问题:是否排除对特殊方法的考虑,是否满足良好内聚度量的理论验证准则,是否考虑了类成员间不同的联结强度对内聚值的影响。针对如上问题,本文主要从以下几个方面展开研究工作:1.本文提出了一种类内聚性的刻画方法,即采用类内部成员间的联结强度来对其进行刻画,用类成员彼此间的各种依赖关系来定义其联结强度,该方法有效地克服了现有方法存在的不足,实现对类内聚性更为准确的度量。2.本文将面向对象系统抽象成一个独立于具体实现语言的简单有向图。在此基础上,提取其中类内部方法与属性间的依赖关系建立了用于内聚度量的元模型——DWFC(Directed Weighted False Chart)模型。结合模型特点,本文对该模型进行了形式化描述以及理论性质推导。3.本文引入了加权思想,对类内部成员间各种不同依赖关系的权重分别进行刻画,建立了基于DWFC模型的内聚度量方法。4.结合Briand提出的度量验证准则,本文理论验证了所提出的基于DWFC模型的内聚度量方法满足理论验证准则,同时通过对比实验验证了该方法在内聚度量方面较之现有方法更为合理、准确。5.针对现有内聚度量验证准则自身存在的问题,本文提出了一套新的内聚度量验证准则,将度量结果与人直觉判断的一致性作为度量方法判定准则之一。为此,本文引入了PROBE规模度量方法,提出采用相关性和有效性分析来判定度量结果与人直觉判断一致性的方法,从而改进了现有内聚度量的验证准则。同时,通过对比实验验证了该方法的有效性和优越性。6.本文提出了一种具备独立性、可扩展性和跨平台性特点的度量自动化工具原模型,并以java语言为例,实现了基于java语言的内聚度量自动化工具。