IBM has previewed technology for structural analysis of Java application development projects.
Structural Analysis for Java (SA4J) is intended for software architects and developers to assess the architectural integrity of Java applications.
The software can be used to locate root causes of potential architectural problems and provides for measurement of application stability; detection of “structural antipatterns", which are bad architectural practices; and visualisation and browsing of the “dependency web", which provides a schematic of relationships in software development. Impact analysis is also featured.
The algorithm-based tool can find antipatterns, which IBM is defining as architectural solutions that seem appropriate but actually are prone to have a deficiency, said Geoff Bessin, market manager for software quality at Rational, which is owned by IBM. Antipatterns can exhibit problems in scalability, maintenance and fragility.
“We’re looking to see how we can improve quality early in the development lifecycle,” Bessin said. SA4J may, eventually, be sold as a product after the company reviews feedback from architects and developers.
IBM stressed that every Java application can be seen as a network of nodes, including packages, classes and interfaces. The composition of these nodes and their relationships builds the dependency web. The organisation and structure of this web is proportional to the quality of the application's structure.
SA4J provides mathematically proven ways of determining the quality of the architecture, and this assessment can be used as a basis for deciding whether to reuse or modify existing Java code. If code is marked as unstable, even the smallest change in the architecture can result in unexpected delays in development as well as potentially more defects, IBM said.
The technology scans an application and detects structural antipatterns together with additional information about Java packages, classes and interfaces that have formed weak spots in the architecture of the application.
Through impact analysis, SA4J enables assessments of the impact on the rest of the application of changing any class or interface. SA4J uses byte code parsing to gather information about relationships between classes and interfaces of the analysed application.
A .net version of the technology is a possibility, although IBM is not yet talking about any commitments.
“In theory, this could be used for anything object-oriented. We’re only thinking about Java right now,” Bessin said.
SA4J will be available for developers to download and preview at www.alphaworks.ibm.com.
Paul Krill writes for InfoWorld