is kept for historic reasons and will be retired soon.
For ongoing activities please visit
[Main Page]


Revision as of 16:54, 14 November 2010 by Carol (Talk | contribs)

Main Page | Recent changes | View source | Page history | Log in / create account |

Printable version | Disclaimers | Privacy policy | Current revision

Table of contents

I don't know anything about AOSD, can you explain it succinctly?

Adrian Colyer has made this attempt to explain AOSD without resorting to specialized terminology.

Isn't AOSD/AOP just AspectJ and isn't that just a new programming language?

Why should I develop using aspects?

How should I introduce AOSD into my company?

What are the major commercial aspect frameworks?

See Tools.

Are there any success stories of large projects that have used an aspect-oriented approach?

Three open source projects that are using AOP in a large scale manner are:

Other open source projects using AOP include:

  • Tapestry
  • Contract4J
  • Jakarta Cactus
  • Objectweb Cooperative Open Workflow
  • Objectweb Java Open Transaction Manager
  • GridSphere portal framework
  • OpenLogic
  • MySQL Connector/J

Here is one story that has appeared on the AOSD-discuss [Mailing Lists|mailing list]:

We here at have been using AOP as the foundation for our CMS/portal products (SiteVision) since the beginning in 2002. We are now one of the top three vendors in this space in Sweden, and have found that AOP is indeed one of the main reasons for our success. Thanks to AOP we have been able to create vast amounts of functionality with a small number of developers using only a fraction of the time that would have been necessary using other methodologies.

There have been a number of case studies posted to the AspectJ users list and to news sites:

There are also other case studies in print such as "Real-world AOP Tool Simplifies OO Development" in the September 2001 issue of Java Report, by Rich Price.

Another great source of case studies is the industry track of the AOSD conference. See these summaries from 2006 and 2005. See also the full conference archives.

Don't aspects break the encapsulation that is assured by object-oriented and procedural programming?

Yes they do. When coding an aspect, the developer must know the places (Join Points) where it will be used i.e. know the internal details.

However improvements can be made in AOP constructs so as to respect encapsulation.

What are the open areas of research in AOSD?

What is the difference between AOSD (Aspect-Oriented Software Development) and AOP (Aspect-Oriented Programming)?

What are orthogonal concerns? Can aspects be used to encapsulate orthogonal concerns only?

Orthogonal concerns are separated from the base program in that the base program is oblivious to the concern's existance. This means that the concern can be added or removed without affecting the behavior of the base program (modulo the removed concern). An example of this is logging. The addition or removal of a logging aspect does not affect the behavior of the program except to add logging functionality. Therefore the logging concern is orthogonal.

Of course, there are other ways that orthogonal concerns may indirectly affect program behavior. These include larger memory footprint, longer runtime, etc. Nonetheless, these concerns are still considered orthogonal.

In practice, many concerns are non-orthogonal and aspect-oriented programming languages have capabilities to encapsulate them as well.

A detailed description of how to edit can be found on the Help:Editing page.


Instant Feedback

Edited by the AOSD Steering Committee.  Maintained by the webmaster