Finite State Machine Model for Software Defect Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Agile software engineering methodologies and rapid development lifecycles make software quality assurance challenging due to the combinatorial nature of model checking algorithms, which require excessive memory and processing power, leading to inefficiencies in detecting defects in software systems.
Innovation Solution
A method and system that generate a finite state machine (FSM) model using data abstraction and predicate abstraction to reduce the complexity of program slices, allowing for efficient detection of defects by identifying error states within the FSM, thereby reducing the computational burden.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional model checking algorithms are used to verify software systems, then comprehensive defect detection is achieved, but memory and processing power requirements increase exponentially
Solution Approach 1:
The patent divides the software system into multiple finite state machines (FSMs), where each FSM represents a specific component or module. This segmentation allows the model checker to verify each FSM independently rather than analyzing the entire system as one monolithic model, thereby reducing memory and processing requirements while maintaining comprehensive defect detection across all components.
Solution Approach 2:
The patent transforms the verification problem from analyzing the complete system state space to analyzing individual FSM state spaces. By changing the dimension of analysis from system-level to component-level, the computational complexity is reduced from exponential growth with respect to total system states to manageable levels for each individual FSM, enabling scalable verification.
2Reliability
If the complete system model is analyzed, then all potential defects are detected, but analysis time and computational cost increase exponentially
Solution Approach 1:
The software system is segmented into multiple independent FSMs representing different components. Each FSM is analyzed separately for defects, which dramatically reduces analysis time compared to analyzing the complete system model. The segmentation enables parallel verification of multiple components, further accelerating the overall defect detection process while maintaining comprehensive coverage.
Solution Approach 2:
The patent applies partial action by verifying only the essential properties of each FSM rather than performing exhaustive analysis of all possible system behaviors. This selective verification approach detects critical defects efficiently without requiring complete exploration of the entire system state space, thereby reducing analysis time while maintaining adequate defect detection coverage.
Data Source
AI summary
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.


