Skip to main content
Log in

A case study to evaluate the suitability of graph transformation tools for program refactoring

  • GRABATS 2008
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

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.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

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

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

    Google Scholar 

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

  4. Fowler M.: Refactoring—Improving the Design of Existing Code. Object Technology Series. Addison-Wesley, Reading (1999)

    Google Scholar 

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

    Chapter  Google Scholar 

  6. Janssens D., Demeyer S., Mens T.: Case study: simulation of a LAN. Electr. Notes Theor. Comput. Sci. 72(4), 1–3 (2003)

    Article  Google Scholar 

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

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

    Chapter  Google Scholar 

  9. Mens T., Taentzer G., Runge O.: Analysing refactoring dependencies using graph transformation. Softw. Syst. Model. 6(3), 269–285 (2007)

    Article  Google Scholar 

  10. Mens, T., Taentzer, G., Runge, O.: Analyzing refactoring dependencies using graph transformation. J. Softw. Syst. Model. (2007, to appear)

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

    Article  Google Scholar 

  12. Opdyke, W.F.: Refactoring object-oriented frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)

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

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

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

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

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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Javier Pérez.

Additional information

This work was partially done while J. Pérez was on leave at Université de Mons.

Rights and permissions

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-010-0153-y

Keywords

Navigation