Method for detecting differences between graphical programs
DCFirst Claim
1. A computer-implemented method for detecting differences between first and second graphical programs, wherein the method executes on a computer including a display screen and an input device, wherein the first and second graphical programs comprise graphical code, wherein the first graphical program comprises a first plurality of objects and wherein the second graphical program comprises a second plurality of objects, the method comprising:
- creating data structures to represent said first and second graphical programs;
matching said first plurality of objects of said first graphical program with said second plurality of objects of said second graphical program;
determining differences between said first graphical program and said second graphical program in response to said matching; and
displaying an indication of said differences on the display screen.
1 Assignment
Litigations
0 Petitions
Reexamination
Accused Products
Abstract
A method for detecting differences between two graphical programs is disclosed. The graphical programs include objects, preferably arranged as a user interface panel, including controls and indicators, and a block diagram, including graphical code function blocks connected together as a data flow program. Directed graph data structures are created to represent the graphical programs, wherein the vertices of the graphs are the objects of the graphical programs and the edges of the graphs are data flow signals of the block diagram and/or hierarchical relationships of the user interface panel objects. The objects of the two graphical programs are heuristically matched together using a scoring approach. The scores are stored in a match matrix and indicate a degree of similarity between an object in the first graphical program and an object in the second graphical program according to one or more criteria. The matching criteria include object type, object connectivity and object attributes. The match matrix is resolved to generate a 1:1 or 1:0 correspondence between the objects in the first and second graphical programs based on the match scores. The matching information is used to determine differences in the two graphical programs. First, using the matching information and a compare engine, the objects are grouped into exact matching subgraphs and then into non-exact matching subgraphs. Non-exact matching subgraphs are matched and merged where possible using transitivity. Objects in the non-exact matching subgraphs are compared using the compare engine to detect additional differences. All detected differences are stored and displayed for the user. The differences may be displayed in various manners such as drawing a circle around the differences, highlighting the differences by color, and/or displaying a textual description of the differences.
175 Citations
67 Claims
-
1. A computer-implemented method for detecting differences between first and second graphical programs, wherein the method executes on a computer including a display screen and an input device, wherein the first and second graphical programs comprise graphical code, wherein the first graphical program comprises a first plurality of objects and wherein the second graphical program comprises a second plurality of objects, the method comprising:
-
creating data structures to represent said first and second graphical programs; matching said first plurality of objects of said first graphical program with said second plurality of objects of said second graphical program; determining differences between said first graphical program and said second graphical program in response to said matching; and displaying an indication of said differences on the display screen. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A computer system for detecting differences between first and second graphical programs, comprising:
-
a central processing unit (CPU); a display screen operably coupled to the CPU; an input device operably coupled to the CPU; and a memory for storing said first and second graphical programs and for storing a difference program for detecting differences between said first and second graphical programs, wherein the fast and second graphical programs comprise graphical code, wherein the first graphical program comprises a first plurality of objects and wherein the second graphical program comprises a second plurality of objects; wherein said CPU is operable to fetch program instructions of said difference program from said memory and to execute said program instructions to; create data structures to represent said first and second graphical programs; match said first plurality of objects of said first graphical program with said second plurality of objects of said second graphical program; determine differences between said first graphical program and said second graphical program in response to the matching; and display an indication of said differences on the display screen.
-
-
35. A computer-readable storage medium comprising program instructions for detecting differences between first and second graphical programs, wherein the program instructions execute on a computer including a display screen and an input device, wherein said program instructions are executable to implement:
-
creating data structures to represent first and second graphical programs, wherein the first and second graphical programs comprise graphical code, wherein the first graphical program comprises a first plurality of objects and wherein the second graphical program comprises a second plurality of objects; matching said first plurality of objects of said first graphical program with said second plurality of objects of said second graphical program; determining differences between said first graphical program and said second graphical program in response to said matching; and displaying an indication of said differences on the display screen. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67)
-
Specification