RSS / XML feed

Aspect Orientated Modelling


October 16 2004

At UML 2004, there was a panel on Aspect Orientated Modelling. Eventually one became aware of a fundamental difference in opinion between panel members. The extreme point of view seemed to be that aspect orientated modelling (or, presumably, aspects in general) was going to solve all computer programming problems, swallowing other paradigms whole on its way to global dominance. As a computer scientist, I hear claims along these lines made reasonably often for various technologies (our industry can charitably be described as eternally optimistic) yet this time something jarred more than normal with me and, I detected, a sizable proportion of the audience. In this entry I try to give a hint as to what might might have caused such a reaction, but please bear in mind that I'm not the worlds biggest expert on aspects by any means, so take this entry for what it's worth.

The best - probably the only - aspect technology of any kind that I or anyone else not deeply immersed in the topic will have heard of or come across is AspectJ. It is also the technology which aspect orientated modelling tends to defer to in general when asked to validate itself. As a member of the audience said to the panel, however, AspectJ examples tend to be relatively simple things which whilst cross-cutting are also completely localized in nature e.g. adding logging, or security authentication to a system. In my opinion, these are useful things to do, but it's worth having a look at why such examples tend to be so common. I'll put it crudely: in essence, AspectJ is a bit like a fancy macro language in that it automatically searches through source code, identifying certain syntactic points where new code should be inserted.

It is, of course, inevitable that relatively new technologies will have a lack of credible examples, but the concept of aspects has been around for surprisingly long (AspectJ originated circa 1997) - one might reasonably have expected some complex examples to have appeared by now. Aspect modelling on the other hand is a newer concept (I first ran into it two or three year back), so I can forgive the fact that there are currently no available tools and a lack of plausible examples.

However, given that the 'parent' technology (aspect programming) seems to have run into something of a brick wall (albeit possibly temporarily), it would seem to me that the panel member who made such extravagant claims for aspect modelling would have been wise to have held back a little. Whilst aspect modelling may or may not deliver on its promise, it could fall in the unfortunate trap of promising too much, too soon, and alienating its potential audience prematurely.

Link to this entry

All articles
 
Last 10 articles
Problems with Software 3: Creating Crises Where There Aren't Any
Problems with Software 2: Failing to Use the Computing Lever
Problems with Software 1: Confusing Problems Whose Solutions Are Easy to State With Problems Whose Solutions Are Easy to Realise
Parsing: The Solved Problem That Isn't
In Praise of the Imperfect
A Modest Attempt to Help Prevent Unnecessary Static / Dynamic Typing Debates
A Proposal for Error Handling
The Missing Level of Abstraction?
Good Programmers are Good Sysadmins are Good Programmers
How can C Programs be so Reliable?
 
 
DSLs
Tony Clark
Zef Hemel
 
Modelling
Steve Cook
Mark Delgano
Steven Kelly
Stuart Kent
Jim Steel
Alan Cameron Wills
 
OS
Marc Balmer
Mike Erdely
Peter Hansteen
KernelTrap
OpenBSD Journal
 
Programming
Peter Bell
Gilad Bracha
Tony Clark
Cliff Click
William Cook
Jonathan Edwards
Daniel Ehrenberg
Fabien Fleutot
Martin Fowler
John Goerzen
Grace
James Hague
Jeremy Hylton
Ralph Johnson
JOT
Ralf Laemmel
Lambda the Ultimate
Daniel Lemire
Michael Lucas
Bertrand Meyer
Keith Packard
Havoc Pennington
PyPy
John Regehr
Software Engineering Radio
Diomidis Spinellis
Shin Tai
Markus Voelter
Phil Wadler
Russel Winder
Steve Yegge