[GOODIE][Modules][Experimental] AnalysisUtils (0.2)
PhiHo Hoang
phiho.hoang at rogers.com
Mon May 27 10:38:27 UTC 2002
Hi Bergel,
> Prerequisites:
> MoreAnalysis.1.cs
MoreAnalysis.1.cs was on the list several posts ago.
Cheers,
PhiHo.
-----Original Message-----
From: squeak-dev-admin at lists.squeakfoundation.org
[mailto:squeak-dev-admin at lists.squeakfoundation.org] On Behalf Of Bergel
Alexandre
Sent: Monday, May 27, 2002 5:37 AM
To: squeak-dev at lists.squeakfoundation.org
Subject: Re: [GOODIE][Modules][Experimental] AnalysisUtils (0.2)
Hello Daniel,
I get a MessageNotFound: deepGlobalReferenceDo: when I try to load what
you have done.
Alexandre
On Mon, May 27, 2002 at 07:44:53AM +0300, Daniel Vainsencher wrote:
> from preamble:
>
> "Change Set: AnalysisUtils
> Date: 25 May 2002
> Author: Daniel Vainsencher
>
> version (0.2): fixed a bug in the analysis - now treat both instance
> and class methods as belonging to the concrete class. Separating the
> meta class is not appropriate for this analysis.
>
> Prerequisites:
> MoreAnalysis.1.cs
>
> Experimental tools to guide the refactoring system (graph theory is
> our friend!!).
>
> First the fundemental algorithms, then the easy interface.
>
> StrongComponentsFinder implements a cache for class dependency
> information, including the inverted dependencies, and two useful graph
> algorithms -
> findWeakComponents: collectionOfClasses will return a collection of
> sets of classes that are dependent on one another. If a module has
> more than one of these, we can separate it into these groups and they
> will be non-interdependent modules. It will sometimes make sense to
> have two weak components in the same module if the same modules use
> them both, but it's a good heuristic.
>
> This is useful because it will reduce the class count in the minimal
> system, remove dependencies on the core, and thus expose the core of
> the problem, without requiring any refactoring of code...
>
> findStrongComponentsForNodes: collectionOfClasses will return a
> collection of collections of classes that are cyclicly dependent on
> one another. These are groups that can only be unloaded atomically, so
> if they're big they probably need refactoring.
>
> Run on any big chunk of the system, the strong components will show
> you what needs to be taken apart most urgently. Just find any one
> class in there that you think should be optional, and start severing
> dependencies on it.
>
> ModuleAnalyzer reportFor: aModule on: aStream will spill a nice
> detailed analysis of your favorite module in terms of the above
> algorithms, showing a lot bout what can and should be done...
>
> favorite usage:
> ModuleAnalyzer reportFor: Module root Squeak Morphic on: Transcript.
> Transcript endEntry <do it>
>
> ClassDependencyViewer is just a beginning of something. Help from
> someone handy with simple Morphic lists and drag&drop would be much
> appreciated. Mail me.."!
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._
Bergel Alexandre http://www.iam.unibe.ch/~bergel
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^
More information about the Squeak-dev
mailing list
|