ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hayden Melton <>
Subject Re: Structure of Ant (OO Design)
Date Mon, 05 Jun 2006 05:19:38 GMT

> So you analyse each of the source files to determine which other
> source files they depend on.  This seems to be a Java-centric
> analysis in that it relies on the source files containing a class
> each?  Is that correct?  Ie would this be able to analyse source
> files that contain many classes (like in other languages which don't
> have the general 1 class/source file structure of Java)?

Yeah my analysis is Java-centric. In other languages there might be multiple
(top-level classes) per source file. Other people have suggested similar
analyses for other languages (see John Lakos, Large Scale C++ Software Design

In fact, Java can have multiple classes declared in one source file (nested
classes and inner classes. But since a source file is the usual `physical' unit
we deal with as programmers it makes sense to look at dependencies between
.java files.

>  From you analysis, does the 'flatter' the structure have any
> correlation with the complexity of the code, or any other 'quality'
> metric?

Yip --- the flatter (and more `acyclic') the graph, the easier the system should
be to understand, test and reuse. I have explained the reasons why on my
research page:

> Sorry to bug you about this, but I'm fairly interested in this (from
> a layman's perspective), and I've got a fairly easy day at work so
> I'm free to send inquiring emails :)

The raw data is available for Ant, along with the tool I used to collect the
data. My tool says that these classes are all (transitively) mutually dependent
in ant 1.6.5:

> On the other hand I suppose I should really read your research
> properly as you've probably described exactly how and where your
> analysis works/fails

Yeah, you should take a gander. Pretty much everything I have said in this email
is explained there. It might be a bit wordy, but I have tried to be thorough.

Incidentally, I have posted to a number of mailing lists results that I have
collected from analysing various applications. All the feedback I get from
developers about their feelings on the quality of the design of their system
w.r.t. transitive compilation dependencies is very useful for my research.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message