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."