Nathalie Moreno and Antonio Vallecillo Dept. Lenguajes y Ciencias de la Computación Universidad de Málaga COTS component/ Legacy.

Slides:



Advertisements
Similar presentations
 2004 by SEC Chapter 2 Software Development Process Models.
Advertisements

Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
A Pattern-Driven Security Process for SOA Applications
Amit, Keyur, Sabhay and Saleh Model Driven Architecture in the Enterprise.
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
Introduction To System Analysis and Design
Secure Middleware (?) Patrick Morrison 3/1/2006 Secure Systems Group.
The Architecture Design Process
- 1 - Component Based Development R&D SDM Theo Schouten.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -
FREMA: e-Learning Framework Reference Model for Assessment Design Patterns for Wrapping Similar Legacy Systems with Common Service Interfaces Yvonne Howard.
Chapter 8 Object Design Reuse and Patterns. Finding Objects The hardest problems in object-oriented system development are: –Identifying objects –Decomposing.
LUCENTIA Research Group Department of Software and Computing Systems Using i* modeling for the multidimensional design of data warehouses Jose-Norberto.
Software Product Line Engineering Andrew Burmester SE 4110 Section 2 4/14/11.
Software Product Line Architectures (SPLA) Nipun Shah
ARCH-6: UML Modeling with Enterprise Architect Phillip Magnay Technical Architect.
Software Evolution Planning CIS 376 Bruce R. Maxim UM-Dearborn.
International Telecommunication Union ITU-T Study Group 17, Moscow, 30 March – 8 April 2005 New Recommendations on ODP Arve Meisingset Rapporteur Q15.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
MDA Guide Version CYT. 2 Outline OMG Vision and Process Introduction to MDA How is MDA Used? MDA Transformations Other MDA Capabilities Using the.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Formalizing ODP Computational Viewpoint Specification in Maude Raúl Romero and Antonio Vallecillo EDOC 2004 Dpto. Lenguajes y Ciencias de la Computación.
UML - Development Process 1 Software Development Process Using UML (2)
Using MDA in Web Software Architectures Santiago Meliá Cristina Cachero Jaime Gómez Universidad de Alicante Spain.
Executable UML The Models are the Code - Executable UML CS387 Paul Krause.
Agenda 23 April, 2007 T Service-Oriented Architecture and Software Engineering 1 Service Oriented and Model Driven Architectures Pankaj Saharan.
Secure Systems Research Group - FAU A Pattern-Driven Process for Secure Service-Oriented Applications Ph.D Dissertation Defense Candidate: N. A. Delessy,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 2Slide 1 Chapter 2 Computer-Based System Engineering As modified by Randy Smith.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
Introduction to MDA (Model Driven Architecture) CYT.
1 MDWE'2008, Toulouse, France, September 30, 2008 A Comparative Analysis of Transformation Engines for User Interface Development Juan Manuel González.
Secure Systems Research Group - FAU Securing Service-Oriented Architectures using a Model-driven Approach Nelly A Delessy.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
August/2007 Helton Souza Lima SBCARS 1 Automatic Generation of Platform Independent Built-in Contract Testers Helton Souza Lima Franklin Ramalho Patricia.
Ioana Sora, Gabriel Glodean, Mihai Gligor Department of Computers Politehnica University of Timisoara Software Architecture Reconstruction: An Approach.
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
On the Role of Abstract Platform in Model Driven Development* Marten van Sinderen Centre for Telematics and Information Technology, University of Twente,
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
Basic Concepts of Component- Based Software Development (CBSD) Model-Based Programming and Verification.
A Component Platform for Experimenting with Autonomic Composition A component framework for supporting composition of autonomic services and bio-inspired.
An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
Modeling the ODP Computational Viewpoint with UML 2.0: The Templeman Library Example José Raúl Romero, Antonio Vallecillo Universidad de Málaga, Spain.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
1 Here are some quotations to get an overview of the kinds of issues of interest.
Incorporating Cooperative Portlets in Web Application Development Nathalie Moreno, José Raúl Romero, Antonio Vallecillo Universidad de Málaga {vergara,jrromero,av}
CS223: Software Engineering
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
Page 1 Hitachi Ltd. – FhI FOKUS TTCN-3 User Conference, June 2005 MDA based approach for generation of TTCN-3 test specifications Hideto Ogawa, Hitachi.
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Incremental Synchronization of Organizational Models, Requirements Models and Object-Oriented Software Design Models Presenter: M.Sc. Marat Abilov
Evaluating Compuware OptimalJ as an MDA tool
UML profiles.
Open Systems and Open Architecture – the benefits case
Presentation transcript:

Nathalie Moreno and Antonio Vallecillo Dept. Lenguajes y Ciencias de la Computación Universidad de Málaga COTS component/ Legacy System What do we do in MDA with re-use? BUSINESS COMPONENT BEHAVIORALSTRUCTURAL CHOREOGRAPHY PIM PSM CIM

Agenda 1.Introduction 2.The problems 3.Assumptions for addressing these problems 4.Dealing with the assumptions 5.Concluding remarks 1.Introduction 2.The problems 3.Assumptions for addressing these problems 4.Dealing with the assumptions 5.Concluding remarks

Our background and motivation Component-based software development but......moving to Web-based application design and development –Specific and well-defined application domain –Model compilers current exist for Web apps They are successfully used in real environments but... ad-hoc, unstructured, non-modular, hard to maintain and evolve, proprietary.... –Web Service technologies are proving to be valuable to organizations and starting to be widely used Financial (VISA, AMEX), Travel agencies (TerminalA), E-shops (Amazon), Adobe,... Looks like the perfect arena for MDA!

