Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software AutomationMarch 1997 1 Managing the Evolution of Reusable Assets Theo D’Hondt Patrick Steyaert Programming Technology Lab Vrije Universiteit Brussel.

Similar presentations


Presentation on theme: "Software AutomationMarch 1997 1 Managing the Evolution of Reusable Assets Theo D’Hondt Patrick Steyaert Programming Technology Lab Vrije Universiteit Brussel."— Presentation transcript:

1 Software AutomationMarch 1997 1 Managing the Evolution of Reusable Assets Theo D’Hondt Patrick Steyaert Programming Technology Lab Vrije Universiteit Brussel

2

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

12

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


Download ppt "Software AutomationMarch 1997 1 Managing the Evolution of Reusable Assets Theo D’Hondt Patrick Steyaert Programming Technology Lab Vrije Universiteit Brussel."

Similar presentations


Ads by Google