Generating Aspect Code from Models OOPSLA 2002 Workshop on Generative Techniques in the Context of the MDA November 5 th, 2002 Seattle, WA This work is.

Slides:



Advertisements
Similar presentations
Monitoring Design Pattern Contracts Jason O. Hallstrom Clemson University SAVCBS 04 Workshop at ACM SIGSOFT 2004/FSE-12 Benjamin Tyler (Presenter) Ohio.
Advertisements

Institute for Software Integrated Systems Vanderbilt University Generators for Synthesis of QoS Adaptation in Distributed Real- time Embedded Systems Sandeep.
CLASS INHERITANCE Class inheritance is about inheriting/deriving properties from another class. When inheriting a class you are inheriting the attributes.
Towards a Standard Interface for Runtime Inspection in AOP Environments OOPSLA Workshop on Tool for AOSD, Seattle, November 2002 Katharina Mehner and Awais.
Chapter Five Functions
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Francisco Hernandez, Purushotham Bangalore, Jeff Gray, and Kevin Reilly Department of Computer and Information Sciences University of Alabama at Birmingham.
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
Aspect-Oriented Programming: An Overview Brandon Wirick Feb
Foundations of Hybrid and Embedded Software Systems UC Berkeley: Chess Vanderbilt University: ISIS University of Memphis: MSI NSF Model-Based Design DSML.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
A Formal Model of Modularity in Aspect-Oriented Programming Jonathan Aldrich : Objects and Aspects Carnegie Mellon University.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Inheritance using Java
1 Legacy System Evolution through Model-Driven Program Transformation Funded by the DARPA Information Exploitation Office (DARPA/IXO), under the Program.
Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann OCL-based Runtime Monitoring of JVM.
OOPSLA workshop on Domain-Specific Modeling (DSM’03) 1 Jeff Gray, Juha-Pekka Tolvanen, Matti Rossi OOPSLA Workshop.
Levels of Independence in Aspect-Oriented Modeling Workshop on Model-driven Approaches to Middleware Applications Development June 17, 2003 Jeff Gray,
A Generative and Model Driven Framework for Automated Software Product Generation Wei Zhao Advisor: Dr. Barrett Bryant Computer and Information Sciences.
Model-Driven Program Transformation of a Large Avionics Application Jeff Gray, Jing Zhang, Yuehua Lin, Suman Roychoudhury, Hui Wu, Rajesh Sudarsan, Aniruddha.
Sumant Tambe, et. al LEESA DSPD 2008 An Embedded Declarative Language for Hierarchical Object Structure Traversal Sumant Tambe* Aniruddha Gokhale Vanderbilt.
Institute for Software Integrated Systems Vanderbilt University Constraint-Based Embedded Program Composition PI: Ted Bapty Sandeep Neema, Andy Gokhale,
Things and Relations - Examples Things Relationships Structural Behavioral Grouping Annotational Dependency Association Generalization Realization Class,
August 20, 2002 RTCCM Meeting Agenda & Overview of RTCCM Nanbor Wang Department of Computer Science Washington University in St. Louis
Session 2: AspectJ Mark Stobbe September 13,
1. 2 Object-Oriented Concept Class & Object Object-Oriented Characteristics How does it work? Relationships Between Classes Development Tools Advantage.
Generating a Generator Jeff Gray University of Alabama at Birmingham Department of Computer and Information Sciences gray (at) cis.uab.edu
Institute for Software Integrated Systems Vanderbilt University Constraint-Based Embedded Program Composition Institute for Software Integrated Systems.
Abstract Factory Design Pattern making abstract things.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Using Aspects to Support the Software Process: XP over Eclipse Oren Mishali and Shmuel Katz Technion, Israel Institute of Technology.
Constraint-Based Embedded Program Composition IMPACT Rapid Construction of Efficient Embedded Systems. Multiple System Variants for Little Cost. Rapid,
Generative Programming. Automated Assembly Lines.
Design Rules for Increasing Modularity with CaesarJ Carlos Eduardo Pontual Advisor: Paulo Borba 17/06/2010.
Dr. Douglas C. Schmidt, Dr. Aniruddha S. Gokhale, Bala Natarajan, Jeff Parsons, Tao Lu, Boris Kolpackov, Krishnakumar Balasubramanian, Arvind Krishna,
Architectural pattern: Interceptor Source: POSA II pp 109 – 140POSA II Environment: developing frameworks that can be extended transparently Recurring.
CoSMIC: Tool-suite for Weaving Deployment & Configuration Crosscutting Concerns of CCM-based DRE Systems Dr. Aniruddha Gokhale (PI) Institute for Software.
OOPSLA workshop on Domain-Specific Visual Languages 1 Framework for Domain-Specific Visual Languages Juha-Pekka.
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
Aspect-Oriented Action Semantics Descriptions Luis Menezes University of Pernambuco
A Generative Approach to Model Interpreter Evolution Jing Zhang, Jeff Gray, and Yuehua Lin {zhangj, gray, cis.uab.edu Dept. of Computer & Information.
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,
Aniruddha Gokhale and Jeff Gray Institute for Software Integrated Systems (ISIS) Vanderbilt University Software Composition and Modeling Laboratory University.
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
Applying Translucid Contracts for Modular Reasoning about Aspect and Object Oriented Events Mehdi Bagherzadeh Gary T. Leavens Robert Dyer Foundations of.
Aspect Oriented Development Alex Beatty.  Purpose  Cross-cutting Concerns  Join Points, Pointcuts, and Advices  Weaving  Invasive vs. Non-Invasive.
AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil
OOPSLA workshop on Domain-Specific Visual Languages 1 Juha-Pekka Tolvanen, Steven Kelly, Jeff Gray, Kalle Lyytinen.
Design Patterns: Elements of Reusable Object- Orientated Software Gamma, Helm, Johnson, Vlissides Presented By: David Williams.
Inspired by the Oulipu. The 3 Tenets of OO Encapsulation Polymorphism Inheritance.
Institute for Software Integrated Systems Vanderbilt University Constraint-Based Embedded Program Composition PI: Ted Bapty Sandeep Neema, Jeff Gray Institute.
Towards A QoS Modeling and Modularization Framework for Component-based Systems Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale Amogh Kavimandan (Presenter)
AOP/cross-cutting What is an aspect?. An aspect is a modular unit that cross-cuts other modular units. What means cross-cutting? Apply AOP to AOP. Tease.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Class Diagrams Revisited. Parameterized Classes Parameterized Classes - are used to represent relationships between templates.
 Description of Inheritance  Base Class Object  Subclass, Subtype, and Substitutability  Forms of Inheritance  Modifiers and Inheritance  The Benefits.
Abstract Factory Pattern Jiaxin Wang CSPP Winter 2010.
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.
CoSMIC: An MDA Tool Suite for Distributed Real-time and Embedded Systems Tao Lu, Aniruddha Gokhale, Emre Turkay, Balachandran Natarajan, Jeff Parsons,
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale
Demeter Aspects Who We Are Aspectual Collaborations
Packages, Interfaces & Exception Handling
AspectJ Syntax Basics.
Tools for Composing and Deploying Grid Middleware Web Services
Refactoring the Aspectizable Interfaces: An Empirical Assessment
Presentation transcript:

Generating Aspect Code from Models OOPSLA 2002 Workshop on Generative Techniques in the Context of the MDA November 5 th, 2002 Seattle, WA This work is supported by the DARPA IXO, under the Program Composition for Embedded Systems (PCES) program, Contract Number: F C Jeff Gray, 2 Ted Bapty, 2 Sandeep Neema, 2 Aniruddha Gokhale, 2 Balachandran Natarajan 1 University of Alabama at Birmingham (UAB) 2 Vanderbilt University/ISIS

An argument for generating aspect code from models Often, generators have knowledge of pre-existing libraries of components  Generation of “glue code” (high reuse) vs. generation of whole system (little reuse) If not originally templatized, component library can become closed to modification during generation  Granularity of reuse at the interface level; internal implementation of method bodies not open for change Customizing the component to monitor/adapt to QoS requirements specified in the model may not be possible An AOP approach could offer some benefit, whereby the points of customization are weaved into library components

Concretizing aspects AspectJ Component LibraryAspect Library Generated Concrete Aspects

Component modeling in GME

Two levels of weaving Weapon Release Sensor LocDisplay Compute Position Processor #1 Eager UpdateMap Eager Lazy bit1 bit1 Structural ProcessingCompound GatesPerBit Aspect Code Generation Processor #2 Aspect Model Weaving Aspect Code Weaving

Abstract Component public abstract class Component{ public abstract void call_back(); public abstract int get_data(); public abstract void init(); public abstract void data_retrieve(); public abstract void compute(); public abstract void notify_availability(); protected int _data; }

Stubbed LocDisplay library component public class LocDisplay extends Component{ public void call_back(){ System.out.println("This was LocDisplay.call_back"); }; public int get_data() { return _data; }; public void init() { }; public void data_retrieve() { System.out.println("This is LocDisplay.data_retrieve!"); UpdateMap map = new UpdateMap(); map.get_data(); }; public void compute() { System.out.println("This is LocDisplay.compute!"); }; public void notify_availability() { System.out.println("This is LocDisplay.notify_availability!");}; }

Lazy abstract library aspect abstract aspect Lazy { abstract pointcut call_back(Component c); abstract pointcut get_data(Component c); after(Component c): call_back(c) { System.out.println("after:call_back (Lazy)!"); c.notify_availability(); } before(Component c): get_data(c) { System.out.println("before:get_data (Lazy)!"); c.data_retrieve(); c.compute(); } }

Generated code for concrete aspect aspect LocDisplayLazy extends Lazy { pointcut call_back(Component c) : this(c) && executions(void LocDisplay.call_back(..)); pointcut get_data(Component c) : this(c) && executions(int LocDisplay.get_data(..)); }