Title :
Dynamically discovering likely program invariants to support program evolution
Author :
Ernst, Michael D. ; Cockrell, Jake ; Griswold, William G. ; Notkin, David
Author_Institution :
Dept. of Comput. Sci. & Eng., Washington Univ., Seattle, WA, USA
Abstract :
Explicitly stated program invariants can help programmers by identifying program properties that must be preserved when modifying code. In practice, however, these invariants are usually implicit. An alternative to expecting programmers to fully annotate code with invariants is to automatically infer invariants from the program itself. This research focuses on dynamic techniques for discovering invariants from execution traces. This paper reports two results. First, it describes techniques for dynamically discovering invariants, along with an instrumenter and an inference engine that embody these techniques. Second, it reports on the application of the engine to two sets of target programs. In programs from Cries´s work on program derivation, we rediscovered predefined invariants. In a C program lacking explicit invariants, we discovered invariants that assisted a software evolution task.
Keywords :
formal specification; inference mechanisms; software maintenance; C program; automatically inferred invariants; code modification; dynamically discovered program invariants; execution trace; explicitly stated program invariants; inference engine; instrumenter; predefined invariants; program derivation; program evolution; program property preservation; Application software; Computer science; Engines; Formal specifications; Pattern analysis; Pattern recognition; Permission; Programming profession; Runtime; Testing;
Conference_Titel :
Software Engineering, 1999. Proceedings of the 1999 International Conference on
Conference_Location :
Los Angeles, CA, USA
Print_ISBN :
1-58113-074-0