Concept & Roadmap
The nWire Concept
Modern applications can be broken down into a multitude of small building blocks, interconnected in various ways. nWire focuses on these components and associations.
An association is a connection between two elements. For example: a class which extends another class, a method invoking a method, an anchor on an HTML page which forwards to another page or a Spring framework bean using another bean. Associations can be implicit, too, such as the naming conventions used in Ruby on Rails.
One central repository
nWire brings a fresh approach - one central repository holding all the components and associations regardless of their type. There are many tools out there for code and configuration analysis. However, none of these tools stores all the information in one unified manner. Therefore enabling you to view the full picture of your system.
In addition to the repository there are currently 2 tools: the navigator and the visualizer. Both tools tap into the repository, presenting the information in a user-friendly manner. Although the repository is unified, the view can be customized for each type of association and component. For example: method invocations will be shown with line numbers while class extensions, which are unique, will not show any.
Meta-data is the data describing the data (see this great article on the subject). It's like the relation between a class and an an instance, an object. In nWire, for example, a component is considered data and the component type is meta-data. nWire contains a powerful meta-data engine, which employs configuration to control the analysis and presentation or components and associations. This makes it very easy to add more types of components and associations, including new application frameworks and new programming languages. In the current version, the meta-data is not user configurable. This may change in future versions.
The Future of nWire
We have great plans for nWire. We prefer taking the agile approach: ship the product with a sound infrastructure and a basic feature set and add more features in short iterations according to user feedback. Here are some of the features you can expect from future releases of nWire.
More programming languages and application frameworks
Custom application frameworks
Many organizations build their own custom application frameworks. The goal is to provide a tool that can be configured to analyze and display the information from such frameworks, alongside the standard information. This will be achieved, in most cases, using plain configuration, without a single line of code.
The tools provided today are just the tip of the iceberg. We have many great ideas for improvements and additional tools, like advanced filters, custom views, validations and more visualization forms. There is a lot you can do once you have all the application components and associations in one repository.