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