Presentation is loading. Please wait.

Presentation is loading. Please wait.

Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas Programming Technology Lab, Vrije Universiteit Brussel.

Similar presentations


Presentation on theme: "Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas Programming Technology Lab, Vrije Universiteit Brussel."— Presentation transcript:

1 Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas Programming Technology Lab, Vrije Universiteit Brussel OOPSLA’96 Workshop on Object-Oriented Software Evolution and Reengineering. Monday, 7 October 1996.

2 2 Managing Evolution Managing Evolution of software systems = Managing Dependencies between system parts Minimise Dependencies Document Dependencies: “Reuse Contracts” How to cope with change and evolution ?

3 3 Managing Dependencies Minimise dependencies Most changes have local impact, local changes changepropagation evolution but...... some changes cannot be kept local. Document dependencies

4 4 Minimising Dependencies Evolution How to cope with change and evolution? Minimise dependencies between system parts! Most changes have local impact. local changes BUT...

5 5 Documenting Dependencies Evolution Some changes cannot be kept local. Need for documentation of dependencies. propagation of changechange

6 6 Reuse Contracts: Documenting Evolving Software Systems. Documenting dependencies: Which parts depend on which other parts?  where will problems occur? How do they depend on each other?  what is the problem?  how can it be solved?

7 7 Evolution in Class Hierarchies Abstract A SubClass B SubClass C Abstract A’ SubClass B’ SubClass C’ parent class exchange ? Need for documentation of dependencies Case Study:

8 8 Conflicts: Inconsistent Methods Set add(Element) addAll(Set) CountingSet add(Element) OptimizedSet addAll(Set) add(Element) addAll(Set) CountingSet add(Element) addAll(Set) count+1 Not all elements are counted

9 9 Detecting Conflicts Coarsening ¦ addAll(Set) {-add} Set add(Element) CountingSet add(Element) Concretisation ¦ add OptimizedSet add(Element) addAll(Set) {} CountingSet add(Element) Concretisation ¦ add inconsistent method conflict for add and addAll addAll(Set) {add}

10 10 Environmental & Tool Support Synchronisation: reuse contracts  implementation Detection of problems when changes are made (PROLOG) Extraction of reuse contracts from code (Smalltalk) reuse contractimplementation unstable design add(El) addAll(Set) Warning ! add(El) Change synchronisation

11 11 More about Reuse Contracts OOPSLA’96 Technical Paper “ Reuse Contracts: Managing the Evolution of Reusable Assets ” Wednesday, 9 October 1996, 11:30 am Home page: http://progwww.vub.ac.be/prog/pools/rcs/rc.html Mailing list: (also see homepage) e-mail: majordomo@cs.vub.ac.be in body: subscribe reuse


Download ppt "Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas Programming Technology Lab, Vrije Universiteit Brussel."

Similar presentations


Ads by Google