Reengineering Patterns - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

Reengineering Patterns

Description:

Read all the code in one hour. Skim the documentation. Interview during demo ... addresses the risk, or it might miss a pattern that could be used to address the risk. ... – PowerPoint PPT presentation

Number of Views:25
Avg rating:3.0/5.0
Slides: 18
Provided by: Ralp47
Category:

less

Transcript and Presenter's Notes

Title: Reengineering Patterns


1
Reengineering Patterns
  • http//www.iam.unibe.ch/famoos/
  • Serge Demeyer
  • Stephane Ducasse
  • Oscar Nierstrasz

2
Reengineering patterns
  • First Contact
  • Read all the code in one hour
  • Skim the documentation
  • Interview during demo
  • Initial Understanding
  • Detailed Model Capture
  • Prepare Rengineering

3
  • First Contact
  • Initial Understanding
  • Speculate about domain objects
  • Reconstruct persistent data
  • Identify the largest
  • Recover the refactorings
  • Detailed Model Capture
  • Prepare Rengineering

4
  • First Contact
  • Initial Understanding
  • Detailed Model Capture
  • Derive public interface
  • Step through execution
  • Prepare Rengineering
  • Refactor to understand

5
Risks
  • Limited resources
  • Tools and techniques
  • Reliable information
  • Accurate abstraction
  • Skeptical colleagues

6
Read all the code in an hour
  • Time box
  • Afterwards, spend an hour to write up
  • important entities
  • techniques or styles used
  • potential problems

7
Skim the documentation
  • Produce short report
  • Check dates - is it out of date?
  • Table of contents, design overview

8
Interview during demo
  • Document
  • key usage scenarios
  • main features and whether users like them
  • system components and responsibilities
  • interesting stories you hear
  • Interview a variety of people

9
Speculate about domain model
  • Make a domain model (class diagram, etc)
  • Check it against source code
  • Keep track of names that do not match concepts
  • Alternative extract design with tool and then
    compress it

10
Reconstruct persistent data
  • Persistent data is usually most important
  • Examine the data itself, not just class diagrams
    or schema
  • Develop model of data (class diagrams or schema)

11
Identify the largest
  • Largest
  • class hierarchy
  • class
  • method
  • Largest is often
  • the most important
  • the biggest problem

12
Recovering refactorings
  • Look at successive releases of the system
  • Look for major design changes, major
    simplifications
  • Figure out why they were made

13
Derive public interface
  • Which classes are public?
  • Which methods are public?
  • Language features for private/public
  • Cross reference

14
Step through execution
  • Requires good programming environment
  • Document flow of control (but abstract!)
  • Build dynamic model

15
Prepare for reengineering
  • Refactor to understand
  • Write the tests
  • Prepare a prototype

16
Homework
  • Read http//www.iam.unibe.ch/ famoos/Deme99n/ or
    http//www.iam.unibe.ch/famoos/
    patterns/rvPatt08.pdf
  • Select one of the five forces or risks.
  • You may talk about this homework with up to two
    other people, but they may NOT have selected the
    same risk as you have.

17
  • Write two or three pages to answer the following
    questions.
  • How do the patterns address your chosen risk?
    Write at least a page on this.
  • What did the paper miss about your risk? It
    might miss how one of the patterns addresses the
    risk, or it might miss a pattern that could be
    used to address the risk. If you cant think of
    anything, pick a different risk!
Write a Comment
User Comments (0)
About PowerShow.com