哪个度量标准显示了面向对象和过程代码之间的区别

时间:2010-03-19 22:24:48

标签: oop metrics procedural-programming anemic-domain-model

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

对于任何有用的衡量指标和工具都会很满意。

谢谢,托马斯!

2 个答案:

答案 0 :(得分:1)

有些只是我的想法

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

这些不能确保您的代码更多OO或更多程序,但可能会帮助那些。

答案 1 :(得分:1)

凝聚力和耦合


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

“内聚是指模块组件的相关性”。高度凝聚力的组件是具有一个基本功能的组件。分裂粘性成分应该是困难的。凝聚力可以​​使用顺序量表进行分类,其范围从最不理想的类别(巧合凝聚力)到最理想的(功能凝聚力)。“

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

可以考虑设计指标,例如NOC和DIT ,但我自己的经验是,它们在第三方框架内被太粗糙,容易混淆。< / p>

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