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.

Slides:



Advertisements
Similar presentations
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
Advertisements

Gantt and PERT charts. Representing and Scheduling Project Plans Gantt Charts Useful for depicting simple projects or parts of large projects Show start.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Aspect Oriented Programming - AspectJ Radhika Rajput.
UML Class Diagram. UML Class Diagrams2 Agenda What is a Class Diagram? Essential Elements of a UML Class Diagram Tips.
The Blackboard Project EDIT 652 Fall 2005 Dr. Mike Uttendorfer.
UML Class Diagram and Packages Written by Zvika Gutterman Adam Carmi.
Cpeg421-08S/final-review1 Course Review Tom St. John.
Chapter 8 . Sequence Control
Role Analysis Victor Kunkac, Patric Lam, Martin Rinard Laboratory for Computer Science, MIT Presentation by George Caragea CMSC631,
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Gantt and PERT charts. Representing and Scheduling Project Plans Gantt Charts Useful for depicting simple projects or parts of large projects Show start.
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
CMPT 275 Software Engineering
CPSC 388 – Compiler Design and Construction Lecture: MWF 11:00am-12:20pm, Room 106 Colton.
What's New in MasteringEngineering 1.Learning Catalytics Gradebook Sync 2.Mobile Support and Equation Editor Enhancements 3.New Simple Editor.
1 Aspects and Modularity: The Hope and the Challenge Jonathan Aldrich Institute for Software Research International School of Computer Science Carnegie.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Catalysis/Testing Catalysis Objects, components, and Frameworks with UML.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Demeter Interfaces: AP without Surprises Prof. Karl Lieberherr and Therapon Skotiniotis, Jeffrey Palm.
1 Abstraction  Identify important aspects and ignore the details  Permeates software development programming languages are abstractions built on hardware.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, System and Software Engineering.
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.
Validated Model Transformation Tihamér Levendovszky Budapest University of Technology and Economics Department of Automation and Applied Informatics Applied.
Aspect Oriented Programming Gülşah KARADUMAN.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
Databases : Data Modeling 2007, Fall Pusan National University Ki-Joune Li.
CS551 - Lecture 8 1 CS551 Modelling with Objects (Chap. 3 of UML) Yugi Lee STB #555 (816)
Design Rules for Increasing Modularity with CaesarJ Carlos Eduardo Pontual Advisor: Paulo Borba 17/06/2010.
Not only mark-up languages! There are other many other grammar formalisms and tools than XML. Some of them standardized (ASN). Even XML does not always.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Catalysis/Testing Catalysis Objects, components, and Frameworks with UML.
1 CS 201 Compiler Construction Introduction. 2 Instructor Information Rajiv Gupta Office: WCH Room Tel: (951) Office.
Lecture 1: UML Class Diagram September 12, UML Class Diagrams2 What is a Class Diagram? A class diagram describes the types of objects in the system.
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
IDENTIFYING SEMANTIC DIFFERENCES IN ASPECTJ PROGRAMS Martin Görg and Jianjun Zhao Computer Science Department, Shanghai Jiao Tong University.
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
90-723: Data Structures and Algorithms for Information Processing Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 1: Introduction Data.
. Now try this one Challenge:  Is this even possible?  One gets stuck….
DESIGN OF SOFTWARE ARCHITECTURE
AOSD'04, Lancaster, UK 1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech) Shigeru Chiba (Tokyo Tech) Michiaki Tatsubori.
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.
UBC software modularity group 1/14/02 UCSD1 Discussion with Kiczales at UBC Ontology of AOP Ontology is the study of what there is, an inventory of what.
AO Mechanisms in Demeter1 Discussion with Gregor Kiczales at UBC Ontology of AOP Ontology is the study of what there is, an inventory of what exists. An.
PPL 2004, Gamagori, AICHI1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech, Japan) Shigeru Chiba (Tokyo Tech, Japan)
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
CS551 - Lecture 6 1 CS551 Modelling with Objects (Chap. 3 of UML) Yugi Lee STB #555 (816)
Elluminate Creating a meeting in Blackboard. Select You Module Select an appropriate space to create the meeting Click “EDIT VIEW”
Graph-Based Operational Semantics
Discussion with Gregor Kiczales at UBC
Demeter Aspects Who We Are Aspectual Collaborations
UNO Static Analysis With a Simple Twist.
UML Class Diagram.
Multiple Aspect Modeling of the Synchronous Language Signal
CS 201 Compiler Construction
Objects and Aspects: What we’ve seen so far
Chapter 9: Graphs Basic Concepts
Cutting Planes and Cross Sections
SYNTAX DIRECTED DEFINITION
Objects, components, and Frameworks with UML
Aspect Oriented Software Design
Chapter 9: Graphs Basic Concepts
Code ….( Please write the code number of your paper here)
Presentation transcript:

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 an aspect apart into three units: ideal graph, labels on nodes and edges of ideal graph, application to concrete graph using connectors: specifies cross-cutting

Example: ACs Ideal graph: participant graph Labels on nodes and edges: participant code Concrete graph: participant graph or application class graph Connectors specify cross-cutting

Theory of cross cutting Model programs as graphs (e.g. class diagrams, abstract syntax trees, etc.) Aspects: model as graph editing instructions modeled with respect to an ideal graph. Graph editing: add new nodes and edges and add to node labels and edge labels

Specifying cross-cutting Uniform: node to nodes, edge to edges: simple weaving –explicit: {A,B,C,D} –succinct: Nodes(Graph(“From A to D”)) Non-uniform: edge to multiple edges: code is different from target edge to target edge

Open-Closed Principle apply to aspects? A satisfactory modular decomposition technique should support modules that are both open and closed. A module is open if it is available for extension A module is closed if it is available for use by other modules

Static model with behavior Scheduler CourseSession sessions * course * Instructor rating: Grade free(Date,Date) instructors * instructor 0..1 sessions*start: Date end: Date confirmed: Boolean overlaps( Session) Invariant (business rule): inv Instructor::qualifiedFor->includesAll(sessions.course) inv Session:: confirmed ==> instructor <> null and end = start+course.duration Static model courses duration: Duration ** qualifiedFor qualifiedInstructors

Minimal specification Action Scheduler::change_dates (Session s, Date d) pre: s.start > now and (1) s.course<>nil and (2) s.course.duration: Days (3) post: s.start = d (4) s.end = d + course.duration (5)

Minimal specification Action Scheduler::change_dates (Session s, Date d) pre: s.start > now and (1) /pre s.course<>nil and (2) s.course.duration: Days (3) post: s.start = d (4) /post s.end = d + course.duration (5)

Which parts are needed? 1, 4