Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.

Slides:



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

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Professor John Hosking, Dean of Engineering and Computer Science Models, Modelling, MBSE.
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.
Programming Distributed Systems Lab Institute of Computer Science University of Augsburg Universitätsstraße 14, D Augsburg Tel.: (+49) 821/ ,
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
Introduction To System Analysis and Design
Secure Middleware (?) Patrick Morrison 3/1/2006 Secure Systems Group.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
Methodologies for Web Information System Design
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
End-to-End Design of Embedded Real-Time Systems Kang G. Shin Real-Time Computing Laboratory EECS Department The University of Michigan Ann Arbor, MI
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
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
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Chapter 2 The process Process, Methods, and Tools
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Introduction to MDA (Model Driven Architecture) CYT.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
Introduction To System Analysis and Design
Object-Oriented Analysis and Design An Introduction.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
A language to describe software texture in abstract design models and implementation.
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
A Context Model based on Ontological Languages: a Proposal for Information Visualization School of Informatics Castilla-La Mancha University Ramón Hervás.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
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.
IDENTIFYING SEMANTIC DIFFERENCES IN ASPECTJ PROGRAMS Martin Görg and Jianjun Zhao Computer Science Department, Shanghai Jiao Tong University.
Towards Multi-Paradigm Software Development Valentino Vranić Department of Computer Science and Engineering Faculty of Electrical Engineering.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
© 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.
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,
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University.
MDD approach for the Design of Context-Aware Applications.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
Object-Oriented Programming © 2013 Goodrich, Tamassia, Goldwasser1Object-Oriented Programming.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
IWFST'2005, Shanghai Testing Aspect-Oriented Programs: Challenges and Opportunities Jianjun Zhao Department of Computer Science and Engineering Shanghai.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Aspect-Oriented Software Development (AOSD)
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Methodology Review Chapter 7 Part 2: Design Methodology Object-Oriented Modeling and Design Byung-Hyun Ha
CASE Tools and their Effect on Software Quality
An approach for Integration of Aspect Orientation and Model- Driven Engineering using Aspect- Oriented Code Generation Presenter: Abid Mehmood Advisor:
Page 1 Hitachi Ltd. – FhI FOKUS TTCN-3 User Conference, June 2005 MDA based approach for generation of TTCN-3 test specifications Hideto Ogawa, Hitachi.
SysML v2 Formalism: Requirements & Benefits
Mastering UML with Rational Rose 2002
Discussion with Gregor Kiczales at UBC
UML Design for an Automated Registration System
Presentation transcript:

Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information System Universiti Teknologi Malaysia INSPIRING CREATIVE AND INNOVATIVE MINDS

Overview 1.Introduction 2.Aspect-Oriented Model to Code Approaches 3.Comparison Approach 4.Comparison Results and Discussion 5.Conclusion and future work

Introduction Model-driven Engineering (MDE) - automated model-driven code generation offers many :  an instrument to enhance the produced software.  Advantages: rapid development of high quality code, reduced number of accidental programming errors, enhanced consistency between design and code to name a few & etc. Aspect-Oriented Programming (AOP)  paradigm deals with requirements (concerns) that cut across the primary modularization of a software system  Aspect-Oriented Software Development (AOSD) environment - these crosscutting are modeled and implemented independent from the main functional concerns of the system.

Introduction  different efforts to combine MDE & AOP to generating AO code by automatically transforming models  They use a source model (e.g. UML) as input and generate the target AO (use transformation definition).  Different featuresof AO model-driven code generation  Objective : A comparative review of these approaches  to facilitate the future researchers to automate the process of reliable AO code generation.

AO Model to Code 1.Aspect-oriented model-driven skeleton code generation [5]  a graph-based transformation approach 2.A Meta-Level Specification and Profile for AspectJ in UML [8]  from a specification of the AspectJ meta-model 3. Aspect-oriented Code Generation [11]  use the Theme/UML (composition pattern to integrate classes) to map from model to code 4.Generating Aspect Code from UML [12]  uses extended UML model as input &generates AspectJ code stubs

AO Model to Code 5.Mapping Aspect-Oriented Models to Aspect- Oriented Code [13]  using Reusable Aspect Models (RAM) into Java and AspectJ code 6.Mapping Design to Implementation [14]  Theme/UML approach to generate AspectJ code  maps the symmetric AO design to asymmetric implementation

Comparison Approach Important features considered : 1.Transformation approach 2.Source notation 3.Target notation 4.Models covered 5.Extent of code generation 6.Implementation knowledge requirement 7.Tool support 8.Adaptability 9.Validation

