Object-oriented reengineering patterns
By Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz. Proceedings. 26th International Conference on Software Engineering, 2004
475 citations recorded by the source corpus.
The rapid growth of object-oriented development over the past twenty years has given rise to many object-oriented systems that are large, complex and hard to maintain. These systems exhibit a range of problems, effectively preventing them from satisfying the evolving requirements imposed by their customers. In our paper, we address problem of understanding and reengineering such object-oriented legacy systems. The material is presented as a set of "reengineering patterns" - recurring solutions that experts apply while reengineering and maintaining object-oriented systems. The patterns distill successful techniques in planning a reengineering project, reverse-engineering, problem detection, migration strategies and software redesign. The principles and techniques described have been observed and validated in a number of industrial projects, and reflect best practice in object-oriented reengineering.
Subfields: Artificial Intelligence, Development, Information Systems
View Paper: https://www.semanticscholar.org/paper/9a35ca4729f9eb94ee8fed79cb38718c3ea6dd29
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Rainer Koschke
- Chanchal Kumar Roy
- Stéphane Ducasse
- Michele Lanza
- Tom Mens
- Tom Tourwé
- James R. Cordy
- Seif Haridi
In Development
In Information Systems
- James R. Cordy
- Chanchal Kumar Roy
- Rainer Koschke
- Tom Mens
- Stéphane Ducasse
- Tom Tourwé
- Michele Lanza
- Arie van Deursen
Citations in the corpus
- Concepts, Techniques, and Models of Computer Programming (2004, background): “Reengineering At this point, we should mention the discipline of reengineering, which can be used to fix architectural problems like these two incorrect uses of inheritance [44, 15].”
- Polymetric Views - A Lightweight Visual Approach to Reverse Engineering (2003, methodology): “been developed and adapted [7].”
- A Survey on Software Clone Detection Research (2007, background): “In the same time, there is no doubt that extensive code duplication is related to problems in maintenance and should be detected at least [84, 120, 178, 62, 176].”
- Design and Implementation of a Backward-In-Time Debugger (2006, background): “However, while stepping through the code is a powerful technique to get a deep understanding of a certain functionality [ DDN02 ], in many cases this information is not enough to find bugs.”
- Semantic clustering: Identifying topics in source code (2007, background): “A common pattern when encountering an unknown or not well known software for the first time is " Read all the Code in One Hour " [7].”
- A Systematic Survey of Program Comprehension through Dynamic Analysis (2008, background): “Furthermore, industrial systems may share some of the problems of legacy systems as just discussed [14].”
- A survey of software refactoring (2004, background): “Due to the absence of such a process, reengineering patterns are the next best thing [9].”