112
O.Univ.-Prof. DI Dr. Wolfgang Pree Universität Salzburg www.SoftwareResearch.net OO O O OO O O RR R R ee e e ee e e nn n n gg g g ii i i nn n n ee e e ee e e rr r r ii i i nn n n gg g g PP P P aa a a tt t t tt t t ee e e rr r r nn n n ss s s

O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

O.Univ.-Prof. DI Dr. Wolfgang PreeUniversität Salzburg

www.SoftwareResearch.net

OOOOOOOO RRRReeeeeeeennnnggggiiiinnnneeeeeeeerrrriiiinnnngggg

PPPPaaaatttttttteeeerrrrnnnnssss

Page 2: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 2

Introduction

Page 3: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 3

Goals

Convince you about the following:

Page 4: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 4

Lehman‘s laws

Page 5: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 5

What is a legacy system?

Page 6: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 6

Software maintenance

Page 7: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 7

What about OO?

Page 8: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 8

Definitions

Page 9: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 9

Reverse and reengineering

Page 10: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 10

Goals of reverse engineering

Page 11: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 11

Reverse engineering techniques

Page 12: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 12

Goals of reengineering

Page 13: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 13

Reengineering techniques

Page 14: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 14

Architectural problems

Page 15: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 15

Refactoring opportunities

Page 16: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 16

Tool integration

Page 17: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 17

Tool integration—overview

Page 18: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 18

Why integrate tools?

Page 19: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 19

Which tools to integrate?

Page 20: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 20

Tool integration issues

Page 21: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 21

Basic tool architecture

Page 22: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 22

Help yourself approach

� build your own parser

� translate between file formats

� communicate via APIs

� collect execution traces

Page 23: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 23

Exchange standards

Page 24: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 24

Reference format

Page 25: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 25

Openness

Page 26: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 26

Meta models

Page 27: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 27

UML shortcomings

Page 28: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 28

Conclusion

Page 29: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 29

Design extraction

Page 30: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 30

extreme situation

Page 31: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 31

Goals

Page 32: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 32

What is ‘design‘?

Page 33: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 33

Why design extraction is needed?

Page 34: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 34

Small example—straighten UMLreverse engineered diagrams (I)

Page 35: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 35

Small example—straighten UMLreverse engineered diagrams (II)

Page 36: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 36

Small example—straighten UMLreverse engineered diagrams (III)

Page 37: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 37

Small example—straighten UMLreverse engineered diagrams (IV)

Page 38: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 38

Essential questions wheninterpreting UML

Page 39: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 39

Levels of interpretation: perspectives

Page 40: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 40

Attributes in perspectives

Page 41: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 41

Operations in perspectives

Page 42: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 42

Associations

Page 43: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 43

Associations—conceptual perspective

Page 44: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 44

Associations—specification perspective

Page 45: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 45

Arrows—navigability

Page 46: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 46

Generalization

Page 47: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 47

Need for a clearer mapping

Page 48: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 48

Meanings of ‘ private‘

Page 49: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 49

class method inheritance

Page 50: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 50

Stereotypes to extend UML

Page 51: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 51

Instance/class associations

Page 52: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 52

Association extractions (I)

Page 53: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 53

Association extractions (II)

Page 54: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 54

Operation extractions (I)

Page 55: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 55

Operation extractions (II)

Page 56: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 56

Design patterns as documentationelements?

Page 57: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 57

Evolution impact analysis: reuse contract

Page 58: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 58

Example

Page 59: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 59

Reuse contracts—general idea

Page 60: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 60

Example

Page 61: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 61

Documenting dynamic behavior

Page 62: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 62

UML sequence diagrams

Page 63: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 63

Implications

Page 64: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 64

Conclusions

Page 65: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 65

Metrics for OOreengineering

Page 66: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 66

Outline

Page 67: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 67

Why metrics in OO reengineering?

Page 68: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 68

Which metrics to collect?

Page 69: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 69

Assumptions

Page 70: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 70

Definitions

Page 71: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 71

Results: problem detection

Page 72: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 72

Results: stability assessment

Page 73: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 73

Results: reverse engineering

Page 74: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 74

Split into superclass/merge withsuperclass

Page 75: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 75

Split into subclass/merge withsubclass

Page 76: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 76

Move to superclass/subclass or siblingclass

Page 77: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 77

Split method/factor commonfunctionality

Page 78: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 78

Conclusions

Page 79: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 79

Refactoring

Page 80: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 80

Outline

Page 81: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 81

Why refactoring?

Page 82: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 82

Iterative development life cycle

Page 83: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 83

What is refactoring?

Page 84: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 84

Which refactoring tools?

Page 85: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 85

Case study: Internet bankinginitial requirements

Page 86: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 86

Prototype design

Page 87: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 87

Prototype design of contracts

Page 88: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 88

Prototype implementation

Page 89: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 89

Prototype consolidation

Page 90: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 90

Expansion

Page 91: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 91

Expanded design

Page 92: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 92

Expanded design: contracts

Page 93: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 93

Expanded implementation

Page 94: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 94

Consolidation: problem detection

Page 95: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 95

Consolidation: refactored classdiagram

Page 96: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 96

Refactoring sequence (I)

Page 97: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 97

Refactoring sequence (II)

Page 98: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 98

Refactoring sequence (III)

Page 99: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 99

Refactoring sequence (IV)

Page 100: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 100

Refactoring sequence (V)

Page 101: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101

Tool support

Page 102: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 102

Conclusion (I)

Page 103: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 103

Conclusion (II)

Page 104: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 104

Bibliography

Page 105: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 105

Annotated biliography (I)

Page 106: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 106

Annotated biliography (II)

Page 107: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 107

Annotated biliography (III)

Page 108: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 108

References (I)

Page 109: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 109

References (II)

Page 110: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 110

References (III)

Page 111: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 111

References (IV)

Page 112: O O.Univ.-Prof. DI Dr. Wolfgang ... · Refactoring sequence (V) slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101 Tool support. slides are based on OO Reengineering

slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 112

References (V)