Skip to main content

On the Use of Graph Transformations for Model Refactoring

  • Chapter

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4143))

Abstract

Model-driven software engineering promotes the use of models and transformations as primary artifacts. Several formalisms can be used for the specification of model transformations. We propose to represent models as graphs, and model transformations as graph transformations. In particular, we focus on the activity of model refactoring, and show how graph transformation theory can provide formal support for this activity. We also show how such support can be implemented in state-of-the-art graph transformation tools such as AGG and Fujaba, and provide two concrete experiments. Critical pair analysis in AGG enables the analysis of dependencies between model refactorings. The round-trip engineering facility of Fujaba enables the automatic generation of code for model refactorings.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Sendall, S., Kozaczynski, W.: Model transformation: The heart and soul of model-driven software development. IEEE Software 20(5), 42–45 (2003) (Special Issue on Model-Driven Software Development)

    Article  Google Scholar 

  2. Bézivin, J.: Model driven engineering: Principles, scope, deployment and applicability. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2005. LNCS, vol. 4143, pp. 36–64. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  3. Sprinkle, J., Agrawal, A., Levendovszky, T., Shi, F., Karsai, G.: Domain model translation using graph transformations. In: Proc. Int’l Conf. Engineering of Computer-Based Systems, pp. 159–168. IEEE Computer Society, Los Alamitos (2003)

    Google Scholar 

  4. Kalnins, A., Barzdins, J., Celms, E.: Model transformation language MOLA. In: Proc. Model-Driven Architecture: Foundations and Applications, pp. 14–28 (2004)

    Google Scholar 

  5. Csertán, G., Huszerl, G., Majzik, I., Pap, Z., Pataricza, A., Varró, D.: VIATRA - visual automated transformations for formal verification and validation of UML models. In: Proc. Int’l Conf. Automated Software Engineering, pp. 267–270. IEEE Computer Society, Los Alamitos (2002)

    Chapter  Google Scholar 

  6. 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 

  7. Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)

    Google Scholar 

  8. Sunyé, G., Pollet, D., LeTraon, Y., Jézéquel, J.-M.: Refactoring UML models. In: Gogolla, M., Kobryn, C. (eds.) UML 2001. LNCS, vol. 2185, pp. 134–138. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  9. Boger, M., Sturm, T., Fragemann, P.: Refactoring browser for UML. In: Proc. Int’l Conf. on eXtreme Programming and Flexible Processes in Software Engineering, pp. 77–81 (2002)

    Google Scholar 

  10. Van Gorp, P., Stenten, H., Mens, T., Demeyer, S.: Towards automating source-consistent UML refactorings. In: Stevens, P., Whittle, J., Booch, G. (eds.) UML 2003. LNCS, vol. 2863, pp. 144–158. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  11. Van Der Straeten, R., Jonckers, V., Mens, T.: Supporting model refactorings through behaviour inheritance consistencies. In: Baar, T., Strohmeier, A., Moreira, A., Mellor, S.J. (eds.) UML 2004. LNCS, vol. 3273, pp. 305–319. Springer, Heidelberg (2004)

    Google Scholar 

  12. Markovic, S., Baar, T.: Refactoring ocl annotated uml class diagrams. In: Briand, L.C., Williams, C. (eds.) MoDELS 2005. LNCS, vol. 3713, pp. 280–294. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  13. Zhang, J., Lin, Y., Gray, J.: Generic and domain-specific model refactoring using a model transformation engine. In: Model-driven Software Development - Research and Practice in Software Engineering. Springer, Heidelberg (2005)

    Google Scholar 

  14. Van Kempen, M., Chaudron, M., Koudrie, D., Boake, A.: Towards proving preservation of behaviour of refactoring of UML models. In: Proc. SAICSIT 2005, pp. 111–118 (2005)

    Google Scholar 

  15. Mens, T., Van Gorp, P.: A taxonomy of model transformation. In: Proc. Int’l Workshop on Graph and Model Transformation (GraMoT 2005). Electronic Notes in Theoretical Computer Science. Elsevier, Amsterdam (2006)

    Google Scholar 

  16. Mens, T., Van Gorp, P., Varró, D., Karsai, G.: Applying a model transformation taxonomy to graph transformation technology. In: Proc. Int’l Workshop on Graph and Model Transformation (GraMoT 2005). Electronic Notes in Theoretical Computer Science. Elsevier, Amsterdam (2006)

    Google Scholar 

  17. Geiger, L., Zündorf, A.: Statechart modeling with Fujaba. In: Proc. Int’l Workshop Graph-Based Tools (GraBaTs). Electronic Notes in Theoretical Computer Science. Elsevier, Amsterdam (2004)

    Google Scholar 

  18. Correa, A., Werner, C.: Applying refactoring techniques to UML/OCL models. In: Baar, T., Strohmeier, A., Moreira, A., Mellor, S.J. (eds.) UML 2004. LNCS, vol. 3273, pp. 173–187. Springer, Heidelberg (2004)

    Google Scholar 

  19. 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)

    Chapter  Google Scholar 

  20. Spanoudakis, G., Zisman, A.: Inconsistency management in software engineering: Survey and open research issues. In: Handbook of Software Engineering and Knowledge Engineering, pp. 329–380. World Scientific, Singapore (2001)

    Google Scholar 

  21. Van Der Straeten, R., Mens, T., Simmonds, J., Jonckers, V.: Using description logics to maintain consistency between UML models. In: Stevens, P., Whittle, J., Booch, G. (eds.) UML 2003. LNCS, vol. 2863, pp. 326–340. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  22. D’Hondt, T., De Volder, K., Mens, K., Wuyts, R.: Co-evolution of object-oriented design and implementation. In: Proc. Int’l Symp. Software Architectures and Component Technology: The State of the Art in Research and Practice, Enschede, The Netherlands. Kluwer Academic Publishers, Dordrecht (2000)

    Google Scholar 

  23. Wuyts, R.: A Logic Meta-Programming Approach to Support the Co-Evolution of Object-Oriented Design and Implementation. PhD thesis, Department of Computer Science, Vrije Universiteit Brussel (2001)

    Google Scholar 

  24. Corradini, A., Montanari, U., Rossi, F.: Graph processes. Fundamenta Informaticae 26(3 and 4), 241–265 (1996)

    MATH  MathSciNet  Google Scholar 

  25. Taentzer, G.: AGG: A tool environment for algebraic graph transformation. In: Münch, M., Nagl, M. (eds.) AGTIVE 1999. LNCS, vol. 1779, pp. 481–488. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  26. Taentzer, G.: AGG: A graph transformation environment for modeling and validation of software. In: Pfaltz, J.L., Nagl, M., Böhlen, B. (eds.) AGTIVE 2003. LNCS, vol. 3062, pp. 446–453. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  27. Demeyer, S., Janssens, D., Mens, T.: Simulation of a LAN. Electronic Notes in Theoretical Computer Science 72(4) (2002)

    Google Scholar 

  28. Demeyer, S., Van Rysselberghe, F., Gîrba, T., Ratzinger, J., Marinescu, R., Mens, T., Du Bois, B., Janssens, D., Ducasse, S., Lanza, M., Rieger, M., Gall, H., El-Ramly, M.: The LAN simulation: A refactoring teaching example. In: Proc. Int’l Workshop on Principles of Software Evolution (IWPSE 2005) (2005)

    Google Scholar 

  29. Object Management Group: Unified Modeling Language specification version 1.5. formal/2003-03-01 (2003)

    Google Scholar 

  30. Niere, J., Zündorf, A.: Using Fujaba for the development of production control systems. In: Münch, M., Nagl, M. (eds.) AGTIVE 1999. LNCS, vol. 1779, pp. 181–191. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  31. Taentzer, G., Rensink, A.: Ensuring structural constraints in graph-based models with type inheritance. In: Cerioli, M. (ed.) FASE 2005. LNCS, vol. 3442, pp. 64–79. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  32. Ehrig, H., Löwe, M.: Parallel and distributed derivations in the single-pushout approach. Theoretical Computer Science 109, 123–143 (1993)

    Article  MATH  MathSciNet  Google Scholar 

  33. Ehrig, H., Habel, A.: Graph grammars with application conditions. In: Rozenberg, G., Salomaa, A. (eds.) The Book of L, pp. 87–100. Springer, Heidelberg (1986)

    Google Scholar 

  34. Habel, A., Heckel, R., Taentzer, G.: Graph grammars with negative application conditions. Fundamenta Informaticae 26(3,4), 287–313 (1996)

    MATH  MathSciNet  Google Scholar 

  35. Schürr, A., Winter, A., Zündorf, A.: PROGRES: Language and Environment. In: Handbook of Graph Grammars and Graph Transformation, pp. 487–550. World Scientific, Singapore (1999)

    Google Scholar 

  36. Heckel, R., Küster, J.M., Taentzer, G.: Confluence of typed attributed graph transformation systems. In: Corradini, A., Ehrig, H., Kreowski, H.-J., Rozenberg, G. (eds.) ICGT 2002. LNCS, vol. 2505, pp. 161–176. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  37. Lambers, L., Ehrig, H., Orejas, F.: Efficient detection of conflicts in graph-based model transformation. In: Proc. Int’l Workshop on Graph and Model Transformation (GraMoT 2005). Electronic Notes in Theoretical Computer Science. Elsevier, Amsterdam (2006)

    Google Scholar 

  38. Mens, T., Taentzer, G., Runge, O.: Analyzing refactoring dependencies using graph transformation. Software and System Modeling (to appear, 2006)

    Google Scholar 

  39. Van Gorp, P., Van Eetvelde, N., Janssens, D.: Implementing refactorings as graph rewrite rules on a platform independent metamodel. In: Proc. Fujaba Days (2003)

    Google Scholar 

  40. Schippers, H., Van Gorp, P., Janssens, D.: Leveraging UML profiles to generate plugins from visual model transformations. In: Proc. Int’l Workshop Software Evolution through Transformations (SETra). Electronic Notes in Theoretical Computer Science, vol. 127, pp. 5–16. Elsevier, Amsterdam (2005)

    Google Scholar 

  41. Schippers, H., Van Gorp, P.: Standardizing story-driven modeling for model transformations. In: Proc. Int’l Fujaba Days (2004)

    Google Scholar 

  42. Mens, T., Demeyer, S., Janssens, D.: Formalising behaviour preserving program transformations. In: Corradini, A., Ehrig, H., Kreowski, H.-J., Rozenberg, G. (eds.) ICGT 2002. LNCS, vol. 2505, pp. 286–301. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  43. Mens, T., Van Eetvelde, N., Demeyer, S., Janssens, D.: Formalizing refactorings with graph transformations. Int’l Journal on Software Maintenance and Evolution 17(4), 247–276 (2005)

    Article  Google Scholar 

  44. Van Eetvelde, N., Janssens, D.: Extending graph rewriting for refactoring. In: CiE 2005. LNCS, vol. 3526, pp. 399–415. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  45. Roberts, D.B.: Practical Analysis for Refactoring. PhD thesis, University of Illinois at Urbana-Champaign (1999)

    Google Scholar 

  46. Ó Cinnéide, M., Nixon, P.: Composite refactorings for java programs. Technical report, Department of Computer Science, University College Dublin (2000)

    Google Scholar 

  47. Kniesel, G., Koch, H.: Static composition of refactorings. Science of Computer Programming 52(1-3), 9–51 (2004)

    Article  MATH  MathSciNet  Google Scholar 

  48. Heckel, R.: Algebraic graph transformations with application conditions. Master’s thesis, Technische Universität Berlin (1995)

    Google Scholar 

  49. Bottoni, P., Parisi Presicce, F., Taentzer, G.: Specifying Integrated Refactoring with Distributed Graph Transformations. In: Pfaltz, J.L., Nagl, M., Böhlen, B. (eds.) AGTIVE 2003. LNCS, vol. 3062, pp. 220–235. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  50. Königs, A., Schürr, A.: Tool integration with triple graph grammars - a survey. Electronic Notes in Theoretical Computer Science (2005)

    Google Scholar 

  51. Visser, E.: Stratego: A language for program transformation based on rewriting strategies. In: Middeldorp, A. (ed.) RTA 2001. LNCS, vol. 2051, pp. 357–361. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  52. van den Brand, M., Klint, P., Vinju, J.: Term rewriting with traversal functions. Transactions on Software Engineering and Methodology 12, 152–190 (2003)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Mens, T. (2006). On the Use of Graph Transformations for Model Refactoring. In: Lämmel, R., Saraiva, J., Visser, J. (eds) Generative and Transformational Techniques in Software Engineering. GTTSE 2005. Lecture Notes in Computer Science, vol 4143. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11877028_7

Download citation

  • DOI: https://doi.org/10.1007/11877028_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-45778-7

  • Online ISBN: 978-3-540-46235-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics