Object-Oriented Reengineering Patterns

Object-Oriented Reengineering Patterns

By Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz
The publisher has enabled DRM protection, which means that you need to use the BookFusion iOS, Android or Web app to read this eBook. This eBook cannot be used outside of the BookFusion platform.
Book Description

Object-Oriented Reengineering Patterns collects and distills successful techniques in planning a reengineering project, reverse-engineering, problem detection, migration strategies and software redesign. This book is made available under the Creative Commons Attribution-ShareAlike 3.0 license. You can either download the PDF for free, or you can buy a softcover copy from lulu.com. Additional material is available from the book's web page at http://scg.unibe.ch/oorp

Table of Contents
  • Foreword
  • Preface
  • I Introduction
    • Reengineering Patterns
      • Why do we Reengineer?
      • The Reengineering Lifecycle
      • Reengineering Patterns
      • The Form of a Reengineering Pattern
      • A Map of Reengineering Patterns
  • II Reverse Engineering
    • Setting Direction
      • Agree on Maxims
      • Appoint a Navigator
      • Speak to the Round Table
      • Most Valuable First
      • Fix Problems, Not Symptoms
      • If It Ain't Broke, Don't Fix It
      • Keep It Simple
    • First Contact
      • Chat with the Maintainers
      • Read all the Code in One Hour
      • Skim the Documentation
      • Interview During Demo
      • Do a Mock Installation
    • Initial Understanding
      • Analyze the Persistent Data
      • Speculate about Design
      • Study the Exceptional Entities
    • Detailed Model Capture
      • Tie Code and Questions
      • Refactor to Understand
      • Step Through the Execution
      • Look for the Contracts
      • Learn from the Past
  • III Reengineering
    • Tests: Your Life Insurance!
      • Write Tests to Enable Evolution
      • Grow Your Test Base Incrementally
      • Use a Testing Framework
      • Test the Interface, Not the Implementation
      • Record Business Rules as Tests
      • Write Tests to Understand
    • Migration Strategies
      • Involve the Users
      • Build Confidence
      • Migrate Systems Incrementally
      • Prototype the Target Solution
      • Always Have a Running Version
      • Regression Test After Every Change
      • Make a Bridge to the New Town
      • Present the Right Interface
      • Distinguish Public from Published Interface
      • Deprecate Obsolete Interfaces
      • Conserve Familiarity
      • Use Profiler Before Optimizing
    • Detecting Duplicated Code
      • Compare Code Mechanically
      • Visualize Code as Dotplots
    • Redistribute Responsibilities
      • Move Behavior Close to Data
      • Eliminate Navigation Code
      • Split Up God Class
    • Transform Conditionals to Polymorphism
      • Transform Self Type Checks
      • Transform Client Type Checks
      • Factor out State
      • Factor out Strategy
      • Introduce Null Object
      • Transform Conditionals into Registration
  • IV Appendices
    • Thumbnail patterns
      • Testing Patterns
        • Retest Persistent Problems
        • Test Fuzzy Features
        • Test Old Bugs
      • Refactorings
        • Encapsulate Field
        • Extract Method
        • Move Method
        • Rename Attribute
        • Rename Method
        • Replace Conditional with Polymorphism
      • Design Patterns
        • Abstract Factory
        • Adapter
        • Facade
        • Factory Method
        • Flyweight
        • Null Object
        • Quantity
        • Singleton
        • State
        • State Patterns
        • Strategy
        • Template Method
        • Visitor
    You May Also Like
    Pharo by Example 5
    Pharo by Example 5
    By Stéphane Ducasse, Dimitris Chloupis, Nicolai Hess, Dmitri Zagidulin
    Squeak by Example
    Squeak by Example
    By Oscar Nierstrasz, Stéphan Ducasse, Damien Pollet
    Deep Into Pharo
    Deep Into Pharo
    By Alexandre Bergel, Damien Cassou, Stéphane Ducasse, Jannik Laval
    By Damien Cassou, Stéphane Ducasse, Luc Fabresse, Johan Fabry, Sven van Caekenberghe
    Careers of Danger and Daring
    Careers of Danger and Daring
    By Cleveland Moffett
    Report on the Department of Ports and Harbours for the Year 1890-91
    Report on the Department of Ports and Harbours for the Year 1890-91
    By Australia. Queensland. Department of Ports and Harbours
    Shop Management
    Shop Management
    By Frederick Winslow Taylor