Summary of the AOSD 2004 conference.

advertisement
AOSD 2004
A short and subjective summary
Program
•
•
•
•
•
•
•
•
•
FOAL workshop (+ several others)
BOF sessions
3 Invited talks
15 papers (not all attended)
Panel
Industry paper
Demos
Student Extravaganza - posters
(Tutorials)
aosd 2004
2
FOAL workshop
Diagnosis of Harmful Aspects Using Regression
Verification, Shmuel Katz
• Aspect may invalidate desirable properties.
• “At least do no harm”.
• various techniques proposed:
 regression testing and its limitations
 inductive proofs
 “regression aspect validation” - each weaving of an
aspect triggers automatic generation of verification
tasks that are automatically checked.
aosd 2004
3
FOAL workshop
Open Modules: A Proposal for Modular Reasoning in
Aspect-Oriented Programming, Jonathan Aldrich
• TinyAspects - a tiny formal model for AOP, use structured
operational semantics and syntax directed typing rules.
• Open Modules - module system for TinyAspects.
 allow modular reasoning.
 external aspects may advice functon calls expicitly
exposed in module’s interface.
 use bisimulation to prove an encapsulation property:
clients are unaffected by changes to a module if these
preserve semantics of functions and pointcuts in the
interface.
 Nice examples.
aosd 2004
4
FOAL workshop
Formal AOP: Opportunities Abound (Invited Talk)
James Riely
presentation: riely.pdf
aosd 2004
5
FOAL workshop
Call and Execution Semantics in AspectJ
Ohad Barzilay, Yishai A. Feldman, Shmuel
Tyszberowicz, Amiram Yehudai
• The feedback we got
aosd 2004
6
FOAL workshop
Open mike session
• Aspect Bench - a new project : toolkit, dynamic metrics,
compiler, based on Polyglot + Soot . Oxford + McGill +
Aarhus.
• Hafed Mili, Quebeq - Characterize separation of
concern.
• Lämmel - evolution of rule based systems.
aosd 2004
7
FOAL workshop
Using Program Slicing to Analyze Aspect Oriented
Composition
Davide Balzarotti, Mattia Monga
aosd 2004
8
FOAL workshop
Aspect Reasoning by Reduction to Implicit Invocation
Jia Xu, Hridesh Rajan, Kevin Sullivan
• Implicit Invocation is a mechanism how invocation
relations are represented as names relation.
 A can invoke B : A names B or B can register at A to be
invoked implictly (?)
 II is also called publish-subscribe system
• The paper shows a reduction from AOP to II
aosd 2004
9
FOAL workshop
On the Horizontal Dimension of Software Architecture in
Formal Specifications of Reactive Systems
Mika Katara, Reino Kurki-Suonio, Tommi Mikkonen
• execution of a system - sequence of states
• vertical slicing - subsequence.
• horizontal slicing - for separation of concerns.
• Paper discusses this in the context of DisCo.
• DisCo - a formal spec method for reactive systems.
aosd 2004
10
FOAL workshop
Exploring Aspects in the Context of Reactive Systems
Karine Altisen, Florence Maraninchi, David Stauch
• Attempt to discuss the notion of aspects as an abstract,
language independent concept.
• Narrows application domain to reactive systems.
aosd 2004
11
Invited talks
• Aspects: from promise to reality
Daniel Sabbah, Vice President, IBM Software
Group Strategy and Technology
• Crosscutting requirements
Bashar Nuseibeh
• What are the key issues for commercial AOP use:
how does AspectWerkz address them?
Jonas Bonér
aosd 2004
12
Invited talks
Aspects: from promise to reality
Daniel Sabbah, Vice President, IBM Software
Group Strategy and Technology
• IBM is serious about aspects
• Important use - middleware
• past project would have less errors with AOP
• Investing in AspectJ, AJDT, CME (concern
manipulation env), HyperProbe (based on HyperJ)
• contribute to open source efforts, (eg. Apache)
then inject into own commercial products,
• presentation: AOSD-FromPromiseToReality.ppt
aosd 2004
13
Invited talks
Crosscutting requirements Bashar Nuseibeh
•
•
•
•
•
•
•
•
The importance of Requirement Engineering.
Dicovering goals and expectations of stakeholders.
A requirement  a concern
Early aspects: crosscutting concerns in req. and design,
with broad effect on others or on architectural components.
Viewpoints, and the Viewpoint framework for orgnaising SE
knowledge.
Inconsistency is expected in req., humans can cope with
inconsistency.
Relating requirements and architecture - the twin peaks.
presentation: AOSD-04-Keynote-Nuseibeh.pdf
aosd 2004
14
Invited talks
What are the key issues for commercial AOP use:
how does AspectWerkz address them?
Jonas Bonér
• AspectWerkz overview
 what is AspectWerkz?
 how does it compare with AspectJ?
