The public defence of Husni Khanfar's licentiate thesis in Computer Science

Datum: 2019-11-27
Tid: 13.15
Plats: room Gamma, MDH Västerås

The public defence of Husni Khanfar's licentiate thesis in Computer Science will take place at Mälardalen University on November 27 2019 at 13.15 in room Gamma, MDH Västerås.

Title: “Demand-Driven Static Backward Program Slicing Based on Predicated Code Block Graphs”.  

Serial number: 284.

The examining committee consists of Professor Welf Löwe, Linnaeus University; Professor Mariam Kamkar, Linköping University; Professor Görel Hedin, Lund University.  Among the members of the examining committee, Professor Welf Löwe has been appointed the faculty examiner.

Reserve, Associate professor Rikard Lindell, MDH.


Static program analysis is a technique that allows to study the behavior of a software program without running it. This technique is useful in optimizing the software for increased performance, verifying that the software is error-free, and ensuring that the software does exactly what it is intended to do. Note that the software verification is an essential part of the development process for safety-critical software, e.g., the software in the airbag system of a car. Program Slicing is an important static program analysis technique that analyses the software by identifying all those statements that affect a particular statement within the software. Such analysis requires thorough understanding of internal relations between the statements in the software. It is analogous to understanding and analyzing each sentence in a multi-sentence riddle with respect to the rest of the sentences.

The state-of-the-art slicing technique performs many types of unnecessary computations. This becomes a problem in slicing large and complex industrial software that might contain millions of statements, e.g., the software in a modern car. This thesis presents a novel slicing technique called the Predicated-Code block (PCB) based Slicing. The technique extends the state of the art by eliminating the computation of many types of unnecessary information while analyzing a software. The proposed technique is evaluated by performing several experiments, which show that the proposed technique outperforms the existing technique.