项目名称: 基于依赖性分析的面向对象内聚性和耦合性度量理论、实证和应用研究
项目编号: No.60803008
项目类型: 青年科学基金项目
立项/批准年度: 2009
项目学科: 金属学与金属工艺
项目作者: 周毓明
作者单位: 东南大学
项目金额: 21万元
中文摘要: 内聚性和耦合性度量是两种最重要的面向对象软件度量。尽管人们已经提出了许多度量方法,但当前的理论分析和实验结果表明人们对内聚性和耦合性的理解还很弱,一个主要问题在于它们或建立在简单的语法分析基础上而没有准确捕获成分间的依赖关系,或不能有效刻画成分间的交互方式和交互强度,另一个主要问题在于人们只利用它们度量、评价和预测模块的质量,而不清楚如何利用它们来改进软件的内部结构。本项目在依赖性分析技术的基础上研究准确的面向对象内聚性和耦合性度量,使它们能够用来:(1)更准确地预测类的易错性、易变性和易测性;(2)有效地识别面向对象系统中何处需要改进并提供如何改进的重要信息。为此,我们进行如下四项内容的研究:(1)基于依赖性分析的内聚性和耦合性度量方法研究;(2)基于开源软件的内聚性和耦合性度量的全面实证研究;(3)基于内聚性和耦合性度量的自动重构(refactoring)方法研究;(4)支撑工具开发。
中文关键词: 内聚性;耦合性;度量;依赖性分析;重构
英文摘要: Cohesion and coupling metrics are the most important two types of object-oriented (OO) software metrics. Although many OO cohesion and coupling metrics have been proposed, existing theoretical and empirical results show that current understanding on cohesion and coupling is still weak. One main reason for this is that existing cohesion and coupling metrics either are based on syntax analysis and therefore cannot accurately depict the dependences among module members or cannot effectively depict the interaction patterns and strengths among module members. Another reason is that people only use them to measure, assess, and predict the quality of modules but do not know how to use them to improve the internal structure of OO software. This project uses dependence analysis technology to develop accurate OO cohesion and coupling metrics, which can be used to: (1) more accurately predict fault-proneness, change-proneness, and testability for modules; and (2) effectively identify the weak parts in an OO system that needs to be improved and provide important information for the improvement. This project consists offour parts: (1) the development of cohesion and coupling metrics based on dependence analysis; (2) the comprehensive empirical study of cohesion and coupling metrics based open-source software; (3) the development of automatic refactoring method for modules based on cohesion and coupling metrics; and (4) the development of supporting tools.
英文关键词: Cohesion; coupling; metrics; dependence analysis; refactoring