软件复杂度度量:MATLAB与面向对象代码的评估
1. 引言
软件质量是软件开发中至关重要的因素,IEEE将其定义为软件具备所需属性组合的程度,如可靠性、互操作性等。软件度量作为控制软件复杂度的工具,能帮助我们观察软件系统的弱点,进而评估软件质量,因此在软件开发生命周期中不可或缺。
近年来,面向对象(OO)语言取得了巨大成功,众多项目采用JAVA、C++或Python进行开发。为了控制这些项目的复杂度,自20世纪90年代起,出现了多种面向对象的度量方法,如Chidamber和Kemerer(CK)度量套件、MOOD度量等。这些度量方法旨在覆盖OO语言的部分特性,并用于评估软件的各种质量属性,如正确性、可靠性、可维护性等。其中,可维护性被视为软件产品最重要的属性,大多数度量方法也围绕这一属性展开。
在以往的工作中,我们提出了用于评估OO代码复杂度的度量方法,但后来发现,在考虑继承带来的复杂度时,不仅要考虑方法复杂度,还应考虑属性复杂度。因此,本文提出了一套新的度量套件,旨在全面捕捉OO编程范式的大部分特性。
2. 动机
CK度量套件之后,针对OO语言开发更有效度量套件的尝试并不多。CK度量套件虽然计算简单直接,但存在一些不足:
1. 未涵盖类因所有可能因素导致的整体复杂度。
2. 未考虑类的内部架构。
3. 未体现类层次结构中继承关系的影响。
4. 仅统计与其他类耦合的方法数量,未考虑类间消息的数量和复杂度。
5. 未涉及认知复杂度,而认知复杂度对系统的可维护性有重要影响。
这些不足促使我们开发一套新的度量套件,作为CK度量套件的补充。我们的度量方法更详细地考察了OO属
超级会员免费看
订阅专栏 解锁全文
20

被折叠的 条评论
为什么被折叠?



