Download presentation
Presentation is loading. Please wait.
Published byValentine Willis Modified over 9 years ago
1
Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE 1999-2000
2
February, 2000Programming Technology Lab, Vrije Universiteit Brussel Reuse Contracts (RCs) u Base class exchange in OO class hierarchies u C. Lucas: RCs for class collaborations u M. Mezini: Smalltalk tool support u K. De Hondt: Reverse engineering u RCs for UML collaboration diagrams u T. Mens: A formalism for RCs u T. Mens: RCs in UML metamodel u K. Mens: RCs for architectural evolution u T. Mens: Software merging n 1996 n 1997 n 1998 n 1999 n 2000
3
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.
4
February, 2000Programming Technology Lab, Vrije Universiteit Brussel PhD Dissertations about RCs n [Lucas1997] u C. Lucas. Documenting Reuse and Evolution with Reuse Contracts. PhD Dissertation. n [DeHondt1998] u K. De Hondt. A Novel Approach to Architectural Recovery in Evolving Object-Oriented Systems. PhD Dissertation. n [Mens1999] u T. Mens. A Formal Foundation for Object-Oriented Software Evolution. PhD Dissertation.
5
February, 2000Programming Technology Lab, Vrije Universiteit Brussel Dissertations about RCs n [Cornelis1997] u G. Cornelis. Reuse Contracts as a Modular System in Statically Typed Object-Oriented Languages. Dissertation. n [D’Hondt1998] u M. D’Hondt. Managing Evolution of Changing Software Requirements. Dissertation. n [Romero1999] u N. Romero. Managing Evolution of Software Architectures with Reuse Contracts. EMOOSE Dissertation. n [Arganaraz1999] u V. Arganaraz. Definition and validation of statically typed reuse contracts. EMOOSE Dissertation.
6
February, 2000Programming Technology Lab, Vrije Universiteit Brussel 1996 n Fragile base class problem u independently developed subclasses of a given base class can be broken when the base class evolves (base class exchange) n Reuse Contracts [Steyaert&al1996] u subdividing inheritance mechanism in more primitive operations (contract types) F extension, cancellation, refinement, coarsening u categorisation of conflicts upon base class exchange, based on primitive contract types n Contract clauses u use specialisation interfaces F client interfaces + self sends between methods A B CD EF A’
7
February, 2000Programming Technology Lab, Vrije Universiteit Brussel 1997 n Tools u Experiments with RCs in Smalltalk u Implementation of a reuse contract extractor (Koen De Hondt) to automatically generate reuse contracts from the code u Support for base class exchange in Smalltalk by means of metaprogramming (Mira Mezini)
8
February, 2000Programming Technology Lab, Vrije Universiteit Brussel 1997 ctd. n Problems u Previous approach too small scale. Only evolution of single classes. Need for dealing with collaborations of classes. u Need for more scalability, such as composite contract types. u Too implementation-oriented. Transfer the ideas to design phase. n PhD Dissertation [Lucas1997] u Reuse contracts for class collaborations F primitive contract types F evolution conflicts F composite contract types AB C A’B C’
9
February, 2000Programming Technology Lab, Vrije Universiteit Brussel 1998 n Reuse Contracts for UML u UML = standardised analysis and design notation (OMG, September 1997) u [Mens&al1998] shows how to integrate RC framework into UML n PhD Dissertation [De Hondt1998] u Reverse engineering: mechanism for (semi-) automatically recovering class collaborations from Smalltalk-code u Supported by a tool in Smalltalk
10
February, 2000Programming Technology Lab, Vrije Universiteit Brussel 1999 n Problems u No general underlying formalism for reuse contracts. n PhD Dissertation [Mens1999] u Underlying formal foundation for reuse contracts F based on conditional graph rewriting F extension of existing ideas on RCs F customisable to many different areas n Tools u Domain-independent tool for detecting evolution conflicts, implemented in PROLOG
11
February, 2000Programming Technology Lab, Vrije Universiteit Brussel 2000 n Reuse contracts for Software Merging u Three-way u Syntactic and Semantic Merging u Operation-based / Change-based n Validation of RCs in industrial case
12
February, 2000Programming Technology Lab, Vrije Universiteit Brussel To Do n Validation of RCs in real case u Scalability u Classification of evolution conflicts according to severity. n Applying RCs to new domains u RCs for traceability F analysis->design->implementation u RCs for non-OO paradigms u RCs for distributed programming, real time programming, workflow, AOP, … n Reuse and evolution metrics based on RCs
13
February, 2000Programming Technology Lab, Vrije Universiteit Brussel To Do ctd. n Support for RCs u CASE Tool support (with UML) F Rational Rose, SELECT,... u Language Support F Smalltalk, C++, Java u Methodology Support F Integration of RCs in full-fledged methodology n Extension of RC formalism u Generic Reuse Contracts u More behavioural information F Ordering of dependencies, … u Conflict resolution strategies u RC operations for composition/decomposition
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.