Developers can use the SAJ tool to locate the root causes of problems and utilize the tool's assessments for deciding whether to reuse or modify existing Java code, said Geoffrey Bessin, market manager of software quality for IBM's Rational division. "A tool like this is tailor-made for Java's object-oriented nature," Bessin said.
Bessin said the SAJ tool, the first version of which runs on Windows with Linux and Solaris soon to follow, is the first of its kind because it combines Rational's modeling expertise with IBM's testing and analysis know-how.
"This really is a breakthrough tool for both architects and developers," Bessin said, "because with it you can find deficiencies -- or antipatterns -- that would otherwise go unnoticed until late in the application build. Most of these antipatterns are not significant enough to affect overall performance until other components are introduced into the system, but this tool can help predict future problems."
SAJ uses a fast mathematical method of determining the quality of a
software architecture, IBM said. It collects information about the packages, classes, and interfaces in a Java application, merges this data into a model, and then compares the results with a set of predefined patterns to detect important structures in Java, including antipatterns.
Every modification to an application's structure, such as fixing bugs or adding new features, can have an impact on the rest of the application and ultimately delay its release. SAJ enables developers to assess the impact of change on an application. Knowing the severity and impact of change during the development lifecycle enables precise planning and reduces development
time and cost, the company said.
"For example, a 'butterfly' is a generic kind of antipattern -- when a whole slew of components is dependent upon one central component," Bessin said. "These 'butterflies' can be very fragile and break easily. If there's a change in the system that affects the central component, there could be repercussions. Sometimes they're just accidental, sometimes not. The SAJ tool can predict with good results what might happen in those situations."
SAJ will not immediately be included in the open source Eclipse tool catalog, Bessin said. "We release it today, then we'll assess it later and see how much we might want to release into open source."