Today’s life can hardly be imagined without the PC. Countless users appreciate the electronic computing machine for support in various applications. But hardly any user can escape software errors, the so-called bugs. As their eponyms in nature, these digital pests are difficult to find and to eliminate. Specialists from the Institute for Program Structures and Data Organization (IPD) of KIT are working on facilitating this search.
According to the Research Triangle Institute (RTI), about 35 percent of the software development time are spent in searching for errors. The basic approach to this so-called debugging is to go through a program step by step. Doing this, the definition of variables has to be observed. Even in case of smaller software projects, the number of the steps executed and the number of defined variables and decisions depending on this definition may be gigantic. Often, the complexity of software causes the error to manifest itself under certain conditions only. A short glance on the program text does not help when searching for the error. To find an error, numerous stepwise executions of the program are required and watched closely by the programmer, a tedious work.
A variety of approaches to optimizing this work exist. Some are aimed at preventing errors in advance. But bugs cannot be avoided completely, they are an annoying evil not only during development. Hardly any program is completely free of errors when commercialized. To effectively support a programmer in his search for errors, scientists at the IPD Chair of Information Administration Systems under the direction of Professor Klemens Böhm develop methods to give programmers an indication as to where they should search for an error. “If a programmer has to look at half as much program text only, this makes work much easier,” explains the project head, Christopher Oßner.
To detect a program error, the researchers use methods of data mining. Such methods are aimed at finding something interesting in data inventories. Similar means are used to separate spam from desired e-mails or to combine stars on telescope images to galaxies. When hunting bugs, it is recorded what a program does while it is executed. These data are then analyzed for typical features of a program error.
The data obtained usually are very extensive. Hence, analysis requires a high expenditure. To master this amount of data, the IPD scientists use a hierarchic procedure. Instead of analyzing the complete data inventory at once, it is first examined on a coarser level. “If you plan to do a trip around the world, you will not study the street maps of a city first, but have a look on the globe,” describes Oßner the method to analyze also larger software projects. The information obtained may then help a programmer in his search for a program error.
This problem also is of interest from the economic point of view, as much software development time may be saved. The data mining community considers error detection one of the most interesting and prominent problems. The IPD will present its latest findings at the SDM, the Conference for Data Analysis of the American Society for Industrial and Applied Mathematics, in April.
Being “The Research University in the Helmholtz Association”, KIT creates and imparts knowledge for the society and the environment. It is the objective to make significant contributions to the global challenges in the fields of energy, mobility, and information. For this, about 9,600 employees cooperate in a broad range of disciplines in natural sciences, engineering sciences, economics, and the humanities and social sciences. KIT prepares its 23,300 students for responsible tasks in society, industry, and science by offering research-based study programs. Innovation efforts at KIT build a bridge between important scientific findings and their application for the benefit of society, economic prosperity, and the preservation of our natural basis of life. KIT is one of the German universities of excellence.