[EXP] SpaghettiTracer 0.3

danielv at netvision.net.il danielv at netvision.net.il
Fri Oct 18 21:10:01 UTC 2002


Hey Ned, you reminded me, so...

For the interested, the latest version of the SpaghettiTracer is posted
on SqueakMap. The sample functionality requires a recent DVS.

To make a graph from a bunch of categories with some common prefix,
replace Refactory* below. If you explore the result, you'll see it's a
simple adjecancy list.
packageGraph _ CodeGraphCreator graphForLogicalModules:
((SystemOrganization categories select: [:name | 'Refactory*' match:
name]) collect: [:e | PackageInfo named: e ])

Then, to find out what packages are interdependent, explore this:
packageComponents _ GraphAnalyzer new findStrongComponentsIn:
packageGraph.

Or if you want to get a single number showing how interrelated your
selected categories are, print this (ideally, it's 1.0) - 
CodeAnalyzer clumpinessOfComponents: packageComponents

Clumpiness for various big pieces of code (the number of categories is
in paretheses) -
Morphic ~ 4.5 (39)
Refactoring Browser ~ 1.9 (16)
Balloon + Balloon3D ~ 1.7 (40)

Obviously Balloon is pretty nicely factored, Morphic is not in such a
great state, and the Refactoring Browser has some sort of problem
(considering it's relatively small size).

If one looks at the RB components, you'll see the UI is in the same
component with the refactorings, an obvious flaw, and a reason for much
of that bad score. Look closely, and you'll see that most of the problem
is caused by a reference from the model to the UI, which should be fixed
soon, by marking that as a class extension of the UI package to the
model.

Daniel Vainsencher



More information about the Squeak-dev mailing list