Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
O.Univ.-Prof. DI Dr. Wolfgang PreeUniversität Salzburg
www.SoftwareResearch.net
OOOOOOOO RRRReeeeeeeennnnggggiiiinnnneeeeeeeerrrriiiinnnngggg
PPPPaaaatttttttteeeerrrrnnnnssss
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 2
Introduction
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 3
Goals
Convince you about the following:
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 4
Lehman‘s laws
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 5
What is a legacy system?
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 6
Software maintenance
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 7
What about OO?
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 8
Definitions
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 9
Reverse and reengineering
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 10
Goals of reverse engineering
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 11
Reverse engineering techniques
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 12
Goals of reengineering
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 13
Reengineering techniques
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 14
Architectural problems
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 15
Refactoring opportunities
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 16
Tool integration
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 17
Tool integration—overview
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 18
Why integrate tools?
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 19
Which tools to integrate?
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 20
Tool integration issues
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 21
Basic tool architecture
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
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 23
Exchange standards
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 24
Reference format
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 25
Openness
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 26
Meta models
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 27
UML shortcomings
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 28
Conclusion
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 29
Design extraction
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 30
extreme situation
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 31
Goals
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 32
What is ‘design‘?
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 33
Why design extraction is needed?
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 34
Small example—straighten UMLreverse engineered diagrams (I)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 35
Small example—straighten UMLreverse engineered diagrams (II)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 36
Small example—straighten UMLreverse engineered diagrams (III)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 37
Small example—straighten UMLreverse engineered diagrams (IV)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 38
Essential questions wheninterpreting UML
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 39
Levels of interpretation: perspectives
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 40
Attributes in perspectives
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 41
Operations in perspectives
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 42
Associations
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 43
Associations—conceptual perspective
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 44
Associations—specification perspective
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 45
Arrows—navigability
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 46
Generalization
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 47
Need for a clearer mapping
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 48
Meanings of ‘ private‘
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 49
class method inheritance
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 50
Stereotypes to extend UML
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 51
Instance/class associations
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 52
Association extractions (I)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 53
Association extractions (II)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 54
Operation extractions (I)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 55
Operation extractions (II)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 56
Design patterns as documentationelements?
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 57
Evolution impact analysis: reuse contract
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 58
Example
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 59
Reuse contracts—general idea
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 60
Example
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 61
Documenting dynamic behavior
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 62
UML sequence diagrams
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 63
Implications
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 64
Conclusions
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 65
Metrics for OOreengineering
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 66
Outline
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 67
Why metrics in OO reengineering?
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 68
Which metrics to collect?
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 69
Assumptions
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 70
Definitions
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 71
Results: problem detection
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 72
Results: stability assessment
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 73
Results: reverse engineering
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 74
Split into superclass/merge withsuperclass
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 75
Split into subclass/merge withsubclass
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 76
Move to superclass/subclass or siblingclass
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 77
Split method/factor commonfunctionality
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 78
Conclusions
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 79
Refactoring
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 80
Outline
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 81
Why refactoring?
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 82
Iterative development life cycle
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 83
What is refactoring?
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 84
Which refactoring tools?
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 85
Case study: Internet bankinginitial requirements
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 86
Prototype design
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 87
Prototype design of contracts
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 88
Prototype implementation
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 89
Prototype consolidation
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 90
Expansion
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 91
Expanded design
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 92
Expanded design: contracts
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 93
Expanded implementation
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 94
Consolidation: problem detection
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 95
Consolidation: refactored classdiagram
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 96
Refactoring sequence (I)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 97
Refactoring sequence (II)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 98
Refactoring sequence (III)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 99
Refactoring sequence (IV)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 100
Refactoring sequence (V)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 101
Tool support
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 102
Conclusion (I)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 103
Conclusion (II)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 104
Bibliography
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 105
Annotated biliography (I)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 106
Annotated biliography (II)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 107
Annotated biliography (III)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 108
References (I)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 109
References (II)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 110
References (III)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 111
References (IV)
slides are based on OO Reengineering (Demeyer, Ducasse, Nierstrasz) 112
References (V)