Less Bugs



The goal of this project is to develop methods for decreasing the ever accelerating cost for corrective software maintenance. In the industry today the largest part of the lifecycle cost for a typical computer based product is spent on corrective maintenance, i.e., testing and debugging. According to a recent studies up to 80% of the life cycle cost for software is spent on testing and debugging.

The increasing complexity of software, along with a decreasing average product development time, has increased the costs of errors. The software used in industrial automation systems, vehicular control systems, medical devices, telecommunication, as well as in military and space applications have a high degree of software complexity. This complexity is typically caused by the usage of multiple embedded computers, millions of lines of program code, several concurrently interacting programs (multi-tasking) and dependence on an external context in real-time.

A known fact is that bugs often are introduced early in the design but not detected until much later in the product lifecycle, typically during system integration and early customer acceptance tests. For embedded real-time software this fact makes the situation really difficult since most failures that are detected during integration and early deployment tests are extremely difficult to reproduce, due to a large degree of interaction between software, hardware and the environment. This makes debugging of embedded concurrent systems costly, since repetitive reproductions of the failure is necessary in order to track down the bug. What makes matters worse is the fact that the actual act of observation may change the behaviour of the system, especially if the observation is performed using some software other than the application code (causing a probe-effect).

Henrik Thane, Adjunct Professor

Email: henrik.thane@mdh.se
Phone: 021-183600