MDA focus MDA focuses on Models –CIM (?) –PIM –PSM –“Platform” Models –“Implementations” (=PSM) –Metamodels MDA focuses on Transformations –PIM to PSM –PIM(s) to PSM –PSM to PIM –PIM(s) + “Additional Info” to PSM –Metamodel transformations

The “basic” MDA pattern The basic MDA pattern includes (at least): –a PIM, –a Transformation, and –a PSM PIM Transformation PSM

Applying the MDA pattern PIM Transformation PSM “A model of a subsystem that contains no information specific to the platform, or the technology that is used to realize it.” TOP-DOWN

Applying the MDA pattern PIM PSM “Converting one model to another model of the same system.” Transformation TOP-DOWN

Applying the MDA pattern PIM Transformation PSM “A model of a subsystem that includes information about the specific technology that is used in the realization of it on a specific platform, and hence possibly contains elements that are specific to the platform.” TOP-DOWN

Agenda 1.Introduction 2.The problems 3.Assumptions for addressing these problems 4.Dealing with the assumptions 5.Concluding remarks

Initial problems Related to the modelling of systems –What are the contents of the model of a system? –How is that information expressed? Related to COTS/legacy systems –What are the contents of the model of a COTS? –How is that information expressed? –Is that information available? –Is that information reliable? –How can it be obtained? Related to matchmaking/adaptation –How do I check whether the COTS software fulfils my system requirements? (Gap Analysis Problem) –How do I evaluate the effort required to adapt it? –How do I adapt it?... Or revise my system specs?

COTS, legacy systems, and MDA COTS components and Legacy Systems are black-boxes Very few information is available about them –Just signature information, usually in textual form Most of the available information may be outdated –Models, if available at all, correspond to the original design –Evolutions very few times reflect in the documentation Reverse engineering is not the solution –It provides a model at the lowest possible level of abstraction –Usually, just an execution model of the software in graphical form, –..but without any architectural information How do I match the requirements with the COTS information? Traditional rule of thumb: if more than 20% needs to be adapted/modified, you better develop from scratch –Does this rule still apply in the context of MDA? –Can I generate adaptors that alleviate this problem?

Agenda 1.Introduction 2.The problems 3.Trying to address these issues 4.Dealing with the assumptions 5.Concluding remarks

BUSINESS COMPONENT

Based on the following assumptions 1.The PIM of the application we are developing describes the system as a set of interacting parts (e.g., services) 2.Each part is described by at least its structure, behaviour, and choreography 3.We count with a model of the COTS component or legacy system that we need to re-use (and hence a PSM metamodel), described similarly 4.There are MDA transformations defined between the PIM and the PSM metamodels 5.There is a set of matchmaking operators (<) that implement the sustitutability tests (“A<B” if “A can replace B”) 6.In case of mismatches, we know how to decide whether an adaptor exists or not –And if so, we know how to generate it

Agenda 1.Introduction 2.The problems 3.Assumptions for addressing these problems 4.Dealing with the assumptions 5.Concluding remarks

How far we are 1.The PIM of the application we are developing describes the system as a set of interating parts (e.g., services) –We are not doing too bad here! 2.Each part is described by at least its structure, behaviour, and choreography –No problems with the structure, –But still far from reaching an agreement on how to model the behaviour and the choreography

How far we are 3.We count with a model of the COTS component or legacy system that we need to re-use (and hence a PSM metamodel), described similarly (i.e., with models for its structure, behaviour and choreography) Software ElementStructureBehaviorChoreography Web ServiceWSDLRDFBPELWS CORBA objectCORBA IDLSDLMessage Seq. Charts CORBA objectCORBA IDLLarch-CORBACORBA-Roles, Petris-nets Java ClassJavaJMLUML seq.diagrams.NET assemblyC#contractsBPELWS

How far we are 4.There are MDA transformations defined between the PIM and the PSM metamodels -MOF/QVT may be of great help here! -Some proposals already available UML (Class Diagrams) Java (Interfaces) EDOC BPEL4WS

How far we are 5.There is a set of matchmaking operators (<) that implement the sustitutability tests ( A < B if A can replace B) –Situation under control at the structural (signature) level  Subtyping –Some works at the behavioural level (for pre-post specs, basically)  Larch-CORBA, Larch Java,... –Some works at the choreography level  Petri-nets  The pi-calculus

How far we are 6.In case of mismatches, we know how to decide wether an adator exists or not....And if so, how to generate it -Just preliminary results  Resolve mismatches found by the sustitutability tests -Unsolved yet:  defining distances between specifications  Deciding about the existence of wrappers that resolve the mismatches  Generating the wrappers

Agenda 1.Introduction 2.The problems 3.Assumptions for addressing these problems 4.Dealing with the assumptions 5.Concluding remarks

Summary MDA and re-use –MDA seems to imply a top-down approach to software development (al least, when used for model compilation) –Re-use is critical in open, multivendor, distributed apps Not only for designing them But also for taking evolution into account –Re-use seems to imply somehow a bottom-up approach –Can we reconcile both approaches? We have presented a possible (partial) solution based on a set of (very strong) assumptions –Some work on these assumptions is currently undergoing Frankly speaking, we see the assumptions feasible only in very few cases and application domains –Web-based applications development may be one of them –Could you think of others?

End of Presentation Thanks! Antonio Vallecillo