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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Arévalo, G.: High Level Views in Object Oriented Systems using Formal Concept Analysis. PhD thesis, University of Berne (January 2005)
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)
Demeyer, S., Ducasse, S., Nierstrasz, O.: Object-Oriented Reengineering Patterns. Morgan Kaufmann, San Francisco (2002)
Ducasse, S., Demeyer, S. (eds.): The FAMOOS Object-Oriented Reengineering Handbook. University of Bern (October 1999)
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)
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)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Reading (1995)
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)
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)
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
Lanza, M., Ducasse, S.: Polymetric views — a lightweight visual approach to reverse engineering. IEEE Transactions on Software Engineering 29(9), 782–795 (2003)
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)
Lehman, M.M., Belady, L.: Program Evolution – Processes of Software Change. Academic Press, London (1985)
Lientz, B., Swanson, B.: Software Maintenance Management. Addison Wesley, Boston (1980)
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)
Rieger, M.: Effective Clone Detection Without Language Barriers. PhD thesis, University of Berne (June 2005)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)