
IBM has developed a tool to reduce errors in programming. Its
Rational Software Analyser is designed to detect errors in
software while the code is being written.
The product is basically a
static code analyser, which is bit like a word processor for
checking the "grammar" and "spelling" in source code. What sets
IBM's Rational Software Analyser apart is that with its approach
source code written in multiple languages can be analysed at the
same time. The different pieces of source code are presented in the
same integrated development environment.
Finding and fixing bugs in software is a costly business.
Identifying and repairing software defects in a software
application that is already in production can cost software
developers more than £8100 for each defect.
An International Data Corporation (IDC) report found that
economic conditions and problems with the way businesses are
debugging software mean this could be a particularly important
product. Companies are taking risks on software because, with
businesses cutting staff in the tough market conditions, there are
fewer people to fix bugs.
The IDC white paper says that addressing defects found as the
software is about to go into production costs about 100 times more
than addressing defects early on in the cycle. The research found
72% of businesses described their debugging process as
problematic.
The challenge of building high-calibre software or the demand
for IT projects to be delivered on time and within budget is not a
new phenomenon. However, software is often tested with a runtime
debugger or code profiler after 90% of the code has been written
and the program is about to go into production.
IBM's Rational Software Analyser uses static analysis - it
analyses source code without the program running in order to spot
defects before the application is built. Static analysis in a
simpler form assesses the behaviour of individual statements and
declarations rather than the entire source code.
IBM says that current manual testing processes used by
development teams are not only time-consuming, cutting down time
spent actually developing the software, but also prone to
error.
The Rational product functions similarly to a grammar checker in
word. It automatically scans each line of code up to 700 times,
"grammar checking" the code and providing suggestions on how to fix
any defects before it goes into production. The software assesses
code dependency to check relationships between source files and
make sure the code follows known design patterns. Software Analyser
also checks whether code is unnecessarily complex, highlighting
methods that use more than three parameters. Trending is used to
gauge whether the code is getting better or worse.
The tool can analyse code for Java and C/C++ code, with other
languages supported through extensions.
Code can be viewed in a single interface to analyse each
component in a multi-language application.
IBM says the Analyser also supports integration with other code
analysis tools.
Bola Rotibi, principal analyst at Macehiter Ward Dutton, says
the Rational Software Analyser could be particularly useful because
of the speed of its engine and the architecture of the product.
"The actual checking of the code is not the innovative bit. The
innovation is in the speed of the engine, that thousands of lines
of code can be checked for defects, and the architecture of the
programme which has been aligned to how software is developed. The
workbench format means that multi-language code can be assessed in
a common interface and show the developer how different language
codes interrelate. Particularly now, because of global outsourcing,
it is important that all code can be looked at in a unified
workbench."
"The product is one tool in the arsenal of software developers.
I disagree that a developer who uses dynamic analysis has no need
for static analysis, because no single test can find all
defects.What is needed is a layered approach," says Tony Baer,
senior analyst at Ovum.
IBM claims the amount of defective software hitting the market
place could be cut by up to 20% with the advent of Rational
Software Analyser.
IBM is not the only company offering code testing tools. Some
products already test for code errors without the need to run any
additional development tools. Simon Swords, director of software
development company Atlas, says, "In
Microsoft's Visual Studio if you attempt to write code that is
incorrect from a syntax point of view that will get flagged
up."
The ability to assess code written in different programming
languages in a common interface is likely to lead to a rethink in
how software projects are managed. Clearly, there is a risk
automated tools like Rational Software Analyser could create an
unwarranted complacency on the part of developers. But any attempt
to reduce coding errors is a good thing. As Bola Rotibi says,
"There is now no excuse for bad code."