An approach for Integration of Aspect Orientation and Model- Driven Engineering using Aspect- Oriented Code Generation Presenter: Abid Mehmood Advisor:

Slides:



Advertisements
Similar presentations
Integration of MBSE and Virtual Engineering for Detailed Design
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Object-Oriented Software Development CS 3331 Fall 2009.
CS487 Software Engineering Omar Aldawud
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
Software Testing and Quality Assurance
Software Testing and Quality Assurance
Unit 251 Implementation and Integration Implementation Unit Testing Integration Integration Approaches.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
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
Introduction To System Analysis and design
Software Development Process
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Unit 2: Engineering Design Process
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Chapter 2 The process Process, Methods, and Tools
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
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)
Change Impact Analysis for AspectJ Programs Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao Shanghai Jiao Tong University.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
Introduction To System Analysis and Design
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
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.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
Business Process Change and Discrete-Event Simulation: Bridging the Gap Vlatka Hlupic Brunel University Centre for Re-engineering Business Processes (REBUS)
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
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 Introduction to Software Engineering Lecture 1.
Illustrations and Answers for TDT4252 exam, June
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
XAFIT provides a runtime environment for AF-RDL scripts Instantiation process inputs AF-RDL scripts Framework model in AF-UML Application developer inputs.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
Data Structures Using C++ 2E
Gregor v. Bochmann, University of Ottawa Based on Powerpoint slides by Gunter Mussbacher(2009) with material from Amyot User Requirements Notation (URN)
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
CSE 303 – Software Design and Architecture
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
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.
Continual Service Improvement Methods & Techniques.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Aspect-Oriented Software Development (AOSD)
Methodology Review Chapter 7 Part 2: Design Methodology Object-Oriented Modeling and Design Byung-Hyun Ha
Metadata Driven Aspect Specification Ricardo Ferreira, Ricardo Raminhos Uninova, Portugal Ana Moreira Universidade Nova de Lisboa, Portugal 7th International.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
Complexity Time: 2 Hours.
Implementing Language Extensions with Model Transformations
Chenchen Xi CNC Supervisor: Prof. John R. Gurd
Implementing Language Extensions with Model Transformations
From Use Cases to Implementation
Simulation-driven Enterprise Modelling: WHY ?
Presentation transcript:

An approach for Integration of Aspect Orientation and Model- Driven Engineering using Aspect- Oriented Code Generation Presenter: Abid Mehmood Advisor: Assoc. Prof. Dr. Dayang N.A. Jawawi INSPIRING CREATIVE AND INNOVATIVE MINDS

Outline Introduction Existing Literature Research Phases & Framework Towards Integration of MDE & AOSD

Introduction Model-Driven Engineering (MDE): subjects models to refinement through automatic transformations until a running system is obtained Aspect-Oriented Software Development (AOSD) –Software dev approach to solve problems of scattering and tangling Scattering: requirements crosscut components Tangling: components have parts of many different requirements –Based around a new type of abstraction – an Aspect –Used in conjunction with other approaches – usually OOSD –Improves software quality factors: maintainability, extensibility, reusability –Achieved through Early Aspects during analysis, Aspect-Oriented Modeling during design, and AOP at implementation time.

Introduction Integration of AOSD and MDE –May increase benefits of both –Excellent abstraction mechanisms of MDE will become available to AOSD –MDE will be augmented by the capabilities of AOSD with regards to modularity and composition of concerns 2 approaches for integration –Weave a model and generate Object-Oriented code (WTG 1 ) –Transform a model directly into Aspect-Oriented code (GTW 2 ) 1 Weave-Then-Generate (approaches) 2 Generate-Then-Weave (approaches)

Introduction WTG approaches –Work well for tasks related to model analysis and simulation –Do not retain clear separation of concerns after generation of code –Make the (manual) maintenance of code more difficult! GTW approaches –Benefit from features of AOSD at design as well as code level –Result in compact, smaller, less complex and more modular implementation Direct AO code generation (GTW): the basis of method proposed in this research

Problem statement Main research question: –“How can we generate accurate, fully executable, and production-standard aspect-oriented code from the input aspect-oriented models, in line with the goals of model-driven development?“

Objectives Objective 1: To determine an effective aspect-oriented modeling approach that can lead to maximum amount of generated code Objective 2: To elaborate an approach to generate application code from aspect-oriented models representing complete structure and behavior in an aspect-oriented language such as AspectJ Objective 3: To implement the proposed approach and develop a system for automatic generation of AspectJ code from extended behavior diagrams Objective 4: To extend the approach and the code generation system to support full code generation i.e. to generate non- aspect-oriented code as well

Outline Introduction Existing Literature Research Phases & Framework Towards Integration of MDE & AOSD

Existing literature – structure

