Abstract
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.
This work was supported by Swiss National Scientific Research Fund under the reference number 2000-067917.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Kruchten, P.: The Rational Unified Process: An Introduction. Addison-Wesley, Reading (2004)
Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading (2000)
Mens, T., Tourwé, T.: A survey of software refactoring. IEEE Trans. Software Eng. 30, 126–139 (2004)
Refactoring community: Refactoring homepage (2005), http://www.refactoring.com
Opdyke, W.F.: Refactoring: A Program Restructuring Aid in Designing Object-Oriented Application Frameworks. PhD thesis, University of Illinois at Urbana- Champaign (1992)
Fowler, M.: Refactoring: Improving the Design of Existing Programs. Addison-Wesley, Reading (1999)
Rumpe, B.: Agile Modellierung mit UML. Springer, Heidelberg (2005) (in German)
Astels, D.: Refactoring with UML. In: International Conference eXtreme Programming and Flexible Processes in Software Engineering, pp. 67–70 (2002)
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)
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)
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)
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)
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)
OMG: Revised submission for MOF 2.0, Query/Views/Transformations, version 1.8. OMG Document ad/04-10-11 (2004)
Sendall, S., Kozaczynski, W.: Model transformation: The heart and soul of modeldriven software development. IEEE Software 20, 42–45 (2003)
OMG: UML 2.0 OCL Specification – OMG Final Adopted Specification. OMG Document ptc/03-10-14 (2003)
OMG: UML 1.5 Specification. OMG Document formal/03-03-01 (2003)
Eclipse community: Eclipse homepage (2005), http://www.eclipse.org
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Marković, S., Baar, T. (2005). Refactoring OCL Annotated UML Class Diagrams. In: Briand, L., Williams, C. (eds) Model Driven Engineering Languages and Systems. MODELS 2005. Lecture Notes in Computer Science, vol 3713. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11557432_21
Download citation
DOI: https://doi.org/10.1007/11557432_21
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29010-0
Online ISBN: 978-3-540-32057-9
eBook Packages: Computer ScienceComputer Science (R0)