Comparison Approach NoApp.Transf.Source Notation Target Notation Models covered Extent of code gen. Req of Impl Knowl. Tool support 1[5][5]GBTFDAFAspectJCDSkeletonNoYes 2[8][8]XSLT (TB) AspectJ MMAspectJCDSkeletonYes 3[10]10XSLT (TB) Theme/UMLAspectJCDSkeletonYes 4[12]12DMUMLEAspectJCDSkeletonNoYes 5[13]13DMRAMAspectJCD, SD, SC N/ANo 6[14]14TUATheme/UMLAspectJCDN/ANoYes GBT – Graph-based transformation FDAF – Formal Design Analysis Framework TUA – Theme/UML mapping approach RAM – Reusable Aspect Models UMLE – UML extended using standard mechanisms MM – Meta-model CD – Class diagram SD – Sequence diagram SC – Statecharts TB – Template- based DM – Direct mapping

Results & Discussion Transformation approach PerspectiveNo.Question[5][5][8][8][10]10[12]12[13]13[14]14 Transforma tion approach Q1Are advantages of transformation approach clearly identified comparative to other approaches? YesNo TSEYes Q2Does the approach clearly provide support for static view of system? Yes Q3Does the approach clearly provide support for dynamic view of system? No YesTSE Q4Are advantages of the code generation approach clearly identified comparative to other approaches? YesNo TSENo Q5Does it generate full code? i.e. both base as well as aspects.No YesNoYes Q6Are interaction mechanisms (between base class elements and aspects) other than pointcuts supported? TSENo TSEYesNo Q7Are format and syntax decisions supported?YesNo Q8Are ADTs, Collections and Arrays supported?TSENo YesNo Q9Does the approach explicitly address the algorithm correctness and performance? TSENoTSENo TSE All approaches support transformation of structural models only Correctness and performance of transf. approach not explored by any work

Results & Discussion Source notation, Target notation & Models covered 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 PerspectiveNo.Question[5][5][8][8][10]10[12]12[13]13[14]14 Source notation Q1Is it a standard, visual modeling language?TSEYes Q2Are standard UML extension mechanisms used to model AO elements? TSEYes TSEYes Target notation Q1Are languages other than AspectJ discussed as target notations? No Yes Q2Are different standards of target language supported? No Models covered Q1Is code generation from class diagrams addressed?Yes NoYes Q2Is code generation from behavior diagrams addressed? No

Results & Discussion Extent of code generation 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. Perspecti ve No.Question[5][5][8][8][10]10[12]12[13]13[14]14 Extent of code generatio n Q1Is full code generation supported for class diagrams?No Q2Is skeleton code generation fully implemented?YesNoYes NoYes Q3Is full code generation supported for behavior diagrams? No Q4Is code generation for both base as well as aspect model elements addressed? No YesNoYes Q5Does the approach provide clear path towards implementation of behavior diagrams, thus full code generation? No YesNo Q6Is the trade-off between amount of code generated and extent of implementation details at design level considered? YesNo

Results & Discussion Implementation knowledge & Tool support has provided sufficient tool support and have considered the reliability of tools to a greater extent. need professional tool support to validate some approaches PerspectiveNo.Question[5][5][8][8][10]10[12]12[13]13[14]14 Implementation knowledge Q1Is modeler required to have implementation knowledge in order to use the approach effectively? NoYes No Tool supportQ1Is sufficient tool support provided to apply and validate the approach? YesTSE NoYes Q2Are the tools considerably reliable (not prototypes) to be used to the purpose? YesNo TSE Q3Are the tools developed using standard development frameworks? Yes TSEYesNoYes Q4Are the tools extendable and allow integration with some IDE/ other tools? TSENo YesNoYes Q5Are the tools capable of generating both base and aspect model code? No YesNoYes Q6Are different types of pointcuts supported by tools? No Q7Is the inheritance between aspects supported by tools? No

Results & Discussion Adaptability & Validation Most works do not address adaptability at all, neither for input nor for output Works [5] and [14] consider the two attributes at certain level. PerspectiveNo.Question[5][5][8][8][10]10[12]12[13]13[14]14 AdaptabilityQ1Is the approach adaptable to changing standards of input notation e.g. a new standard of UML? TSEYes TSE Q2Is the approach adaptable to other AO languages?No TSE Yes Q3Is it adaptable to other versions/ implementations of the selected target language? TSENo TSE ValidationQ1Is the validation done using a reliable, mature technique taken from literature (opposite to a self-defined, proof-of- concept mechanism)? TSENo TSE Q2Are standard inputs applied?YesNo Yes Q3Are the outputs determined to be standard?YesNo Yes Q4Are the results compared using standard and open mechanism? YesNo Yes

Conclusion and Future Work Advancement in AO MD code generation may play a significant role for more maintainable, extensible and reusable software systems. The study reveals that most approaches: –Are limited to structure diagrams only –Generate skeleton code only –Do not address full code generation at all –Do not address correctness of algorithm –Do not provide sufficient tool support Future Work: –Code generation from behavioral diagrams –Enhancement of interaction mechanisms between base and aspect models –Validation, correctness and performance of the transformation algorithm

INSPIRING CREATIVE AND INNOVATIVE MINDS Q A &