MACS 2005 First International Workshop on the Modeling and Analysis of Concerns in Software Concern Management for Constructing Model Compilers -- Towards.

Slides:



Advertisements
Similar presentations
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Advertisements

1Model Driven Architecture – 3. März 2008 – Siegfried Nolte 1.UML – What is it and what is it good for ? 2.MDA – What is it and what is it good for ? 3.MDA.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
© 2007 ATLAS Nantes 1 Atlas Model Weaver Use Case: Aspect Oriented Modeling Marcos Didonet Del Fabro Atlas Group (INRIA & LINA), Université de Nantes,
Secure Middleware (?) Patrick Morrison 3/1/2006 Secure Systems Group.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Object-Oriented Theories for Model Driven Architecture Tony Clark, King’s College, UK. Andy Evans, University of York, UK. Robert France, Colorado University,
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
LUCENTIA Research Group Department of Software and Computing Systems Using i* modeling for the multidimensional design of data warehouses Jose-Norberto.
International Telecommunication Union ITU-T Study Group 17, Moscow, 30 March – 8 April 2005 New Recommendations on ODP Arve Meisingset Rapporteur Q15.
MDA Guide Version CYT. 2 Outline OMG Vision and Process Introduction to MDA How is MDA Used? MDA Transformations Other MDA Capabilities Using the.
Executable UML The Models are the Code - Executable UML CS387 Paul Krause.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
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.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
MOTOROLA and the Stylized M Logo are registered in the US Patent & Trademark Office. All other product or service names are the property of their respective.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
1 Model Compiler Construction Based on Aspect-oriented Mechanisms Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo)
1 A Parameterized Interpreter for Modeling Different AOP Mechanisms Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Genki Moriyama(Kyushu Institute.
ISO/IEC CD and WD : Core Model and Model Mapping ISO/IEC JTC1/SC32/WG September 2005, Toronto SC32/WG2 Japan (Kanrikogaku Ltd) Masaharu.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan An Extensible Aspect-Oriented Modeling.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan Pointcut-based Architectural Interface.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
1 Model Evolution with Aspect-oriented Mechanisms Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo) Shinji Sano, Yusaku.
MDA – Model Driven Architecture Olivier Riboux. Overview What is MDA? The Challenges MDA addresses Developing in the MDA Benefits / Conclusion Case Study:
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
MDD approach for the Design of Context-Aware Applications.
Alloy-based Lightweight Verification for Aspect-oriented Architecture Naoyasu Ubayashi(Kyushu Institute of Technology) Yuki Sato(Kyushu Institute of Technology)
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan 1 A Verification Mechanism for Weaving.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan 1 A Reflective Aspect-oriented Model.
MDA and Separation of Aspects: An approach based on multiples views and Subject Oriented Design Quercus Software Engineering Group Computer Science Department.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
1 An AOP Implementation Framework for Extending Join Point Models Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Hidehiko Masuhara(University.
Technical Module C Object Modeling Objects Object – a valuable resource: Money (Account Receivable) Material (Product) Machines (Delivery Truck) Personnel.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
UML (Unified Modeling Language)
Chapter 5 – System Modeling Lecture 1 1Chapter 5 System modeling.
RoleEP: Role Based Evolutionary Programming for Cooperative Mobile Agent Applications Naoyasu UBAYASHI ( Toshiba Corporation) Tetsuo TAMAI ( University.
Modelowanie i analiza systemów informacyjnych Model Driven Architecture Marek Bazan Marzec 2017.
Software Engineering Lecture 7
An Interface Mechanism for Encapsulating Weaving in Class-based AOP
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Systems Analysis and Design With UML 2
Unified Modeling Language
Towards Effective Adaptive User Interfaces Design
Discussion with Gregor Kiczales at UBC
UML Class Diagrams: Basic Concepts
Object Oriented Analysis and Design
Towards Automatic Model Synchronization from Model Transformation
Evaluating Compuware OptimalJ as an MDA tool
Chapter 20 Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
UML profiles.
Analysis models and design models
Software Design Lecture : 15.
Software Design Lecture : 14.
Constructing MDA-based Application Using Rational XDE for .NET
Copyright 2007 Oxford Consulting, Ltd
Ivan Kurtev, Klaas van den Berg Software Engineering Group
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Model Driven Software Development
Appendix A Object-Oriented Analysis and Design
PASSI (Process for Agent Societies Specification and Implementation)
Software Architecture & Design
Presentation transcript:

MACS 2005 First International Workshop on the Modeling and Analysis of Concerns in Software Concern Management for Constructing Model Compilers -- Towards effective MDA Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo) Shinji Sano, Yusaku Maeno, Satoshi Murakami (Kyushu Institute of Technology) 16 May 2005

Overview MDA and model compiler Motivation AspectM : Aspect-oriented modeling language Constructing a model compiler using AspectM Discussion Related work Conclusion

MDA and model compiler OOSD MDA model compiler CIM Analysis PIM Design PSM We can regard PIMs as new kinds of reusable software components because they can be reused even if a platform is changed. Coding Source code MDA: Model-Driven Architecture PIM: Platform Independent Model CIM: Computation Independent Model PSM: Platform Specific Model

Example of Model Transformation 1. MDA and model compiler Example of Model Transformation Platform: Struts Step1: merge PIMs 1) merge PIM classes Step 2: transform the merged class to an action form bean class platform concerns crosscut over model elements 2) change the name of merged class 3) inherit ActionForm 4) add setter/getter PSM PIM Step 3: create an action class 5) create an action class 6) inherit Action 7) add execute method 8) add a method body

