Claims Analysis
Total Claims: 21
Claim 1
Independent Claim
232 words
A method for determining a set of flow paths in a code listing as being the most likely ones to fail, the method comprising the steps of: (a) converting said code listing to a directed acyclic graph (DAG) representation, said DAG including nodes and directed edges, each node representing a basic block of unconditional code statements, a basic block being a code listing that terminates at an exit point once commencing at a starting point, a said exit point being an exit code statement or a conditional code statement, each edge representing an action taken upon the occurrence of a condition in a said conditional code statement; (b) loading as facts into a knowledge base, said nodes and directed edges from said DAG and unconditional code statements from each said basic block's code listing; (c) loading as rules into said knowledge base, conditional statements from said code listing and determined complexity indicator values for conditional and unconditional code statements; (d) assigning a weight in each node based upon a combination of complexity indicator values for conditional and unconditional code statements associated with a said node; and (e) determining a set of ranked flow paths through said code listing by employing said facts and rules, said flow paths ranked in order by analysis of each flow path's nodal weights, those flow paths with weights indicating greater complexity being those most likely to fail.
Claim 2
Independent Claim
232 words
A method for determining a set of flow paths in a code listing as being the most likely ones to fail, the method comprising the steps of: (a) converting said code listing to a directed acyclic graph (DAG) representation, said DAG including nodes and directed edges, each node representing a basic block of unconditional code statements, a basic block being a code listing that terminates at an exit point once commencing at a starting point, a said exit point being an exit code statement or a conditional code statement, each edge representing an action taken upon the occurrence of a condition in a said conditional code statement; (b) loading as facts into a knowledge base, said nodes and directed edges from said DAG and unconditional code statements from each said basic block's code listing; (c) loading as rules into said knowledge base, conditional statements from said code listing and determined complexity indicator values for conditional and unconditional code statements; (d) assigning a weight in each node based upon a combination of complexity indicator values for conditional and unconditional code statements associated with a said node; and (e) determining a set of ranked flow paths through said code listing by employing said facts and rules, said flow paths ranked in order by analysis of each flow path's nodal weights, those flow paths with weights indicating greater complexity being those most likely to fail.
Claim 3
Dependent Claim
24 words
The method as recited in claim 1 wherein said determining step (e) is based upon an accumulation of nodal weights in each flow path.
Claim 4
Dependent Claim
33 words
The method as recited in claim 1 wherein said complexity indicator values recited in step (c) for each statement comprise indications of the kind and number of logical operators in each said statement.
Claim 5
Dependent Claim
34 words
The method as recited in claim 1 wherein said complexity indicator values for conditional statements, are recited in step (c), comprises the number of conditions required to lead to a branch action or actions.
Claim 6
Dependent Claim
32 words
The method as recited in claim 1 wherein said complexity indicator values for conditional statements recited in step (c) comprise the number of branches that are indicated by each said conditional statement.
Claim 7
Dependent Claim
34 words
The method as recited in claim 1 wherein said assigned weight to a said node is based upon a sum of complexity indicator values of conditional and unconditional statements associated with a said node.
Claim 8
Dependent Claim
37 words
The method as recited in claim 1 wherein step (c) further comprises loading as rules, heuristics that determine complexity indicator values based upon a plurality of determined statement characteristics, said characteristics giving rise to complexity of function.
Claim 9
Dependent Claim
42 words
The method as recited in claim 7 wherein step (e) further comprises: searching flow paths in said code listing and summing nodal weights for each found flow path to arrive at a total nodal weight sum for each said found flow path.
Claim 10
Dependent Claim
69 words
The method as recited in claim 8 wherein step (e) further comprises: iterating through a plurality of heuristics in the performance of the search of the flow paths; modifying assigned nodal weights in accordance with findings that result from individual heuristics; and summing said nodal weights in each path for each said heuristic, whereby a set of nodal weight sums for each path are produced for each said heuristic.
Claim 11
Dependent Claim
40 words
The method as recited in claim 1 further comprising the step of: (f) displaying a graphical representation of flow paths in said code listing, and providing an indication in said graphical representation indicating those flow paths most likely to fail.
Claim 12
Dependent Claim
228 words
A data processing system that identifies a set of flow paths in a code listing as being the most likely ones to fail, said system comprising: means for converting said code listing to a directed acyclic graph (DAG) representation, said DAG including nodes and directed edges, each node representing a basic block of unconditional code statements that ends with an exit code statement or a conditional code statement and each edge representing an action taken upon the occurrence of a condition in a conditional statement that terminates a basic block; memory means, coupled to said means for converting, for including a knowledge base having facts and rules, said facts including said nodes and directed edges from said DAG and unconditional statements from each said basic block's code listing, said rules including conditional statements from said code listing and determined complexity indicator values for said conditional and unconditional statements; and means coupled to said memory means for assigning a weight to each node based upon a combination of complexity indicator values for conditional and unconditional statements associated with said node, said data processing system determining a set of ranked flow paths through said code listing by employing said facts and rules, said flow paths ranked in order by analysis of each flow path's nodal weights, those flow paths with weights indicating greater complexity being those most likely to fail.
Claim 13
Dependent Claim
228 words
A data processing system that identifies a set of flow paths in a code listing as being the most likely ones to fail, said system comprising: means for converting said code listing to a directed acyclic graph (DAG) representation, said DAG including nodes and directed edges, each node representing a basic block of unconditional code statements that ends with an exit code statement or a conditional code statement and each edge representing an action taken upon the occurrence of a condition in a conditional statement that terminates a basic block; memory means, coupled to said means for converting, for including a knowledge base having facts and rules, said facts including said nodes and directed edges from said DAG and unconditional statements from each said basic block's code listing, said rules including conditional statements from said code listing and determined complexity indicator values for said conditional and unconditional statements; and means coupled to said memory means for assigning a weight to each node based upon a combination of complexity indicator values for conditional and unconditional statements associated with said node, said data processing system determining a set of ranked flow paths through said code listing by employing said facts and rules, said flow paths ranked in order by analysis of each flow path's nodal weights, those flow paths with weights indicating greater complexity being those most likely to fail.
Claim 14
Dependent Claim
30 words
The system as recited in claim 11 wherein said data processing system determines said set of ranked flow paths based upon an accumulation of nodal weights in each flow path.
Claim 15
Dependent Claim
30 words
The system as recited in claim 11 wherein said complexity indicator value for each statement comprises an indication of the kind and number of logical operators in each said statement.
Claim 16
Dependent Claim
29 words
The system as recited in claim 11 wherein said complexity indicator values for conditional statements comprises the number of conditions required to lead to a branch action or actions.
Claim 17
Dependent Claim
28 words
The system as recited in claim 11 wherein said complexity indicator values for conditional statements comprise the number of branches that are indicated by each said conditional statement.
Claim 18
Dependent Claim
32 words
The system as recited in claim 11 wherein said assigned weight to a node is based upon a sum of complexity indicator values of conditional and unconditional statements associated with said node.
Claim 19
Dependent Claim
42 words
The system as recited in claim 11 wherein said data processing system searches flow paths in said code listing and sums nodal weights for each found flow path to arrive at a total nodal weight sum for each said found flow path.
Claim 20
Dependent Claim
67 words
The system as recited in claim 17 wherein said processor means iterates through a plurality of heuristics in the performance of the search of flow paths, modifies assigned nodal weights in accordance with findings that result from individual heuristics, and sums said nodal weights in each path for each said heuristic, whereby a set of nodal weight sums for each path are produced for each said heuristic.
Claim 21
Dependent Claim
38 words
The system as recited in claim 11 further comprising means for displaying a graphical representation of flow paths in said code listing, and providing an indication in said graphical representation indicating those flow paths most likely to fail.