Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas Programming Technology Lab, Vrije Universiteit Brussel.

Slides:



Advertisements
Similar presentations
1 A Graph Rewriting Formalism for Object-Oriented Software Evolution Tom Mens FWO Postdoctoral Fellow Programming Technology Lab Vrije.
Advertisements

Christian Devalez (Sunday, 19 April 2015) Mobility and Progressive Application Streaming.
1 Reuse Contracts Patrick Steyaert Programming Technology Lab Vrije Universiteit Brussel WWW:
Chapter 7 Testing Class Hierarchies. SWE 415 Chapter 7 2 Reading Assignment  John McGregor and David A. Sykes, A Practical Guide to Testing Object-Oriented.
Inheritance “a mechanism for propagating properties (attributes & methods) of superclasses to subclasses.”
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Interface & Abstract Class. Interface Definition All method in an interface are abstract methods. Methods are declared without the implementation part.
Object-Oriented Reengineering Patterns and Techniques Prof. O. Nierstrasz Prof. S. Ducasse T.
Design and Programming Patterns Associated with Java Networking by Margaret Toews cs843, Spring 2003.
1 Software Testing and Quality Assurance Lecture 28 – Testing Class Hierarchies.
Aalborg Media Lab 19-Jun-15 Exercises/Summary Lecture 12 Summary, Exercises.
Software AutomationMarch Managing the Evolution of Reusable Assets Theo D’Hondt Patrick Steyaert Programming Technology Lab Vrije Universiteit Brussel.
The Template Method By Sinclair Schuller. What is the Template Method? “Skeleton” definition of an algorithm Allows redefinition of predetermined points.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
How do we make sense of modeling and model analysis? Oleg Sokolsky Department of Computer and Information Science University of Pennsylvania Workshop on.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Themes and Variations abstraction -- the object metaphor modeling -- understanding.
Requirements Management
Introduction to software design patterns For CSE 3902 By: Matt Boggus.
Programming Languages – Coding schemes used to write both systems and application software A programming language is an abstraction mechanism. It enables.
Object-oriented Software Engineering with Reuse Contracts Koen De Hondt, Carine Lucas, Kim Mens, Tom Mens, Patrick Steyaert, Roel Wuyts Programming Technology.
OOPs Object oriented programming. Based on ADT principles  Representation of type and operations in a single unit  Available for other units to create.
Object Oriented Design and Programming Alan Goude Room: Sheaf 9323.
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.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
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
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Object Oriented.
L11-12: Design Patterns Definition Iterator (L4: Inheritance)‏ Factory (L4: Inheritance)‏ Strategy (L5: Multiple Inheritance)‏ Composite (L6: Implementation.
Object Oriented Reverse Engineering JATAN PATEL. What is Reverse Engineering? It is the process of analyzing a subject system to identify the system’s.
Automated Transformation of Statements Within Evolving Domain Specific Languages Peter Bell CEO/CTO, SystemsForge 7th OOPSLA Workshop on Domain-Specific.
International Workshop on Principles of Software Evolution1Vienna, 11 September 2001 Evolution Metrics Tom Mens Programming Technology Lab Vrije Universiteit.
E.Bertino, L.Matino Object-Oriented Database Systems 1 Chapter 5. Evolution Seoul National University Department of Computer Engineering OOPSLA Lab.
Factory Method Chris Colasuonno Also known as “Virtual Constructor”
New York State DOH Health Home Care Management Reporting Tool (HH-CMART) Support Calls – Session #7 April 3,
Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Patrick
A Formal Model for Object-Oriented Software Reuse Kim Mens Programming Technology Lab Vrije Universiteit Brussel FNRS MeetingMay 6th, 1997.
OOPs Object oriented programming. Abstract data types  Representationof type and operations in a single unit  Available for other units to create variables.
1 ECE 750 Topic 8 Meta-programming languages, systems, and applications Evolving Object-Oriented Designs with Refactorings – Lance Tokuda and Don Batory.
1 Software Maintenance and Evolution CSSE 575: Session 3, Part 3 Dealing with Generalization Steve Chenoweth Office Phone: (812) Cell: (937)
Katholieke Universiteit Leuven112 April 2000 Research Topics in Software Evolution Dr. Tom Mens FWO Postdoctoral Fellow Programming Technology Lab Vrije.
February 2000Programming Technology Lab, Vrije Universiteit Brussel Reuse Contracts Managing the evolution of reusable components Dr. Tom Mens Programming.
Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Week 6: Software Design HNDIT Software Engineering Software Design Learning Outcomes  Understand the activities involved in the Design process.
FFSE 2001 – Workshop Schedule --- MORNING --- 9:30Opening + Welcome 9:402 long presentations (Kahl, García-Cabrera) + discussion 11:00Coffee break 11:30long.
Formal Foundations for Software Evolution Programming Technology Lab Tom Mens
Ch 7: From Modules to Objects (Part Two) CSCI 4320.
1 Declaratively Codifying Software Architectures Using Virtual Software Classifications Kim Mens Kim Mens, Roel Wuyts, Theo D’Hondt Programming Technology.
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.
A Formalism for Transformational Software Evolution Programming Technology Lab Vrije Universiteit Brussel, Belgium Tom Mens
David Evans CS201j: Engineering Software University of Virginia Computer Science Lecture 11: Subtyping and Inheritance.
객체지향시스템 연구실 1 THE OBJECT-ORIENTED TECHNOLOGY: An Executive Summary 서울대학교 컴퓨터공학부 객체지향시스템 연구실 교수 김형주.
1/18/2000STScI Software Workshop Object-oriented Design Elements of the OPUS Application Programming Interface Data Processing Team.
Object Oriented Programming in Java Habib Rostami Lecture 2.
Evolution, Architecture, and Metamorphosis By: Brian Foote and Joseph Yoder University of Illinois Presented by: Gleyner Garden.
1 THE OBJECT-ORIENTED TECHNOLOGY: An Executive Summary 서울대학교 컴퓨터공학부 Internet Database Lab 교수 김형주 Spring 2007.
Programming Technology Lab, VUB
Interfaces.
Reverse Engineering: A Roadmap
A Declarative Evolution Framework for Object-Oriented Design Patterns
Intentional source-code views
Effort Estimation for Changing Requirements
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:

Documenting Evolving Software Systems through Reuse Contracts Kim Mens Patrick SteyaertCarine Lucas Programming Technology Lab, Vrije Universiteit Brussel OOPSLA’96 Workshop on Object-Oriented Software Evolution and Reengineering. Monday, 7 October 1996.

2 Managing Evolution Managing Evolution of software systems = Managing Dependencies between system parts Minimise Dependencies Document Dependencies: “Reuse Contracts” How to cope with change and evolution ?

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

4 Minimising Dependencies Evolution How to cope with change and evolution? Minimise dependencies between system parts! Most changes have local impact. local changes BUT...

5 Documenting Dependencies Evolution Some changes cannot be kept local. Need for documentation of dependencies. propagation of changechange

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?

7 Evolution in Class Hierarchies Abstract A SubClass B SubClass C Abstract A’ SubClass B’ SubClass C’ parent class exchange ? Need for documentation of dependencies Case Study:

8 Conflicts: Inconsistent Methods Set add(Element) addAll(Set) CountingSet add(Element) OptimizedSet addAll(Set) add(Element) addAll(Set) CountingSet add(Element) addAll(Set) count+1 Not all elements are counted

9 Detecting Conflicts Coarsening ¦ addAll(Set) {-add} Set add(Element) CountingSet add(Element) Concretisation ¦ add OptimizedSet add(Element) addAll(Set) {} CountingSet add(Element) Concretisation ¦ add inconsistent method conflict for add and addAll addAll(Set) {add}

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 design add(El) addAll(Set) Warning ! add(El) Change synchronisation

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: Mailing list: (also see homepage) in body: subscribe reuse