Download presentation
Presentation is loading. Please wait.
1
Software AutomationMarch 1997 1 Managing the Evolution of Reusable Assets Theo D’Hondt Patrick Steyaert Programming Technology Lab Vrije Universiteit Brussel
3
Software AutomationMarch 1997 3 Activities
4
Software AutomationMarch 1997 4 Conventional Software Engineering
5
Software AutomationMarch 1997 5 Software Engineering 1975 A.D.
6
Software AutomationMarch 1997 6 Software Engineering 1985 A.D.
7
Software AutomationMarch 1997 7 Recent Insight
8
Software AutomationMarch 1997 8 Engineering Techniques in Software… Modularity
9
Software AutomationMarch 1997 9 Modularity
10
Software AutomationMarch 1997 10 Engineering Techniques in Software… Reuse
11
Software AutomationMarch 1997 11 Reuse
13
Software AutomationMarch 1997 13 Software Engineering 1995 A.D.
14
Software AutomationMarch 1997 14 Development Method
15
gold coins Reuse assets are the gold coins of software engineering. dirty word Legacy is the dirty word of software engineering.
16
Software AutomationMarch 1997 16 What can Go Wrong… 4Arian 4 »well tested software »proven correctly 4Arian 5 »reuse of pieces of Ariane 4 software »result: trivial error (floating point error), large consequences 4What happened ? »changed flight specifications
17
Software AutomationMarch 1997 17 Our Example: Tape Management TapeManipulation accept(Tape) transfer(Tape) manipulate(Tape) TapeManager register(Tape) Tape identification kvu associate(script) manipulates manages 4Tapes are manipulated - adding scripts, visioning 4Tapes are managed - tracking, kvu checking
18
Software AutomationMarch 1997 18 Tape Components TapeManipulation accept(Tape) transfer(Tape) manipulate(Tape) TapeManager register(Tape) Tape identification kvu associate(script) manipulates manages Visioning manipulate(Tape) Technical Visioning manipulate(Tape) Shipping-Receiving receive(Tape) ship(Tape) Traffic location?(Tape) depends on kvu, script present,... tape manipulation internal to visioning
19
Software AutomationMarch 1997 19 Composition Problem ! Traffic Technical Visioning Tape
20
Software AutomationMarch 1997 20 Challenges: Impact Analysis Changing a method
21
Software AutomationMarch 1997 21 Example TapeManager add(Tape) addAll(TapeSet) OOTVTapeManager add(Tape) TapeManager addAll(TapeSet) add(Tape) addAll(TapeSet) OOTVTapeManager add(Tape) addAll(TapeSet) no notification notify parent class change
22
Software AutomationMarch 1997 22 Challenges: Proliferation of Versions Repository - Tapemanager - Tapes Application A - MyTapeManager - Tape Application B - MyTape Application C - XTapeManager Maintenance problem: version management Development problem: design for reuse
23
Software AutomationMarch 1997 23 Challenges: Design for Reuse... ? How to improve reusability? TapeManipulation accept(Tape) transfer(Tape) manipulate(Tape) TapeManager register(Tape) Visioning manipulate(Tape) Traffic location?(Tape)
24
Software AutomationMarch 1997 24 Reuse Contracts Asset reuser Asset provider 4 declares what assump- tions can be made about the asset 4 declares how an asset can be reused 4 formally, non- coercively 4 declares what assumptions are made about the asset 4 declares how an asset is reused 4 formally,disciplined 4 rules for change propagation
25
Software AutomationMarch 1997 25 Contracts & Specialisation Clauses implementation will invoke transfer, manip… Contracts declare the assumptions that can be made about a class and how a it can be reused. tm:TapeManager notify(...) m:TapeManip… accept(Tape) transfer(Tape) next:TapeManip… accept(Tape) 3.transfer [notify] 1.accept 4.transfer [accept] 2.accept [manipulate, transfer] manipulate(Tape) tape transfer contract
26
Software AutomationMarch 1997 26 Evolution and Composition Changing a method
27
Software AutomationMarch 1997 27 Remember TapeManipulation accept(Tape) transfer(Tape) manipulate(Tape) TapeManager register(Tape) Tape identification kvu associate(script) manipulates manages Visioning manipulate(Tape) Technical Visioning manipulate(Tape) Shipping-Receiving receive(Tape) ship(Tape) Traffic location?(Tape) Composition Problem !
28
Software AutomationMarch 1997 28 Changing Assumptions TapeManip.transfer [notify] Assumption made by reuser (before change) Traffic Assumes TapeManip.transfer [] What can be assumed (after composition or change) Traffic Actually gets
29
Software AutomationMarch 1997 29 BUT… Traffic notify(...) TapeManager …concrete parent class … Assumes Too verbose Does not document how TapeManager is actually reused TapeManip.transfer [notify]
30
Software AutomationMarch 1997 30 Declaring How a Class is Actually Reused documenting different kinds of reuse TapeManager Traffic Refinement 3 notify [+track] TapeManager notify (...) Traffic track notify [track] notify (...) track notify [track]
31
Software AutomationMarch 1997 31 Different Kinds of Reuse 3Assumption “preserving” »Concretisation: filling in the “hotspots” »Refinement: refining the overall design »Extension: adding new behaviour 3Assumption “breaching” »Abstraction: generalisation »Coarsening: performance optimisation »Cancellation: fixes
32
Software AutomationMarch 1997 32 Estimating Impact of Changes Coarsening 3 addAll [-add] Refinement 3 add [+notify] Refinement 3 add [+notify] TapeManager add(Tape) addAll(TapeSet) [add] OOTVTapeManager add(Tape) [notify] TapeManager addAll(TapeSet) [add] add(Tape) addAll(TapeSet) [] OOTVTapeManager add(Tape) [notify] addAll(TapeSet) [add] notify # addAll needs to be overridden too
33
Software AutomationMarch 1997 33 Estimating Composability TapeManager Traffic notify (...) track notify [track] Refinement 3 notify [+track] TapeManipulation Technical Visioning transfer (Tape) [notify] transfer (Tape) [] Coarsening 3 transfer [-notify] tape transfer contract # composition problem
34
Software AutomationMarch 1997 34 Reuse Contracts for Inheritance Asset reuser Asset provider 3 rules for detecting conflicts TapeManager add() addAll() [add] Refinement add […] 3 formally 3 non-coercively 3 formally 3 disciplined
35
Software AutomationMarch 1997 35 Conclusion 4New style of software engineering »modularity reuse objects »learn about the problem domain as you go along with projects 4Challenges »supporting reuse »supporting evolution 4Reuse Contracts »incrementally turn software artifacts in assets
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.