|
Quality characteristic | Authors | Model | Defect 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 |
Correctness | Laitenberger 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 |
|