Object-Oriented Reengineering Patterns

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...

Full description

Saved in:
Bibliographic Details
Main Authors: Demeyer, Serge (Author), Ducasse, Stéphane (Author), Nierstrasz, Oscar (Author)
Format: Electronic eBook
Language:English
Published: Lille, France Stéphane Ducasse [2008]
Series:Open textbook library.
Subjects:
Online Access:Access online version
Tags: Add Tag
No Tags, Be the first to tag this record!

MARC

LEADER 00000nam a2200000 i 4500
001 OTLid0000618
003 MnU
005 20240122185552.0
006 m o d s
007 cr
008 180929s2008 mnu o 0 0 eng d
040 |a MnU  |b eng  |c MnU 
050 4 |a QA76 
100 1 |a Demeyer, Serge  |e author 
245 0 0 |a Object-Oriented Reengineering Patterns  |c Serge Demeyer 
264 2 |a Minneapolis, MN  |b Open Textbook Library 
264 1 |a Lille, France  |b Stéphane Ducasse  |c [2008] 
264 4 |c ©2008. 
300 |a 1 online resource 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a online resource  |b cr  |2 rdacarrier 
490 0 |a Open textbook library. 
505 0 |a I Introduction -- Chapter 1: Reengineering Patterns -- II Reverse Engineering -- Chapter 2: Setting Direction -- Chapter 3: First Contact -- Chapter 4: Initial Understanding -- Chapter 5: Detailed Model Capture -- III Reengineering -- Chapter 6: Tests: Your Life Insurance! -- Chapter 7: Migration Strategies -- Chapter 8: Detecting Duplicated Code -- Chapter 9: Redistribute Responsibilities -- Chapter 10: Transform Conditionals to Polymorphism 
520 0 |a 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. 
542 1 |f Attribution-ShareAlike 
546 |a In English. 
588 0 |a Description based on print resource 
650 0 |a Computer Science  |v Textbooks 
700 1 |a Ducasse, Stéphane  |e author 
700 1 |a Nierstrasz, Oscar  |e author 
710 2 |a Open Textbook Library  |e distributor 
856 4 0 |u https://open.umn.edu/opentextbooks/textbooks/618  |z Access online version