1 / 11

Documenting Evolving Software Systems through Reuse Contracts

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

ralph-adams
Download Presentation

Documenting Evolving Software Systems through Reuse Contracts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

  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. Evolution in Class Hierarchies Case Study: parent class exchange Abstract A Abstract A’ ? SubClass B SubClass B’ SubClass C SubClass C’ Need for documentation of dependencies

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

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

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

  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

More Related