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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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)
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)
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)
Kalnins, A., Barzdins, J., Celms, E.: Model transformation language MOLA. In: Proc. Model-Driven Architecture: Foundations and Applications, pp. 14–28 (2004)
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)
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 Code. Addison-Wesley, Reading (1999)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Corradini, A., Montanari, U., Rossi, F.: Graph processes. Fundamenta Informaticae 26(3 and 4), 241–265 (1996)
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)
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)
Demeyer, S., Janssens, D., Mens, T.: Simulation of a LAN. Electronic Notes in Theoretical Computer Science 72(4) (2002)
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)
Object Management Group: Unified Modeling Language specification version 1.5. formal/2003-03-01 (2003)
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)
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)
Ehrig, H., Löwe, M.: Parallel and distributed derivations in the single-pushout approach. Theoretical Computer Science 109, 123–143 (1993)
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)
Habel, A., Heckel, R., Taentzer, G.: Graph grammars with negative application conditions. Fundamenta Informaticae 26(3,4), 287–313 (1996)
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)
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)
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)
Mens, T., Taentzer, G., Runge, O.: Analyzing refactoring dependencies using graph transformation. Software and System Modeling (to appear, 2006)
Van Gorp, P., Van Eetvelde, N., Janssens, D.: Implementing refactorings as graph rewrite rules on a platform independent metamodel. In: Proc. Fujaba Days (2003)
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)
Schippers, H., Van Gorp, P.: Standardizing story-driven modeling for model transformations. In: Proc. Int’l Fujaba Days (2004)
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)
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)
Van Eetvelde, N., Janssens, D.: Extending graph rewriting for refactoring. In: CiE 2005. LNCS, vol. 3526, pp. 399–415. Springer, Heidelberg (2004)
Roberts, D.B.: Practical Analysis for Refactoring. PhD thesis, University of Illinois at Urbana-Champaign (1999)
Ó Cinnéide, M., Nixon, P.: Composite refactorings for java programs. Technical report, Department of Computer Science, University College Dublin (2000)
Kniesel, G., Koch, H.: Static composition of refactorings. Science of Computer Programming 52(1-3), 9–51 (2004)
Heckel, R.: Algebraic graph transformations with application conditions. Master’s thesis, Technische Universität Berlin (1995)
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)
Königs, A., Schürr, A.: Tool integration with triple graph grammars - a survey. Electronic Notes in Theoretical Computer Science (2005)
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)
van den Brand, M., Klint, P., Vinju, J.: Term rewriting with traversal functions. Transactions on Software Engineering and Methodology 12, 152–190 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)