Software verification using model checking often translates programs into corresponding transition systems that model the program behavior. As software systems continue to grow i...
Two object-oriented programming language paradigms— dynamic, prototype-based languages and multi-method languages— provide orthogonal benefits to software engineers. These two...
This paper presents an algorithm for reverse engineering semantically sound object-oriented data models from programs written in weakly-typed languages like Cobol. Our inference i...
In software with emergent properties, despite the best efforts to remove faults before execution, there is a high likelihood that faults will occur during runtime. These faults c...
We develop a method for matching dynamic histories of program executions of two program versions. The matches produced can be useful in many applications including software piracy...