• Design goals and decisions
 what are the key issues for commercial AOP?
 how does AspectWerkz solve them?
• Conclusion
 future, links, questions
aosd 2004
• presentation: InvitedTalkAOSD2004.ppt
15
Languages I
Remote pointcut: a language construct for
distributed AOP , Muga Nishizawa, Shigeru Chiba,
Michiaki Tatsubori
• example - testing code for distributed application
• use aspects
 requires 3 submodules, running on different hosts.
 use Java RMI
• Solution: A dist. AOP language called DJcutter
 remote aspects: aspect runs on different host then the
join point.
 remote inter-type declaration
• Claim from audience: same
aosd 2004 as in JAC.
16
Languages I
Association aspects, Kouhei Sakurai, Hidehiko
Masuhara, Naoyasu Ubayashi, Saeko Matsuura,
Seiichi Komiya
• extend per-object aspects to allow to associate
aspect instance to group of objects.
• and specify aspect instances as execution contect
of advice.
• motivating examples:
 Integrated systems (eg. editor + compiler) [Sullivan].
 bit class + aspect to force equality of 2 bit objects.
• contrast with EOS (AOP language [Sullivan et al]).
aosd 2004
17
Weaving
Advice weaving in AspectJ,
Erik Hilsdale, Jim Hugunin
•
•
•
•
•
•
•
•
•
Join point shadows - static, code segment.
compiler inserts code at shadows to modify behavior.
advices are represented by shadow munger objects.
shadow munger trajsforms jp shadows matched by its jp
designator (JPD).
matching JPDs against jp shadows - not fully static.
static matching may yield 1. Yes, 2. No, 3. Maybe.
Maybe: needs run time check. Called residue.
Performance data.
AspectJ 2 will be (even) more efficient.
aosd 2004
18
Weaving
A technique for constructing aspect weavers using a
program transformation engine
Jeff Gray, Suman Roychoudhury
• Towards aspect weaving in legacy languages.
• Using the program transformation system DMS to
weave into Object Pascal (Delphi).
aosd 2004
19
Weaving
Morphing aspects: incompletely woven aspects and
continuous weaving, Stefan Hanenberg, Robert
Hirschfeld, Rainer Unland
•
•
•
•
•
•
•
Example: trace msg calls starting at some call.
sometimes instrument jp that will never be needed.
Idea: instrument late.
Aspect weave themselves; drop shadows at some point.
Initial jp shadows; dependent jp shadows
morphing: compute and instrument next reachable jp.
implementation: AspectS (smalltalk) + squeak VM.
aosd 2004
20
Application I
• Large-scale AOSD for middleware
Adrian Colyer, Andrew Clement
• Building adaptive distributed applications with
middleware and aspects
Gary Duzan, Joseph Loyall, Richard Schantz,
Richard Shapiro, John Zinky
• The COMQUAD component model: enabling
dynamic selection of implementations by weaving
non-functional aspects
Steffen Göbel, Christoph Pohl, Simone Röttger,
Steffen Zschaler
aosd 2004
21
Tools and Implementation
Virtual machine support for dynamic join points
Christoph Bockisch, Michael Haupt, Mira Mezini,
Klaus Ostermann
• Two kinds of dynamic crosscuts:
• statically bound dynamic crosscuts – can determine
statically the jp shadows (eg cflow).
• unbound dynamic crosscuts – can’t be restricted in
reasonable way statically (eg counting invocations of
methods that are specificed at run time).
• For unbound, weave at run time.
• Extend VM to support it (steamloom extends IBM Jikes
VM).
aosd 2004
22
Tools and Implementation
Untangling: a slice extraction refactoring
Ran Ettinger, Mathieu Verbaere
• AOSD + Refactoring + slicing
• program slice: statements that affect a value of a given
variable (go back in the code).
• Exracting a slice as a way of untangling (just show
untangled version?).
• Extract slice as method OR object OR aspect.
• Example – count chars, words, lines.
• Ref to a paper on refactoring aspects by Hanenberg
• presentation: ExtractSlice.pdf
aosd 2004
23
Tools and Implementation
Josh: an open AspectJ-like language
Shigeru Chiba, Kiyoshi Nakagawa
• propose richer “pointcut designators”
• Metaprogramming techniques: code to “compute”
the pointcuts.
• Language Josh:
 not full AspectJ + syntax for pointcut designators