Motivation -- for constructing an effective model compiler Multiple concerns We need to take account of not only platform concerns but also other kinds of model transformation concerns including optimization, real-time constraints, and deployment. It is necessary to allow a modeler to customize transformation rules because model modifications for dealing with these concerns may be specific to an application. Extensibility

2. Motivation Our Approach We propose a method for constructing an extensible model compiler based on aspect-orientation. Aspect-orientation is useful for platform descriptions because they crosscut over many model elements. A modeler can extend model transformation rules by defining new aspects in the process of modeling. Aspect Aspect UML model weave UML model UML model UML model PIM PSM Extensible model compiler

Aspect-orientation at the modeling-level (example) 3. AspectM Aspect-orientation at the modeling-level (example) join point (class) pointcut advice classA classA || classB (extract join point whose name is classA or classB) add new attributes add new operations classA attributes new attributes attributes operations new operations operations classB classB attributes join point (class) attributes new attributes operations classC operations new operations join point (class) attributes operations Extension of JPMs (Join Point Models) in AOP

JPMs for model transformations 3. AspectM JPMs for model transformations transformation type PA CM NE OC RN RL change a method body ○ merge classes add/delete classes add/delete operations add/delete attributes rename classes rename operations rename attributes add/delete inheritances add/delete aggregations add/delete relationships 1)merge PIM classes   CM 2) change the name ofmerged class   RN 3) inherit ActionForm   RL 4) add setter/getter   OC 5) create an action class   NE 6) inherit Action 7) add execute method 8) add a method body   PA PA(pointcut & advice),CM(composition),NE(new element),OC(open class),RN(rename),RL(relation)

JPMs for dealing with multiple model transformation concerns 3. AspectM JPMs for dealing with multiple model transformation concerns JPM Join point Pointcut Advice PA operation Example 1) setX || setY 2) set* 3) classA || classB  4) class* before, after, around CM class merge-by-name NE class-diagram add-class delete-class OC add-operation, delete-operation, add-attribute, delete-attribute RN class, operation, attribute rename RL add-inheritance, delete-inheritance, add-aggregation, delete-aggregation, add-relationship, delete-relationship

3. AspectM AspectM AspectM is an aspect-oriented modeling language that supports six kinds of JPMs. In AspectM, an aspect can be described in either a diagram or an XML format. AspectM provides the two kinds of aspects: ordinary aspect and component aspect. A component aspect is a special aspect for composing aspects. An aspect can have parameters for supporting generic facilities. By filling parameters, an aspect for a specific purpose is generated.

