Abstract
This article proposes a case study to evaluate the suitability of graph transformation tools for program refactoring. To qualify for this purpose, a graph transformation system must be able to (1) import a graph-based representation of models of Java programs, (2) allow these models to be transformed interactively with well-known program refactorings and (3) export the resulting models in the same graph-based format used as input. The case study aims to enable comparison of various features of graph transformation tools, such as their expressiveness and their ability to interact with the user. The model of Java programs is presented and some examples for translating Java source code into the model are provided. The refactorings selected for the case study are specified in detail.
Similar content being viewed by others
References
Biermann, E., Ehrig, K., Köhler, C., Taentzer, G., Weiss, E.: Graphical definition of in-place transformations in the eclipse modeling framework. In: Proceedings of the International Conference on Model Driven Engineering Languages and Systems. Lecture Notes in Computer Science, vol. 4199, pp. 219–257. Springer, Berlin (2006)
Bottoni P., Parisi-Presicce F., Mason G., Taentzer G.: Specifying coherent refactoring of software artefacts with distributed graph transformations. In: van Bommel, P. (eds) Handbook on Transformation of Knowledge, Information, and Data: Theory and Applications, pp. 95–125. Idea Publishing Group, Miami (2005)
Demeyer, S., Van Rysselberghe, F., Girba, 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. International Workshop on Principles of Software Evolution, pp. 123–131 (2005)
Fowler M.: Refactoring—Improving the Design of Existing Code. Object Technology Series. Addison-Wesley, Reading (1999)
Grunske L., Geiger L., Zündorf , A. , Van Eetvelde N., Van Gorp P., Varro D.: Using graph transformation for practical model driven software engineering. In: Gruhn, V., Beydeda, S., Book, M. (eds) Model-driven Software Development, pp. 91–118. Springer, Berlin (2005)
Janssens D., Demeyer S., Mens T.: Case study: simulation of a LAN. Electr. Notes Theor. Comput. Sci. 72(4), 1–3 (2003)
Kniesel, G., Koch, H.: Static composition of refactorings. Sci. Comput. Program. 52(1–3): 9–51 Special issue on Program Transformation, edited by Ralf Lämmel, ISSN: 0167-6423 (2004). doi:10.1016/j.scico.2004.03.002
Mens T.: On the use of graph transformations for model refactoring. In: Visser, J., Lämmel, R., Saraiva, J. (eds) Generative and Transformational Techniques in Software Engineering. Lecture Notes in Computer Science, vol. 4143, pp. 219–257. Springer, Berlin (2006)
Mens T., Taentzer G., Runge O.: Analysing refactoring dependencies using graph transformation. Softw. Syst. Model. 6(3), 269–285 (2007)
Mens, T., Taentzer, G., Runge, O.: Analyzing refactoring dependencies using graph transformation. J. Softw. Syst. Model. (2007, to appear)
Mens T., Van Eetvelde N., Demeyer S., Janssens D.: Formalizing refactorings with graph transformations. J. Softw. Maint. Evol. Res. Pract. 17(4), 247–276 (2005)
Opdyke, W.F.: Refactoring object-oriented frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)
Pérez, J., Crespo, Y.: Exploring a method to detect behaviour-preserving evolution using graph transformation. In: Proceedings of the Third International ERCIM Workshop on Software Evolution, pp. 114–122. ERCIM, October 2007. Informal Workshop proceedings
Pérez, J., Crespo, Y.: Perspectives on automated correction of bad smells. In: IWPSE-Evol ’09: Proceedings of the Joint International and Annual ERCIM Workshops on Principles of Software Evolution (IWPSE) and Software Evolution (Evol) Workshops, pp. 99–108. ACM, New York (2009)
Taentzer, G., Ehrig, K., Guerra, E., de Lara, J., Lengyel, L., Levendovszky, T., Prange, U., Varró, D., Varró-Gyapay, S.: Model transformation by graph transformation: a comparative study. In: ACM/IEEE 8th International Conference on Model Driven Engineering Languages and Systems, Montego Bay, Jamaica, October 2005
Van Eetvelde, N., Janssens, D.: Extending graph rewriting for refactoring. In: Ehrig, H., Engels, G., Parisi-Presicce, F., Rozenberg, G. (eds.) 2nd International Conference on Graph Transformation (ICGT’04). Lecture Notes in Computer Science, vol. 3256, pp. 399–415. Springer, Berlin (2004)
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, Berlin (2005)
Author information
Authors and Affiliations
Corresponding author
Additional information
This work was partially done while J. Pérez was on leave at Université de Mons.
Rights and permissions
About this article
Cite this article
Pérez, J., Crespo, Y., Hoffmann, B. et al. A case study to evaluate the suitability of graph transformation tools for program refactoring. Int J Softw Tools Technol Transfer 12, 183–199 (2010). https://doi.org/10.1007/s10009-010-0153-y
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-010-0153-y