IP Library Granted Patent US 7,701,869
Granted Patent B2
US 7,701,869 · App. 11/780,533 · Granted Apr 20, 2010

Generating a data flow diagram

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 7,701,869
App. No.
11/780,533
Granted
Apr 20, 2010
Kind
B2
Abstract

System and method for generating a data flow diagram. A data flow diagram is provided that includes one or more non-input bound data flow (NIBDF) nodes, each with a respective functionality, and at least one of which is a subsystem node representing a non-input bound data flow sub-diagram comprising a plurality of interconnected nodes. All non-input bound data flow nodes in the data flow diagram are converted into input bound data flow (IBDF) nodes to produce an IBDF diagram, including: for each NIBDF subsystem node in the data flow diagram: partitioning the NIBDF sub-diagram into a plurality of IBDF sub-diagrams that operate according to input bound data flow semantics without changing data dependencies of the NIBDF sub-diagram, and including a plurality of IBDF nodes respectively representing the plurality of IBDF sub-diagrams in the IBDF diagram in lieu of the NIBDF subsystem node. The IBDF diagram is then stored.

Claims (81)

1. A method for generating a data flow diagram, the method comprising:

a computer system providing a data flow diagram, wherein the data flow diagram comprises one or more non-input bound data flow nodes, each with a respective functionality, wherein at least one non-input bound data flow node in the data flow diagram is a subsystem node representing a non-input bound data flow sub-diagram comprising a plurality of interconnected nodes;

the computer system converting all non-input bound data flow nodes in the data flow diagram into input bound data flow nodes to produce an input bound data flow diagram, said converting comprising:

for each non-input bound data flow node in the data flow diagram:

analyzing the non-input bound data flow node to determine two or more input bound data flow nodes executable to perform the functionality of the non-input bound data flow, wherein each of the two or more input bound data flow nodes is independently callable, wherein, for each non-input bound data flow node that is a subsystem node, said analyzing comprises:

partitioning the non-input bound data flow sub-diagram into a plurality of input bound data flow sub-diagrams, wherein each of the input bound data flow sub-diagrams operates according to input bound data flow semantics without changing data dependencies of the non-input bound data flow sub-diagram, wherein said determining the two or more input bound data flow nodes comprises determining two or more input bound data flow nodes respectively representing the plurality of input bound data flow sub-diagrams; and

including the two or more input bound data flow nodes in the input bound data flow diagram in lieu of the non-input bound data flow node;

the computer system storing the input bound data flow diagram on a memory medium.

2. The method of claim 1 , wherein said determining comprises:

if any of the two or more input bound data flow nodes have not already been created, creating the input bound data flow nodes that have not already been created based on the functionality of the non-input bound data flow node, and storing the created input bound data flow nodes; and

if any of the two or more input bound data flow nodes have already been created, retrieving already created input bound data flow nodes.

3. The method of claim 2 , wherein said creating the two or more input bound data flow nodes is performed automatically.

4. The method of claim 2 , wherein said creating the two or more input bound data flow nodes is performed manually.

5. The method of claim 1 , wherein the non-input bound data flow sub-diagram initially comprises at least one non-input bound data flow node, and wherein said analyzing the non-input bound data flow node further comprises:

for each non-input bound data flow node in the non-input bound data flow sub-diagram,

performing said analyzing and said including.

6. The method of claim 1 , wherein said partitioning is performed based on input and output data dependencies of the interconnected nodes of the non-input bound data flow sub-diagram.

7. The method of claim 6 , wherein said partitioning further comprises:

computing a feed-through map for the non-input bound data flow sub-diagram indicating dependencies of each output of the non-input bound data flow sub-diagram upon inputs of the non-input bound data flow sub-diagram;

analyzing the feed-through map to determine at least two of the input bound data flow sub-diagrams that, if merged, would not produce any new data dependencies of the outputs of the non-input bound data flow sub-diagram upon inputs of the non-input bound data flow sub-diagram

merging the at least two of the input bound data flow sub-diagrams.

8. The method of claim 1 , wherein said analyzing and said including are performed automatically.

