6

哪些指标可以帮助表明我有过程代码而不是面向对象的代码?我想要一组简单的指标,这些指标很有可能表明分析的代码包含过程事务脚本和贫乏的域模型,而不是遵循健全的面向对象设计原则。

对任何有用的衡量指标和工具集都会感到高兴。

谢谢,托马斯!

4

2 回答 2

1

有些只是我的想法

  • 接口、抽象类等的相对数量(更多 OO)
  • 每个方法的成员变量使用情况(更多 OO)
  • 使用相同成员变量的方法数(更多 OO)
  • 静态变量和方法的数量(更多的过程,特别是静态方法(一些例外情况适用,如工厂))
  • 每个类的代码行数(更程序化)

这些并不能确保您的代码更加面向对象或更加程序化,但可能会对这些有所帮助。

于 2010-03-19T22:33:58.483 回答
1

内聚和耦合


专注于内聚和耦合的指标应该很好地表明你的类是真实的,而不是函数的集合。这里有一篇非常易读的论文,我在下面引用它来说明为什么我认为凝聚力是一个很好的指标:

“内聚是指模块组件的相关性”。高度内聚的组件是具有一个基本功能的组件。拆分一个有凝聚力的组件应该很困难。凝聚力可以​​使用从最不理想的类别(巧合凝聚力)到最理想的类别(功能凝聚力)的序数尺度进行分类。”

凝聚力的经典衡量标准是Chidamber 和 Kemerer 的“方法缺乏凝聚力”(LCOM)。您还可以查看类的响应 (RFC),它测量类中方法之间的联系。

可以考虑诸如 NOC 和 DIT 之类的设计指标,但我自己的经验是它们过于粗糙,很容易被第三方框架中的类混淆。

您还没有说您使用哪种语言,但是围绕 Eclipse 构建了一些工具,因此快速网络搜索基于 Eclipse 的面向对象的指标应该会产生一些有用的东西

于 2010-03-22T08:00:08.020 回答