If you are looking to create better designed programs, I came across a very interesting script that creates a graph of the dependencies within your Objective-C code.

The graph can then be viewed in the open source graph visualization tool Graphviz or in Omnigraffle.

This is great as you can easily see those places where you may be better off using notification and delegation rather than importing a class directly.

On the Github page here you can download the script and you can also find a great example demonstrating a real example of how the tool was used in taking the tightly coupled code from one project, and turning it into a more efficient design.