我正在阅读一个关于OO设计质量度量的科学纸,作者是Robert。
在他的论文中,他描述了“一组可以用来衡量面向对象设计的质量的度量标准,即该设计的子系统之间的相互依存性”。
他继续讨论如何在抽象和不稳定之间取得良好的平衡。以下是他所写的衡量标准及其计算方法:
Na:包中的具体类和抽象类(和接口)的数量表明包的可扩展性。
传入耦合器(Ca):包外依赖于包中类的类数。
传出耦合器(Ce):包中依赖于包外类的类数。
抽象性(A):分析包中抽象类(和接口)的数量与分析包中的类总数的比率。此度量的范围为0到1,其中A=0表示完全具体的包,A=1表示完全抽象的包。
不稳定性(I):传出耦合( Ce )与总耦合(Ce + Ca)之比,使I=Ce/ (Ce + Ca)。这个指标是衡量一揽子计划对变化的适应力的一个指标。此度量的范围为0到1,其中I=0表示完全稳定的包,I=1表示完全不稳定的包。
距离主序列(D):包与理想线A+I= 1的垂直距离。这个度量是包的抽象性和稳定性之间平衡的指标。主序列上的包在抽象性和稳定性方面是最优平衡的。理想包要么是完全抽象和稳定的(x=0,y=1),要么是完全具体和不稳定的(x=1,y=0)。此度量的范围为0到1,D=0表示与主序列一致的包,D=1表示尽可能远离主序列的包。
我做了以下简单的设计。

我对最后一个指标(D)感到困惑。如果我计算出图中的度量D(D‘),我得到一个负值-0.5。但是如果我读到描述的话,说明值应该介于0到1之间。维基百科还声明,对于度量接口,也被认为是抽象类。但我不能从报纸上编出来。这是真的吗?

我做错什么了吗?相信这个设计,虽然真的很小,但不是很糟糕吗?
发布于 2014-02-28 13:45:47
如果D是“距离”,那么应该考虑它的绝对值,本文中的公式也有一个绝对算子。我不知道你是怎么计算距离的,或者我误解了你。
关于抽象类和接口,我认为它们都是提供“接口框架”的机制,这意味着将依赖关系保持在接口级别,而不是具体的类.因此,我认为,尽管有一些不同之处,但还是可以把它们视为同样的事情。
https://stackoverflow.com/questions/22093280
复制相似问题