Jacopo Malanti has recently released an excellent plugin for eclipse that allows the user to identify areas for improvement in large code-bases. It is called X-Ray. It draws two styles of diagram:
- The System Complexity View: This looks similar to a histogram at first glance but it is very different. The bars show classes or interfaces, the height lines of code and the width number of methods. It also shows inheritance. Once the representation is understood one can see a full picture of the classes in the system and identify what should be reviewed.
- Dependency View: This diagram can be used in two ways: there is one option for the dependency between system classes and one for dependency between packages. It is of great help with determine problems with coupling and cohesion. All packages/classes are placed in a ring and lines are drawn between those which depend on another. An arrowhead shows the direction of the dependency the strenght and thickness of the line shows the degree. Strong lines show that an area of the system could be too closely coupled.
What is great about the plugin is that is doesn't just draw a static diagram, as you navigate through your project it will highlight the class you are working with. It will also draw in the dependancies.