POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan An Extensible Aspect-Oriented Modeling.

Slides:



Advertisements
Similar presentations
Comparison of Several Meta-modeling Tools 2 Yi Lu Computer Science Department McGill University
Advertisements

A Context Analysis Method for Embedded Systems --- Exploring a Requirement Boundary between a System and Its Context Naoyasu Ubayashi(Kyushu University,
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
1 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
© 2007 ATLAS Nantes 1 Atlas Model Weaver Use Case: Aspect Oriented Modeling Marcos Didonet Del Fabro Atlas Group (INRIA & LINA), Université de Nantes,
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Modularization.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales.
Irina Rychkova. 9/20061 Systemic approach towards model definition Model transformation semantics.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
An Untyped Calculus of Aspect- Oriented Programs Radha Jagadeesan Alan Jeffrey James Riely DEPAUL UNIVERSITY, CHICAGO.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Harmless Advice Daniel S Dantas Princeton University with Prof. David Walker.
On the Correctness of Model Transformations Gabor Karsai ISIS/Vanderbilt University.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
 Dipl.-Ing. Lars Grunske, 1 Hasso-Plattner-Institute for Software System Engineering at the University of Potsdam Department of Software Engineering and.
1 A Context Analysis Method for Developing Secure Embedded Naoyasu UbayashiKyushu University, Japan May 22, 2011 SESS’11.
1 A Modularity Assessment Framework for Context-dependent Formal Specifications Naoyasu Ubayashi (Kyushu University, Japan) September 14, 2010 ACoM 2010.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
VERIFICATION OF ASPECT ORIENTED MODELS BY DON MARTIN JAYASHREE VENKIPURAM PATHANGI PIYUSH SRIVASTAVA REFERENCES F. Mostefaoui and J. Vachon,” Design level.
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
1 An Aspect-oriented Weaving Mechanism Based on Component-and-Connector Architecture Naoyasu Ubayashi (Kyushu Institute of Technology) February 12, 2008.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
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.
1 Model Compiler Construction Based on Aspect-oriented Mechanisms Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo)
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
1 A Parameterized Interpreter for Modeling Different AOP Mechanisms Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Genki Moriyama(Kyushu Institute.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan Pointcut-based Architectural Interface.
VERIFICATION OF ASPECT-ORIENTED MODELS Review of Aspect-Oriented Definitions aspect – crosscutting concern that may involve multiple classes pointcut –
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
Aspect-Oriented Modeling of Access Control in Web Applications Gefei Zhang Joint work with Hubert Baumeister, Nora Koch and Alexander Knapp UML-BASED WEB.
1 Model Evolution with Aspect-oriented Mechanisms Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo) Shinji Sano, Yusaku.
A Distributed Aspect-Oriented System for J2EE Applications Muga Nishizawa and Shigeru Chiba (Tokyo Institute of Technology, Japan) Background - As benefits.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
1 Context-dependent Product Line Practice for Constructing Reliable Embedded Systems Naoyasu UbayashiKyushu University, Japan Shin NakajimaNational Institute.
Dr. Darius Silingas | No Magic, Inc. Domain-Specific Profiles for Your UML Tool Building DSL Environments with MagicDraw UML.
Architectural Point Mapping for Design Traceability Naoyasu Ubayashi and Yasutaka Kamei Kyushu University, Japan March 26, 2012 FOAL 2012 (AOSD Workshop)
1 A Context Analysis Method for Constructing Reliable Embedded Systems Naoyasu Ubayashi, Toshiki Seto, Hirotoshi Kanagawa, Susumu Taniguchi, and Jun Yoshida.
1 Model-based Aspect Weaver Construction Suman Roychoudhury Frédéric Jouault Jeff Gray {roychous, jouault, cis.uab.edu This project is supported.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
1 Contract-based Verification for Aspect-oriented Refactoring Naoyasu Ubayashi(Kyushu Institute of Technology) Jinji Piao(Kyushu Institute of Technology)
Alloy-based Lightweight Verification for Aspect-oriented Architecture Naoyasu Ubayashi(Kyushu Institute of Technology) Yuki Sato(Kyushu Institute of Technology)
1 Context-aware Feature-Oriented Modeling with an Aspect Extension of VDM Naoyasu Ubayashi (Kyushu Institute of Technology) Shin Nakajima (National Institute.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan 1 A Verification Mechanism for Weaving.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan 1 A Reflective Aspect-oriented Model.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
1 Separation of Context Concerns --- Applying Aspect Orientation to VDM Naoyasu Ubayashi (Kyushu Institute of Technology) Shin Nakajima (National Institute.
R R R A Brief Introduction to Aspect-Oriented Programming.
AspectScope: An Outline Viewer for AspectJ Programs Michihiro Horie, Shigeru Chiba Tokyo Institute of Technology, Japan.
University of British Columbia Software Practices Lab Uniform Support for Modeling Crosscutting Structure Maria Tkatchenko Gregor Kiczales Work supported.
Aspect-Oriented Software Development (AOSD)
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.
1 Aspectual Caml an Aspect-Oriented Functional Language Hideaki Tatsuzawa Hidehiko Masuhara Akinori Yonezawa University of Tokyo.
AUTOMATIC GENERATION OF MODEL TRAVERSALS FROM METAMODEL DEFINITIONS Authors: Tomaž Lukman, Marjan Mernik, Zekai Demirezen, Barrett Bryant, Jeff Gray ACM.
An Interface Mechanism for Encapsulating Weaving in Class-based AOP
MACS 2005 First International Workshop on the Modeling and Analysis of Concerns in Software Concern Management for Constructing Model Compilers -- Towards.
Daniel Amyot and Jun Biao Yan
An Extensible Contract Verifier for AspectJ
Presentation transcript:

POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan An Extensible Aspect-Oriented Modeling Environment Naoyasu Ubayashi, Kazuhide Noda, Genya Otsubo, and Jun Yoshida CAiSE 2009 June 11, 2009

POSL posl.minnie.ai.kyutech.ac.jp 2 Today’s Talk -- Extensible AOM Environment Base Editor Meta Editor Reflective Model Editor Model Weaver (Compiler) Java Code Case Study & Evaluation DSML for Embedded Systems AOM: Aspect-Oriented Modeling DSML: Domain-Specific Modeling Language AspectM (UML-based AOM language) [Ubayashi, et al. 2005, 2006] Key Technologies Edit-time Structural Reflection Extensible Model Weaving

POSL posl.minnie.ai.kyutech.ac.jp 3 Outline An Overview of AspectM AspectM Support Tool Case Study & Evaluation Related Work Conclusion

POSL posl.minnie.ai.kyutech.ac.jp 4 1. An Overview of AspectM

POSL posl.minnie.ai.kyutech.ac.jp 5 AspectM: Crosscutting Concerns in Modeling AspectM JPM の簡易表も載 せる JPM (Join Point Model)Join pointAdvice PA (Pointcut & Advice)operationbefore, after, around CM (Composition)classmerge-by-name EL (Element)class diagramadd/delete/modify-class OC (Open Class)classadd/delete/modify-{attribute, operation} RN (Rename)class, attribute, operationrename RL (Rlation)classadd/delete/modify-{aggregation, relationship} IH (Inheritance)classadd/delete/modify-inheritance Pointcut cname(‘Customer’) || cname(‘Invoice’) Aspect name : Logging Advice Join Point Type : Open Class Add “log()”method to join point [JPM: AO Mechanisms] Model Weaving

POSL posl.minnie.ai.kyutech.ac.jp 6 There might be situations in which a modeler wants to introduce domain-specific notations and JPMs. But, … pointcut- body := !DCEntityContract_UniqueId_isUserAssigned(*) advice-body := >log() {isUserAssigned=false} {isUserAssigned=true}

POSL posl.minnie.ai.kyutech.ac.jp 7 AspectM Extension Mechanism AspectM metamodel AspectM model introduce a new kind of domain-specific model element modify the AspectM metamodel reflect reify MMAP extension point new model element protocols Reflective Model Editor Base level Meta level Editing-time structural reflection DSL Components

POSL posl.minnie.ai.kyutech.ac.jp 8 MMAP Extension Points  Class, Attribute, Operation  PA, CM, EL, OC, RN, RL, IH Extension Operations  define subclasses  add attributes to subclasses  create associations among subclasses  add constraints using OCL Primitive Predicates  predicates for navigating the AspectM metamodel AspectM metamodel Class Element Aspect Element extension pointexample of extension operations

POSL posl.minnie.ai.kyutech.ac.jp 9 Metamodel Navigation DCEntityContract_UniqueId_isUserAssigned (c): meta-class-of ("DCEntityContract", c) && member-of (a, c) && meta-class-of ("UniqueId", a) && member-of ("isUserAssigned", "UniqueId") && value-of ("true", "isUserAssigned") DCEntityContract_UniqueId_isUserAssigned (c): meta-class-of ("DCEntityContract", c) && member-of (a, c) && meta-class-of ("UniqueId", a) && member-of ("isUserAssigned", "UniqueId") && value-of ("true", "isUserAssigned") meta-class-of member-of meta-class-of member-of value-of Base level Meta level

POSL posl.minnie.ai.kyutech.ac.jp AspectM Support Tool

POSL posl.minnie.ai.kyutech.ac.jp An Overview of AspectM Support Tool 11 Base Editor Meta Editor Reflective Model Editor Model Weaver (Compiler) Java Code

POSL posl.minnie.ai.kyutech.ac.jp 12 Reflective Model Editor Base Editor Meta Editor 1.Execute extension operations. 2.Assign a graphic notation to a new model element. 3.Regenerate the metamodel. 4.Restart the base editor. Extension Procedure Implemented using Eclipse EMF/GMF

POSL posl.minnie.ai.kyutech.ac.jp 13 Overview of Reflective Model EditorDemonstration Base Editor Meta Editor 1.Execute extension operations 2.Assign a graphic notation to a new model element 3.Regenerate the metamodel 4.Restart the base editor Extension Procedure Base Editor Invoke the Meta Editor

14 Meta Editor Show an extension point Create a new metaclass Rebuild the Base Editor Assign a graphic notation Execute extension operations (add attribute, association, …) Add a constraint using OCL A class can have at most one UniqueId. self.owner.feature ->select(oclIsTypeOf(UniqueId))->size() <= 1

15 New model elements are added to the pallet Base Editor This violates the constraint A class can have at most one UniqueId. self.owner.feature ->select(oclIsTypeOf(UniqueId))->size() <= 1 Base Editor can detect this error

16 Base Editor Meta Editor Reusable DSML component

POSL posl.minnie.ai.kyutech.ac.jp 17 Extensible Model Weaver Modeler Prolog Non Woven Model Fact write convert Woven Model Weaving Model Weaver analyze pointcut Model Editor define pointcut DCEntityContract_UniqueId_isUserAssigned(c): meta-class-of('DCEntityContract', c) && member-of(a, c) && meta-class-of('UniqueId', a) && member-of('isUserAssigned', 'UniqueId') && value-of('true', 'isUserAssigned') -- from Invoice class meta-class-of('DCEntityContract', 'Invoice'), member-of('number', 'Invoice'), meta-class-of('UniqueId', 'number'), value-of('false', 'isUserAssigned'). -- from AspectM metamodel member-of('isUserAssigned', 'UniqueId'). !DCEntityContract_UniqueId_isUserAssigned selects a set of join points (classes) that satisfy the above facts (model)  ‘Invoice’

POSL posl.minnie.ai.kyutech.ac.jp Constructing a DSML for Embedded Systems 3. Case Study & Evaluation

POSL posl.minnie.ai.kyutech.ac.jp Contexts in Embedded Systems Many embedded systems not only affect their contexts through actuators but also are affected by their contexts through sensors. However, requirements analysis is mainly conducted from the viewpoint of system functions, and contexts are only roughly analyzed. Embedded System Actuator Sensor Contexts Boundary ? Association ? 19 Unexpected behavior might emerge in a system if a developer does not recognize any possible conflicting combinations between the system and contexts. It is difficult to decide the boundary of contexts that should be taken into account: which contexts should be included as the targets of requirements analysis. CAMEmb

POSL posl.minnie.ai.kyutech.ac.jp Model Editor for CAMEmb Context model of a line trace car DSML (Domain-Specific Modeling Language) 20 > LEGO

POSL posl.minnie.ai.kyutech.ac.jp Metamodel Extension + OCL 21 Hardware should observe xor control contexts.

POSL posl.minnie.ai.kyutech.ac.jp Model Weaver for CAMEmb Total code size: 223 LOC Automatic generated code size: 174 LOC 78 % Context Model System Model Java Analysis ModelDesign ModelCode 22 Evaluation (Tasks for constructing DSL tool) (Task)(Number) [Editor] 1.Extend the metamodel8 [Editor] 2.Define meta-level OCLs8 [Weaver] 3.Define aspects commonly reused in CAMEmb3 [Weaver] 4.Define aspects specific to a line trace car11 [Weaver] 5.Reuse LEGO OS components4 Coded by hand

POSL posl.minnie.ai.kyutech.ac.jp Related Work

POSL posl.minnie.ai.kyutech.ac.jp 24 Related Work AODM (Aspect-Oriented Domain Modeling) based on GME (Generic Modeling Environment) [J.Gray, et al. GPCE2003] ETMOP (Edit-Time Metaobject Protocol) [A.D.Eisenberg and G.Kiczales, AOSD2007]

POSL posl.minnie.ai.kyutech.ac.jp Conclusion

POSL posl.minnie.ai.kyutech.ac.jp 26 Conclusion We proposed an implementation method for extensible AOM environments. Key technologies: –Edit-time structural reflection –Extensible model weaving

POSL posl.minnie.ai.kyutech.ac.jp 27 Appendix

POSL posl.minnie.ai.kyutech.ac.jp Problems in Extensible AOM Languages 28 Extensible AOM Language A modeler can extend metamodel. A modeler can add new aspects that include user-defined AO mechanisms (user-defined pointcuts, etc). Does a pointcut select join points correctly ? Does a base model conform to metamodel ? Does a woven model include cyclic inheritances? It is not necessarily easy to check model consistency and aspect interference. Verification Mechanism

POSL posl.minnie.ai.kyutech.ac.jp Model Verifyer (Assertion Checker) Assertions for checking (un)favorable properties 29 Woven model check assertions Assertions super_class_of (c1, c2) attribute_of (a, c) operation_of (o, c) advice_of (a, o) class_exist (c) related_to (c1, c2) aggregate(c1, c2) composed_of (c1, c2) specified by predicates base and meta models can be navigated using predicates A model represented in XML <ownedElement name="TransOp" xsi:type="asm:TransactionOperation" /> Prolog facts modelElement( [property('tagName', 'ownedElement'), property('name', 'TransOp'), property('xsi:type', 'asm:TransactionOperation')]) Assertion operation_of ('TransOp', 'C') Translate Check