© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 1 Model-Driven Development for Pluggable Collaborations Iris Groher, Stephan Bleicher, Christa.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

From Model-based to Model-driven Design of User Interfaces.
Automated Test Design ™ © 2011 Conformiq, Inc. CONFORMIQ DESIGNER On ES v1.2.1 Stephan Schulz MBT Working Meeting/MTS#56, Göttingen.
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
A metadata-driven approach to context-sensitive composition of collaborations Eddy Truyen, Wouter Joosen and Pierre Verbaeten Bo N. Jørgensen Maersk Institute.
Programming Distributed Systems Lab Institute of Computer Science University of Augsburg Universitätsstraße 14, D Augsburg Tel.: (+49) 821/ ,
The MEMOPS Programming Framework Wayne Boucher, Cambridge
Institute For Software Integrated Systems Vanderbilt University Applications of Model Integrated Computing to The Synchronous Language Signal Ethan Jackson.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
OMG Meeting, Helsinki Model Driven Architecture An Alternative Implementation Approach Werner Froidevaux
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Objects What are Objects Observations
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
An Approach and Tool for Synchronous Refactoring of UML Diagrams and Models Using Model-to-Model Transformations Hafsteinn Þór Einarsson Helmut Neukirchen.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
Slide 1 Wolfram Höpken RMSIG Reference Model Special Interest Group Second RMSIG Workshop Methodology and Process Wolfram Höpken.
Web Services Experience Language Web Services eXperience Language Technical Overview Ravi Konuru e-Business Tools and Frameworks,
Introduction to MDA (Model Driven Architecture) CYT.
Agenda 1. Introduction 2. Overview of SU-MoVal 3. OCL-based Model Validation 4. QVT-based Transformations 5. Demo of SU-MoVal 6. Conclusion and Future.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
SaveUML System design. System overview Possible...
© DATAMAT S.p.A. – Giuseppe Avellino, Stefano Beco, Barbara Cantalupo, Andrea Cavallini A Semantic Workflow Authoring Tool for Programming Grids.
Lab 04.
WP 3.3 © Copyright Xactium, TUBS & TUD How to build a set of DSLs: from Theory to Practise Xactium, TUBS, Jendrik Johannes (TUD)
Generative Programming. Automated Assembly Lines.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
1 A Model-Driven Approach For Information System Migration Raymonde Le Delliou 1, Nicolas Ploquin 2, Mariano Belaunde 3, Reda Bendraou 4, Louis Féraud.
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
Design Rules for Increasing Modularity with CaesarJ Carlos Eduardo Pontual Advisor: Paulo Borba 17/06/2010.
© Siemens AG, CT SE 2, Iris Groher, Markus Voelter C O R P O R A T E T E C H N O L O G Y XWeave – Models and Aspects in Concert 1 XWeave Models.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Chapter 16 Applying UML and Patterns Craig Larman
XAFIT provides a runtime environment for AF-RDL scripts Instantiation process inputs AF-RDL scripts Framework model in AF-UML Application developer inputs.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
Design Model Lecture p6 T120B pavasario sem.
Introducing Allors Applications, Tools & Platform.
Ontologies Reasoning Components Agents Simulations Architectural Modeling with UML2 Composite Structures and Components Jacques Robin.
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
Application Ontology Manager for Hydra IST Ján Hreňo Martin Sarnovský Peter Kostelník TU Košice.
Modeling the ODP Computational Viewpoint with UML 2.0: The Templeman Library Example José Raúl Romero, Antonio Vallecillo Universidad de Málaga, Spain.
ModTransf A Simple Model to Model Transformation Engine Cédric Dumoulin.
问题 Code scattering Blocks of duplicated code Blocks of complementary code, and different modules implementing complementary parts of the concern Code.
© Fraunhofer IESE Fraunhofer IESE Multi-Language Development of Embedded Systems Dr. Thomas Kuhn Tel.:
Example to motivate discussion We have two lists (of menu items) one implemented using ArrayList and another using Arrays. How does one work with these.
AOP/cross-cutting What is an aspect?. An aspect is a modular unit that cross-cuts other modular units. What means cross-cutting? Apply AOP to AOP. Tease.
04 - OOD Intro.CSC4071 Software Design ‘Requirements’ defines –The goals the system needs to satisfy. ‘Specification’ defines –The externally-observable.
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.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence.
1 Model Driven Health Tools Design and Implementation of CDA Templates Dave Carlson Contractor to CHIO
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
CHESS Methodology and Tool Federico Ciccozzi MBEES Meeting Sälen, January 2011 January 2011.
Chapter 8 Analysis & Modeling
Execute your Processes
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Software Architecture & Design
Presentation transcript:

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 1 Model-Driven Development for Pluggable Collaborations Iris Groher, Stephan Bleicher, Christa Schwanninger SIEMENS CT SE 2

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 2 Contents Aspectual Collaborations UML for Aspects (UFA) Standard UML for Aspects (sUFA) Model-Driven Development Framework openArchitectureWare Binding Generation Process

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 3 Aspectual Collaborations New programming model that supports the encapsulation of crosscutting concerns Modular implementation of multiple collaborating types independent of the system they will be applied to A collaboration interface specifies the abstractions (types) that together form the component Serves as the interface between its implementation and its mapping to a base application Interface states which properties and services are provided by the component and which ones are expected from the system (base application) it will be applied to Can have several distinct implementations The mapping to a base application is specified in a so-called binding Composition of binding and implementation using mixin-composition Explicit deployment Supported by the aspect-oriented programming languages CaesarJ and ObjectTeams

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 4 Aspectual Collaborations (2) … modularization of „crosscutting concerns“ and beyond that … … focus on component integration by means of aspect-oriented concepts.

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 5 ObserverProtocolImpl Observer Subject Composition ObserverProtocol add (Observer) remove(Observer) Subject notify() start(Subject) stop(Subject) Observer update(Subject) collaboration interface refinement & bindings with mixin-in inheritance generic component component binding concrete component LibraryObserver BookCopy BookManager ObserveLibrary BookCopySubject BookManagerObserver Subject Observer

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 6 UML for Aspects (UFA) Modeling language for aspect-oriented design that strongly supports the concept of Aspectual Collaborations The notation extends UML packages to encapsulate complex structures (either component or base application) Three kinds of packages Base package for base application Abstract package for Aspectual Collaboration Connector package for binding The classes inside the connector package are enhanced UML classes and support the adaptation of the abstract collaboration to a certain application

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 7 UML for Aspects (2) Aspectual Collaboration needing refinement before use Ordinary package (base application) Package refinement/specialization Directed adaptation relation: Observer may use and influence Library Package connecting the independent packages Observer and Library

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 8 Connector Package Mapping of role Subject to class BookCopy Callin: After methods borrowCopy() and returnCopy() of class BookCopy, the method notify() of class Subject is called Mapping of role Observer to class BookManager Callout: The abstract method update() of class Observer delegates to method updateStatus() of class BookManager

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 9 Standard UML for Aspects Standard UML compliant using stereotypes Supports all UFA concepts Models can be developed using commercial UML modeling tools

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 10 CaesarJ Binding Code abstract public cclass ObserveLibrary extends ObserverProtocol { public cclass Subject wraps BookCopy { public BookCopy getWrappee() { return wrappee; } } public cclass Observer wraps BookManager { public void update(SubjectRole s) { wrappee.updateStatus(s.getWrappee()); } } after(BookCopy bc):(call(public void borrowCopy()) || call(public void returnCopy())) && target(bc) { Subject(bc).notify(); } after(BookManager bm, BookCopy bc): (call(public void buy(BookCopy)) && target(bm) && args(bc) { Observer(bm).start(Subject(bc)); } after(BookManager bm, BookCopy bc): (call(public void drop(BookCopy)) && target(bm) && args(bc) { Observer(bm).stop(Subject(bc)); } } Implementation of binding code straightforward  all necessary information already contained in model Error prone Necessary for the component composer to be familiar with CaesarJ / ObjectTeams  Generate code automatically from model

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 11 openArchitectureWare Open source MDD generator framework integrated into eclipse Supports arbitrary input formats and output formats Own metamodels can be implemented in Java A metamodel of the domain has to be defined and implemented as Java classes Templates specify the output (e.g. code) A model has to be created (an instance of the metamodel) which can be done using for example UML tools, textual languages or XML The generator parses the respective model and builds a syntax tree in memory by instantiating the metaclasses The generator then navigates through the syntax tree and performs the actions described in the templates

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 12 Binding Generation Process 1.Modeling with standard UML tool using the sUFA notation 2.XMI export of the model (input to the generator tool chain) 3.Automatic transformation of the XMI model to a defined XML format 4.Validation of the model 5.Generation of CaesarJ / ObjectTeams binding code

© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 13 Thanks for your attention!