IBM on Monday previewed technology for structural analysis of Java application development projects.
To be posted on the company's alphaWorks site, 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 visualization and browsing of the "dependency web," according to IBM. The dependency web function provides a schematic of relationships in software development. Impact analysis also is 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.
"This finds some of those antipatterns," said Bessin.
"We're looking to see how we can improve quality early in the development life cycle," Bessin said. SA4J may eventually be sold as a product after the company reviews feedback from architects and developers.
IBM is stressing 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 organization and structure of this web is proportional to the quality of the application's structure, IBM said.
Well-designed and well-developed applications take full advantage of stable object-oriented design, the company said. Applications that grow over time without a concern for maintainability and code reuse are unnecessarily complex with many cyclical dependencies, which results in instability.
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 analyzed application.
Although it is geared for Java at the moment, a .Net version of the technology is a possibility. However, 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.