9. The method of claim 1 , wherein the input bound data flow diagram is characterized by an input bound data flow model of computation.

10. The method of claim 1 , wherein the input bound data flow diagram is a companion diagram of an original data flow diagram, wherein the original data flow diagram is displayed, and wherein the input bound data flow diagram is not displayed.

11. The method of claim 10 , further comprising:

in response to functional changes in the original data flow diagram, updating the input bound data flow diagram, comprising performing said converting only with respect to changed portions of the original data flow diagram.

12. The method of claim 10 , wherein the data flow diagram is a copy of the original data flow diagram, wherein said converting changes the data flow diagram to the input bound data flow diagram.

13. The method of claim 10 , wherein the data flow diagram is the original data flow diagram, wherein said converting generates the input bound data flow diagram as a new diagram without modifying the data flow diagram.

14. The method of claim 1 , wherein said converting changes the data flow diagram to the input bound data flow diagram.

15. The method of claim 1 , wherein said converting all non-input bound data flow nodes in the data flow diagram into input bound data flow nodes comprises:

performing said partitioning and said including for each non-input bound data flow subsystem node in the data flow diagram in a recursive manner.

16. A computer-accessible memory medium that stores program instructions for generating a data flow diagram, wherein the program instructions are executable by a processor to perform:

providing a data flow diagram, wherein the data flow diagram comprises one or more non-input bound data flow nodes, each with a respective functionality, wherein at least one non-input bound data flow node in the data flow diagram is a subsystem node representing a non-input bound data flow sub-diagram comprising a plurality of interconnected nodes;

converting all non-input bound data flow nodes in the data flow diagram into input bound data flow nodes to produce an input bound data flow diagram, said converting comprising:

for each non-input bound data flow node in the data flow diagram:

analyzing the non-input bound data flow node to determine two or more input bound data flow nodes executable to perform the functionality of the non-input bound data flow, wherein each of the two or more input bound data flow nodes is independently callable, wherein, for each non-input bound data flow node that is a subsystem node, said analyzing comprises:

partitioning the non-input bound data flow sub-diagram into a plurality of input bound data flow sub-diagrams, wherein each of the input bound data flow sub-diagrams operates according to input bound data flow semantics without changing data dependencies of the non-input bound data flow sub-diagram, wherein said determining the two or more input bound data flow nodes comprises determining two or more input bound data flow nodes respectively representing the plurality of input bound data flow sub-diagrams; and

including the two or more input bound data flow nodes in the input bound data flow diagram in lieu of the non-input bound data flow node; and

storing the input bound data flow diagram.

17. The memory medium of claim 16 , wherein said determining comprises:

if any of the two or more input bound data flow nodes have not already been created, creating the input bound data flow nodes that have not already been created based on the functionality of the non-input bound data flow node, and storing the created input bound data flow nodes; and

if any of the two or more input bound data flow nodes have already been created, retrieving already created input bound data flow nodes.

18. The memory medium of claim 17 , wherein the non-input bound data flow sub-diagram initially comprises at least one non-input bound data flow node, and wherein said analyzing the non-input bound data flow node further comprises:

for each non-input bound data flow node in the non-input bound data flow sub-diagram,

performing said analyzing and said including.

19. The memory medium of claim 17 , wherein said partitioning is performed based on input and output data dependencies of the interconnected nodes of the non-input bound data flow sub-diagram.

20. The memory medium of claim 19 , wherein said partitioning further comprises:

computing a feed-through map for the non-input bound data flow sub-diagram indicating dependencies of each output of the non-input bound data flow sub-diagram upon inputs of the non-input bound data flow sub-diagram;

analyzing the feed-through map to determine at least two of the input bound data flow sub-diagrams that, if merged, would not produce any new data dependencies of the outputs of the non-input bound data flow sub-diagram upon inputs of the non-input bound data flow sub-diagram

merging the at least two of the input bound data flow sub-diagrams.

21. The memory medium of claim 16 , wherein the input bound data flow diagram is a companion diagram of an original data flow diagram, wherein the original data flow diagram is displayed, and wherein the input bound data flow diagram is not displayed.

