Key research themes
1. How can dynamic program slicing be adapted for complex programming paradigms such as feature-oriented and object-oriented programs?
This research area focuses on developing dynamic slicing algorithms and intermediate program representations tailored to advanced programming paradigms that introduce complexities beyond traditional procedural programs. These paradigms include feature-oriented programming (FOP), which involves mixin layers and refinements, as well as object-oriented programming (OOP) with mechanisms like inheritance and friend functions. Dynamic slicing in this area matters because it enables precise debugging, testing, and maintenance in software systems with modular features and OO abstractions, overcoming limitations of classical slicing that may yield imprecise or incomplete slices.
2. What are effective methodologies for advanced program slicing combining slicing and program transformation semantics?
This theme investigates formal foundations and practical implementations of program slicing through semantic and transformational approaches using rigorous mathematical models. Program slicing is viewed as program transformations ensuring semantic equivalence or refinement, leading to correctness guarantees. This includes semantic slicing, conditioned slicing, and amorphous slicing—all aiming to produce executable slices that preserve essential program behavior under various criteria and inputs. This focus matters for establishing soundness and enabling advanced slicing functionalities such as slicing with specifications and conditions for use in reverse engineering, program comprehension, and re-engineering.
3. How can dynamic slicing address omission bugs to improve fault localization in practice?
This theme investigates the limitations of classical dynamic slicing when confronting omission bugs—faults caused by missing execution of code—and develops approaches for overcoming its dead ends. By conducting empirical studies on bug repositories and analyzing the causes and fixes of omission bugs, this research aims to extend dynamic slicing techniques to localize and recommend relevant suspicious code regions that standard dynamic slicing misses. This matters because omission bugs are prevalent and challenging for automated debugging, requiring refined techniques to enhance fault localization accuracy and developer productivity.