<html>

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">


<meta name=Generator content="Microsoft Word 10 (filtered)">

<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;}
span.emailstyle17
        {font-family:Arial;
        color:windowtext;}
span.EmailStyle18
        {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;}
 /* List Definitions */
 ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'>

<p class=MsoNormal><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma'>-----Original Message-----<br>
<b><span style='font-weight:bold'>From:</span></b> Abdullah Sowayan <br>
<b><span style='font-weight:bold'>Sent:</span></b> </span></font><font size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>Friday, April
 09, 2004</span></font><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma'> </span></font><font size=2 face=Tahoma><span
 style='font-size:10.0pt;font-family:Tahoma'>3:43 PM</span></font><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'><br>
<b><span style='font-weight:bold'>To:</span></b> udm-users; gme-users<br>
<b><span style='font-weight:bold'>Subject:</span></b> [udm-users] BON2 vs. UDM</span></font></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Other than supporting current interpreters, what is the
economical justification for maintaining two separate model traversal APIs
(BON2 and UDM). Is there something that BON2 offers that UDM doesn&#8217;t? If so,
can&#8217;t similar features be incorporated into UDM thus we&#8217;d be
focusing our effort in a single unified model traversal technology?</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><b><i><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold;
font-style:italic'>[Adi] </span></font></i></b></p>

<p class=MsoNormal><b><i><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold;
font-style:italic'>This is a good point that Abdullah has raised. I don&#8217;t
know why the two efforts are continuing simultaneously but I can point out the
positive and negative points of each interface as per my knowledge</span></font></i></b><b><i><font
size=2 color=navy face=Wingdings><span style='font-size:10.0pt;font-family:
Wingdings;color:navy;font-weight:bold;font-style:italic'>J</span></font></i></b><b><i><font
size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy;font-weight:bold;font-style:italic'>.</span></font></i></b></p>

<p class=MsoNormal><b><i><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold;
font-style:italic'>&nbsp;</span></font></i></b></p>

<p class=MsoNormal><b><i><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold;
font-style:italic'>Places where UDM scores over BON</span></font></i></b></p>

<p class=MsoNormal><b><i><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold;
font-style:italic'>&nbsp;</span></font></i></b></p>

<ol start=1 type=1>
 <li class=MsoNormal style='color:navy'><b><i><font size=2 color=navy
     face=Arial><span style='font-size:10.0pt;font-family:Arial;font-weight:
     bold;font-style:italic'>If you want to add/delete some model elements
     temporarily and then run the transformation:</span></font></i></b><i><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial;
     font-style:italic'> E.g. GME&#8217;s metamodeling interface has multiple
     sheets and ObjectProxy&#8217;s while from the meta-interpreter point of
     view it should be one single sheet with a monolithic metamodel. One way to
     implement this would be a preprocessing step that converts multiple sheets
     into one sheet and there second step would be the meta-interpreter. To
     implement such things using BON a set of temporary data structures are created
     and populated to form this information. </span></font></i></li>
 <li class=MsoNormal style='color:navy'><b><i><font size=2 color=navy
     face=Arial><span style='font-size:10.0pt;font-family:Arial;font-weight:
     bold;font-style:italic'>Merging two interpreter written for the same
     paradigm: </span></font></i></b><i><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial;font-style:italic'>This is based
     on another problem I faced with BON. There were two interpreters written
     for the same paradigm called &#8220;</span></font></i><i><font size=2
       face=Arial><span style='font-size:10.0pt;font-family:Arial;font-style:
       italic'>MILAN</span></font></i><i><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial;font-style:italic'>&#8221;.
     Later on the requirements of the project chaged such that my interpreter
     needed to call some functions written in the other interpreter. This
     however was not possible because both the interpreters had our own
     customization of the CBuildel classes and thus the two interpreter codes
     could not be compiled together.</span></font></i></li>
 <li class=MsoNormal style='color:navy'><b><i><font size=2 color=navy
     face=Arial><span style='font-size:10.0pt;font-family:Arial;font-weight:
     bold;font-style:italic'>Cannot make a command line utility of the BON
     interpreter: </span></font></i></b><i><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial;font-style:italic'>BON interface
     can only be used to write GME interpreters. The same code cannot be used
     to produce an equivalent command line utility which becomes very important
     for automation of tool chains. </span></font></i></li>
 <li class=MsoNormal style='color:navy'><b><i><font size=2 color=navy
     face=Arial><span style='font-size:10.0pt;font-family:Arial;font-weight:
     bold;font-style:italic'>Two BON interfaces cannot be used at the same
     time: </span></font></i></b><i><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial;font-style:italic'>If I want to
     traverse one GME model and produce another that belongs to a different
     paradigm I don&#8217;t think BON allows you to create two BON based
     projects at the same time. For these cases you have to use the COM
     interface on the target end. I may be wrong about this though.</span></font></i></li>
 <li class=MsoNormal style='color:navy'><b><i><font size=2 color=navy
     face=Arial><span style='font-size:10.0pt;font-family:Arial;font-weight:
     bold;font-style:italic'>BON by default is paradigm specific: </span></font></i></b><i><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial;
     font-style:italic'>The lack of paradigm specific API for BON missing for
     some. Now I hear that it has been added in BON2</span></font></i></li>
</ol>

<p class=MsoNormal><b><i><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold;
font-style:italic'>&nbsp;</span></font></i></b></p>

<p class=MsoNormal><b><i><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold;
font-style:italic'>UDM on the other hand can seamlessly tackle all the above
mentioned issues. UDM based data networks can be copied with one API command
and you can have any number of projects opened and manipulated at the same
time. We usually have the same code used for a GME interpreter, command line
tool and also make it a library for other interpreter to call. It provides an
easy to use paradigm specific API with complete read and COMPLETE write
support. The biggest advantage of UDM is that it is not restricted to only the mga
format. The same code can be used on a paradigm specific gme independent XML
file which can be used as a way to interchange with other tools.</span></font></i></b></p>

<p class=MsoNormal><b><i><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold;
font-style:italic'>&nbsp;</span></font></i></b></p>

<p class=MsoNormal><b><i><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold;
font-style:italic'>Places where BON scores over UDM</span></font></i></b></p>

<p class=MsoNormal><b><i><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold;
font-style:italic'>&nbsp;</span></font></i></b></p>

<ol start=1 type=1>
 <li class=MsoNormal style='color:navy'><b><i><font size=2 color=navy
     face=Arial><span style='font-size:10.0pt;font-family:Arial;font-weight:
     bold;font-style:italic'>Reference ports: </span></font></i></b><i><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial;
     font-style:italic'>Currently UDM is not able to provide the user with the
     information about which reference port a particular connection port is
     associated with.</span></font></i></li>
 <li class=MsoNormal style='color:navy'><b><i><font size=2 color=navy
     face=Arial><span style='font-size:10.0pt;font-family:Arial;font-weight:
     bold;font-style:italic'>Implementation and Interface Inheritance and equivalence:
     </span></font></i></b><i><font size=2 face=Arial><span style='font-size:
     10.0pt;font-family:Arial;font-style:italic'>The MetaGME2UML interpreter currently
     doesn&#8217;t not support Interface and implementation inheritance and
     equivalence.</span></font></i></li>
</ol>

<p class=MsoNormal><b><i><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy;font-weight:bold;
font-style:italic'>&nbsp;</span></font></i></b></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>I agree with Abdullah that one API for
traversing the models will help every one around.</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Thanks,</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Adi</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

</div>

</div>

</body>

</html>