22. The memory medium of claim 21 , wherein the program instructions are further executable to perform:

in response to functional changes in the original data flow diagram, updating the input bound data flow diagram, comprising performing said converting only with respect to changed portions of the original data flow diagram.

23. The memory medium of claim 16 , wherein said converting all non-input bound data flow nodes in the data flow diagram into input bound data flow nodes comprises:

performing said analyzing and said including for each non-input bound data flow subsystem node in the data flow diagram in a recursive manner.

24. A system, comprising:

a processor; and

a memory medium, coupled to the processor, wherein the memory medium stores program instructions executable by the processor to:

provide a data flow diagram, wherein the data flow diagram comprises one or more non-input bound data flow nodes, each with a respective functionality, wherein at least one non-input bound data flow node in the data flow diagram is a subsystem node representing a non-input bound data flow sub-diagram comprising a plurality of interconnected nodes;

convert all non-input bound data flow nodes in the data flow diagram into input bound data flow nodes to produce an input bound data flow diagram, wherein to convert all non-input bound data flow nodes, the program instructions are executable to:

for each non-input bound data flow node in the data flow diagram:

analyze the non-input bound data flow node to determine two or more input bound data flow nodes executable to perform the functionality of the non-input bound data flow, wherein each of the two or more input bound data flow nodes is independently callable, wherein, for each non-input bound data flow node that is a subsystem node, to analyze the non-input bound data flow node, the program instructions are executable to:

partition the non-input bound data flow sub-diagram into a plurality of input bound data flow sub-diagrams, wherein each of the input bound data flow sub-diagrams operates according to input bound data flow semantics without changing data dependencies of the non-input bound data flow sub-diagram, wherein to determining the two or more input bound data flow nodes, the program instructions are executable to determine two or more input bound data flow nodes respectively representing the plurality of input bound data flow sub-diagrams; and

include the two or more input bound data flow nodes in the input bound data flow diagram in lieu of the non-input bound data flow node; and

store the input bound data flow diagram.

25. The system of claim 24 , wherein said determining comprises:

if any of the two or more input bound data flow nodes have not already been created, creating the input bound data flow nodes that have not already been created based on the functionality of the non-input bound data flow node, and storing the created input bound data flow nodes; and

if any of the two or more input bound data flow nodes have already been created, retrieving already created input bound data flow nodes.

26. The system of claim 25 , wherein the non-input bound data flow sub-diagram initially comprises at least one non-input bound data flow node, and wherein said analyzing the non-input bound data flow node further comprises:

for each non-input bound data flow node in the non-input bound data flow sub-diagram,

performing said analyzing and said including.

27. The system of claim 25 , wherein said partitioning is performed based on input and output data dependencies of the interconnected nodes of the non-input bound data flow sub-diagram.

28. The system of claim 27 , wherein said partitioning further comprises:

computing a feed-through map for the non-input bound data flow sub-diagram indicating dependencies of each output of the non-input bound data flow sub-diagram upon inputs of the non-input bound data flow sub-diagram;

analyzing the feed-through map to determine at least two of the input bound data flow sub-diagrams that, if merged, would not produce any new data dependencies of the outputs of the non-input bound data flow sub-diagram upon inputs of the non-input bound data flow sub-diagram

merging the at least two of the input bound data flow sub-diagrams.

29. The system of claim 24 , wherein the input bound data flow diagram is a companion diagram of an original data flow diagram, wherein the original data flow diagram is displayed, and wherein the input bound data flow diagram is not displayed.

30. The system of claim 29 , wherein the program instructions are further executable by the processor to:

in response to functional changes in the original data flow diagram, update the input bound data flow diagram, comprising performing said converting only with respect to changed portions of the original data flow diagram.

31. The system of claim 24 , wherein said converting all non-input bound data flow nodes in the data flow diagram into input bound data flow nodes comprises:

performing said analyzing and said including for each non-input bound data flow subsystem node in the data flow diagram in a recursive manner.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →