Towards Executable Aspect-Oriented UML Models 10th Int. Workshop on Aspect-Oriented Modeling (AOM), 6th Int. Conf. on Aspect-Oriented Software Development.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

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.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Aspect Oriented Programming - AspectJ Radhika Rajput.
Aspect-Oriented Programming In Eclipse ® Aspect-Oriented Programming in Eclipse with AspectJ Dr Helen Hawkins and Sian January.
University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales.
University of British Columbia Software Practices Lab 2005 CASCON A Fluid AOP Editor Terry Hon Gregor Kiczales.
Introduction To System Analysis and Design
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Rigorous Fault Tolerance Using Aspects and Formal Methods Shmuel Katz Computer Science Department The Technion Haifa, Israel
Aspect-Oriented Software Development (236608) 1 Aspect-Oriented Software Development (AOSD) Tutorial #1 Course site :
Aspect-Oriented Software Development (AOSD) Tutorial #3 AspectJ - continued.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 2.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
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
Formalizing ODP Computational Viewpoint Specification in Maude Raúl Romero and Antonio Vallecillo EDOC 2004 Dpto. Lenguajes y Ciencias de la Computación.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
1 Thomas Cottenier 1,2, Aswin van den Berg 1, Tzilla Elrad 2 1 Software and System Engineering Research Lab, Motorola Labs 2 Concurrent Programming Research.
Object-Oriented Software Testing. C-S 5462 Object-Oriented Software Testing Research confirms that testing methods proposed for procedural approach are.
Implementation & Integration Phase Implementation, then integration: Implementation, then integration:  Each module is implemented by member of programmer.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes,
VERIFICATION OF ASPECT ORIENTED MODELS BY DON MARTIN JAYASHREE VENKIPURAM PATHANGI PIYUSH SRIVASTAVA REFERENCES F. Mostefaoui and J. Vachon,” Design level.
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
©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.
 FOAL 2010 Modeling Aspects by Category Theory Serge P. Kovalyov Novosibirsk, Russia.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
WSMX Execution Semantics Executable Software Specification Eyal Oren DERI
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 –
Joel Phinney March 31, ◦ Concerns  Separation of Concerns, Tangled and Scattered Concerns, Cross-Cutting Concerns, Aspects ◦ Aspect-Oriented Software.
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
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.
A Distributed Aspect-Oriented System for J2EE Applications Muga Nishizawa and Shigeru Chiba (Tokyo Institute of Technology, Japan) Background - As benefits.
AOSD1 Aspect-Oriented Software Design Karl Lieberherr Theo Skotiniotis.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Towards a Practical Approach to Testing Pointcut Descriptors With JQuati 1 LA-WASP 2009.
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
An Overview of Aspects Shmuel Katz Computer Science Department The Technion
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
XAFIT provides a runtime environment for AF-RDL scripts Instantiation process inputs AF-RDL scripts Framework model in AF-UML Application developer inputs.
1 Kyung Hee University Statecharts Spring Kyung Hee University Specifying Objects’ Behaviour  Interaction diagrams show message-passing behaviour.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Aspect Oriented Development Alex Beatty.  Purpose  Cross-cutting Concerns  Join Points, Pointcuts, and Advices  Weaving  Invasive vs. Non-Invasive.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Methods of Software Development Karl Lieberherr Spring 2007.
Modeling the ODP Computational Viewpoint with UML 2.0: The Templeman Library Example José Raúl Romero, Antonio Vallecillo Universidad de Málaga, Spain.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan 1 A Verification Mechanism for Weaving.
Towards an Aspect-oriented Language Module: Aspects for Petri Nets Tim Molderez, Bart Meyers, Dirk Janssens and Hans Vangheluwe Ansymo Antwerp Systems.
问题 Code scattering Blocks of duplicated code Blocks of complementary code, and different modules implementing complementary parts of the concern Code.
aspectj tools new and noteworthy Mik Kersten University of British Columbia Adrian Colyer IBM Hursley OOPSLA, October
AOSD'04, Lancaster, UK 1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech) Shigeru Chiba (Tokyo Tech) Michiaki Tatsubori.
IWFST'2005, Shanghai Testing Aspect-Oriented Programs: Challenges and Opportunities Jianjun Zhao Department of Computer Science and Engineering Shanghai.
University of British Columbia Software Practices Lab Uniform Support for Modeling Crosscutting Structure Maria Tkatchenko Gregor Kiczales Work supported.
AOP with AspectJ Awais Rashid, Steffen Zschaler © Awais Rashid, Steffen Zschaler 2009.
Aspect-Oriented Software Development (AOSD)
An approach for Integration of Aspect Orientation and Model- Driven Engineering using Aspect- Oriented Code Generation Presenter: Abid Mehmood Advisor:
Auburn University COMP 2710 Software Construction Use Case Analysis – Examples and Exercises Dr. Xiao Qin Auburn University.
Aspect Oriented Software Design
Presentation transcript:

