You are on page 1of 1

UML class diagrams are probably the most important, well-established, UML model.

They play an essential role in the analysis and design of complex systems. UML class diagrams allow the specification of constraints such as cardinality constraints, class hierarchy constraints and inter-association constraints. Constraints extend the expressivity of class diagrams, but enable the specification of unsatisfiable class diagrams, i.e., class diagrams that have no finite non-empty instance world. Nowadays, UML case tools still do not check satisfiability of class diagrams, and implementation languages still do not enforce design level constraints. But the expectation is that in the future, and in particular with the prevalence of the Model Driven Engineering approach,all information in a design model will be effective in its successive models. In this paper, we present an algorithm for testing the satisfiability of UML class diagrams that include class hierarchies with disjoint/overlapping and complete/incomplete constraints. The algorithm is based on a reduction to a previous algorithm of Lenzerini and Nobili that was applied only to ER-diagrams without class hierarchies. Our algorithm is simple and feasible since it adds in the worst case only a linear amount of entities to the original diagram. It improves over previous elaboration of the Lenzerini and Nobili method that require the addition of an exponential number of new entities to the original diagram. An implementation of our method within a UML case tool is currently under development.

You might also like