If you care about software structure (and you should) then Structure 101 is the tool for you. This brilliant piece of software engineering by Chris Chedgey and the team at Headway Software has many facets, but in short, it helps you to understand, manage and control the design and architecture of your software.
I have yet to play with with much of the advanced functionality but I have used it several times now to assess the design complexity of smaller projects (including academic assignments) and it has helped enormously every time. For example, when implementing Design Patterns like Model-View-Controller). Using the Composition Perspective, you can clearly see whether the intended design of your product has been achieved or whether you have excessive inter-dependencies (tangles) between your packages. I took over a small desktop application from a colleague recently and the first thing I did was run it through Structure 101. Then, as I made changes, I was easily able to see whether or breaking/improving/adhering to the original design.
Version 3 (currently in Beta) will also offer an Architecture Perspective where you can define block-level diagrams of the architecture of your product and have it show you where and why the actual structure deviates from the intended architecture. I tried this out and it worked a treat – very useful addition indeed. Version 3 also adds an IDE plugin (Eclipse) although I have not tried this yet.