I have to give a general note to some huge Java project for which I have but little visibility and I was wondering if there were any guidelines for determining:
- what number of classes per package can be considered right, to low, or to high (this project has 3.89 classes per package, which seems a bit too small for me),
- number of methods per class? (this project has 6.54 methods per class…
- number of lines per method? (this project has about 7 lines per method (seems pretty good to me, maybe a bit low))
I should note that this question is only dealing with volumetry. I have a bunch of reports from quality tools (checkstyle, jdepend, cpd, pmd, ncss) that give me more vision about code redundancy, classes usage, bugs, etc.
Steve McConnell in his book Code Complete recommends about 7 methods per class and no more lines in a method then can be viewed in a single screen without scrolling.
I’m not sure about classes per package.
I would highly recommend reading Code Complete for more information on such topics.