4 June 1998, Mulhouse, France > ‘98 International Workshop Tom Mens Carine Lucas & Patrick Steyaert Programming Technology.

Slides:



Advertisements
Similar presentations
Modeling with SoaML, the Service-Oriented Architecture Modeling Language: Part 1. Service Identification Rohit Goel, Tommy Omen, Ashley Pham.
Advertisements

1 A Graph Rewriting Formalism for Object-Oriented Software Evolution Tom Mens FWO Postdoctoral Fellow Programming Technology Lab Vrije.
1 CIS224 Software Projects: Software Engineering and Research Methods Lecture 11 Brief introduction to the UML Specification (Based on UML Superstructure.
1 Reuse Contracts Patrick Steyaert Programming Technology Lab Vrije Universiteit Brussel WWW:
2008/03/25 Unified Modeling Lanauage 1 Introduction to Unified Modeling Language (UML) – Part One Ku-Yaw Chang Assistant Professor.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
Software Reuse Building software from reusable components Objectives
© S. Demeyer, S. Ducasse, O. NierstraszDesign Extraction.1 4. Design Extraction Why Extract Design? Why UML? Interpreting UML Tracks For Extraction Extraction.
Software AutomationMarch Managing the Evolution of Reusable Assets Theo D’Hondt Patrick Steyaert Programming Technology Lab Vrije Universiteit Brussel.
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Building software from reusable components.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
International Telecommunication Union ITU-T Study Group 17, Moscow, 30 March – 8 April 2005 New Recommendations on ODP Arve Meisingset Rapporteur Q15.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
Design Patterns.
EMOOSE Object-Oriented Software Evolution Dr. Tom Mens Programming Technology Lab Vrije Universiteit.
Object-oriented Software Engineering with Reuse Contracts Koen De Hondt, Carine Lucas, Kim Mens, Tom Mens, Patrick Steyaert, Roel Wuyts Programming Technology.
Business Requirements Using Unified Modeling Language Eric H. Castain, SVP Internet Services Group, Architecture Wells Fargo March 2005.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
An Introduction to Software Architecture
Integrating Security Design Into The Software Development Process For E-Commerce Systems By: M.T. Chan, L.F. Kwok (City University of Hong Kong)
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
Slide 1 UML Review Chapter 2: Introduction to Object-Oriented Systems Analysis and Design with the Unified Modeling Language, Version 2.0 Alan Dennis,
Unified Modeling Language, Version 2.0
A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998.
Formal Foundations for Software Evolution Programming Technology Lab Tom Mens
Deliverable #9 – Detail Design Subsystem Design and Realization ALL of your design class model elements must have the package or subsystem they are associated.
Component & Deployment Diagram © copyright 2001 SNU OOPSLA Lab.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
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.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Unified Modeling Language, Version 2.0 Chapter 2.
UML (Unified Modeling Language)
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.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE
04 - OOD Intro.CSC4071 Software Design ‘Requirements’ defines –The goals the system needs to satisfy. ‘Specification’ defines –The externally-observable.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Formal Foundations for Software Evolution Programming Technology Lab Tom Mens
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Wixom, and David Tegarden Chapter 9: Moving on to Design.
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.
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
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
August 1997 Carine Lucas 1 Documenting Reuse and Evolution with Reuse Contracts Carine Lucas August 1997.
Object-Oriented Modeling with UML
Object-Oriented Software Engineering Using UML, Patterns, and Java,
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Systems Analysis and Design With UML 2
2.3 Collaboration Contracts
System Development Process
Systems Analysis and Design With UML 2
Designing Software for Ease of Extension and Contraction
A Declarative Evolution Framework for Object-Oriented Design Patterns
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Introduction to UML.
Object oriented analysis and design
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
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

4 June 1998, Mulhouse, France > ‘98 International Workshop Tom Mens Carine Lucas & Patrick Steyaert Programming Technology Lab Department of Computer Science Vrije Universiteit Brussel Pleinlaan Brussel - BELGIUM Supporting Disciplined Evolution of UML Models

4 June 1998, Mulhouse, France > ‘98 International Workshop Software Evolution and Aging “Continuously evolving systems will become the norm for most organisations.” “Programs, like people, get old. We can’t prevent aging, but we can understand its causes, take steps to limit its effects, temporarily reverse some of the damage it has caused, …” Grady Booch, 1998 D. L. Parnas, 1994

4 June 1998, Mulhouse, France > ‘98 International Workshop 4new or changed requirements 4adoption of new technology 4software maintenance 4use of software beyond its original goals 4new insights in the domain 4new design insights 4... Reasons for Software to Evolve

4 June 1998, Mulhouse, France > ‘98 International Workshop 4lack of movement 4maintenance 4ignorant surgery and architectural erosion 4inflexibility from the start 4inadequate documentation 4deadline pressure 4“Not Invented Here” syndrome Reasons for Aging

4 June 1998, Mulhouse, France > ‘98 International Workshop 4Version proliferation 4Improper reuse and composition 4Architectural erosion 4Overfeaturing 4Ripple effect (butterfly effect) 4Traceability Evolution Problems

4 June 1998, Mulhouse, France > ‘98 International Workshop Goals A formalism for disciplined reuse and evolution is needed We need to stop or reverse the effects of aging ! We need to avoid or reduce evolution problems ! ! !

4 June 1998, Mulhouse, France > ‘98 International Workshop Evolution and composition conflicts WebNavigationPDFNavigationHistoryNavigation evolution of original component customisation of original component Evolution conflict !

4 June 1998, Mulhouse, France > ‘98 International Workshop Reuse Contracts 4Need for disciplined reuse and evolution 4 what is a reusable component? 4 how can a component be reused? 4 how can evolution conflicts be detected? 4Document incremental changes 4 document how a component evolves/is reused 4Focus on essential behaviour of software only 4 interaction between collaborating classes 4Balance between formality and ease of use

4 June 1998, Mulhouse, France > ‘98 International Workshop Wat is a reusable component? (in UML) interaction diagrams class interfaces collaboration context «provider clause» WebNavigation «static structure» «interface» Browser handleClick getURL «interface» Document mouseClick resolveLink «collaboration» : Browser doc browser : Document «interaction» mouseClicking doc 1:mouseClick self 1.1: resolveLink : Document : Browser handleClick «interaction» linkResolving browser 1:getURL : Document : Browser resolveLink

4 June 1998, Mulhouse, France > ‘98 International Workshop Using Reusable Components “pattern” notation Application start exit Document ActiveDoc print contents BrowsableDoc mouseClick resolveLink html-docpdf-doc InternetBrowser handleClick getURL ExplorerNavigator WebNavigation Browser Document

4 June 1998, Mulhouse, France > ‘98 International Workshop How can a component be reused? (in UML) 4UML provides limited support for reuse and evolution of model components. 4 generalisation can only add more information (because of substitutability requirements) 4 dependency needs to be customised (stereotyped) for reuse purposes

4 June 1998, Mulhouse, France > ‘98 International Workshop Reuse Contracts Terminology provider clausereuser clausecontract types

4 June 1998, Mulhouse, France > ‘98 International Workshop Contract Types 4Document the intentions of reusers/evolvers 4 specify the kind of reuse/evolution that takes place (participant extension, interaction refinement, …) 4 the details are specified in the reuser clause 4Impose obligations and restrictions on the reuser 4 extenders may add new elements, but may not remove existing elements, etcetera. 4 evolution conflicts correspond to breaches of obligations

4 June 1998, Mulhouse, France > ‘98 International Workshop Reuse of collaborations BrowsableDoc mouseClick resolveLink html-docpdf-doc InternetBrowser handleClick getURL ExplorerNavigator WebNavigation Browser Document Browser PDFNavigation Document

4 June 1998, Mulhouse, France > ‘98 International Workshop Stereotyped Packages ContractClause /ownedElt ProviderClauseReuserClause StaticStructure Collaboration Interaction 1 1 * /ownedElt

4 June 1998, Mulhouse, France > ‘98 International Workshop Stereotyped Dependencies * /subDeps ContractType ComposedTypeBasicType {ordered} CollTypeIntTypeStStType

4 June 1998, Mulhouse, France > ‘98 International Workshop How can evolution conflicts be detected? 4By comparing the contract types and reuser clauses, evolution conflicts can be detected. 4By specifying formal rules, the detection process can be automated 4This facilitates impact analysis, reduces the effort to make certain changes, and allows us to deal with change propagation and version proliferation more easily.

4 June 1998, Mulhouse, France > ‘98 International Workshop Detecting Reuse Conflicts WebNavigation evolution of original component customisation of original component {type=participant extension} {type=interaction refinement} {type=interaction coarsening} {type=participant extension} {type=interaction refinement} Inconsistent operations conflict ! PDFNavigation HistoryNavigation «reuse»

4 June 1998, Mulhouse, France > ‘98 International Workshop Automatic Conflict Detection participant extension interaction refinement interaction coarsening participant extension interaction refinement interaction coarsening no conflicts inconsistent operations interface conflicts operation capture, unanticipated recursion operation capture, inconsistent operations no conflicts operation capture, inconsistent operations of getURL invocation by resolveLink of getURL with addURL invocation HistoryNavigationPDFNavigation

4 June 1998, Mulhouse, France > ‘98 International Workshop Conclusion 4UML must provide support for evolution and reuse 4Reuse contracts provide formalism for disciplined reuse and evolution 4Incorporating reuse contracts gives an added value to UML 4 Documenting the evolution of models 4 Support for disciplined reuse 4 Detecting evolution conflicts automatically 4 Dealing with ripple effects and version proliferation