New User!
Object-Oriented Reengineering Patterns
By: Serge Demeyer , Stéphane DucasseImprint: Morgan Kaufmann
Format: Adobe Encrypted (DRM)
Earn $0.50 - Write a Review »
The documentation is missing or obsolete, and the original developers have departed. Your team has limited understanding of the system, and unit tests are missing for many, if not all, of the components. When you fix a bug in one place, another bug pops up somewhere else in the system. Long rebuild times make any change difficult. All of these are signs of software that is close to the breaking point.
Many systems can be upgraded or simply thrown away if they no longer serve their purpose. Legacy software, however, is crucial for operations and needs to be continually available and upgraded. How can you reduce the complexity of a legacy system sufficiently so that it can continue to be used and adapted at acceptable cost?
Based on the authors' industrial experiences, this book is a guide on how to reverse engineer legacy systems to understand their problems, and then reengineer those systems to meet new demands. Patterns are used to clarify and explain the process of understanding large code bases, hence transforming them to meet new requirements. The key insight is that the right design and organization of your system is not something that can be evident from the initial requirements alone, but rather as a consequence of understanding how these requirements evolve.
* Describes how to reverse engineer a monolithic system to understand how it really works and how to identify potential problems.
* Includes reengineering patterns that tackle well-known reengineering techniques often encountered in object-oriented programming, such as introducing polymorphism, factoring out common behavior, detecting duplicated code, and understanding design.
* Shows how to build a culture of continuous reengineering for achieving flexible and maintainable object-oriented systems.
See more like this in our Computers eBooks section
Share your thoughts on the Object-Oriented Reengineering Patterns Computers eBook with others!
| Title of Computers eBook: Object-Oriented Reengineering Patterns | |
| Release Date: 07-03-2002 | |
| Publisher: Morgan Kaufmann |
This eBook download is available in the following formats:
| Parent title | Object-Oriented Reengineering Patterns |
|---|---|
| Encrypted (DRM) | Yes |
| SKU | 9780080512990 |
| File size | 14077 |
| Security | n/a |
| Printing | Not allowed |
| Copying | Not allowed |
| Read aloud | No Sys requirements Download reader |
| Devices | Samsung Tablet, Apple Ipad & Iphone, Barnes & Noble Nook, Kobo eReader, Aluratek Libre, Iliad, Nokia, Blackberry, Hanlin |
| Note | Excellent navigation features are available via Adobe such as bookmarks and a quick access table of contents. Text search is easily accessible. An Adobe DRM-protected file is different than a pdf file in that it uses Adobe DRM (Digital Rights Management) technology, which authors and publishers use to protect their content from illegal online distribution and to set certain privileges such as restrictions on copying and printing. |
Object-Oriented Reengineering Patterns
Chapter One
Reengineering Patterns
Why Do We Reengineer?
A legacy is something valuable that you have inherited. Similarly, legacy software is valuable software that you have inherited. The fact you have inherited it may mean that it is somewhat old-fashioned. It may have been developed using an outdated programming language or an obsolete development method. Most likely it has changed hands several times and shows signs of many modifications and adaptations.
Perhaps your legacy software is not even that old. With rapid development tools and rapid turnover in personnel, software systems can turn into legacies more quickly than you might imagine. The fact that the software is vualuable, however, means that you do not want to just throw it away.
A piece of legacy software is critical to your business, and that is precisely the source of all the problems: in order for you to be successful at your business, you must constantly be prepared to adapt to a changing business environment. The software that you use to keep your business running must therefore also be adaptable. Fortunately a lot of software can be upgraded, or simply thrown away and replaced when it no longer serves its purpose. But a legacy system can neither be replaced nor upgraded except at a high cost. The goal of reengineering is to reduce the complexity of a legacy system sufficiently that it can continue to be used and adapted at an acceptable cost.
The specific reasons that you might want to reengineer a software system can vary significantly. For example:
You might want to unbundle a monolithic
...Read full excerpt from Object-Oriented Reengineering Patterns ebook








