<!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">
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. 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>traceRM:, stackSnapshotBrowseOnce:
levelCount, and others that can be found at my Monticello repository<br>
<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>
BabySRE<br>
version e.g.,<br>
BabySRE-TRee.39.mcz<br>
Browse to find Object extensions->*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"><trygver@ifi.uio.no></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>>foo
<annotation:#a with: #b>
</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 <-> 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=""> </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=""> </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=""> </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>