1 / 13

Reuse Contracts

Reuse Contracts. A Historic Overview. Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000. Reuse Contracts (RCs). 1996 1997 1998 1999 2000. Base class exchange in OO class hierarchies C. Lucas : RCs for class collaborations

Download Presentation

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. Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000

  2. Reuse Contracts (RCs) • 1996 • 1997 • 1998 • 1999 • 2000 • 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 Programming Technology Lab, Vrije Universiteit Brussel

  3. 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. Programming Technology Lab, Vrije Universiteit Brussel

  4. 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. Programming Technology Lab, Vrije Universiteit Brussel

  5. 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. Programming Technology Lab, Vrije Universiteit Brussel

  6. A’ A B C D E F 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 Programming Technology Lab, Vrije Universiteit Brussel

  7. 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) Programming Technology Lab, Vrije Universiteit Brussel

  8. A B C A’ B C’ 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 Programming Technology Lab, Vrije Universiteit Brussel

  9. 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 Programming Technology Lab, Vrije Universiteit Brussel

  10. 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 Programming Technology Lab, Vrije Universiteit Brussel

  11. 2000 • Reuse contracts for Software Merging • Three-way • Syntactic and Semantic Merging • Operation-based / Change-based • Validation of RCs in industrial case Programming Technology Lab, Vrije Universiteit Brussel

  12. 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 Programming Technology Lab, Vrije Universiteit Brussel

  13. 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 Programming Technology Lab, Vrije Universiteit Brussel

More Related