Aspect-orientation is an increasingly popular software development technique. Its growing maturity makes it worth contemplation from several perspectives.
We invite you to participate in a one-day symposium on aspect-oriented software development. Our speakers are authorities on various facets of this exciting topic; some will promote it, while others will represent skeptical viewpoints. We expect a lively, informative, and even provocative day. The schedule is
| Now that the event is over, the talks and additional information are available from this site. | |
| 12:15-1:15 | Unifying Aspect-Oriented and Object-Oriented Language Design Kevin Sullivan, University of Virginia |
| 1:30-2:30 | Aspect Languages: AspectJ and Beyond Mario Südholt, INRIA and École des Mines de Nantes |
| 2:45-3:45 | Are Aspects New? Daniel Jackson, MIT |
| 4:00-5:00 | Wrappers, Aspects, Quantification and Events Robert Filman, RIACS/NASA Ames |
Registration is free of cost, but limited.
To request a place, please email Lauren Relyea atWe will respond within a day.ldr at cs.brown.edu, with the subject-line "Registration Request for Brown-NEU Aspects Day". Your message needs to contain just two lines, one prefixed with "Name:" and the other with "Affiliation(s):". If you have an inquiry, please address it to the organizers rather than to Lauren.
If this event interests you, you may want to consider two others. The annual AOSD conference will take place in Chicago the following week. AOSD provides a much wider representation of the aspects world, including industrial users, and features a broader range of activities (including workshops, tutorials, demos, etc). If you are interested more generally in programming languages and systems issues in New England, check out NEPLS, which meets three times a year.
Shriram Krishnamurthi (Brown University) and Karl Lieberherr (Northeastern University)
We thank BBN Technologies for their generous sponsorship!
I will present the dissertation work of my PhD student, Hridesh Rajan, on the design, implementation, and early evaluation of a programming language design that unifies aspects in the style of AspectJ and traditional object-oriented classes. The problem we address is that current aspect language designs and methods are unduly complicated and contrained by an unnecessary distinction between class and aspect modules. We present a unification of aspect- and object-oriented approaches based on an extension of the traditional class. The unified model does not compromise the expressiveness of the state-of-the-art aspect languages; it improves the conceptual integrity of aspect language designs; and it significantly improves module compositionality, enabling the use of aspect mechanisms to separate integration concerns and higher order concerns effectively. I will describe the design and implementation of Eos-U, an AspectJ-like language based on C# that supports our unified class and aspect construct as the basic unit of modularity. The underpinnings of Eos include support for aspect instantiation under program control, instance-level advising, advising as a generalized alternative to object-oriented explicit and implicit invocation and overriding, and provision of a separate join-point-method binding construct.
Aspect-Oriented Programming promises means for the modularization of so-called crosscutting concerns of large-scale applications. Central to this endeavor is the definition of aspect languages whose main constructs are pointcuts (which define where to an aspect modifies an application) and advices (which define the modification itself). Currently, most aspect languages employ the abstractions similar to those of AspectJ, the best-known aspect-oriented language. However, recently a number of different, partially more expressive aspect languages have been put forward.
In this talk, we first introduce the principal characteristics of aspect languages from a language design point of view. In a second part, we motivate why extensions of the AspectJ model are useful in the context of different crosscutting concerns of several large-scale applications, including e-commerce applications, system-level applications and concerns involving the Linux kernel. Finally, we survey a set of proposals for language constructs (and corresponding implementation mechanisms) for such crosscutting concerns.
Everyone knows that the problem that aspect-oriented programming (AOP) addresses is an old oneindeed, perhaps the fundamental problem of software development. Fewer people know about some of the interesting attempts at aspect-like modularity that preceded AOP. I'll explain some of them, and speculate on why there weren't successful (and maybe on whether AOP will be).
For many applications, most code is not devoted to implementing the primary input-output functionality, but instead addresses other concerns, such as reliability, availability, responsiveness, performance, security, and manageability. Conventional programming practice requires the programmer to keep all these other "ilities" in mind while coding and to explicitly invoke behavior at exactly the right places to achieve them.
Aspect-Oriented Programming (AOP) is an emerging technology for allowing the separate specification and coding of multiple concerns, while nevertheless providing mechanisms to automatically meld these separate expressions into working programs.
This talk traces my increased understanding of the possibilities for Aspect-Oriented System Development (AOSD). I begin by describing our past work on the Object Infrastructure Framework (OIF). OIF is a distributed object technology that implements separate concerns as dynamic wrappers on object components. Interesting elements of OIF include its mechanisms for application and aspect communication, its dynamic nature, and its language for expressing where aspects apply to base code.
OIF was an early AOP system. The second part of the talk examines the characteristics of AOP and AOSD, leading to quantification/obliviousness observation and focusing attention on the join point models of aspect systems.
In the concluding part of the talk I describe our current work on Trinity, a ``most general join point'' system for AOP.