Example of AspectM descriptions << CM >> mergeClasses Step1: merge PIMs inputClasses : class { pointcut-body=“cname(Message) || cname(MessageProfile)” } Step 2: transform the merged class to an action form bean class merge [inputClasses] : merge-by-name { advice-body=“PostMessage” } Step 3: create an action class <aspect name=“mergeClasses” type=“ordinary” jpm=“CM" > <pointcut name=“inputClasses” type=“class”> <pointcut-body> cname(Message) || cname(MessageProfile) </pointcut-body> </pointcut> <advice name=“merge” type=“merge-by-name” ref-pointcut=“inputClasses”> <ref-pointcut> message-classes </ref-pointcut> <advice-body> PostMessage </advice-body> </advice> </aspect>

Implementation of model compiler 4. Constructing a model compiler Implementation of model compiler Aspect diagram (XML) Model Compiler XSLT style sheet for converting aspect (XML) to XSLT style sheet XSLT processor The first transformation phase XSLT style sheet for converting UML (XML) to UML (XML) The second transformation phase XSLT processor UML diagram (XML) UML diagram (XML)

Dealing with multiple concerns 4. Constructing a model compiler Dealing with multiple concerns <aspect name=“mergeClasses” type=“ordinary” jpm=“CM" > <pointcut name=“inputClasses” type=“class”> <pointcut-body> cname(Message) || cname(MessageProfile) </pointcut-body> </pointcut> <advice name=“merge” type=“merge-by-name” ref-pointcut=“inputClasses”> <ref-pointcut> message-classes </ref-pointcut> <advice-body> PostMessage </advice-body> </advice> </aspect> concern for merging models <aspect name=“deleteAttribute“ type="ordinary" jpm="OC"> <pointcut name="postMessageClass" type="class"> <pointcut-body>cname(PostMessage)</pointcut-body> </pointcut> <advice name="deleteDate" adviceType="delete-attribute“ ref-pointcut="postMessageClass"> <advice-body>date</advice-body> </advice> </aspect> concern for optimizing memory usage <aspect name="loggingSetter" type="ordinary" jpm="PA"> <pointcut name="allSetter" type="method"> <pointcut-body>oname(set*)</pointcut-body> </pointcut> <advice name="logSetter" adviceType="before“ ref-pointcut="allSetter"> <advice-body>Log.write()</advice-body> </advice> </aspect> concern for logging A modeler can extend model transformation rules by defining new aspects in the process of modeling.

Towards product-line engineering 4. Constructing a model compiler Towards product-line engineering defined by modelers Aspect library for other platforms Product X : Application-specific aspects Aspect library for .NET weave Aspect library for J2EE UML diagrams Aspect library for other product-lines Product Y : Application-specific aspects Aspect library for product-line B weave Aspect library for product-line A UML diagrams Aspects are useful for product-line engineering in which a variety of PSMs are generated from a single set of PIMs.

Discussion -- Aspect-orientation vs. meta programming Someone might claim that AspectM is not an aspect-oriented language but a meta language for model transformations. AspectM can describe not only model transformation concerns but also ordinary crosscutting concerns such as logging. AspectM unifies (lightweight) meta-programming with ordinary aspect-orientation by extending the idea of JPMs. lightweight meta-programming aspect-orientation JPMs

6. Related work Related work Aspect-oriented domain modeling (AODM) [J.Gray et. al. 2003] AODM introduced a language called ECL that provides facilities for adding model elements such as attributes and relations. Persistence as an Aspect [A.Rashid and R.Chitchyan 2003] Aspect-oriented mechanisms (+ reflection) for describing database concerns are proposed. QVT [OMG] QVT (Queries, Views, and Transformations) is a model transformation language. Draco [J. Neighbors 1984] In Draco, software development processes were considered as a series of transformations.

7. Conclusion Conclusion We proposed a method for constructing an extensible model compiler that can deal with multiple model transformation concerns. A modeler can extend model transformation rules by defining new aspects in the process of modeling.