<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="City"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="PlaceName"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="PlaceType"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="place"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.MsoAutoSig, li.MsoAutoSig, div.MsoAutoSig
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
p
        {mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman";}
span.emailstyle17
        {font-family:Arial;
        color:navy;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Hi Joe-<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>First, thanks to Sandeep and Matt for the
plugs </span></font><font size=2 color=navy face=Wingdings><span
style='font-size:10.0pt;font-family:Wingdings;color:navy'>J</span></font><font
size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>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 mind.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>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.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>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:<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><a
href="http://www.cis.uab.edu/gray/Research/C-SAW/">http://www.cis.uab.edu/gray/Research/C-SAW/</a><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>All of the related publications are available
on that site, but perhaps the best summary papers are:<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><a
href="http://www.cis.uab.edu/gray/Pubs/computer.pdf">http://www.cis.uab.edu/gray/Pubs/computer.pdf</a><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><a
href="http://www.cis.uab.edu/gray/Pubs/sosym-models-2006.pdf">http://www.cis.uab.edu/gray/Pubs/sosym-models-2006.pdf</a><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><a
href="http://www.cis.uab.edu/gray/Pubs/cacm-2001.pdf">http://www.cis.uab.edu/gray/Pubs/cacm-2001.pdf</a><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Regarding aspects and modeling, let me
also suggest the series of workshops (now in its 8<sup>th</sup> 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:<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><a
href="http://dawis2.icb.uni-due.de/events/AOM_AOSD2006/cfp.shtml">http://dawis2.icb.uni-due.de/events/AOM_AOSD2006/cfp.shtml</a><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>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 “notations”).<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Hope this helps!<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Jeff<o:p></o:p></span></font></p>
<div>
<p style='margin-bottom:12.0pt'><font size=2 color=navy face="Times New Roman"><span
style='font-size:10.0pt;color:navy'>----------------------------------------------------<br>
Jeff Gray, Ph.D.<br>
Department of Computer and Information Sciences<br>
<st1:PlaceType w:st="on">University</st1:PlaceType> of <st1:PlaceName w:st="on">Alabama</st1:PlaceName>
at <st1:City w:st="on"><st1:place w:st="on">Birmingham</st1:place></st1:City><br>
gray@cis.uab.edu<br>
<a href="http://www.gray-area.org">http://www.gray-area.org</a></span></font><o:p></o:p></p>
</div>
<div>
<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>
<hr size=3 width="100%" align=center tabindex=-1>
</span></font></div>
<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
gme-users-bounces@list.isis.vanderbilt.edu
[mailto:gme-users-bounces@list.isis.vanderbilt.edu] <b><span style='font-weight:
bold'>On Behalf Of </span></b>Sandeep Neema<br>
<b><span style='font-weight:bold'>Sent:</span></b> Wednesday, April 19, 2006
4:47 PM<br>
<b><span style='font-weight:bold'>To:</span></b> gme-users<br>
<b><span style='font-weight:bold'>Subject:</span></b> RE: [gme-users] Aspects
Question</span></font><o:p></o:p></p>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Joe,</span></font><o:p></o:p></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>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.</span></font><o:p></o:p></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'> </span></font><o:p></o:p></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>HTH,</span></font><o:p></o:p></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Sandeep</span></font><o:p></o:p></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'> </span></font><o:p></o:p></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'> </span></font><o:p></o:p></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'> </span></font><o:p></o:p></p>
<div>
<p class=MsoAutoSig><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>--</span></font><o:p></o:p></p>
<p class=MsoAutoSig><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'>Sandeep Neema</span></font><o:p></o:p></p>
<p class=MsoAutoSig><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'>Research Scientist,</span></font><o:p></o:p></p>
<p class=MsoAutoSig><st1:PlaceType w:st="on"><font size=3 color=navy
face="Times New Roman"><span style='font-size:12.0pt;color:navy'>Institute</span></font></st1:PlaceType><font
color=navy><span style='color:navy'> of <st1:PlaceName w:st="on">Software</st1:PlaceName>
Integrated Systems, <st1:place w:st="on"><st1:PlaceName w:st="on">Vanderbilt</st1:PlaceName>
<st1:PlaceType w:st="on">University</st1:PlaceType></st1:place></span></font><o:p></o:p></p>
<p class=MsoAutoSig><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'>Phone: 615-343-9996</span></font><o:p></o:p></p>
<p class=MsoAutoSig><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'>Email: <a
href="mailto:sandeep.k.neema@vanderbilt.edu">sandeep.k.neema@vanderbilt.edu</a></span></font><o:p></o:p></p>
</div>
<div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'>
<div>
<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>
<hr size=2 width="100%" align=center tabindex=-1>
</span></font></div>
<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
gme-users-bounces@list.isis.vanderbilt.edu [mailto:gme-users-bounces@list.isis.vanderbilt.edu]
<b><span style='font-weight:bold'>On Behalf Of </span></b>Joe Porter<br>
<b><span style='font-weight:bold'>Sent:</span></b> Wednesday, April 19, 2006
3:31 PM<br>
<b><span style='font-weight:bold'>To:</span></b> gme-users<br>
<b><span style='font-weight:bold'>Subject:</span></b> [gme-users] Aspects
Question</span></font><o:p></o:p></p>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>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.<br>
<br>
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. <br>
<br>
This is a longish question, so thanks in advance for anyone that takes time to
answer.<br>
<br>
Thanks,<br>
-Joe Porter<br>
Senior Research Engineer<br>
Southwest Research Institute<o:p></o:p></span></font></p>
</div>
</div>
</body>
</html>