适用于软件生命周期早期的UML类图复杂性度量在软件开发、测试和维护中发挥着重要作用,为开发高质量的软件提供指导。鉴于已有方法侧重统计属性、方法和类间关系的个数,缺乏软件拓扑结构整体性,本项目利用数据挖掘技术将UML类图抽象为人工复杂网络,借鉴复杂网络理论提出一种UML类图复杂性度量方法UMLDMCN;采用OCL和Z语言相结合的方式对其进行形式化描述,并进行理论验证,以检验该方法是否是一个优良的度量方法;用实验软件工程学来检验UMLDMCN的实际效果,不仅检验UML类图的"小世界"和"无标度"复杂网络特性,而且研究UMLDMCN与典型面向对象度量之间的关系,最后采用数据挖掘技术、依据ISO9126模型建立UMLDMCN与软件易维护性之间的预测模型。本项目从数据挖掘和复杂网络的视角来度量类图复杂性,对于丰富和完善软件度量理论具有积极的意义;可辅助设计人员在软件早期阶段对UML类图质量进行评估。
software measurement;software repository mining;software reliability prediction;UML class diagrams;complex network
本项目的总体目标是构建基于数据挖掘和复杂网络的UML类图复杂性度量方法,为UML类图复杂性度量提供一种新的视角,丰富和完善软件度量研究的理论;辅助设计人员在软件早期阶段对UML类图质量进行评估,使其在软件开发、测试和维护实践中得到更为广泛的应用。本项目按照研究计划开展了以下研究 1、提出了基于数据挖掘和复杂网络的UML类图复杂性度量方法UMLDMCN。具体而言,借鉴PageRank算法将UML类图抽象为人工复杂网络,即有向权重类依赖图WCDG;在WCDG的基础上构建的UMLDMCN由五部分组成类间关系复杂性度量、类内方法复杂性度量、类内属性复杂性度量、典型面向对象度量和软件网络复杂性度量。 2、在UML元模型层次使用Z模式来形式化描述UML类图和UMLDMCN,用OCL来描述良构规则,以便为理论验证奠定基础。 3、对UMLDMCN进行了Weyuker E.的9条性质和Briand L. C.性质的理论验证,为推广该度量方法奠定了理论基础。 4、对UMLDMCN进行了实验软件工程学检验,为其推广奠定了实践基础。(1)检验了UML类图的“小世界”和“无标度”复杂网络特性,发现有些UML类图只具备“小世界”特性,但不具备“无标度”特性。(2)研究了软件网络复杂性度量与典型的面向对象度量之间的关系。实验结果表明软件网络复杂性度量元与典型面向对象复杂性度量元不显著相关,一方面说明软件网络复杂性度量可以从不同侧面对面向对象复杂性度量提供一个较好地补充;另一方面虽然软件网络复杂性度量元对软件缺陷预测方面有提高作用,但提高的程度不显著,这点与人们的普遍认识和理解有所差异。(3)建立了UMLDMCN与软件外部结构特性之间的预测模型。实验结果表明UMLDMCN在易理解性、易分析性和易维护性预测效果方面表现不一;简单的UMLDMCN指标预测效果并不差,有时甚至比复杂的指标预测效果要好。(4)建立了UMLDMCN与软件缺陷之间的预测模型。(5)提出了一套基于迁移学习的软件缺陷预测经验知识共享方法。依据实验结果项目组建议在目标软件项目自身的历史数据足够的情况下,尽量使用软件项目内缺陷预测;如果只有少量的历史数据,则推荐使用混合软件项目缺陷预测。 5、为UMLDMCN研发了一套工具,为推广UMLDMCN度量方法提供了便利。总体上,项目达到了预期的研究目标和人才培养目标。