现在的位置: 首页 > 综合 > 正文

面向对象编程类型的项目的度量

2013年08月25日 ⁄ 综合 ⁄ 共 2160字 ⁄ 字号 评论关闭

 

面向对象编程类型的项目的度量

 

摘自Stephen H . Kan 的《Metrics and Models in Software Quality Engineering Chapter 12. Metrics and Lessons Learned for Object-Oriented Projects

 

 

Table 12.1.. OO Metrics and Rules of Thumb Recommended by Lorenz (1993)

Metric

Rules of Thumb and Comments

1. Average Method Size (LOC)

方法的平均代码行数

Should be less than 8 LOC for Smalltalk and 24 LOC for C++

对于Smalltalk,应该小于8 行,对于C++应小于24行

2. Average Number of Methods per Class

每个类中拥有的方法的平均个数

Should be less than 20. Bigger averages indicate too much responsibility in too few classes.

应该小于20个。太多意味着用太少的类去实现太多的内容,每个类的职责过多了。

3. Average Number of Instance Variables per Class

每个类中的实例变量的平均个数

Should be less than 6. More instance variables indicate that one class is doing more than it should.

应该小于6个。太多的实例变量意味着类做了很多它不应该做的事情。

4. Class Hierarchy Nesting Level (Depth of Inheritance Tree, DIT)

类嵌套的层次(继承的深度)

Should be less than 6, starting from the framework classes or the root class.

应该小于6,从框架类或基类开始数起。

5. Number of Subsystem/Subsystem Relationships

子系统/子系统间关系的个数

Should be less than the number in metric 6.

应该小于第6点所度量出来的数字。

6. Number of Class/Class Relationships in Each Subsystem

每个子系统中,类/类间关系的个数

Should be relatively high. This item relates to high cohesion of classes in the same subsystem. If one or more classes in a subsystem don't interact with many of the other classes, they might be better placed in another subsystem.

该值应该比较高。该值与子系统中的类的高类聚性有直接关系。如果子系统中的一个或多个类与其他很多的类没有交互,那么它们或许应该放到其它的子系统中。

7. Instance Variable Usage

实例变量的使用

If groups of methods in a class use different sets of instance variables, look closely to see if the class should be split into multiple classes along those "service" lines.

如果类中的一些方法分别使用了几组的实例变量,那么应该仔细分析类是否应该按一定的界线去分割成若干个类。

8. Average Number of Comment Lines (per Method)

注释行的平均个数(对于每个方法而言)

Should be greater than 1.

应该大于1.

9. Number of Problem Reports per Class

对于每个类所发现的问题

Should be low (no specifics provided).

没有具体的值,但是应该比较低

10. Number of Times Class Is Reused

类被重用的次数

If a class is not being reused in different applications (especially an abstract class), it might need to be redesigned.

如果类(尤其是抽象类)没有在不同的应用程序中重用的 ,那么很可能需要对这些类进行重新设计。

11. Number of Classes and Methods Thrown Away

类或方法被抛弃不用的个数

Should occur at a steady rate throughout most of the development process. If this is not occurring, one is probably doing an incremental development instead of performing true iterative OO design and development.

在大部分的开发过程中,类或方法应该按一定的比率抛弃。如果不怎么抛弃所写的类或方法的话,那么可能是在用增量的开发方式,而不是在用真正的OO设计进行迭代开发。

Source: Lorenz, 1993.

 

 

抱歉!评论已关闭.