NASA Spinoff

A Predictive Approach to Eliminating Errors in Software Code

Software errors are usually not found until the late stages of the development cycle, when it becomes very costly to go back and fix them. Addressing these errors, however, is essential; otherwise, software developers build a reputation for delivering faulty products or, even worse, create life-critical situations when the software is part of larger systems or devices, such as power plant-monitoring systems or medical equipment.

Integrated Software Metrics is addressing these problems on the front end, before it becomes too late. The three products that make up its new Predictive suite are: Predictive Lite, Predictive Pro, and Predictive Server.

Predictive Lite was launched in February 2005 and provides basic metrics analysis and error prediction across one or more projects, for those who develop and manage software, including project managers, individual developers, and software quality assurance professionals. While identifying error-prone code, Predictive Lite will create color-coded reports that highlight risk areas. The user can then focus attention on the flawed code and assign resources to check and potentially fix the code before the project is completed.

The Lite version of the software, designed for C, C++, and Java source codes, was made to be deployed on the same PC where the code resides, making it a streamlined tool that is easy to use. The user just directs Predictive Lite to the target code, and the metrics are automatically applied. This simple interface also allows the user to monitor progress as the tool performs its analysis. When the analysis is completed, all error-prone code is organized hierarchically. A user can typically expect to see a complete analysis within minutes, as Predictive Lite possesses an average processing speed of 1,500 lines of code per second (on a standard system with a 2.8 GHz processor and 512 MB of RAM).

In an example of application, Houston-based GB Tech, Inc., a technical services company providing engineering services to government, recently managed a small but critical software project for the U.S. Department of Defense (DOD), using Predictive Lite. The project involved software code, consisting of only 5,000 lines, that operated a battery management system for the DOD’s Joint Strike Fighter manned airplane. Despite the diminutive number of lines, hazard criticality was rated extremely high. This code had to be tested extensively to ensure safety, given that the battery was a lithium ion battery, which can overcharge and possibly explode.

GB Tech first used a more expensive tool for structural code coverage before trying Predictive Lite. Later, it ran both tools on the same code to perform a comparison, which demonstrated that Predictive Lite produced consistent results and exceeded the abilities of the more expensive tool, in terms of architectural complexity and calculations.

Predictive Pro, the second product belonging to the Predictive portfolio, was launched in June 2005 and includes standard and heuristics modes, as well as a trend-identification mode that analyzes historical code to find patterns and trends. The standard mode is used early in the software life cycle, before error data are accumulated.

Earning 9 out of 10 stars from CRN magazine, Predictive Pro gives quality assurance managers “a tool with teeth.” The software is deployed on the same PC where the targeted code resides. The user just directs Predictive Pro to the code and metrics are generated. The output shows every module in the project, the associated metrics, its location, and error data for that module. Predictive Pro’s color-coding scheme of red, yellow, and green readily identifies the code modules of high, medium, and low risk, so that errors can be found easily.