Research Article

A Quality Model for Conceptual Models of MDD Environments

Table 4

5 Defect types of conceptual models found in the literature and OCL rules.

Defects types found in the literatureOCL rules

Defect: An attribute of a class without the specification of the typecontext Class inv: body self.features- select(t t.oclIsKindOf(TypedProperty))- collect(t t.oclAsType (TypedProperty))- select(a a.type.isEmpty())- isEmpty()

Defect: An argument of a service without the specification of the typecontext Service inv: body self.features- select(s s.oclIsKindOf(Service))- collect(s s.oclAsType (Service)).argument.type- size 1- isEmpty()

Defect: Associations replicated at sub-classesClassifier::parents(): Set(Classifier); parents = generalization.generalClassifier::allParents(): Set(Classifier); allParents = self.parents()- union(self.parents()- collect(p p.allParents())context AssociationEnd inv: body self.allInstances- forAll(r1, r2 r1.name = r2.name and r1.owningClass.allParents()- select(c c.name = r2.name)- isEmpty()

Defect: Associations with a repeated nameContext Relationship inv: body self.allInstances()- forAll(r1, r2 r1 ā€‰ r2 implies r1.name ā€‰ r2.name)

Defect: An association without a source and target classcontext Association inv: body self.role- select(e1,e2 e1.role.kind = EndKind::source and e2.role.kind = EndKind::target)