New technique detects bugs in object-oriented languages

CWI researcher Stijn de Gouw has developed a new technique for the detection of bugs in software written in object-oriented languages like Java. In a first test case, the technique was able to determine the correctness of complex software of marketing software company SDL Fredhopper. De Gouw defends his thesis Combining Monitoring with Run-time Assertion Checking on 18 December 2013 at Leiden University. The research has been carried out at CWI and Leiden Institute of Advanced Computer Science (LIACS) at Leiden University.

Recent research estimates that software bugs cause $312 billion dollars of damage annually. Preventing, isolating and solving bugs is therefore highly urgent. One of the ways to do this is Run-Time Checking, a technique that checks for errors during the running of the code and prevents further execution when a serious error is found. In object-oriented languages such as Java, objects communicate through messages. Run-Time Checking for such languages either checks whether the objects communicate in the correct order (Monitoring), or whether the content of the messages are correct (Run-Time Assertion Checking). The technique, developed by De Gouw using meta-programming language Rascal, is unique in combining these two approaches through clever use of a so-called attribute grammar.

The technique was tested in cooperation with SDL Fredhopper, an e-commerce solutions company that operates behind the scenes of over 300 of the world's largest web shops. The method efficiently tested crucial and complex parts of the Fredhopper Access Server (FAS), a software system that provides IT services for search and merchandise to e-commerce companies. It was the first time that the correctness of this software could be determined.

Thesis: Combining Monitoring with Run-time Assertion Checking
By: Stijn de Gouw (Leiden University and CWI Formal Methods Group)
Promoters: Prof. dr. F.S. de Boer (CWI and UL) and dr. M. Bonsangue (CWI and UL)
Date: 18 December 2013, 10.00h
Place: Academiegebouw Leiden University