| Home > Technical articles | e-mail: laurie@tratt.net github: ltratt twitter: @laurencetratt |
|
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. |
| Home > Technical Articles | e-mail: laurie@tratt.net github: ltratt twitter: @laurencetratt |
| Copyright © 1995-2012 Laurence Tratt | |