Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword or section
Like this
1Activity

Table Of Contents

Foreword
Preface
Introduction
Reengineering Patterns
1.1 Why do we Reengineer?
1.2 The Reengineering Lifecycle
1.3 Reengineering Patterns
1.4 The Form of a Reengineering Pattern
1.5 A Map of Reengineering Patterns
Reverse Engineering
Setting Direction
2.1 Agree on Maxims
2.2 Appoint a Navigator
2.3 Speak to the Round Table
2.4 Most Valuable First
2.5 Fix Problems, Not Symptoms
2.6 If It Ain’t Broke, Don’t Fix It
2.7 Keep It Simple
First Contact
3.1. CHAT WITH THE MAINTAINERS 45
3.1 Chat with the Maintainers
3.3 Skim the Documentation
3.4 Interview During Demo
3.5 Do a Mock Installation
Initial Understanding
4.1. ANALYZE THE PERSISTENT DATA 87
4.1 Analyze the Persistent Data
4.2 Speculate about Design
4.3. STUDY THE EXCEPTIONAL ENTITIES 107
4.3 Study the Exceptional Entities
Detailed Model Capture
5.1 Tie Code and Questions
5.2 Refactor to Understand
5.3. STEP THROUGH THE EXECUTION 133
5.3 Step Through the Execution
5.4 Look for the Contracts
5.5 Learn from the Past
Reengineering
Tests: Your Life Insurance!
6.1. WRITE TESTS TO ENABLE EVOLUTION 153
6.1 Write Tests to Enable Evolution
6.2. GROW YOUR TEST BASE INCREMENTALLY 159
6.2 Grow Your Test Base Incrementally
6.3 Use a Testing Framework
6.4 Test the Interface, Not the Implementation
6.5. RECORD BUSINESS RULES AS TESTS 175
6.5 Record Business Rules as Tests
7.1 Involve the Users
7.2 Build Confidence
7.3. MIGRATE SYSTEMS INCREMENTALLY 191
7.3 Migrate Systems Incrementally
7.4. PROTOTYPE THE TARGET SOLUTION 195
7.4 Prototype the Target Solution
7.5. ALWAYS HAVE A RUNNING VERSION 199
7.5 Always Have a Running Version
7.6. REGRESSION TEST AFTER EVERY CHANGE 201
7.6 Regression Test After Every Change
7.7 Make a Bridge to the New Town
7.8. PRESENT THE RIGHT INTERFACE 207
7.8 Present the Right Interface
7.9. DISTINGUISH PUBLIC FROM PUBLISHED INTERFACE 211
7.9 Distinguish Public from Published Interface
7.10. DEPRECATE OBSOLETE INTERFACES 215
7.10 Deprecate Obsolete Interfaces
7.11 Conserve Familiarity
7.12 Use Profiler Before Optimizing
Detecting Duplicated Code
8.1. COMPARE CODE MECHANICALLY 227
8.1 Compare Code Mechanically
8.2. VISUALIZE CODE AS DOTPLOTS 233
8.2 Visualize Code as Dotplots
Redistribute Responsibilities
9.1. MOVE BEHAVIOR CLOSE TO DATA 243
9.1 Move Behavior Close to Data
9.2. ELIMINATE NAVIGATION CODE 253
9.2 Eliminate Navigation Code
9.3 Split Up God Class
Transform Conditionals to Polymorphism
10.1. TRANSFORM SELF TYPE CHECKS 273
10.1 Transform Self Type Checks
10.2. TRANSFORM CLIENT TYPE CHECKS 281
10.2 Transform Client Type Checks
10.3 Factor out State
10.4 Factor out Strategy
10.5 Introduce Null Object
10.6. TRANSFORM CONDITIONALS INTO REGISTRATION 303
10.6 Transform Conditionals into Registration
Appendices
Thumbnail patterns
A.1 Testing Patterns
A.1.1 Retest Persistent Problems
A.1.2 Test Fuzzy Features
A.1.3 Test Old Bugs
A.2 Refactorings
A.2.1 Encapsulate Field
A.2.2 Extract Method
A.2.3 Move Method
A.2.4 Rename Attribute
A.2.5 Rename Method
A.2.6 Replace Conditional with Polymorphism
A.3 Design Patterns
A.3.1 Abstract Factory
A.3.2 Adapter
A.3.3 Facade
A.3.4 Factory Method
A.3.5 Flyweight
A.3.6 Null Object
A.3.7 Quantity
A.3.8 Singleton
A.3.9 State
A.3.10 State Patterns
A.3.11 Strategy
A.3.12 Template Method
A.3.13 Visitor
0 of .
Results for:
No results containing your search query
P. 1
OORP

OORP

Ratings: (0)|Views: 90 |Likes:
Published by Esteban Abait

More info:

Published by: Esteban Abait on Oct 25, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/04/2011

pdf

text

original

You're Reading a Free Preview
Pages 8 to 67 are not shown in this preview.
You're Reading a Free Preview
Pages 81 to 196 are not shown in this preview.
You're Reading a Free Preview
Pages 204 to 360 are not shown in this preview.

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->