Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit...

13
Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000

description

February, 2000Programming Technology Lab, Vrije Universiteit Brussel Publications about RCs n [Steyaert&al1996] P. Steyaert, C. Lucas, K. Mens, T. D’Hondt. Reuse contracts: managing the evolution of reusable assets. Proc. OOPSLA’96. n [Codenie&al1997] W. Codenie, K. De Hondt, P. Steyaert, A. Vercammen. From custom applications to domain-specific frameworks. Communications of the ACM. n [Mezini1997] M. Mezini. Maintaining the consistency of class libraries during their evolution. Proc. OOPSLA’97. n [Mens&al1998] T. Mens, C. Lucas, P. Steyaert. Supporting disciplined reuse and evolution of UML models. Proc. >’98. n [Mens&al2000] T. Mens, T. D’Hondt. Automating support for software evolution in UML. Automated Software Engineering Journal. n [Mens2000] T. Mens. Conditional graph rewriting as a domain- independent formalism for software evolution. Proc. Agtive’99.

Transcript of Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit...

Page 1: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

Reuse Contracts

A Historic Overview

Dr. Tom MensProgramming Technology Lab

Vrije Universiteit Brussel

Course OOSE.RC

EMOOSE 1999-2000

Page 2: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

February, 2000 Programming Technology Lab, Vrije Universiteit Brussel

Reuse Contracts (RCs) Base class exchange in OO class hierarchies

C. Lucas: RCs for class collaborations M. Mezini: Smalltalk tool support

K. De Hondt: Reverse engineering RCs for UML collaboration diagrams

T. Mens: A formalism for RCs

T. Mens: RCs in UML metamodel K. Mens: RCs for architectural evolution T. Mens: Software merging

1996

1997

1998

1999

2000

Page 3: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

February, 2000 Programming Technology Lab, Vrije Universiteit Brussel

Publications about RCs [Steyaert&al1996] P. Steyaert, C. Lucas, K. Mens, T. D’Hondt.

Reuse contracts: managing the evolution of reusable assets. Proc. OOPSLA’96.

[Codenie&al1997] W. Codenie, K. De Hondt, P. Steyaert, A. Vercammen. From custom applications to domain-specific frameworks. Communications of the ACM.

[Mezini1997] M. Mezini. Maintaining the consistency of class libraries during their evolution. Proc. OOPSLA’97.

[Mens&al1998] T. Mens, C. Lucas, P. Steyaert. Supporting disciplined reuse and evolution of UML models. Proc. <<UML>>’98.

[Mens&al2000] T. Mens, T. D’Hondt. Automating support for software evolution in UML. Automated Software Engineering Journal.

[Mens2000] T. Mens. Conditional graph rewriting as a domain-independent formalism for software evolution. Proc. Agtive’99.

Page 4: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

February, 2000 Programming Technology Lab, Vrije Universiteit Brussel

PhD Dissertations about RCs [Lucas1997]

C. Lucas. Documenting Reuse and Evolution with Reuse Contracts. PhD Dissertation.

[DeHondt1998] K. De Hondt. A Novel Approach to Architectural

Recovery in Evolving Object-Oriented Systems. PhD Dissertation.

[Mens1999] T. Mens. A Formal Foundation for Object-Oriented

Software Evolution. PhD Dissertation.

Page 5: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

February, 2000 Programming Technology Lab, Vrije Universiteit Brussel

Dissertations about RCs [Cornelis1997]

G. Cornelis. Reuse Contracts as a Modular System in Statically Typed Object-Oriented Languages. Dissertation.

[D’Hondt1998] M. D’Hondt. Managing Evolution of Changing Software

Requirements. Dissertation. [Romero1999]

N. Romero. Managing Evolution of Software Architectures with Reuse Contracts. EMOOSE Dissertation.

[Arganaraz1999] V. Arganaraz. Definition and validation of statically

typed reuse contracts. EMOOSE Dissertation.

Page 6: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

February, 2000 Programming Technology Lab, Vrije Universiteit Brussel

1996 Fragile base class problem

independently developed subclasses of a given base class can be broken when the base class evolves (base class exchange)

Reuse Contracts [Steyaert&al1996] subdividing inheritance mechanism in more

primitive operations (contract types) extension, cancellation, refinement, coarsening

categorisation of conflicts upon base class exchange, based on primitive contract types

Contract clauses use specialisation interfaces

client interfaces + self sends between methods

A

B

C D

E F

A’

Page 7: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

February, 2000 Programming Technology Lab, Vrije Universiteit Brussel

1997 Tools

Experiments with RCs in Smalltalk Implementation of a reuse contract extractor

(Koen De Hondt) to automatically generate reuse contracts from the code

Support for base class exchange in Smalltalk by means of metaprogramming (Mira Mezini)

Page 8: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

February, 2000 Programming Technology Lab, Vrije Universiteit Brussel

1997 ctd. Problems

Previous approach too small scale. Only evolution of single classes. Need for dealing with collaborations of classes.

Need for more scalability, such as composite contract types.

Too implementation-oriented. Transfer the ideas to design phase.

PhD Dissertation [Lucas1997] Reuse contracts for class collaborations

primitive contract types evolution conflicts composite contract types

A B

C

A’ B

C’

Page 9: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

February, 2000 Programming Technology Lab, Vrije Universiteit Brussel

1998 Reuse Contracts for UML

UML = standardised analysis and design notation (OMG, September 1997)

[Mens&al1998] shows how to integrate RC framework into UML

PhD Dissertation [De Hondt1998] Reverse engineering: mechanism for (semi-)

automatically recovering class collaborations from Smalltalk-code

Supported by a tool in Smalltalk

Page 10: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

February, 2000 Programming Technology Lab, Vrije Universiteit Brussel

1999 Problems

No general underlying formalism for reuse contracts.

PhD Dissertation [Mens1999] Underlying formal foundation for reuse

contracts based on conditional graph rewriting extension of existing ideas on RCs customisable to many different areas

Tools Domain-independent tool for detecting

evolution conflicts, implemented in PROLOG

Page 11: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

February, 2000 Programming Technology Lab, Vrije Universiteit Brussel

2000 Reuse contracts for Software Merging

Three-way Syntactic and Semantic Merging Operation-based / Change-based

Validation of RCs in industrial case

Page 12: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

February, 2000 Programming Technology Lab, Vrije Universiteit Brussel

To Do Validation of RCs in real case

Scalability Classification of evolution conflicts according

to severity. Applying RCs to new domains

RCs for traceability analysis->design->implementation

RCs for non-OO paradigms RCs for distributed programming, real time

programming, workflow, AOP, … Reuse and evolution metrics based on

RCs

Page 13: Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000.

February, 2000 Programming Technology Lab, Vrije Universiteit Brussel

To Do ctd. Support for RCs

CASE Tool support (with UML) Rational Rose, SELECT, ...

Language Support Smalltalk, C++, Java

Methodology Support Integration of RCs in full-fledged methodology

Extension of RC formalism Generic Reuse Contracts More behavioural information

Ordering of dependencies, … Conflict resolution strategies RC operations for composition/decomposition