AO Code Gen. approaches No.No. ApproachApproach Transform techTransform tech Source NotationSource Notation Target NotationTarget Notation Models coveredModels covered Extent of code generationExtent of code generation Req of Impl KnowledgeReq of Impl Knowledge Tool supportTool support No. Approach Transform tech Source Notation Target Notation Models covered Extent of code generation Req of Impl Knowledge Tool support 1(Bennett et al. 2010)Bennett et al. 2010GBTFDAFAspectJCDSkeletonNoYes 2(Evermann 2007)Evermann 2007XSLT(TB)AspectJ MMAspectJCDSkeletonYes 3(Hecht et al. 2005)Hecht et al. 2005XSLT(TB)Theme/UMLAspectJCDSkeletonYes 4(Groher 2003)Groher 2003DMUMLEAspectJCDSkeletonNoYes 5 (Kramer and Kienzle 2011)Kramer and Kienzle 2011 DMRAMAspectJ CD, SD N/ANo 6(Jackson et al. 2008)Jackson et al. 2008TUATheme/UMLAspectJCDN/ANoYes

Comparison results Transformation approach Perspective No. Question ( Bennett et al ) Bennett et al ( Evermann 2007 ) Evermann 2007 ( Hecht et al ) Hecht et al ( Groher 2003 ) Groher 2003 ( Kramer and Kienzle 2011 ) Kramer and Kienzle 2011 ( Jackson et al ) Jackson et al Transforma tion approach Q1 Are advantages of transformation approach clearly identified comparative to other approaches?  ~ Q2 Does the approach clearly provide support for static view of system? Q3 Does the approach clearly provide support for dynamic view of system?  ~ Q4 Are advantages of the code generation approach clearly identified comparative to other approaches?   ~  Q5 Does it generate full code? i.e. both base as well as aspects.  Q6 Are interaction mechanisms (between base class elements and aspects) other than pointcuts supported? ~  ~  Q7 Are format and syntax decisions supported?  Q8 Are ADTs, Collections and Arrays supported? ~  Q9 Does the approach explicitly address the algorithm correctness and performance? ~  ~  ~ All CG approaches support transformation of structural models only Correctness and performance of transf. approach not explored explicitly by any work

Comparison results Source notation, Target notation & Models covered Perspective No. Question ( Bennett et al ) Bennett et al ( Evermann 2007 ) Evermann 2007 ( Hecht et al ) Hecht et al ( Groher 2003 ) Groher 2003 ( Kramer and Kienzle 2011 ) Kramer and Kienzle 2011 ( Jackson et al ) Jackson et al Source notation Q1 Is it a standard, visual modeling language? ~ Q2 Are standard UML extension mechanisms used to model aspect-oriented elements? ~ ~ Target notation Q1 Are languages other than AspectJ discussed as target notations?  Q2 Are different standards of target language supported?  Models covered Q1 Is code generation from class diagrams addressed?  Q2 Is code generation from behavior diagrams addressed?  All approaches use standard visual models developed in some AO extension of UML as input None of the approaches propose any solution for code generation from behavioral diagrams such as UML sequence, activity and statechart diagrams

Comparison results Extent of code generation Perspective No. Question ( Bennett et al ) Bennett et al ( Evermann 2007 ) Evermann 2007 ( Hecht et al ) Hecht et al ( Groher 2003 ) Groher 2003 ( Kramer and Kienzle 2011 ) Kramer and Kienzle 2011 ( Jackson et al ) Jackson et al Extent of code generation Q1 Is full code generation supported for class diagrams?  Q2 Is skeleton code generation fully implemented?   Q3 Is full code generation supported for behavior diagrams?  Q4 Is code generation for both base as well as aspect model elements addressed?  Q5 Does the approach provide clear path towards implementation of behavior diagrams, thus full code generation?  Q6 Is the trade-off between amount of code generated and extent of implementation details at design level considered?  None of the approaches generate full code for classes in the class diagram. Could not find any proposal that discusses generation of even the skeleton code from behavioral diagrams.

Implementation knowledge & Tool support PerspectiveNo.Question ( Bennett et al ) Bennett et al ( Evermann 2007 ) Evermann 2007 ( Hecht et al ) Hecht et al ( Groher 2003 ) Groher 2003 ( Kramer and Kienzle 2011 ) Kramer and Kienzle 2011 ( Jackson et al ) Jackson et al Implementation knowledge Q1Is modeler required to have implementation knowledge in order to use the approach effectively?  Tool supportQ1Is sufficient tool support provided to apply and validate the approach? ~~~  Q2Are the tools considerably reliable (not prototypes) to be used to the purpose?   ~ Q3Are the tools developed using standard development frameworks? ~  Q4Are the tools extendable and allow integration with some IDE/ other tools? ~  Q5Are the tools capable of generating both base and aspect model code?  Q6Are different types of pointcuts supported by tools?  Q7Is the inheritance between aspects supported by tools?  Most approaches lack in maturity of tool support

