MODELS 2005: Model Driven Engineering Languages and Systems pp 280-294 | Cite as
Refactoring OCL Annotated UML Class Diagrams
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.
Preview
Unable to display preview. Download preview PDF.
References
- 1.Kruchten, P.: The Rational Unified Process: An Introduction. Addison-Wesley, Reading (2004)Google Scholar
- 2.Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading (2000)Google Scholar
- 3.Mens, T., Tourwé, T.: A survey of software refactoring. IEEE Trans. Software Eng. 30, 126–139 (2004)CrossRefGoogle Scholar
- 4.Refactoring community: Refactoring homepage (2005), http://www.refactoring.com
- 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.Fowler, M.: Refactoring: Improving the Design of Existing Programs. Addison-Wesley, Reading (1999)Google Scholar
- 7.Rumpe, B.: Agile Modellierung mit UML. Springer, Heidelberg (2005) (in German)MATHGoogle Scholar
- 8.Astels, D.: Refactoring with UML. In: International Conference eXtreme Programming and Flexible Processes in Software Engineering, pp. 67–70 (2002)Google Scholar
- 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.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.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.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.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.OMG: Revised submission for MOF 2.0, Query/Views/Transformations, version 1.8. OMG Document ad/04-10-11 (2004) Google Scholar
- 15.Sendall, S., Kozaczynski, W.: Model transformation: The heart and soul of modeldriven software development. IEEE Software 20, 42–45 (2003)CrossRefGoogle Scholar
- 16.OMG: UML 2.0 OCL Specification – OMG Final Adopted Specification. OMG Document ptc/03-10-14 (2003) Google Scholar
- 17.OMG: UML 1.5 Specification. OMG Document formal/03-03-01 (2003) Google Scholar
- 18.Eclipse community: Eclipse homepage (2005), http://www.eclipse.org