AOP

Aspect Oriented Development by Ivar Jacobson

September 8, 2003

Last week I gave a talk on aspect-oriented software development at an IBM conference on this subject in Yorktown Heights. Last time I was at this IBM facility was in 1984 when I spent a year as a visiting scientist at MIT. IBM then offered me a job doing research in language development (Prolog-based). I was very excited about moving permanently to the US and so was my family. However, I decided to go back to Sweden to complete my thesis and get a Ph.D. If not, I probably wouldn't have founded Objectory, which was acquired by Rational, which in its turn was acquired by IBM. However, the "end" result was almost the same - working for IBM :-). I am now an executive technical consultant of IBM.

I believe that aspect technology will dramatically improve the way software is developed. I have described this technology as 'the missing link' to keep use cases separate all the way from requirements to code and test. I have written several papers on this subject. Right now I am working on a new book on aspects & use cases.

Last week I gave the same talk on Aspects & Use Cases at the Rational User Conference in Orlando. It was a very well organized conference - a lot of good technical stuff as well as a good portion of fun.

The conference was in Disney World, Orlando, so there were lots of opportunities for having fun. One evening we were dancing at the hotel. Great Caribbean music. The bad part was that the music had to stop at 10 pm! There is no doubt that the interest for aspect-oriented programming (AOP) is growing dramatically. The good news is that the use-case driven development approach is a perfect fit with AOP. To make AOP successful, it needs a methodology. We have such a methodology. Still, it will take a few years before tools support this technology.

At the same conference Jaczone (www.jaczone.com) demonstrated WayPointer. WayPointer really got a lot of attention. All the time there were people waiting to get a demo. What is so exciting is that WayPointer makes process active and at the same time practically invisible. This is done, by using intelligent agents to support developers in the many micro-activities in software development.

Aspects and agents will be important complementary technologies for the next years to come. You should take the time to learn about them.