Skip to main content

Object-Oriented Reengineering Patterns — An Overview

  • Conference paper
Generative Programming and Component Engineering (GPCE 2005)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3676))

Abstract

Successful software systems must be prepared to evolve or they will die. Although object-oriented software systems are built to last, over time they degrade as much as any legacy software system. As a consequence, one must invest in reengineering efforts to keep further development costs down. Even though software systems and their business contexts may differ in countless ways, the techniques one uses to understand, analyze and transform these systems tend to be very similar. As a consequence, one may identify various reengineering patterns that capture best practice in reverse- and re-engineering object-oriented legacy systems. We present a brief outline of a large collection of these patterns that have been mined over several years of experience with object-oriented legacy systems, and we indicate how some of these patterns can be supported by appropriate 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. Arévalo, G.: High Level Views in Object Oriented Systems using Formal Concept Analysis. PhD thesis, University of Berne (January 2005)

    Google Scholar 

  2. Chikofsky, E.J., Cross II, J.H.: Reverse Engineering and Design Recovery: A Taxonomy. In: Arnold, R.S. (ed.) Software Reengineering, pp. 54–58. IEEE Computer Society Press, Los Alamitos (1992)

    Google Scholar 

  3. Demeyer, S., Ducasse, S., Nierstrasz, O.: Object-Oriented Reengineering Patterns. Morgan Kaufmann, San Francisco (2002)

    Google Scholar 

  4. Ducasse, S., Demeyer, S. (eds.): The FAMOOS Object-Oriented Reengineering Handbook. University of Bern (October 1999)

    Google Scholar 

  5. Ducasse, S., Gîrba, T., Lanza, M., Demeyer, S.: Moose: a collaborative and extensible reengineering Environment. In: Tools for Software Maintenance and Reengineering, Franco Angeli. RCOST / Software Technology Series, pp. 55–71 (2005)

    Google Scholar 

  6. Ducasse, S., Nierstrasz, O., Rieger, M.: On the effectiveness of clone detection by string matching. International Journal on Software Maintenance: Research and Practice (2005) (to appear)

    Google Scholar 

  7. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Reading (1995)

    Google Scholar 

  8. Gîrba, T., Ducasse, S., Lanza, M.: Yesterday’s weather: Guiding early reverse engineering efforts by summarizing the evolution of changes. In: Proceedings of ICSM 2004 (International Conference on Software Maintenance), pp. 40–49. IEEE Computer Society Press, Los Alamitos (2004)

    Google Scholar 

  9. Greevy, O., Ducasse, S.: Correlating features and code using a compact two-sided trace analysis approach. In: Proceedings of CSMR 2005 9th European Conference on Software Maintenance and Reengineering. IEEE Computer Society Press, Los Alamitos (2005)

    Google Scholar 

  10. Kazman, R., Woods, S.G., Carriére, S.J.: Requirements for integrating software architecture and reengineering models: Corum ii. In: Proceedings of WCRE 1998, pp. 154–163. IEEE Computer Society, Los Alamitos (1998) ISBN: 0-8186-89-67-6

    Google Scholar 

  11. Lanza, M., Ducasse, S.: Polymetric views — a lightweight visual approach to reverse engineering. IEEE Transactions on Software Engineering 29(9), 782–795 (2003)

    Article  Google Scholar 

  12. Lanza, M., Ducasse, S.: Codecrawler — an extensible and language independent 2d and 3d software visualization tool. In: Tools for Software Maintenance and Reengineering, Franco Angeli. RCOST / Software Technology Series, pp. 74–94 (2005)

    Google Scholar 

  13. Lehman, M.M., Belady, L.: Program Evolution – Processes of Software Change. Academic Press, London (1985)

    Google Scholar 

  14. Lientz, B., Swanson, B.: Software Maintenance Management. Addison Wesley, Boston (1980)

    Google Scholar 

  15. Nierstrasz, O., Ducasse, S., Girba, T.: The story of Moose: an agile reengineering environment. In: Proceedings of ESEC/FSE 2005. LNCS, Springer, Heidelberg (2005) (Invited paper) (to appear)

    Google Scholar 

  16. Rieger, M.: Effective Clone Detection Without Language Barriers. PhD thesis, University of Berne (June 2005)

    Google Scholar 

  17. Rising, L.: Customer interaction patterns. In: Harrison, N., Foote, B., Rohnert, H. (eds.) Pattern Languages of Program Design 4, pp. 585–609. Addison-Wesley, Reading (2000)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nierstrasz, O., Ducasse, S., Demeyer, S. (2005). Object-Oriented Reengineering Patterns — An Overview. In: Glück, R., Lowry, M. (eds) Generative Programming and Component Engineering. GPCE 2005. Lecture Notes in Computer Science, vol 3676. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11561347_1

Download citation

  • DOI: https://doi.org/10.1007/11561347_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-29138-1

  • Online ISBN: 978-3-540-31977-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics