Context:
The Unified Modeling Language (UML), with its 14 different diagram types, is the de-facto standard tool for objectoriented modeling and documentation. Since the various UML diagrams describe different aspects of one, and only one, software under development, they are not independent but strongly depend on each other in many ways. In other words, the UML diagrams describing a software must be consistent. Inconsistencies between these diagrams may be a source of the considerable increase of faults in software systems. It is therefore paramount that these inconsistencies be detected, analyzed and hopefully fixed.

Objective:
The aim of this article is to deliver a comprehensive summary of UML consistency rules as they are described in the literature to date to obtain an extensive and detailed overview of the current research in this area.

Method:
We performed a Systematic Mapping Study by following well-known guidelines. We selected 94 primary studies from a search with seven search engines performed in December 2012.

Results:
Different results are worth mentioning. First it appears that researchers tend to discuss very similar consistency rules, over and over again. Most rules are horizontal (98.07%) and syntactic (88.03%). The most used diagrams are the class diagram (71.28%), the state machine diagram (42.55%) and the sequence diagram (47.87%).

Conclusion:
The fact that many rules are duplicated in primary studies confirms the need for a well accepted list of consistency rules. This paper is a first step in this direction. Results indicate that much more work is needed to develop consistency rules for all 14 UML diagrams, in all dimensions of consistency (e.g., semantic and syntactic on the one hand, horizontal, vertical and evolution on the other hand).

Additional Metadata
Publisher Department of Systems and Computer Engineering
Series SCE Technical Reports
Citation
Torre, D. (Damiano), Labiche, Y, & Genero, M. (Marcela). (2014). UML consistency rules: a systematic mapping study. SCE Technical Reports. Department of Systems and Computer Engineering.