UID:
almahu_9948026116402882
Format:
1 online resource (307 p.)
ISBN:
1-281-07175-7
,
9786611071752
,
0-08-051299-2
Series Statement:
The Morgan Kaufmann Series in Software Engineering and Programming
Content:
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 upgr
Note:
Description based upon print version of record.
,
Front Cover; Object-Oriented Reengineering Patterns; Copyright Page; Contents; Preface; Chapter 1. Reengineering Patterns; Why Do We Reengineer?; What's Special about Objects?; The Reengineering Life Cycle; Reengineering Patterns; The Form of a Reengineering Pattern; A Map of Reengineering Patterns; Part I: Reverse Engineering; Chapter 2. Setting Direction; Forces; Overview; Pattern 2.1 Agree on Maxims; Pattern 2.2 Appoint a Navigator; Pattern 2.3 Speak to the Round Table; Pattern 2.4 Most Valuable First; Pattern 2.5 Fix Problems, Not Symptoms; Pattern 2.6 If It Ain't Broke, Don't Fix It
,
Pattern 2.7 Keep It SimpleChapter 3. First Contact; Forces; Overview; What Next; Pattern 3.1 Chat with the Maintainers; Pattern 3.2 Read All the Code in One Hour; Pattern 3.3 Skim the Documentation; Pattern 3.4 Interview during Demo; Pattern 3.5 Do a Mock Installation; Chapter 4. Initial Understanding; Forces; Overview; What Next; Pattern 4.1 Analyze the Persistent Data; Pattern 4.2 Speculate about Design; Pattern 4.3 Study the Exceptional Entities; Chapter 5. Detailed Model Capture; Forces; Overview; What Next; Pattern 5.1 Tie Code and Questions; Pattern 5.2 Refactor to Understand
,
Pattern 5.3 Step through the ExecutionPattern 5.4 Look for the Contracts; Pattern 5.5 Learn from the Past; Part II: Reengineering; Chapter 6. Tests: Your Life Insurance!; Forces; Overview; Pattern 6.1 Write Tests to Enable Evolution; Pattern 6.2 Grow Your Test Base Incrementally; Pattern 6.3 Use a Testing Framework; Pattern 6.4 Test the Interface, Not the Implementation; Pattern 6.5 Record Business Rules as Tests; Pattern 6.6 Write Tests to Understand; Chapter 7. Migration Strategies; Forces; Overview; Pattern 7.1 Involve the Users; Pattern 7.2 Build Confidence
,
Pattern 7.3 Migrate Systems IncrementallyPattern 7.4 Prototype the Target Solution; Pattern 7.5 Always Have a Running Version; Pattern 7.6 Regression Test after Every Change; Pattern 7.7 Make a Bridge to the New Town; Pattern 7.8 Present the Right Interface; Pattern 7.9 Distinguish Public from Published Interface; Pattern 7.10 Deprecate Obsolete Interfaces; Pattern 7.11 Conserve Familiarity; Pattern 7.12 Use Profiler before Optimizing; Chapter 8. Detecting Duplicated Code; Forces; Overview; Pattern 8.1 Compare Code Mechanically; Pattern 8.2 Visualize Code as Dotplots
,
Chapter 9. Redistribute ResponsibilitiesForces; Overview; Pattern 9.1 Move Behavior Close to Data; Pattern 9.2 Eliminate Navigation Code; Pattern 9.3 Split Up God Class; Chapter 10. Transform Conditionals to Polymorphism; Forces; Overview; Pattern 10.1 Transform Self Type Checks; Pattern 10.2 Transform Client Type Checks; Pattern 10.3 Factor Out State; Pattern 10.4 Factor Out Strategy; Pattern 10.5 Introduce Null Object; Pattern 10.6 Transform Conditionals into Registration; Appendix: Thumbnail patterns; Testing Patterns; Refactorings; Design Patterns; References; Index
,
English
Additional Edition:
ISBN 1-55860-639-4
Language:
English
Bookmarklink