scispace - formally typeset
Search or ask a question

Showing papers by "Cristina Cifuentes published in 2014"


Patent
22 Apr 2014
TL;DR: In this paper, a method for detecting potential defects in a computer program is presented, based on a potential defect definition and a set of program objects associated with the potential defect in the source code.
Abstract: A method for detecting defects in a computer program. The method steps include obtaining source code and a potential defect definition; identifying, based on the potential defect definition, a set of program objects associated with a potential defect in the source code; extracting an executable program slice having the potential defect from the source code; generating, by a processor, an abstracted model of the program slice by: modeling, using data abstraction, the set of program objects as data-abstracted variables, identifying, within the program slice, a set of control statements including predicates necessary for evaluating the set of control statements, modeling, using predicate abstraction, the predicates as predicate-abstracted Boolean variables, and creating, based on the data-abstracted variables and the predicate-abstracted Boolean variables, a finite state machine (FSM) model of the program slice; and identifying an error state of the FSM indicating an occurrence of the potential defect within the program slice.

51 citations


Patent
24 Feb 2014
TL;DR: In this article, a path condition between the first instruction and the second instruction is defined as a complex disjunction including a first conjunction of predicates for the first control flow path and a second conjunction of predicate for the second flow path.
Abstract: A method for performing path-sensitive data-flow analysis for use in error checking functions includes identifying at least a first instruction and a second instruction in a control flow graph of a function. The identified first instruction and second instruction are connected by at least a first control flow path and a second control flow path. The method further includes defining a path condition between the first instruction and the second instruction as a complex disjunction including a first conjunction of predicates for the first control flow path and a second conjunction of predicates for the second control flow path. The method further includes converting the path condition into conjunctive normal form to obtain a converted path condition that includes a disjunction of atomic constraints, generating a simplified path condition by simplifying the disjunction of atomic constraints in the converted path condition to a value, analyzing the function using the simplified path condition to detect an error, and presenting the error.

15 citations


Book ChapterDOI
17 Nov 2014
TL;DR: This paper presents a technique for defect detection in large code bases called model-based analysis that incorporates ideas and techniques from program analysis and model checking to create a number of abstract programs from the large code base which can all be model checked.
Abstract: This paper presents a technique for defect detection in large code bases called model-based analysis. It incorporates ideas and techniques from program analysis and model checking. Model checking, while very precise, is unable to handle large code bases that are in the millions of lines of code. Thus we create a number of abstract programs from the large code base which can all be model checked. In order to create these abstract programs, we first identify potential defects quickly via static analysis. Second we create a program slice containing one potential defect. Each slice is then abstracted using a combination of automatic data and predicate abstraction. This abstracted model is then model checked to verify the existence or absence of the defect. By applying model checking to a large number of small models instead of one single large model makes our approach scalable without compromising on precision.

10 citations