Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.

Slides:



Advertisements
Similar presentations
Chapter 2: Software Process
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Architecture Representation
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
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.
1 Shyness in Programming Karl Lieberherr Demeter Research Group Northeastern University Boston.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Modularization.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Introduction To System Analysis and Design
1 CMSC 132: Object-Oriented Programming II Software Development IV Department of Computer Science University of Maryland, College Park.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
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
1 Aspects and Modularity: The Hope and the Challenge Jonathan Aldrich Institute for Software Research International School of Computer Science Carnegie.
Design Patterns.
Demeter Interfaces: AP without Surprises Prof. Karl Lieberherr and Therapon Skotiniotis, Jeffrey Palm.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Integrating Independent Components with On-Demand Remodularization based on OOPSLA 2002 paper by Mira Mezini Klaus Ostermann Prepared by Karl Lieberherr.
Introduction To System Analysis and Design
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.
Expression evaluation E : S | C. S = int. C = Op E E. Op : A | M. A = “+”. M = “*”.
Aspect Oriented Programming Gülşah KARADUMAN.
Generative Programming. Automated Assembly Lines.
Slides for Gregor Kiczales Two versions –short version: Crosscutting capabilities for Java and AspectJ through DJ (4 viewgraphs only) –long version: Controlling.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
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.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
CCC: An Aspect-Oriented Intermediate Language on.Net Platform Yingfei Xiong and Feng Wan University of Electronic Science and Technology of China, China.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
AOP Foundations Doug Orleans Karl Lieberherr. What we did earlier AOP languages have the following main elements: –a join point model (JPM) wrt base PL.
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.
Course Progress Lecture 1 –Java data binding: Basket example: UML class diagram -> class dictionary without tokens-> language design -> class dictionary.
AOP issues. Class/Aspect Table Loose Coupling Classes/Aspects When we evolve a class, how many aspects do we have to change? When we evolve an aspect,
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Checking LoD in AspectJ Show the idea, not the details. How can we precisely express it in a programming language?
AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil
Translating Traversals to AspectJ. Outline Motivation Demeter Process for Traversals AspectJ Translation Process.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
1 Unified Modeling Language, Version 2.0 Chapter 2.
An Empirical Study of the Demeter System Pengcheng Wu and Mitchell Wand Northeastern University.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
DJ: traversal-visitor-style programming in Java Josh Marshall/ Doug Orleans Want to add more on traversal through collections and Aspectual Components.
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
Applying Aspect-Orientation in Designing Security Systems Shu Gao Florida International University Center for Advanced Distributed Systems Engineering.
IWFST'2005, Shanghai Testing Aspect-Oriented Programs: Challenges and Opportunities Jianjun Zhao Department of Computer Science and Engineering Shanghai.
3 Project Objectives Aspectual Collaborations (AC) for the Connection Aspect –Metric: Does the restructuring of the UAV code with AC reduce the tangling.
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.
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
UML (Unified Modeling Language)
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
Discussion with Gregor Kiczales at UBC
Demeter Aspects Who We Are Aspectual Collaborations
Unified Modeling Language
Structuring Adaptive Applications using AspectJ and AOM
Better Separation of Crosscutting Concerns with Aspectual Components
LoD in AspectJ Karl Lieberherr.
AOSD and the Law of Demeter: Shyness in Programming
AspectAda Aspect-Oriented Programming for Ada95
Chenchen Xi CNC Supervisor: Prof. John R. Gurd
Aspect Oriented Software Design
Presentation transcript:

Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations  Each aspect has its own formal class graph  Programming with Branches and Bundles  Extending predicate dispatch with aspects and units  Semantics for Elements of AspectJ  Pointcut designators and advice  Adaptive Programming  Freeing the programmer from the details of a graph aspect Who Are We Karl Lieberherr David H. Lorenz Doug Orleans Johan Ovlinger Therapon Skotiniotis Mitchell Wand Pengcheng Wu College of Computer Science Northeastern University Boston, MA Write and evolve large, complex applications quickly Separation Into crosscutting concerns Interaction Between crosscutting concerns Composition Of crosscutting concerns

Aspectual Collaborations * Aspectual Collaborations (AC) capture both structural and behavioral concerns in a single unit. AC are modular building blocks that can be composed to construct AC with complex sharing between the constituent collaborations. Composition is used to attach aspectual methods, provide deferred features, and control the interface of the resulting collaboration. Collaborations with differing structural assumptions can be composed by reconciling any differences in the composition declaration, greatly increasing the scope for reuse of concerns. AC have been implemented on top of AspectJ, and a separate byte code-rewriting implementation is underway. We apply AC to both real- time embedded applications with BBN and banking applications with UBS. * Supported by the National Science Foundation (NSF) under Grant No. CCR

Branches and Bundles Incremental Programming (branch is basic building block)  Branch has a  condition expressed in terms of a decision point and  body  Decision point = message send  Program = collection of branches organized into bundles.  Each bundle describes one concern.  Branch condition may involve:  run-time type and state of arguments,  message, enclosing branch, global properties. A branch is fundamentally different than a procedure or a method: Describes in detail the conditions under which it will be applied. A procedure has no control over when it will be applied and a method has a little control. Predicate dispatching uses an arbitrary predicate expression over the message arguments to specify when a method is executed. By making the "when to execute" part of a behavioral unit definition more flexible, we can better separate behavioral concerns that would otherwise need to be tangled together in an explicit dispatch expression. We are developing an extension to predicate dispatching that can lead to separation of cross-cutting behavioral concerns, by allowing methods to specify that they modify other methods (around methods), as well as by allowing their predicates to take into account other parts of a message send context such as the control flow history. These extensions build a bridge between method dispatch research and aspect-oriented programming research, by unifying the mechanisms underlying both. A common feature of the predicate dispatch work and the aspectual collaborations work is that they basically add around methods to achieve aspectual capability.

Formal Semantics for AOP* In order to better understand and precisely specify the mechanisms for modularizing cross-cutting concerns, we are building up a set of formal semantics for aspect-oriented programming. We have started with a denotational semantics for the basic building blocks of dynamic join points and advice as embodied by AspectJ, using a variant of store-passing monads to model computations and modeling advice as procedure transformers. Our goal is to develop a theory of AOP that accounts for other models such as Demeter and HyperJ.The second stage of the project was to design a system that would satisfy the specifications. Adaptive Programming* Adaptive Programming (AP) is a technology that helps to disentangle the structural concern from the behavioral concerns by allowing traversals of composite objects to be specified in a structure-shy way, as traversal strategies. We actively use and improve this technology in the form of DJ, a pure-Java package for constructing traversal strategies dynamically; the AP library, a pure-Java package for parsing and expanding traversal strategies; and DemeterJ, which generates static traversal code from input in the form of Java code extended with traversal strategies. Recently, we developed a simplified, object based semantics for AP. * Supported by DARPA under agreement F C-1694 and NSF under grant CCR