[log in to unmask] > ... tradeoff between wide trees with lots of WITHs > and deep trees with more levels of abstraction? Volume is measured by lines of code, depth of nesting, cyclomatic complexity, number of WITHs per package, number of methods per class, number of global variables, etc. Clustering metrics like cohesion (clustering, etc.) and coupling (accesses to those global variables, depth of nesting of WITHs, aliasing, etc.) are HARDER TO MEASURE. For example, ASIS comes with a called-calling tree application, but not a global variable cross-reference list application, showing that data flow is harder to do than program flow. To make the tradeoff between wide trees and deep trees, the designer needs a visualization tool to SEE this program flow and data flow graphically, at the same time. The designer must also be able to see the changes in clustering (cohesion and coupling) that occur upon making a change. In other words, a what-if Clustering Tool. There is not single equation to optimize between wide trees and deep trees, because wideness and deepness are not the actual criteria to optimize, but just attributes to achieve the desired optimum maintainability. For example, when something is trusted and stable, it should be re-widened and re-deepened -- the optimum evolve with time. Mike Brenner