Summary
JetBrains, maker of the popular IntelliJ IDE, released a new dependency analysis tool that makes it easier to grasp the structure of complex enterprise applications.
Advertisement
Part of the complexity in an enterprise application stems from an application relying on other pieces of code and libraries for its functionality; and part of an application's complexity is the result of the code base growing in size and interdependencies.
Dependency analysis tools provide a good insight into the internal dependencies of a code base, but few tools can give a complete, easy-to-grasp picture of all the dependencies an application relies on, including external ones. JetBrains, maker of the popular IntelliJ multi-language IDE, recently released a new tool, Structure101, that provides both internal code dependency analysis, and also a visual overview of external dependencies of an enterprise application.
Because Structure 101 integrates with the code-editing and code management features of the IDE, it lets a developer or architect set some limits about the complexity metrics of a project. It also lets developers change the structural changes occurring to a code base over time.
Notable features in Structure101 include:
Dependency management. See the dependencies within your code-base at any level, such as: method to method, function to type, class to class, package to class, directory to directory, jar to jar,...
Dependency analysis. For any dependency, at any level of composition, discover the dependency's source with the click of the mouse...
Impact analysis. Find out the impact of making a code-change, replacing a library, etc., before the team changes a single line of code.
Understanding unstructured code. Even where the code-base has become overly complex and unstructured, Structure101 gives you ways to cut through the raw structural data and make sense of it all. For example, auto-partitioning isolates tangled items and natural clusters and dependency matrices make large graphs more readable...
Deep structural analysis. Structure101 lets you view your code organized into different hierarchies (e.g. by package or by jar). It also lets you take slices through the whole code-base at different levels (e.g. class, package or design). "Tagging" lets you see how items in one hierarchy or slice map to other hierarchies or slices.
Applying structural transformations. Use simple mapping expressions to transform the model hierarchy. For example, isolate test code, combine API and implementation packages, etc.
It uses a completely general approach to managing dependencies - allowing you to manage dependencies in languages, configurations and databases. It currently supports Java, C/C++, .NET, Ada, Delphi Pascal, Spring, Hibernate, LDI, Oracle, and SQL Server.
I have evaled this product two or three times. It is simply superb, like nothing else i have seen before, and an amazing asset for a Java architect. The primary value add is in understanding the dependencies implicit in unfamiliar code.
Agree completely. Structure101 is a great tool (both in standalone and plugin mode) which has been around for many years now (I recall using it back in 2004). A recent newcomer to market (STAN - Structure Analysis for Java) is also pretty impressive, particularly from a visualisation perspective: http://stan4j.com My only gripe with both tools is their licensing model, which is node locked, and completely useless to me as an IT Consultant working on many different customer sites.
Been using this for a while now - its a great tool. A key component for me is the server based repository so I can track progress. They have some good high level reports that tracks of code structure and quality across multiple development teams. We have an ant task that stages the build from each iteration into the s101 repository. We aim to get < 10% "red bar" (a composite code complexity metric relative to code size) on all dev projects every iteration
We use IntelliJ exclusively as well as bunch of tools from the Atlassian guys as well as Structure101 so its good news for me to see the integration.
> Agree completely. > Structure101 is a great tool (both in standalone and > plugin mode) which has been around for many years now (I > recall using it back in 2004). > A recent newcomer to market (STAN - Structure Analysis for > Java) is also pretty impressive, particularly from a > visualisation perspective: http://stan4j.com > My only gripe with both tools is their licensing model, > which is node locked, and completely useless to me as an > IT Consultant working on many different customer sites.
When I have been consulting I have taken my MacBook Pro into client sites and worked from it. I have a bunch of commercial tools that I rely on. Is your issue that you are working on client hardware or is there a requirement for a consistent IP that would make it a pain to manage a node-locked license?
> My only gripe with both tools is their licensing model, > which is node locked, and completely useless to me as an > IT Consultant working on many different customer sites.
Hi Jose,
we are aware of this issue... But if you contact us at http://stan4j.com, we can arrange a roaming license for you.