Skip to main content

Formalising Behaviour Preserving Program Transformations

  • Conference paper
  • First Online:
Graph Transformation (ICGT 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2505))

Included in the following conference series:

Abstract

The notion of refactoring —transforming the source-code of an object-oriented program without changing its external behaviour— has increased the need for a precise definition of refactorings and their properties. This paper introduces a graph representation of those aspects of the source code that should be preserved by a refactoring, and graph rewriting rules as a formal specification for the refactoring transformations themselves. To this aim, we use type graphs, forbidden subgraphs, embedding mechansims, negative application conditions and controlled graph rewriting. We show that it is feasible to reason about the effect of refactorings on object-oriented programs independently of the programming language being used. This is crucial for the next generation of refactoring tools.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Fowler, M.: Refactoring: Improving the Design of Existing Programs. Addison-Wesley (1999)

    Google Scholar 

  2. Opdyke, W.: Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)

    Google Scholar 

  3. Opdyke, W., Johnson, R.: Creating abstract superclasses by refactoring. In: Proc. ACM Computer Science Conference, ACM Press (1993) 66–73

    Google Scholar 

  4. Roberts, D., Brant, J., Johnson, R.: A refactoring tool for Smalltalk. Theory and Practice of Object Systems 3 (1997) 253–263

    Article  Google Scholar 

  5. Casais, E.: Automatic reorganization of object-oriented hierarchies: a case study. Object Oriented Systems 1 (1994) 95–115

    Google Scholar 

  6. Tichelaar, S.: Modeling Object-Oriented Software for Reverse Engineering and Refactoring. PhD thesis, University of Bern (2001)

    Google Scholar 

  7. Sunyé, G., Pollet, D., LeTraon, Y., Jézéquel, J.M.: Refactoring UML models. In: Proc. UML 2001. Volume 2185 of Lecture Notes in Computer Science., Springer-Verlag (2001) 134–138

    Google Scholar 

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

    Google Scholar 

  9. Corradini, A., Ehrig, H., Löwe, M., Montanari, U., Padberg, J.: The category of typed graph grammars and their adjunction with categories of derivations. In: Proceedings 5th International Workshop on Graph Grammars and their Application to Computer Science. Volume 1073 of Lecture Notes in Computer Science., Springer-Verlag (1996) 56–74

    Chapter  Google Scholar 

  10. Engels, G., Schürr, A.: Encapsulated hierarchical graphs, graph types and meta types. Electronic Notes in Theoretical Computer Science 2 (1995)

    Google Scholar 

  11. Schürr, A., Winter, A.J., Zündorf, A.: Graph grammar engineering with PROGRES. In Schëfer, W., Botella, P., eds.: Proc. European Conf. Software Engineering. Volume 989 of Lecture Notes in Computer Science., Springer-Verlag (1995) 219–234

    Google Scholar 

  12. Janssens, D., Mens, T.: Abstract semantics for ESM systems. Fundamenta Informaticae 26 (1996) 315–339

    MATH  MathSciNet  Google Scholar 

  13. Niere, J., Zündorf, A.: Using Fujaba for the development of production control systems. In Nagl, M., Schürr, A., Münch, M., eds.: Proc. Int. Workshop Agtive 99. Volume 1779 of Lecture Notes in Computer Science., Springer-Verlag (2000) 181–191

    Google Scholar 

  14. Ehrig, H.: Introduction to the algebraic theory of graph grammars. In Claus, V., Ehrig, H., Rozenberg, G., eds.: Graph Grammars and Their Application to Computer Science and Biology. Volume 73 of Lecture Notes in Computer Science., Springer-Verlag (1979) 1–69

    Chapter  Google Scholar 

  15. Löwe, M.: Algebraic approach to single-pushout graph transformation. Theoretical Computer Science 109 (1993) 181–224

    Article  MATH  MathSciNet  Google Scholar 

  16. Bunke, H.: Programmed graph grammars. In Claus, V., Ehrig, H., Rozenberg, G., eds.: Graph Grammars and Their Application to Computer Science and Biology. Volume 73 of Lecture Notes in Computer Science., Springer-Verlag (1979) 155–166

    Chapter  Google Scholar 

  17. Kreowski, H.J., Kuske, S.: Graph transformation units and modules. Handbook of Graph Grammars and Computing by Graph Transformation 2 (1999) 607–638

    MathSciNet  Google Scholar 

  18. Schürr, A.: Logic based programmed structure rewriting systems. Fundamenta Informaticae 26 (1996) 363–385

    MATH  MathSciNet  Google Scholar 

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

    MATH  MathSciNet  Google Scholar 

  20. Heckel, R.: Algebraic graph transformations with application conditions. Master’s thesis, TU Berlin (1995)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Mens, T., Demeyer, S., Janssens, D. (2002). Formalising Behaviour Preserving Program Transformations. In: Corradini, A., Ehrig, H., Kreowski, H.J., Rozenberg, G. (eds) Graph Transformation. ICGT 2002. Lecture Notes in Computer Science, vol 2505. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45832-8_22

Download citation

  • DOI: https://doi.org/10.1007/3-540-45832-8_22

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-44310-0

  • Online ISBN: 978-3-540-45832-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics