Visualizing application structure with nWire


nWire is a plugin for Eclipse that helps you understand the various components and their relationships in your application. Due to various complex PHP applications being developed – like Magento, Joomla and a wide variety of frameworks, developers finds it hard to understand the underlying architecture and relationships between various components within the application.

nWire lets you bring order to that complexity. Just as a map lets you visualize the relationships between various geographical elements : cities, rivers, roads etc. nWire lets you understand the structure and relationships between various components of the given application. nWire is currently available for Zend Studio 7.0 and Eclipse 3.5 with PDT 2.1.

Currently the software includes three tools:
a. Visualizer : Helps to browse components and associations using one simple unified view.
b. Navigator : Interactive visual representation of all code associations.
c. Search : Incremental search for any type of component, including classes and methods.

Visualizer

The visualizer presents the application components and associations in a graphical representation. Each component of the application appears as a node and associations appear as edges, with the association name given on the edges. When there are many associations of a given type, the associations are grouped into a sub-node. The graph can be traversed: expanding nodes to reveal associated components while the layout automatically adjusts.

The following is a visualization of the Amazon API class I had posted about earlier.
amazon_api_class_php

Another visualization of WordPress 2.8, centered on index.php.
(Click image to view a larger version)
index_php

Navigator

The navigator presents the components and associations of the application which were discovered by the analyzer. It starts from a given selected component and shows all associated components. This includes inbound and outbound associations. The following figure shows the navigator with the WordPress ‘wp_meta()’ function selected.

nwire_navi1

Search

The search feature lets you search for components by name or a partial name using wild cards.

nwire_search

Price

nWire is not OpenSource, but a 30-day trial is available. Single user license will cost you $59. If you are dealing with plethora of heavy applications, than the price is worth it.

This site is a digital habitat of Sameer Borate, a freelance web developer working in PHP, MySQL and WordPress. I also provide web scraping services, website design and development and integration of various Open Source API's. Contact me at metapix[at]gmail.com for any new project requirements and price quotes.

Your thoughts