Research Article

A Quality Model for Conceptual Models of MDD Environments

Table 1

Defect types of conceptual models in the state of the art.

Quality characteristicAuthorsModelDefect types

Consistency among diagrams Laitenberger et al. [21]UML Class(i) A class in the design class diagram is not a class in the system class diagram (with the same name)
(ii) The number, types, and names of the attributes of a class in the design class diagram are not the same in the class of the system class diagram
(iii) The number, names, and arguments of the methods of a class in the design class diagram are not the same in the class of the system class diagram
(iv) The associations with their cardinality and arity in the design class diagram are not the same in the system class diagram
(v) The constraints between classes of the design class diagram are not the same constraints for these classes in the system class diagram
UML Collaboration(i) An object that does not correspond to a class of the class diagram
(ii) The collaboration diagram has messages that do not correspond to the system operation
(iii) The messages do not have the same number and type of arguments as the operations of the system described in the Operation model
Operation model of the Fusion method(i) Operations (read, change, send, and result) that do not have the corresponding message in the collaboration diagram
Gomma and Wijesekera [23]UML Use-case(i) A use case that does not correspond to at least one scenario described by an interaction diagram
COMET state transition(i) Each Statechart that does not correspond to a state that is dependent on the control class in a class diagram
(ii) The values of the current states, events, actions, and activities that appear on a Statechart that are not declared as attribute values of the respective state, event, action, and activity attributes for the state that is dependent on the control class
(iii) An event on a Statechart that does not correspond to a method of the state of the control class in the class diagram
(iv) Variables used to define conditions in any Statechart that are not attributes of the state that is dependent on the control class in the corresponding class diagram
(v) Each event on a Statechart that corresponds to an incoming message on the state that is dependent on the control object, which is not represented in an interaction diagram (which executes the Statechart)
(vi) Each action on a Statechart that corresponds to an outgoing message on the state that is dependent on the control object, which is not represented in an interaction diagram (which executes the Statechart)
Kuzniarz [25]UML Use-case(i) The actor that is defined in the use case diagram is not the same actor that takes part in the interaction that is defined in the corresponding sequence diagram
(ii) Not all the steps that are defined in the use case description correspond to messages in the system sequence diagram
(iii) There are extension points for the extension of use cases that are missing (not represented) in the diagram of the controller use case
UML Sequence(i) An iteration symbol that is related to an iterative task is missing in the sequence diagram
(ii) There are links used in sequence diagrams that are not associations in the class diagram
(iii) There are sequences of messages in the sequence diagram that are not acceptable for the controller use case
(iv) There are elements used in pre- and postconditions of the contracts that are not defined in the class model
(vi) There are sequences of messages in the sequence diagram that are not an acceptable subsequence for the state machines that take part in the sequence diagram
Berenbach [26]UML Use-case(i) Actors in use-case diagrams that are not specified in the context diagram
(ii) Use case without an interaction diagram that shows the possible scenarios
UML Class(i) An interface in the class diagram that is not used to communicate with a concrete use case
(ii) A class that is not instantiated in any process of the system (sequence and collaboration diagrams)
(iii) Methods of the interface class that are not represented in the process of the system (sequence and collaboration diagrams)
(iv) Classes in the class diagram that are not specified in the use-case diagram
(v) Interfaces in the class diagram that are not specified in the use-case diagram
Lange and Chaudron [27]UML Sequence(i) Messages between unrelated classes
UML Class(i) Classes that are not called in the sequence diagram
(ii) Interfaces that are not called in the sequence diagram
(iii) Methods that are not called in the sequence diagram
Lange and Chaudron [11]UML Use-case(i) Use cases without sequence diagrams
UML Sequence(i) Objects of the sequence diagram that are not related to a class in the class diagram
Bellur and Vallieswaran [12]UML Use-case(i) A use case that does not reference a use-case sequence diagram
UML Sequence(i) A variable of a general class used in the sequence diagram that is null or is not a valid class in the class diagram
(ii) A method referenced in the sequence diagram that is null or is not a valid method in the method sequence charts
(iii) An object that is not the sender or the receiver in any interaction
(iv) An object that does not reference a valid class and state diagram
(v) A message that is not an instance of one class method for some class defined in the system
UML State Transition(i) A state diagram that is not related to one and only one class
(ii) A state that is not described by one or more attributes of the class
(iii) State change events that do not correspond to messages in the method sequence diagrams
UML Component(i) An intercomponent relationship that does not have 2 terminating end classes which are valid classes in the class diagram
(ii) A component in the component diagram that is not mapped to a physical system described in the deployment diagram
UML Deployment(i) A deployment diagram that is not related to one or more component diagrams
CorrectnessLaitenberger et al. [21]UML Class(i) The types of the attributes of a class are not specified
(ii) The methods of a class are not specified
(iii) Parameters that do not have a type associated
Berenbach [26]UML Use-case(i) Multiple entry point for the system in the use-case diagram
(ii) Diagrams without a description and status
(iii) Concrete use cases without a definition
(iv) Abstract use cases that are not realized by a concrete use-case
(v) Extends use-case relationship that is specified between use cases that are not concrete
(vi) A concrete use case that includes an abstract use case
UML Business(i) Services of business objects that do not have defined pre- and postconditions
UML Class(i) An interface class with private methods
Lange and Chaudron [27]UML Sequence(i) Objects without a name
(ii) Abstract classes in sequence diagrams
(iii) Messages without a name
(iv) Messages without a method
UML Class(i) Classes without methods
(ii) Interfaces without methods
(iii) Classes with public attributes
Leung and Bolloju [28]UML Class(i) Missing association label or cardinality detail
(ii) Improper label for a class, an association, an attribute, or an operation
(iii) Improper notation for an association, an aggregation, or a generalization
(iv) The nonimplicit operations that are present in sequence diagram are not included
(v) Implicit operation is listed
(vi) Wrong association cardinality (reversed or wrong range)
(vii) Wrong location of an attribute or an operation
(viii) Wrong association grouping
(ix) Missing class, attribute, operation, or association
(x) Incomplete class description
(xi) Operation that cannot be realized (using attributes and relationships)
(xii) Does not use domain-specific terminology
(xiii) Poor layout of the class diagram
(xiv) Insufficient distinction among sub-classes
(xv) Operation naming is improper or ambiguous
(xvi) Associations are replicated at sub-classes
(xvii) Manual operation is represented as association
(xviii) Excessive use of generalization, PK concept, FK concept, or emphasis on statistical information
(xix) Redundant attributes
(xx) Redundant associations
(xxi) Implementation detail is present in the diagram
Lange and Chaudron [11]UML Sequence(i) Message in wrong direction in the sequence diagram
UML Class(i) Multiple definitions of classes with equal names
Bellur and Vallieswaran [12]UML Use-case(i) An actor that does not use one or more use cases
(ii) A use case that is not used by one or more actors
(iii) A use case that does not belong to system
UML Sequence(i) A message that does not have a sender and a receiver object
(ii) A message that does not conform to the signature of the method corresponding to the message
UML Class(i) A class diagram without classes
(ii) An association without a source and target class
(iii) A class that does not have at least one attribute or method
UML State Transition(i) A state diagram without one start state and one end state
(ii) A state that has overlap of attribute values describing the state
(iii) A state that is not reachable from the start state
(iv) A state that cannot reach the end state
UML Component(i) A component diagram without components