模型驱动测量方法:原理、应用与优势
1. 模型驱动测量方法基础
在模型驱动测量中,一个属性可以是像字符串 “foo” 这样的值,也可以是对另一个模型元素的引用。OnFeaturePredicate 类在后续会有进一步介绍。
在图的右侧部分展示了对给定特征可能进行的测试:
- ObjectEqualityPredicate :用于测试一个引用是否指向变量所引用的模型元素。
- ValuePredicate :能够测试属性的值,例如布尔值是否等于 “false” 或者整数是否等于 “13”。
- LambdaPredicate :可将谓词应用于集合中的所有元素,它还细分为 Exists 和 ForAll 来表达一阶逻辑量词。
- Contains :用于测试集合是否包含变量所引用的模型元素。
- MultiplicityPredicate :可以测试集合的实际大小。
模型驱动测量方法(MDM)存在一定局限性。由于元模型是声明式的,所有基于元模型明确概念定义的度量通常都可以在 MDM 方法中进行指定。反之,任何由元模型中不存在的概念组成的度量都无法在 MDM 方法中表达。
2. MDM 方法的实例研究
2.1 将 Java 程序作为实现模型
把 Java 程序视为符合 Java 元模型的模型,就可以在 MDM 方法中指定 Chidamber 和 Kemerer 度量。这不仅能证明我们