Refactoring UML models: using openarchitectureware to measure uml model quality and perform pattern matching on UML models with OCL queries

  • Authors:
  • Twan van Enckevort

  • Affiliations:
  • Xebia BV, Hilversum, Netherlands

  • Venue:
  • Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

In object oriented software development, the Unified Modeling Language (UML) [21] has become the de-facto modeling standard. UML plays an important role for software factories, in which a high quality abstract UML model is the primary source of input used to generate a working system. While there are many tools that enable assisted refactoring of source code, there are few tools that enable assisted refactoring of UML models. In order to determine UML model quality for UML models used in code generation projects, a selection of quality metrics has been made. While there are a large number of metrics available to determine code quality, there are only a limited number of metrics applicable to UML models. Most model quality metrics have been derived from code quality metrics [16]. Syntactic and semantic model check rules have been implemented, that allow detection of undesirable model properties. The syntactic model checkers have been derived directly from the UML specification. The semantic model checkers have been derived from a range of anti-pattern descriptions. We have delivered a prototype that detects undesirable model features in order to test the model improvement capabilities. The prototype contains selected model quality metrics, syntactic and semantic model check rules. Both metrics and rules have been formulated in the Object Constraint Language (OCL) [21], which operates on UML models. The system is built using Open Source tools, allowing easy extensions of the prototype. The effects of suggested repair actions on the model are measurable through the selected model quality metrics and by subjective comparison. The prototype was able to improve model quality for four industry models both by metrics and subjective comparison.