[gme-users] Aspects Question

Jeff Gray gray at cis.uab.edu
Wed Apr 19 23:56:35 CDT 2006


Hi Joe-


First, thanks to Sandeep and Matt for the plugs :-)


When trying to differentiate the "Aspects" of GME from those of AOP, it
seems that the GME form of the term is more related to the concept of
"views" in a database, or "viewpoints" in requirements engineering. Perhaps
this is debatable, but that is how I have always seen the difference in my


Both views and aspects (in the AOP sense) are great tools for separation of
concerns. However, they are not really equal (side note: there is confusion
that separation of concerns = aspects; this is far from the truth, as the
SoC term really came out in one of Dijkstra's books in the 70s). SoC can be
performed in many ways, as evidenced by modular programming, oo, and other
paradigms. The uniqueness of aspects is the modularization of crosscutting
concerns, which is just one more type of SoC. This has been debated heavily
on the aosd-discuss mailing lists.


Matt and Sandeep mentioned some of the work that my students and I have been
doing in this area, along with several colleagues at Vanderbilt/ISIS. I'll
spare all of the details - the project site (which includes the actual tool
as a GME plugin, papers, and even video demos) is available at:




All of the related publications are available on that site, but perhaps the
best summary papers are:






Regarding aspects and modeling, let me also suggest the series of workshops
(now in its 8th version) focused on Aspect-Oriented Modeling. This workshop
alternates between the AOSD and MoDELS conferences over the past 4 years.
Details of the workshop series are available at:




You might also check out Ivar Jacobson's book, and also Siobhan Clarke and
Elissa Banniasad's book. I am not sure that tool support exists yet for any
of those ideas (I could be wrong, but I think these are more about


Hope this helps!



Jeff Gray, Ph.D.
Department of Computer and Information Sciences
University of Alabama at Birmingham
gray at cis.uab.edu


From: gme-users-bounces at list.isis.vanderbilt.edu
[mailto:gme-users-bounces at list.isis.vanderbilt.edu] On Behalf Of Sandeep
Sent: Wednesday, April 19, 2006 4:47 PM
To: gme-users
Subject: RE: [gme-users] Aspects Question



As Matt pointed out GME aspects are not the same as Aspect in the AOP sense.
However, we did look at the relation between Model-based Design and
Aspect-Oriented Programming in the context of the PCES program. Our
evaluation was that cross-cutting concerns do occur when designing systems
with models. The choice of model object hierarchy itself represents a
dominant form of decomposition and often some crosscutting "concerns" are
spread around this dominant concern. Jeff's work demonstrated the
application of AOP concepts to address these issues by isolating the
crosscutting concerns in separate aspects and then using a model-based
weaver to weave those in. As Matt pointed out Jeff's papers (and thesis) are
good place for additional info on that. Also, since Jeff is on this list he
can point you to the newer material.








Sandeep Neema

Research Scientist,

Institute of Software Integrated Systems, Vanderbilt University

Phone: 615-343-9996

Email: sandeep.k.neema at vanderbilt.edu


From: gme-users-bounces at list.isis.vanderbilt.edu
[mailto:gme-users-bounces at list.isis.vanderbilt.edu] On Behalf Of Joe Porter
Sent: Wednesday, April 19, 2006 3:31 PM
To: gme-users
Subject: [gme-users] Aspects Question


Hopefully this is the right place for these sorts of questions, as I'm on a
journey of discovery.  I may still be far from understanding, but hopefully
I'm closer (it's a work in progress).  My question regards the use of
aspects.  GME explicitly supports the creation of aspects for models, but it
seems that such visualization aspects can only be instantiated once -- for
example, a dataflow aspect and a data type aspect.

I have not really used tools specifically for aspect-oriented programming,
but we use an aspect-oriented approach to design.  Each use case for a
particular system is treated as a separate aspect, although in practice we
handle the join points by hand during implementation.  I vaguely recall
reading something by Ivar Jacobson a while ago about this way of doing
things.  We also may look more generally at other decompositions, like the
flow of configuration info through a system, or a generic algorithm for
starting up and shutting down all server processes (which is orthogonal to
the data flows).  To design that way in GME it seems you would have to be
able to create multiple instances of a particular type of aspect and then
weave them together according to some set of joining rules.  Have I
misunderstood something about the capabilities of aspects in GME, or am I
still not far enough along the learning curve to see a good way to do it?
I'm contrasting this with the idea of using the heirarchy to segregate some
aspects of the model.  That allows me to separate some concerns, but it may
obscure some of the details I'm trying to expose in some cases. 

This is a longish question, so thanks in advance for anyone that takes time
to answer.

-Joe Porter
Senior Research Engineer
Southwest Research Institute

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.isis.vanderbilt.edu/pipermail/gme-users/attachments/20060419/fbec0f7c/attachment.htm

More information about the gme-users mailing list