Title :
Goal-Directed Reasoning for Specification-Based Data Structure Repair
Author :
Demsky, Brian ; Rinard, Martin C.
Author_Institution :
Dept. of Electr. Eng. & Comput. Sci., California Univ., Irvine, CA
Abstract :
Software errors and hardware failures can cause data structures in running programs to violate key data structure consistency properties. As a result of this violation, the program may produce unacceptable results or even fail. We present a new data structure repair system. This system accepts a specification of data structure consistency properties stated in terms of an abstract set-and relation-based model of the data structures in the running program. It then automatically generates a repair algorithm that, during the execution of the program, detects and repairs any violations of these constraints. The goal is to enable the program to continue to execute acceptably in the face of otherwise crippling data structure corruption errors. We have applied our system to repair inconsistent data structures in five applications: CTAS (an air traffic control system), AbiWord (an open source word processing program), Freeciv (an interactive multiplayer game), a parallel x86 emulator, and a simplified Linux file system. Our results indicate that the generated repair algorithms can effectively repair inconsistent data structures in these applications to enable the applications to continue to operate successfully in cases where the original application would have failed. Without repair, all of the applications fail
Keywords :
data structures; formal specification; inference mechanisms; system recovery; AbiWord; CTAS; Freeciv; air traffic control system; goal-directed reasoning; hardware failure; interactive multiplayer game; open source word processing program; parallel x86 emulator; simplified Linux file system; software error; specification-based data structure repair algorithm; Air traffic control; Application software; Data structures; Error correction codes; Face detection; File systems; Hardware; Linux; Software systems; Text processing; Testing and debugging; language constructs and features.;
Journal_Title :
Software Engineering, IEEE Transactions on
DOI :
10.1109/TSE.2006.122