Abstract

The Object Constraint Language (OCL) plays an important role in the elaboration of precise UML models. Although OCL was designed to be both formal and simple, UML/OCL models may be difficult to understand and evolve, particularly when constraints containing complex or duplicate expressions are present. Moreover, the evaluation of how changes in the definition of the underlying classes impact the OCL part of a model may be a difficult and time-consuming task. In this paper, we discuss how refactoring techniques can be applied in order to improve the understandability of a UML/OCL model and how to support its evolution. In particular, we present a collection of refactorings and discuss how they can be specified and automated. We also show how the model animation features can be used to increase our confidence that the semantics of a model is preserved when a refactoring is manually performed.

Links and resources

Tags

community

  • @tommens
  • @evol
  • @kimmens
  • @pdeleenh
  • @dblp
  • @leonardo
@leonardo's tags highlighted