Comparison results Adaptability & Validation Most works do not address adaptability at all, neither for input nor for output Validation has not been considered mostly PerspectiveNo.Question ( Bennett et al ) Bennett et al ( Evermann 2007 ) Evermann 2007 ( Hecht et al ) Hecht et al ( Groher 2003 ) Groher 2003 ( Kramer and Kienzle 2011 ) Kramer and Kienzle 2011 ( Jackson et al ) Jackson et al AdaptabilityQ1Is the approach adaptable to changing standards of input notation e.g. a new standard of UML? ~ ~~ Q2Is the approach adaptable to other AO languages?  ~~ Q3Is it adaptable to other versions/ implementations of the selected target language? ~  ~~~ ValidationQ1Is the validation done using a reliable, mature technique taken from literature (opposite to a self-defined, proof-of- concept mechanism)? ~  ~~ Q2Are standard inputs applied?  Q3Are the outputs determined to be standard?  Q4Are the results compared using standard and open mechanism? 

Outline Introduction Existing Literature Research phases & framework Towards Integration of MDE & AOSD

Research phases

Research framework

Outline Introduction Existing Literature Research Phases & Framework Towards Integration of MDE & AOSD

Towards integration… A number of research questions need to be answered: –Which AOM approach is to be used? –How will visual model be transformed into text-based model? –How will the code generation be applied?

Modeling approach No standard approach for AO modeling There is need for assessing all existing approaches with respect to their suitability & likelihood to serve as input to an AO code generation process Selected 14 well-published, UML-based approaches to thoroughly evaluate Defined an evaluation framework and employed it to all approaches

Evaluation framework

Results Notation Balance in extension mechanisms and UML versions Inclination to AspectJ Missing model- to- code mapping details Only 2 approaches provide these details Dearth of support for behavioural diagrams Lacking in traceability support Insufficient scalability Composition Prevalence of Element Asymmetry for representation of concerns Moderate support for composition at modelling level Popularity of UML as complete model Maturity Moderate application of complicated example scenarios Lack of real-world applications Tool support Lack of tool-support for composition Nonexistence of support for aspect-oriented code generation

Reusable Aspect Models (RAM) and Theme/UML score high against most criteria Conducted an in-depth comparison of RAM & Theme/UML –Designed an Online Book Store System (OBSS) using both –Mapped the design to AspectJ code –Conclusion: Both resemble in many aspects, but RAM has several advantages over Theme/UML Selection of approach

Text-based implementation model Developed on the basis of RAM’s Conceptual Reference Model Developed in the form of XML schemas Covers the Core, Structural and State View parts of RAM models Provides a general-purpose representation of RAM models in textual form

Code generation approach Combining the Class and Statechart diagrams in our approach Code generation algorithms iterates over structure and behavior representation to generate code from XML representation Structure and behavior present in Structural and State Views of RAM aspect is fully implemented

Expected contributions of research Elaboration of AOM approaches in context of code generation –Impact of various approaches to be investigated through mapping experiments A textual representation of selected modelling approach A Graph-based transformation approach to generate fully executable code in AspectJ –Behavioral diagrams to be implemented A code generation system that integrates Aspect and Base codes to generate fully executable code –Includes both AO and OO code

Publications from thesis work Journal: 1.Mehmood, A. and Dayang N. A. Jawawi (2013). Aspect-oriented model-driven code generation: A systematic mapping study. Information and Software Technology 55(2): Mehmood, A. and Dayang N. A. Jawawi (2013). Aspect-Oriented Code Generation for Integration of Aspect Orientation and Model-Driven Engineering. International Journal of Software Engineering and Its Applications 7(2): Mehmood, A. and Dayang N. A. Jawawi (2013). A Text-based Implementation Model for Reusable Aspect Models. Journal of Theoretical and Applied Information Technology 55(2 ): Mehmood, A. and Dayang N. A. Jawawi (2013). Aspect-Oriented Modeling Approaches and Aspect Code Generation. International Review on Computers and Software (IRECOS) 8(4): Mehmood, A. and Dayang N. A. Jawawi. Reusable Aspect Models versus Theme/UML: the Aspect-Oriented Code Generation Perspective. International Journal of Software Engineering and Its Applications. (To appear in November 2013)

Publications from thesis work Journal: 6. Mehmood, A. and Dayang N. A. Jawawi An Approach for Mapping Aspect-Oriented State Diagrams to Aspect-Oriented Code. Journal of Universal Computer Science. (Submitted April 2013) 7. Mehmood, A. and Dayang N. A. Jawawi. An approach for model-driven aspect-oriented skeleton code generation from Reusable Aspect Models. Journal of Theoretical and Applied Information Technology. (Submitted October 2013) Conferences: 1.Mehmood, A. and D. N. A. Jawawi (2012). A systematic map of integration of aspect orientation and model-driven engineering. Open Source Systems and Technologies (ICOSST), 2012 International Conference on, Lahore, Pakistan. 2.Mehmood, A. and D. N. A. Jawawi (2011). A comparative survey of aspect-oriented code generation approaches. 5th Malaysian Conference in Software Engineering (MySEC), Mehmood, A. and D. N. A. Jawawi (2011). Model-Driven Aspect-Oriented Code Generation from UML Models. 3rd Software Engineering Postgraduates Workshop SEPoW 2011, 5th Malaysian Software Engineering Conference MySEC2011, Malaysia:

Q & A