Demeter Aspects Who We Are Aspectual Collaborations

Slides:



Advertisements
Similar presentations
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Advertisements

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 Shyness in Programming Karl Lieberherr Demeter Research Group Northeastern University Boston.
Introduction To System Analysis and Design
© Copyright Eliyahu Brutman Programming Techniques Course.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Introduction To System Analysis and design
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Aspect Oriented Programming (AOP) in.NET Brent Krueger 12/20/13.
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.
Extensible Plug-ins for Aspect-Oriented Programming Macneil Shonle*Ankit Shah.
Introduction To System Analysis and Design
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
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.
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.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
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.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
Checking LoD in AspectJ Show the idea, not the details. How can we precisely express it in a programming language?
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.
Object vs Class composition By Marine Ruhamanya. Disciplined Inheritance  Problems with implementation inheritance: Encapsulation Fragile Base Class.
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
Introduction to Aspect- Oriented Programming CS 3360 Gregor Kiczales, et. al. Getting started with AspectJ, CACM, 44(10):59-65, October Spring 2012.
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.
Talk only to your friends that share the same concerns (Law of Demeter for Concerns) Midterm Review February 2004.
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.
Introduction to OOAD and UML
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Principles of Programming & Software Engineering
Visit for more Learning Resources
Main issues: • What do we want to build • How do we write this down
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Object-Oriented Analysis and Design
Chapter 10 Design Patterns.
Systems Analysis and Design With UML 2
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
Discussion with Gregor Kiczales at UBC
Hridesh Rajan, Christoph Bockisch, and Mira Mezini
Aspect-Oriented Programming
Interactions.
Names, Binding, and Scope
ADAPTIVE PROGRAMMING Sezen ERDEM December 2005.
Requirements To Design In This Iteration
Unified Modeling Language
Chapter 20 Object-Oriented Analysis and Design
Analysis models and design models
Software Design Lecture : 14.
Structuring Adaptive Applications using AspectJ and AOM
Better Separation of Crosscutting Concerns with Aspectual Components
LoD in AspectJ Karl Lieberherr.
Aspect-oriented programming
AOSD and the Law of Demeter: Shyness in Programming
Options for Demeter intergration into AspectJ
Programming Languages and Paradigms
AspectAda Aspect-Oriented Programming for Ada95
Aspect Oriented Software Design
Presentation transcript:

Demeter Aspects Who We Are Aspectual Collaborations We study techniques for the emerging area of Aspect-Oriented Programming (AOP) and focus on the following areas: Aspectual Collaborations Each aspect has its own formal class graph Uses graphs of join points in addition to sets of join points Joint work with Mira Mezini Programming with Branches and Bundles Generalizing OOP, AOP and other separation of concerns (SOC) approaches such as composition filters PhD thesis work by Doug Orleans Generalizes predicate dispatch [Ernst et al 98] Semantics for Elements of AspectJ Pointcut designators and advice Joint work with Gregor Kiczales et al. Adaptive Programming Freeing the programmer from the details of a graph aspect, e.g. the UML class graph aspect Who We Are Karl Lieberherr David H. Lorenz Doug Orleans Johan Ovlinger Therapon Skotiniotis Mitchell Wand Pengcheng Wu College of Computer Science Northeastern University, Boston, MA 02115 Supported by DARPA under agreement F33615-00-C-1694 under subcontract from BBN (PCES program) and NSF under grant CCR-0098643.

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.

Branches and Bundles (B&B) A new programming model that unifies OOP, AOP, and other separation of concerns (SOC) mechanisms. Observation: every message send causes a decision point: which behavior (method) to run? in OOP, decision depends on message name and run-time type of receiver multiple dispatch OOP, also depends on run-time types of arguments new behavior for a decision point can only be added with inheritance, by adding a new subtype with overriding methods In AOP, behavior is added separate from subtyping advice in aspects which code to run depends on what aspects are available which pointcuts the join point is in decision can involve control flow context AOP gives more flexible control over decisions = Better SOC. Branches: unify methods and advice each branch has a condition that says when to run like predicate dispatch [Ernst et al 98], the condition can involve: arbitrary expressions over argument values, not just types logical combinations of expressions the condition can also involve other context information control flow history (message name, thread-local and global conditions) message name Method combination mechanisms (e.g. before, after, around) can customize dispatch order and reduce code duplication. Bundles: module mechanism for branches branches are not attached to types or to messages (generic functions)

Formal Semantics for AOP those are part of a branch's condition branches can be organized by concern into bundles bundles can be parameterized for reuse like units [Flatt & Felleisen 98], compound bundles are linked together externally We are developing a simple prototype language called Fred, embedded in Scheme. Conclusion: B&B gives even more flexible control over decisions than AOP which results in even better separation of concerns. 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. E-mail: dem@ccs.neu.edu http://www.ccs.neu.edu/research/demeter