Title: Documenting Evolving Software Systems through Reuse Contracts
1Documenting Evolving Software Systems through
Reuse Contracts
- Kim Mens
- Patrick Steyaert Carine Lucas
- Programming Technology Lab,
- Vrije Universiteit Brussel
OOPSLA96 Workshop on Object-Oriented Software
Evolution and Reengineering. Monday, 7 October
1996.
2Managing Evolution
How to cope with change and evolution ?
Managing Evolution of software systems
Managing Dependencies between system parts
Minimise Dependencies
Document Dependencies Reuse Contracts
3Managing Dependencies
local changes
evolution
evolution
change
propagation
Most changes have local impact,
but ... ... some changes cannot be kept local.
Minimise dependencies
Document dependencies
4Minimising Dependencies
How to cope with change and evolution? Minimise
dependencies between system parts!
Evolution
local changes
Most changes have local impact.
BUT ...
5Documenting Dependencies
Some changes cannot be kept local.
Evolution
Need for documentation of dependencies.
propagation of change
change
6Reuse 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?
7Evolution 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
8Conflicts Inconsistent Methods
Set
OptimizedSet
add(Element)
add(Element)
addAll(Set)
addAll(Set)
CountingSet
CountingSet
count1
count1
add(Element)
add(Element)
addAll(Set)
addAll(Set)
Not all elementsare counted
9Detecting Conflicts
- Coarsening
- addAll(Set) -add
Set
OptimizedSet
add(Element)
add(Element)
addAll(Set)
addAll(Set) add
CountingSet
CountingSet
add(Element)
add(Element)
inconsistent method conflict for add and addAll
10Environmental Tool Support
reuse contract
implementation
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)
11More about Reuse Contracts
- OOPSLA96 Technical Paper
- Reuse Contracts Managing the Evolution of
Reusable Assets - Wednesday, 9 October 1996, 1130 am
- Home page
- http//progwww.vub.ac.be/prog/pools/rcs/rc.html
- Mailing list (also see homepage)
- e-mail majordomo_at_cs.vub.ac.be
- in body subscribe reuse