Towards Executable Aspect-Oriented UML Models 10th Int. Workshop on Aspect-Oriented Modeling (AOM), 6th Int. Conf. on Aspect-Oriented Software Development (AOSD) March 12th, Vancouver British Columbia (Canada) Lidia Fuentes and Pablo Sánchez Dpto. Lenguajes y Ciencias de la Computación Universidad de Málaga, (Spain)

AOSD for improving modularization I would like to separate my crosscutting concerns

AOSD for improving modularization I would like to separate my crosscutting concerns AOSD !!

Reasoning about AO Models Base Models

Reasoning about AO Models Base Models Aspect Models

Reasoning about AO Models Base Models Aspect Models Pointcut Models {hook=BEFORE_SEND} *:* Bank pay(..)

Reasoning about AO Models Base Models Aspect Models Pointcut Models {hook=BEFORE_SEND} *:* Bank pay(..) ?

Simple solution If I want to know what my model does, the quickest way is to execute it. UML models can be executed (UML Action Semantics). There are tools that execute UML models (e.g. Telelogic Rhapsody, KC iUML).

Simple solution If I want to know what my model does, the quickest way is to execute it. UML models can be executed (UML Action Semantics). There are tools that execute UML models (e.g. Telelogic Rhapsody, KC iUML).

XMI Simple solution If I want to know what my model does, the quickest way is to execute it. UML models can be executed (UML Action Semantics). There are tools that execute UML models (e.g. Telelogic Rhapsody, KC iUML). XMI Base Models Aspect Models Pointcut Models {hook=BEFORE_SEND } *:* Bank pay(..) XMI Weaver Woven Models

The Online Book Store System The Online Book Store has to provide a way for customers to place orders for books. A customer will start a new order by selecting a book and specifying the required quantity. The customer can continue adding more books to the order. Once the customer is satisfied with his/her selections, the order goes to the check out stage. Each time a new book is added to the order, the order must be persisted. Persistence is a crosscutting concern !! => AO modeling

Base model (plain Executable UML) (1) Decompose the system into a set of interconnected components

Base model (plain Executable UML) (2) Model internals of each component ( OBS System in the figure)

Base model (plain Executable UML) (3) Construct a state machine by each class ( ShoppingCart in the figure) Behaviors are associated to transition events => modeled as activity diagrams

Base model (plain Executable UML) (3) Specify each behavior ( UpdateItems in the diagram) using activity diagrams and actions This does not have Persistence.

Aspect model (AOEM Profile) Joinpoint model (1)Object creation and destruction; (2)The sending and reception of a message/method; (3)The throwing of an event; (4)The raising of an exception. Suitable for being used with black-box components, services or legacy systems

Aspect model (AOEM Profile) (1) We create the Persistence aspect.

Aspect model (AOEM Profile) (2) We specify the advice behaviour. GetSource Returns a reference to the source of the intercepted message GetTarget Returns a reference to the target of the intercepted message Proceed Executes the intercepted behavior GetArg(n) Returns the n-argument of the intercepted message GetMessName Returns the name of the intercepted message

Aspect model (AOEM Profile) (3) We model the pointcuts.

Aspect weaving As the final behavior of base classes and aspects is expressed by means of activity diagrams, the weaving problem can be reduced to weaving activity diagrams. Two phases: joinpoint selection and aspect injection. Joinpoint selection Pointcuts are processed to generate XPath expressions that are used to search selected joinpoints (UML models are serialized into XMI). Information required by the weaver is added to each selected joinpoint (e.g., advice to be injected).

Aspect weaving Advice injection (1)Select the place where the advice must be injected. (2)Translate special AO actions into UML plain actions. (3)Reroute control and object flows to ensure correctness of the composition BEFOREAFTERAROUND SEND123 RECEIVE456

Aspect weaving Advice injection (1)Select the place where the advice must be injected. (2)Translate special AO actions into UML plain actions. (3)Reroute control and object flows to ensure correctness of the composition

Aspect weaving Advice injection (1)Select the place where the advice must be injected. (2)Translate special AO actions into UML plain actions. (3)Reroute control and object flows to ensure correctness of the composition

Experiments and Future Work Lack of UML tools that –Execute models –Export/Import to XMI, including actions, adequately. UML2 de Eclipse for UML modeling Telelogic Rhapsody for UML execution Solution: Use UML2 and import manually the woven in Rhapsody for validating the results. As future work: –Develop an academic UML execution engine for our own experimentation. –Replace the current pointcut model by JPDD’s or similar.

Questions ? Have I explained it clearly ? Any question or suggestion ? Thanks for your attention