RoclET– Refactoring OCL Expressions by Transformations
The role of UML models in software development has changed considerably over the last years. While UML was used in its early days mostly as a notation for sketching ideas, developers more and more recognize now the value of a UML model as a formal document that can be processed by tools, e.g. in order to generate code and documentation. Precise software models, however, can usually not be expressed by the pure diagrammatic elements of UML. Instead, they are best captured by constraints written in OCL. Despite the primary importance of constraints within precise modeling, the tool support for OCL is still in a rudimentary stage and there is much room for improvements. In this paper, we describe the architecture and the functionality of our own OCL tool called RoclET. Currently, our tool supports the parsing of OCL assertions (invariants, pre-/post-conditions), their evaluation in given system snapshots (object diagrams) and refactoring, i.e. the automatic propagation of changes made in the underlying class diagram across annotated OCL constraints. RoclET is highly customizable and can handle different OCL dialects. Its functionality is mainly implemented in form of QVT transformation rules that can be adapted by the user. RoclET is realized in form of an Eclipse plugin.