IP Library Granted Patent US 8,806,464
Granted Patent B2
US 8,806,464 · App. 13/456,385 · Granted Aug 12, 2014

Process flow optimized directed graph traversal

Inventor: David Bryan Dewey (Milton, GA)
Assignee: Hewlett-Packard Development Company, L.P.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,806,464
App. No.
13/456,385
Granted
Aug 12, 2014
Kind
B2
Abstract

Embodiments disclosed herein relate to a process flow optimized directed graph traversal. In one embodiment, a processor performs a depth first traversal of the optimized directed graph where a node from a first node is not traversed until the nodes before the first node are traversed. The processor may output information associated with the nodes based on the traversal.

Claims (33)

1. A method, comprising:

analyzing, by a processor, an optimized directed graph of nodes representing a process flow, wherein the optimized directed graph comprises a first sub-graph and a second sub-graph, the first sub-graph being rooted at a first node and ending at a second node and comprising at least two predecessor nodes pointing at the second node, and the second sub-graph being rooted at the second node;

performing, by the processor, a depth first traversal of all nodes of the first sub-graph starting at the first node and ending at the second node;

after the depth first traversal of all nodes of the first sub-graph, performing, by the processor, a depth first traversal of all nodes of the second sub-graph starting from the second node; and

outputting, by the processor, text associated with a linear form of the process flow based on the depth first traversals, wherein the outputting comprises at least one of displaying the text and storing the text.

2. The method of claim 1 , wherein the optimized directed graph comprises a control flow directed graph of compiled software code.

3. The method of claim 2 , further comprising evaluating the output text for a security vulnerability.

4. The method of claim 2 , further comprising traversing a software code loop as a separate optimized directed graph.

5. The method of claim 1 , wherein outputting text comprises outputting conditional statements associated with the optimized directed graph based on the depth first traversals.

6. The method of claim 1 , wherein outputting text comprises combining two conditional statements where the nodes associated with the two conditional statements result in the same node in the directed graph.

7. An apparatus, comprising:

a machine-readable non-transitory storage medium comprising instructions to:

analyze an optimized directed graph of nodes representing a process flow, wherein the optimized directed graph comprises a first sub-graph and a second sub-graph, the first sub-graph being rooted at a first node and ending at a second node and comprising at least two predecessor nodes pointing at the second node, and the second sub-graph being rooted at the second node;

perform a first depth first traversal of all nodes of the first sub-graph starting at the first node and ending at the second node;

after the first depth first traversal, perform a second depth first search of all nodes in the second sub-graph starting from the second node; and

output information related to the process flow based on the traversal, wherein the instructions to output information comprise instructions to at least one of display the information and store the information; and

a processor to execute the instructions stored in the machine-readable non-transitory storage medium.

8. The apparatus of claim 7 , wherein instructions to output information comprise instructions to:

combine information from multiple nodes to create a conditional statement; and

output the conditional statement.

9. The apparatus of claim 7 , wherein the optimized directed graph comprises an optimized directed graph of compiled software source code.

10. The apparatus of claim 9 , wherein instructions to output information comprise instructions to output linear form of a software source code process flow.

11. The apparatus of claim 10 , wherein the machine-readable storage medium further comprises instructions to:

determine security information associated with the linear form of the software source code process flow; and

output the determined security information.

12. A machine-readable non-transitory storage medium comprising instructions executable by a processor to perform operations comprising:

reverse engineering an optimized directed graph of nodes representing a software source code process flow, wherein

the optimized directed graph comprises a first sub-graph and a second sub-graph, the first sub-graph being rooted at a first node and ending at a second node and comprising at least two predecessor nodes pointing at the second node, and the second sub-graph being rooted at the second node, and

the reverse engineering comprises performing a first depth first traversal of all nodes of the first sub-graph starting at the first node and ending at the second node and, after the first depth first traversal, performing a second depth first search of all nodes in the second sub-graph starting from the second node; and

outputting text associated with the optimized directed graph nodes based on the reverse engineering, wherein the text represents a linear form of the process flow, wherein the outputting comprises east one of displaying the text and storing the text.

13. The machine-readable non-transitory storage medium of claim 12 , further comprising instructions to analyze the output text for a security vulnerability.

14. The machine-readable non-transitory storage medium of claim 12 , further comprising instructions to combine text from two nodes into a single conditional statement where the two nodes result in the same node.

15. The machine-readable non-transitory storage medium of claim 12 , further comprising instructions to compile the linear form of the process flow.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2012
From: DEWEY, DAVID BRYAN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 028118/0759 →
Continuity (1)
Related Publication 20130291113A1 · Oct 31, 2013