论文部分内容阅读
自从软件工程的概念诞生以来,如何分离软件系统各组成部分之间的复杂性,以达到软件系统的易维护性、易修改性和可扩展性的目的就一直是软件工程研究的重要问题。 软件系统复杂性度量框架可以定量分析软件系统的复杂性。然而,通过分析度量结果,我们却只能找出在系统的何处可能做出改进,不能得出具体实施方法;设计模式和重构技术对于如何做出设计和代码改进有着一套系统化的方法,但是对于如何探测出系统中的不良设计却依靠开发人员的直觉和经验。如果能利用复杂性度量发现不良设计,再利用设计模式和重构技术改善设计和代码结构,则能够达到很好的互补效果。其次,人工实施度量和重构工作量巨大,出错率高,成本高昂,在面对系统的快速迭代时必然会显得力不从心。设计一套自动化的度量和重构工具则可以提高这套方法的实用性和执行效率。 论文的主要工作和研究成果如下: 1.研究了影响软件复杂性的度量指标,采用量化的方法度量软件系统的复杂度,避免依赖经验和直觉去发现设计和代码中的不良设计。并改进了C&K度量框架; 2.研究了各种耦合类型及相关耦合消解策略; 3.给出了一个自动度量工具的设计和实现,该工具以抽象语法树和符号表为中间表示,通过对度量逻辑与抽象语法树构建、遍历的分离,定制符合用户需求的度量框架; 4.设计了重构推荐工具,使用自动度量工具的度量结果发现定位不良设计,量化的不良设计为项目管理者提供了精确的依据来确定应在何处优先实施重构,重构推荐工具通过不良设计类型的识别,采用半自动的方式利用已有的重构策略通过改写抽象语法树达到消解不良设计的目的。 论文通过实施度量发现问题,再使用重构推荐工具改善设计和代码结构,从而达到提高程序的可读性、易维护性、易修改性和可扩展性的目的。