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

Slides:



Advertisements
Similar presentations
Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Advertisements

1 A Graph Rewriting Formalism for Object-Oriented Software Evolution Tom Mens FWO Postdoctoral Fellow Programming Technology Lab Vrije.
1 A Graph-Based Metamodel for Object-Oriented Software Metrics Tom Mens( ) Postdoctoral Fellow – Fund for Scientific.
10 maart 2000SEESCOA Components Programming Technology Lab (PROG) System & Software Engineering Lab (SSEL) Dept. of Computer Sciences (DINF) Vrije Universiteit.
CASE tools Upper CASE tools: support for the analysis and design Lower CASE tools: support for construction and maintenance 1980s… Nowadays… Integrated.
IMS1805 Systems Analysis Topic 3: Doing Analysis (continued from previous weeks)
1 Reuse Contracts Patrick Steyaert Programming Technology Lab Vrije Universiteit Brussel WWW:
A metadata-driven approach to context-sensitive composition of collaborations Eddy Truyen, Wouter Joosen and Pierre Verbaeten Bo N. Jørgensen Maersk Institute.
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.1 Formal Techniques in Software Engineering 3de BAC Informatica Chapter.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Software AutomationMarch Managing the Evolution of Reusable Assets Theo D’Hondt Patrick Steyaert Programming Technology Lab Vrije Universiteit Brussel.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
© Copyright Eliyahu Brutman Programming Techniques Course.
Component Software Beyond Object-Oriented Programming Clements Szyperski Chapter 7 – Object versus class composition or how to avoid inheritance Alexandre.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
A Domain-Independent Formalism for Software Evolution Tom Mens Programming Technology Lab Vrije Universiteit Brussel February, 2000.
February Semantion Privately owned, founded in 2000 First commercial implementation of OASIS ebXML Registry and Repository.
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
A Survey of Software Refactoring Tom Mens, Tom Tourwé
Object-oriented Software Engineering with Reuse Contracts Koen De Hondt, Carine Lucas, Kim Mens, Tom Mens, Patrick Steyaert, Roel Wuyts Programming Technology.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
2000 Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming Session 1: Introduction Nantes, EMOOSE.
EMOOSE Object-Oriented Software Evolution Dr. Tom Mens Programming Technology Lab Vrije Universiteit.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 3, Slide 1 February 20, 2004 Lecture 3: Introduction to Software Analysis and.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Introduction To System Analysis and Design
January 25, 2006copyright Thomas Pole , all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by.
A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998.
 OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability.
August/2007 Helton Souza Lima SBCARS 1 Automatic Generation of Platform Independent Built-in Contract Testers Helton Souza Lima Franklin Ramalho Patricia.
Chapter 7 System models.
February, 2000Programming Technology Lab, Vrije Universiteit Brussel Managerial Support for Reuse Dr. Tom Mens Programming Technology Lab Vrije Universiteit.
Formal Foundations for Software Evolution Programming Technology Lab Tom Mens
The Systems Development Life Cycle
Object Oriented Reverse Engineering JATAN PATEL. What is Reverse Engineering? It is the process of analyzing a subject system to identify the system’s.
Dr. Darius Silingas | No Magic, Inc. Domain-Specific Profiles for Your UML Tool Building DSL Environments with MagicDraw UML.
Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Patrick
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
A Formal Model for Object-Oriented Software Reuse Kim Mens Programming Technology Lab Vrije Universiteit Brussel FNRS MeetingMay 6th, 1997.
Katholieke Universiteit Leuven112 April 2000 Research Topics in Software Evolution Dr. Tom Mens FWO Postdoctoral Fellow Programming Technology Lab Vrije.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
XASTRO-2 Presentation CCSDS SAWG th November 2004.
February, 2000Programming Technology Lab, Vrije Universiteit Brussel Component and Framework Reuse Dr. Tom Mens Programming Technology Lab Vrije Universiteit.
Aspect Oriented Security Tim Hollebeek, Ph.D.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
February 2000Programming Technology Lab, Vrije Universiteit Brussel Reuse Contracts Managing the evolution of reusable components Dr. Tom Mens Programming.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Formal Foundations for Software Evolution Programming Technology Lab Tom Mens
Nigel Baker UWE & CERN/EP-CMA Design Patterns for Integrating Product and Process Models The C.R.I.S.T.A.L. Project ( C ooperative R epositories & I nformation.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
October 19, 1998Doctoral Symposium OOPSLA’98 Kim Mens Intentional annotations for evolving object-oriented software Kim Mens Programming Technology Lab.
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
4 June 1998, Mulhouse, France > ‘98 International Workshop Tom Mens Carine Lucas & Patrick Steyaert Programming Technology.
Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas Programming Technology Lab, Vrije Universiteit Brussel.
A Formalism for Transformational Software Evolution Programming Technology Lab Vrije Universiteit Brussel, Belgium Tom Mens
Transformational Software Evolution by Assertions
A Declarative Evolution Framework for Object-Oriented Design Patterns
AGTIVE Workshop Conditional Graph Rewriting as a Domain-Independent Formalism for Software Evolution Tom Mens Programming Technology Lab Vrije Universiteit.
Software Design Lecture : 14.
Public PhD Defense A Formal Foundation for Object-Oriented
A Methodology for the Documentation and Management of Reusable Assets
Reuse Contracts: Managing the Evolution of Reusable Assets
Presentation transcript:

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

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

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.

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.

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.

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’

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)

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’

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

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

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

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

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