Advertisement

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.

Keywords

Model Transformation Production Rule Class Diagram Graph Transformation Critical Pair 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)CrossRefGoogle Scholar
  2. 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)CrossRefGoogle Scholar
  3. 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. 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. 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)CrossRefGoogle Scholar
  6. 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. 7.
    Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)Google Scholar
  8. 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)CrossRefGoogle Scholar
  9. 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. 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)CrossRefGoogle Scholar
  11. 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. 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)CrossRefGoogle Scholar
  13. 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. 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. 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. 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. 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. 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. 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)CrossRefGoogle Scholar
  20. 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. 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)CrossRefGoogle Scholar
  22. 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. 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. 24.
    Corradini, A., Montanari, U., Rossi, F.: Graph processes. Fundamenta Informaticae 26(3 and 4), 241–265 (1996)MATHMathSciNetGoogle Scholar
  25. 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)CrossRefGoogle Scholar
  26. 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)CrossRefGoogle Scholar
  27. 27.
    Demeyer, S., Janssens, D., Mens, T.: Simulation of a LAN. Electronic Notes in Theoretical Computer Science 72(4) (2002)Google Scholar
  28. 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. 29.
    Object Management Group: Unified Modeling Language specification version 1.5. formal/2003-03-01 (2003)Google Scholar
  30. 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)CrossRefGoogle Scholar
  31. 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)CrossRefGoogle Scholar
  32. 32.
    Ehrig, H., Löwe, M.: Parallel and distributed derivations in the single-pushout approach. Theoretical Computer Science 109, 123–143 (1993)MATHCrossRefMathSciNetGoogle Scholar
  33. 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. 34.
    Habel, A., Heckel, R., Taentzer, G.: Graph grammars with negative application conditions. Fundamenta Informaticae 26(3,4), 287–313 (1996)MATHMathSciNetGoogle Scholar
  35. 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. 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)CrossRefGoogle Scholar
  37. 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. 38.
    Mens, T., Taentzer, G., Runge, O.: Analyzing refactoring dependencies using graph transformation. Software and System Modeling (to appear, 2006)Google Scholar
  39. 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. 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. 41.
    Schippers, H., Van Gorp, P.: Standardizing story-driven modeling for model transformations. In: Proc. Int’l Fujaba Days (2004)Google Scholar
  42. 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)CrossRefGoogle Scholar
  43. 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)CrossRefGoogle Scholar
  44. 44.
    Van Eetvelde, N., Janssens, D.: Extending graph rewriting for refactoring. In: CiE 2005. LNCS, vol. 3526, pp. 399–415. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  45. 45.
    Roberts, D.B.: Practical Analysis for Refactoring. PhD thesis, University of Illinois at Urbana-Champaign (1999)Google Scholar
  46. 46.
    Ó Cinnéide, M., Nixon, P.: Composite refactorings for java programs. Technical report, Department of Computer Science, University College Dublin (2000)Google Scholar
  47. 47.
    Kniesel, G., Koch, H.: Static composition of refactorings. Science of Computer Programming 52(1-3), 9–51 (2004)MATHCrossRefMathSciNetGoogle Scholar
  48. 48.
    Heckel, R.: Algebraic graph transformations with application conditions. Master’s thesis, Technische Universität Berlin (1995)Google Scholar
  49. 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)CrossRefGoogle Scholar
  50. 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. 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)CrossRefGoogle Scholar
  52. 52.
    van den Brand, M., Klint, P., Vinju, J.: Term rewriting with traversal functions. Transactions on Software Engineering and Methodology 12, 152–190 (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Tom Mens
    • 1
  1. 1.Service de Génie LogicielUniversité de Mons-HainautBelgium

Personalised recommendations