• compile time reflection library called Javaassist.
 perl like syntax ??
aosd 2004
24
Application II
• Deriving security requirements from crosscutting
threat descriptions
Charles B. Haley, Robin C. Laney, Bashar
Nuseibeh
• Using AspectJ to separate concerns in parallel
scientific Java code
Bruno Harbulot, John R. Gurd
aosd 2004
25
Languages II
Hybrid aspects for weaving object-oriented
functionality and rule-based knowledge
Maja D'Hondt, Viviane Jonckers
• Combining rule based reasoning with OO programming.
• Integrating these using aspects. Survey of existing hybrid
systems – one language aware of other.
• hybrid aspects – for 2 base languages
 rule based jp
 advice – mixture of both
• OReA – a pointcut language extends AspectS, based on
SOUL.
• Also tried an approach based on HyperJ
aosd 2004
26
Languages II
Composition, reuse and interaction analysis of
stateful aspects
Rémi Douence, Pascal Fradet, Mario Südholt
aosd 2004
27
Panel
• commercial adoption goes well; still a long way; not too
many people can teach it
• EJB taught separation of concern, but did not succeed.
AOP may fill this vaccum.
• potential to simplify prog model for middleware
• works well with agile – don’t plan everything ahead, so
need to add behavior late, AOP can do it.
• AOP change way you think.
• IP problem? xerox has patent of AOP but gave AspectJ to
eclypse
• Framework developers now use AOP – good way to
introduce to the developers. (eg. JBoss).
aosd 2004
28
Panel (cont.)
• still hard to sell to managers.
• In IBM injecting AOP is already “pull” not “push”
• encourage to moce slowly to avoid (delay?)
disaster
• Java jsr 125 (meta dats, tags) should be used by
AspectJ (AspectWerkz does).
• Adoptuion of AOP first, AOSD later – as in eg. OO
• methodology vs. hacker language
• AOP language on top of OOP language may ne a
problem (as C++ on top of C).
• When to standardize?
aosd 2004
29
Industry paper
Object-to-Aspect Refactorings For Feature
Extraction, Monteiro and Fernandes
• Manual AO refactoring
• Which code transf are useful?
• Like fowler’s catalog
• case study – WorkSco
• aspect mining – feedback from team + inspect
code + unit tests.
• extract feature into aspect + refine by lower level.
aosd 2004
30
Demos http://aosd.net/2004/demos/index.php
• D1: An AspectJ-enabled Eclipse Runtime Engine
Martin Lippert, University of Hamburg presentation
• D2: JQuery: Finding your way through tangled code
Andrew Eisenberg, Kris De Volder, UBC
http://www.cs.ubc.ca/labs/spl/projects/jquery/
• D3: JAsCo&WSML: AOP for Component-Based Software
Engineering applied to a Web Services Management Layer,
Wim Vanderperren, Davy Suvée, Bart Verheecke, María
Agustina Cibrán, Vrije Universiteit Brussel
http://aosd.net/2004/demos/d3.php
aosd 2004
31
Demos (2)
• D4: The Concern Manipulation Environment
Matthew Chapman, William Chung, Andrew Clement,
Adrian Colyer, William Harrison, Helen Hawkins, Vincent
Kruskal, Harold Ossher, Tova Roth, Stanley M. Sutton, Jr.,
Peri Tarr, Sian Whiting
IBM T.J. Watson + IBM Hursley Park
http://www.research.ibm.com/cme/
http://www.eclipse.org/cme/
• D5: Compose*: Language-independent Aspects in
.NET
Lodewijk Bergmans, Istvan Nagy, Gurcan Gulesir,
Mehmet Aksit, University of Twente
http://aosd.net/2004/demos/d5.php
aosd 2004
32
Demos (3)
• D6: AspectJ Tools - new and noteworthy,
Mik Kersten, George Harley, Andy Clement,
UBC + IBM
http://kerstens.org/mik/publications/aspectjaosd2004.ppt
• D7: aTrack: an enterprise bug tracking system
using AOP,
Ron Bodkin ,Dion Almaer, Ramnivas Laddad
https://atrack.dev.java.net/
aosd 2004
33
Student Extravaganza
posters
• See the Student Extravaganza page for poster and
presentation downloads.
aosd 2004
34
Others ??
•
•
•
•
BOF on Eclipse
BOF on commercialization
Other workshops
Tutorials
aosd 2004
35
Download