Refactoring OCL Annotated UML Class Diagrams

  • Slaviša Marković
  • Thomas Baar
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3713)


Refactoring of UML class diagrams is an emerging research topic and heavily inspired by refactoring of program code written in object-oriented implementation languages. Current class diagram refactoring techniques concentrate on the diagrammatic part but neglect OCL constraints that might become syntactically incorrect by changing the underlying class diagram. This paper formalizes the most important refactoring rules for class diagrams and classifies them with respect to their impact on annotated OCL constraints. For refactoring rules, whose application on class diagrams could make attached OCL constraints incorrect, we formally describe how the OCL constraints have to be refactored to preserve their syntactical correctness. Our refactoring rules are defined in the graph-grammar based formalism proposed by the QVT Merge Group for the specification of model transformations.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Kruchten, P.: The Rational Unified Process: An Introduction. Addison-Wesley, Reading (2004)Google Scholar
  2. 2.
    Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading (2000)Google Scholar
  3. 3.
    Mens, T., Tourwé, T.: A survey of software refactoring. IEEE Trans. Software Eng. 30, 126–139 (2004)CrossRefGoogle Scholar
  4. 4.
    Refactoring community: Refactoring homepage (2005),
  5. 5.
    Opdyke, W.F.: Refactoring: A Program Restructuring Aid in Designing Object-Oriented Application Frameworks. PhD thesis, University of Illinois at Urbana- Champaign (1992)Google Scholar
  6. 6.
    Fowler, M.: Refactoring: Improving the Design of Existing Programs. Addison-Wesley, Reading (1999)Google Scholar
  7. 7.
    Rumpe, B.: Agile Modellierung mit UML. Springer, Heidelberg (2005) (in German)zbMATHGoogle Scholar
  8. 8.
    Astels, D.: Refactoring with UML. In: International Conference eXtreme Programming and Flexible Processes in Software Engineering, pp. 67–70 (2002)Google Scholar
  9. 9.
    Sunyé, G., Pennaneac’h, F., Ho, W.M., Guennec, A.L., Jézéquel, J.M.: Using UML action semantics for executable modeling and beyond. In: Dittrich, K.R., Geppert, A., Norrie, M.C. (eds.) CAiSE 2001. LNCS, vol. 2068, pp. 433–447. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  10. 10.
    Boger, M., Sturm, T., Fragemann, P.: Refactoring browser for UML. In: International Conference eXtreme Programming and Flexible Processes in Software Engineering, pp. 77–81 (2002)Google Scholar
  11. 11.
    Porres, I.: Model refactorings as rule-based update transformations. In: Stevens, P., Whittle, J., Booch, G. (eds.) UML 2003. LNCS, vol. 2863, pp. 159–174. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  12. 12.
    Correa, A., Werner, C.: Applying refactoring techniques to UML/OCL. In: Baar, T., Strohmeier, A., Moreira, A., Mellor, S.J. (eds.) UML 2004. LNCS, vol. 3273, pp. 173–187. Springer, Heidelberg (2004)Google Scholar
  13. 13.
    Gorp, P.V., Stenten, H., Mens, T., Demeyer, S.: Towards automating sourceconsistent UML refactorings. In: Stevens, P., Whittle, J., Booch, G. (eds.) UML 2003. LNCS, vol. 2863, pp. 144–158. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  14. 14.
    OMG: Revised submission for MOF 2.0, Query/Views/Transformations, version 1.8. OMG Document ad/04-10-11 (2004) Google Scholar
  15. 15.
    Sendall, S., Kozaczynski, W.: Model transformation: The heart and soul of modeldriven software development. IEEE Software 20, 42–45 (2003)CrossRefGoogle Scholar
  16. 16.
    OMG: UML 2.0 OCL Specification – OMG Final Adopted Specification. OMG Document ptc/03-10-14 (2003) Google Scholar
  17. 17.
    OMG: UML 1.5 Specification. OMG Document formal/03-03-01 (2003) Google Scholar
  18. 18.
    Eclipse community: Eclipse homepage (2005),

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Slaviša Marković
    • 1
  • Thomas Baar
    • 1
  1. 1.School of Computer and Communication SciencesÉcole Polytechnique Fédérale de Lausanne (EPFL)LausanneSwitzerland

Personalised recommendations