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