<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
&nbsp;My 2 c - Sophie
,<br>
<br>
The most important phenomena occur in the space between the objects, so
I don't think method annotations would help (since they apply to one
method at the time). <br>
<br>
The UML Sequence Diagram is often useful. It would be nice if it could
become either the program itself or a constraint. I have used it to
visualize the stack at a given point in an execution. It got too large
to be useful in the examples I tried, so I stick to the textual
version.&nbsp; You can find the very simple set of textual methods as part
of the BabySRE package. (Smalltalk Reverse Engineering)<br>
<br>
The methods are Object&gt;traceRM:, stackSnapshotBrowseOnce:
levelCount, and others that can be found at my Monticello repository<br>
&nbsp;&nbsp;&nbsp; <a class="moz-txt-link-freetext" href="http://heim.ifi.uio.no/~trygver/babymc/">http://heim.ifi.uio.no/~trygver/babymc/</a><br>
package<br>
&nbsp;&nbsp;&nbsp; BabySRE<br>
version e.g.,<br>
&nbsp;&nbsp;&nbsp; BabySRE-TRee.39.mcz<br>
Browse to find Object extensions-&gt;*BabySRE-TraceStack<br>
<br>
Cheers --Trygve<br>
<br>
<br>
<br>
On 14.02.2008 15:08, itsme213 wrote:
<blockquote cite="mid:fp1i13$agk$1@ger.gmane.org" type="cite">
  <pre wrap="">"Trygve Reenskaug" <a class="moz-txt-link-rfc2396E" href="mailto:trygver@ifi.uio.no">&lt;trygver@ifi.uio.no&gt;</a> wrote

  </pre>
  <blockquote type="cite">
    <pre wrap="">IMO Smalltalk (like Java) lacks facilities for describing systems and
particularly system behavior. UML 2.x has very powerful facilities for
such modeling and could prove useful both for design and for 
documentation.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Which parts in 2.x do you find best for this?

Have you considered whether Squeak method annotations might bridge some of 
the gap?

MyClass&gt;&gt;foo
  &lt;annotation:#a with: #b&gt;

  </pre>
  <blockquote type="cite">
    <pre wrap="">Any other use would be contrary to
the spirit of Smalltalk.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Squeak class hierarchy to UML diagram is easy; attributes and associations 
are hard. To work typed UML &lt;-&gt; typeless Smalltalk code, you would need 
either additional type annotations (e.g. pragmas on read-accessors) or type 
inference (e.g. RoelTyper). Other UML diagrams might need additional 
annotations.

There is a Connectors-based package languishing somewhere that lets you draw 
some rudimentary UML in squeak itself. Dandelion, also languishing, does 
some Squeak code analysis and exports XMI
<a class="moz-txt-link-freetext" href="http://www.mars.dti.ne.jp/~umejava/smalltalk/stClasses/dandelion/index.html">http://www.mars.dti.ne.jp/~umejava/smalltalk/stClasses/dandelion/index.html</a>
<a class="moz-txt-link-freetext" href="http://www.mars.dti.ne.jp/~umejava/images/MagicDrawDandelion1.jpg">http://www.mars.dti.ne.jp/~umejava/images/MagicDrawDandelion1.jpg</a>

Dynamically figuring things out from the instance-level would be a different 
matter, specially if the tool was able to summarize certain information. 
There is a nice ClassDiagrammer available that reconstructs a class diagram 
from a set of instances, with a little work it could be very useful. A 
sequence diagram generated from actual trace of method sends could also be 
very useful. If you prefer to diagram first, then some of these diagrams 
could conceivably become inputs to tests.

My 2 c - Sophie





  </pre>
</blockquote>
<br>
<div class="moz-signature">-- <br>
<meta http-equiv="Content-Type" content="text/html; ">
<meta name="ProgId" content="Word.Document">
<meta name="Generator" content="Microsoft Word 10">
<meta name="Originator" content="Microsoft Word 10">
<link rel="File-List" href="TrygveSignature-filer/filelist.xml">
<title>-- </title>
<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:HyphenationZone>21</w:HyphenationZone>
  <w:PunctuationKerning/>
  <w:DrawingGridHorizontalSpacing>6 pt</w:DrawingGridHorizontalSpacing>
  <w:DrawingGridVerticalSpacing>6 pt</w:DrawingGridVerticalSpacing>
  <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
  <w:DisplayVerticalDrawingGridEvery>3</w:DisplayVerticalDrawingGridEvery>
  <w:UseMarginsForDrawingGridOrigin/>
  <w:DoNotShadeFormData/>
  <w:Compatibility>
   <w:FootnoteLayoutLikeWW8/>
   <w:ShapeLayoutLikeWW8/>
   <w:AlignTablesRowByRow/>
   <w:ForgetLastTabAlignment/>
   <w:LayoutRawTableWidth/>
   <w:LayoutTableRowsApart/>
   <w:UseWord97LineBreakingRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-parent:"";
        margin:0cm;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:12.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";}
span.SpellE
        {mso-style-name:"";
        mso-spl-e:yes;}
span.GramE
        {mso-style-name:"";
        mso-gram-e:yes;}
 /* Page Definitions */
 @page
        {mso-page-border-surround-header:no;
        mso-page-border-surround-footer:no;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;
        mso-header-margin:35.4pt;
        mso-footer-margin:35.4pt;
        mso-paper-source:0;}
div.Section1
        {page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
        {mso-style-name:"Vanlig tabell";
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
        mso-para-margin:0cm;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="2050"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1"/>
 </o:shapelayout></xml><![endif]-->
<div class="Section1">
<p class="MsoNormal" style=""><span class="SpellE"><span
 style="font-size: 10pt; font-family: Arial;" lang="EN-GB">Trygve</span></span><span
 style="font-size: 10pt; font-family: Arial;" lang="EN-GB">
Reenskaug<span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>mailto: <span class="SpellE"><a class="moz-txt-link-abbreviated" href="mailto:trygver@ifi.uio.no">trygver@ifi.uio.no</a></span></span><span
 style="font-size: 10pt; font-family: Arial;"><o:p></o:p></span></p>
<p class="MsoNormal" style=""><span class="SpellE"><span class="GramE"><span
 style="font-size: 10pt; font-family: Arial;" lang="EN-GB">Morgedalsvn</span></span></span><span
 class="GramE"><span style="font-size: 10pt; font-family: Arial;"
 lang="EN-GB">.</span></span><span
 style="font-size: 10pt; font-family: Arial;" lang="EN-GB"> 5A <span
 style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><a class="moz-txt-link-freetext" href="http://heim.ifi.uio.no/~trygver">http://heim.ifi.uio.no/~trygver</a><o:p></o:p></span></p>
<p class="MsoNormal" style=""><span
 style="font-size: 10pt; font-family: Arial;">N-0378
Oslo<span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Tel: (+47) 22 49 57 27<o:p></o:p></span></p>
<p class="MsoNormal" style=""><span class="SpellE"><span
 style="font-size: 10pt; font-family: Arial;">Norway</span></span><span
 style="font-size: 10pt; font-family: Arial;"><o:p></o:p></span></p>
</div>
</div>
</body>
</html>