Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine...

11
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.

description

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

Transcript of Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine...

Page 1: Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas…

Documenting Evolving Software Systems through

Reuse ContractsKim Mens

Patrick Steyaert

Carine Lucas

Programming Technology Lab,Vrije Universiteit BrusselOOPSLA’96 Workshop on Object-Oriented Software Evolution and Reengineering.

Monday, 7 October 1996.

Page 2: Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas…

2

Managing Evolution

Managing Evolution of software systems =Managing Dependencies between system parts

MinimiseDependencies

Document Dependencies:“Reuse Contracts”

How to cope with change and evolution ?

Page 3: Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas…

3

Managing Dependencies

Minimise dependencies

Most changes have local impact,

local changes

change

propagation

evolution evolution

but ...... some changes cannot be kept local.

Document dependencies

Page 4: Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas…

4

Minimising Dependencies

Evolution

How to cope with change and evolution?

Minimise dependencies between system parts!

Most changes have local impact.

local changes

BUT ...

Page 5: Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas…

5

Documenting Dependencies

Evolution

Some changes cannot be kept local.

Need for documentation of dependencies.

propagation of change

change

Page 6: Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas…

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?

Page 7: Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas…

7

Evolution in Class Hierarchies

Abstract A

SubClass B

SubClass C

Abstract A’

SubClass B’

SubClass C’

parent classexchange

?

Need for documentationof dependencies

Case Study:

Page 8: Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas…

8

Conflicts: Inconsistent Methods

Set

add(Element)addAll(Set)

CountingSetadd(Element)

OptimizedSet

addAll(Set)

add(Element)addAll(Set)

CountingSetadd(Element)addAll(Set)

count+1 count+1

Not all elementsare counted

Page 9: Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas…

9

Detecting ConflictsCoarsening

¦ addAll(Set) {-add}Set

add(Element)

CountingSet

add(Element)

Concretisation

¦ add

OptimizedSet

add(Element)addAll(Set) {}

CountingSet

add(Element)

Concretisation

¦ add

inconsistent method conflictfor add and addAll

addAll(Set) {add}

Page 10: Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas…

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 designadd(El)addAll(Set)

addAll(Set)

Warning !

add(El)

Change

synchronisation

Page 11: Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas…

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: [email protected] body: subscribe reuse