DependencyAnalyser

Download DependencyAnalyser. Requires Mac OS X 10.5 or later.

Release notes.

Class dependency information

AnalysisTool outputs a file named Class dependency graph-AnalysisTool.xml when it analyses a project. DependencyAnalyser takes that file and gives an interactive interface for analysing the dependencies between classes.

Classes with name starting with "NS" are filtered out automatically. Categories depend on the classes they extend as if they were subclasses.

DependencyAnalyser screenshot
Target Popup
Top left corner. Choose target to analyse. Lists all targets and subprojects.
Classes List
Left-most column. Select class to analyse. By double-clicking you can open a new window. You can also find specific classes using the search field to filter the list. Out and In columns show how many classes the selected class depends on and how many classes depend on it.
Dependencies Browser
Multicolumn thing next from Classes List. Lists all dependencies for the selected class. By clicking an item you can see its dependencies, and dig through the dependency network.
Recursive Dependencies List
Column in the middle. For the selected class, shows all dependencies and their dependencies recursively.
Dependents Browser
Second column (or multicolumn thingy) from right. Lists all classes that have a dependency to the class selected in the Classes List. By clicking a class you can see its dependents, and dig through the dependent network.
Recursive Dependencies List
Right-most column. For the selected class, shows all dependents and their dependents recursively.

Configuring Dependencies

DependencyAnalyser recognizes and can show multiple kinds of dependencies between classes and protocols. You can enable those relationships as visualized dependencies you wish to examine. If nothing is selected, no dependencies are shown.

Super Class Is Dependency
Super class is shown as a dependency when this is enabled.
Subclasses Are Dependencies
Adds subclasses to the list of dependencies when this setting is enabled.
Association Is Dependency
Associations are shown as dependencies. This was the default behaviour in previous release. Association means calling a method on an instance or a class, or having an instance variable of the type in question.
Instantiation Is Dependency
Instantiations are shown as dependencies. This is a specific type of association.

Feedback is highly appreciated.