<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="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @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;}
span.EmailStyle17
        {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>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</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'>Hello 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>&nbsp;</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'>Here are links to two papers that discuss
the relationship between Aspect-Oriented Programming and GME (model-based
design).<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>&nbsp;</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.isis.vanderbilt.edu/publications/archive/Gray_J_8_0_2004_TWO_LEVEL_.pdf">http://www.isis.vanderbilt.edu/publications/archive/Gray_J_8_0_2004_TWO_LEVEL_.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.isis.vanderbilt.edu/publications/archive/Gray_J_10_0_2000_Aspectifyi.PDF">http://www.isis.vanderbilt.edu/publications/archive/Gray_J_10_0_2000_Aspectifyi.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>&nbsp;</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'>GME Aspects are conceptually distinct from
AOP Aspects. In GME, Aspects are used for information hiding -- they visually partition
the various &#8216;parts&#8217; of a model. For example, a model of an
automobile might have one aspect for the components governing the mechanical
dynamics and one for the electrical system. However, there are cross-cutting
constraints on the automobile design that cannot be fully handled in either
aspect alone, such as total cost or safety. So, what is modeled in the
mechanical aspect must have repercussions on the electrical aspect in order to
ensure that the design constraints are not violated (and vice versa). The two
papers linked above describe how this interplay between aspects can be handled
with GME.<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>&nbsp;</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'>In fact, GME provides many ways to work
with what are known as aspects in AOP. Modeling with GME can be considered a
form of declarative programming. In that sense, every model component might
represent an AOP aspect, depending on the characteristics of the modeling
language you are using. So, the way you describe of using hierarchy to capture
AOP aspects is completely valid.<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>&nbsp;</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 that 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'>Matt<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>&nbsp;</o:p></span></font></p>

<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'> <st1:PersonName
w:st="on">gme-users</st1:PersonName>-bounces@list.isis.vanderbilt.edu [mailto:<st1:PersonName
w:st="on">gme-users</st1:PersonName>-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> <st1:PersonName w:st="on">gme-users</st1:PersonName><br>
<b><span style='font-weight:bold'>Subject:</span></b> [<st1:PersonName w:st="on">gme-users</st1:PersonName>]
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>&nbsp;</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.&nbsp; I may still be far from understanding, but
hopefully I'm closer (it's a work in progress).&nbsp; My question regards the
use of aspects.&nbsp; 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.&nbsp; 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.&nbsp; I vaguely recall
reading something by Ivar Jacobson a while ago about this way of doing
things.&nbsp; 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).&nbsp; 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.&nbsp; 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?&nbsp; I'm
contrasting this with the idea of using the heirarchy to segregate some aspects
of the model.&nbsp; 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>

</body>

</html>