[Squeakfoundation]identifying existing apps to package

Daniel Vainsencher danielv at netvision.net.il
Fri Feb 14 16:50:00 CET 2003

Hey guys.

Okay, a bit about what SpT does:

First it creates a graph where classes are nodes, and dependencies are
links. Depedencies are either Classes references, or subclassing.

Then it finds all the cycles in the graphs at once - this is called
strong connected components. Why are cycles important? because they show
precisely where things are misengineered. If Morph depends on Object,
that's fine, but if they both depend on one another... that's a problem.

To extract interesting information, we compare the cycles in the graph
to invented module boundaries (like class categories, or DVS package
boundaries). Where a cycle crosses the module boundaries, we know we
need to refactor things (we need to cut at least one of the directions
of dependency).

Did this make sense? does it sound like what you're looking for, Ned? if
so I'll go into more details..

Daniel Vainsencher

Ned Konz <ned at bike-nomad.com> wrote:
> On Wednesday 12 February 2003 07:13 pm, Avi Bryant wrote:
> > On Wed, 12 Feb 2003, Ned Konz wrote:
> > > I'd like to start the packaging process for parts of the 3.5
> > > image, as planned.
> > >
> > > I know Daniel and others have written tools for static analysis;
> > > I was hoping someone could come up with a good way to actually
> > > discover the contents of the different packages (strongly coupled
> > > clusters of otherwise independent classes along with class
> > > extensions that they use or that refer to them). Plus, I'd like
> > > to get the names of the major writers of the existing code.
> >
> > Ned,
> >
> > The hard part, I think, is associating class extensions with the
> > right package.  I added some dependency queries to PackageInfo as a
> > step towards being able to do this;
> > PackageInfo>>browseExternalReferences is particularly useful when
> > trying to carve out the image manually, but I never got anywhere
> > with an automated tool to do this.  My vague thought was that any
> > external references to that package (ie, methods that use that
> > package's methods or classes) could be evaluated for inclusion in
> > the package, and brought in if that would make the package have
> > fewer external references in total.  After a few iterations this
> > ought to converge on some kind of rough approximation of the right
> > methods, I hope - but I've never tried it.
> >
> > Is that the kind of tool you were thinking of?
> Yes. I think Spaghetti Tracer can do some of this.
> -- 
> Ned Konz
> http://bike-nomad.com
> _______________________________________________
> Squeakfoundation mailing list
> Squeakfoundation at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/squeakfoundation

More information about the Squeakfoundation mailing list