Patentable/Patents/US-6138270
US-6138270

System, method and memory medium for detecting differences between graphical programs

PublishedOctober 24, 2000
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Patent Claims
92 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A computer-implemented method for detecting differences between first and second graphical programs, wherein the method executes on a computer including a display, the method comprising: determining differences between said first graphical program and said second graphical program, wherein said first graphical program and said second gaphical program each comprise graphical code; and displaying an indication of said differences on the display; wherein said differences are used to evaluate at least one of the first graphical program and the second graphical program.

2

2. The method of claim 1, wherein said first and second graphical programs each comprise a block diagram which includes interconnected function icons.

3

3. The method of claim 1, wherein said first and second graphical programs each include a user interface panel which displays data.

4

4. The method of claim 1, wherein said first graphical program includes a first user interface panel for viewing at least one of input to or output from the first graphical program; wherein said second graphical program includes a second user interface panel for viewing at least one of input to or output from the second graphical program.

5

5. The method of claim 1, wherein said displaying said differences includes displaying a textual description of each of said differences.

6

6. The method of claim 1, wherein said displaying said differences comprises displaying at least one of said first and second graphical programs, wherein said displaying said differences further comprises highlighting at least a subset of said differences between said first and second graphical programs.

7

7. The method of claim 1, wherein said determining differences between said first graphical program and said second graphical program includes comparing differences between attributes of said first graphical program and attributes of said second graphical program.

8

8. The method of claim 1, wherein said first and second graphical programs each comprise a block diagram comprising graphical code, a user interface panel for displaying one or more of data output from the block diagram and data input to the block diagram, and graphical program attributes; wherein said determining differences between said first graphical program and said second graphical program comprises: determining differences between said block diagrams of said first and second graphical programs; determining differences between said user interface panels of said first and second graphical programs; determining differences between said graphical program attributes of said first and second graphical programs.

9

9. The method of claim 1, wherein said determining differences between said first and second graphical programs comprises finding functional differences between said first graphical program and said second graphical program, wherein a functional difference indicates a potential difference in execution of said first and second graphical programs.

10

10. The method of claim 9, wherein said determining differences between said first and second graphical programs includes finding cosmetic differences between said first and second graphical programs, wherein a cosmetic difference is a non-functional difference.

11

11. The method of claim 1, 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 determining differences includes determining differences between said first plurality of objects of said first graphical program and said second plurality of objects of said second graphical program.

12

12. The method of claim 11, wherein said objects include function block icons.

13

13. The method of claim 11, wherein said objects include controls and indicators.

14

14. The method of claim 11, wherein said objects include functions block icons; and wherein said objects also include data flow paths coupled between said functions block icons.

15

15. The method of claim 11, wherein said determining differences includes matching said first plurality of objects of said first graphical program with said second plurality of objects of said second graphical program.

16

16. The method of claim 15, further comprising: creating data structures to represent said first and second graphical programs, wherein said matching uses said data structures.

17

17. The method of claim 15, wherein said matching includes determining matches between one or more of said first plurality of objects of said first graphical program with one or more of said second plurality of objects of said second graphical program.

18

18. The method of claim 17, wherein said matching comprises determining objects of said first graphical program which have a same type as objects of said second graphical program.

19

19. The method of claim 18, wherein said matching further comprises determining if an object of said first graphical program which has the same type as an object of said second graphical program has the same type as another object in said second graphical program.

20

20. The method of claim 15, wherein said determining differences includes determining objects present in said first graphical program which have no matching object in said second graphical program.

21

21. The method of claim 15, wherein said determining differences includes comparing matching objects in said first graphical program and said second graphical program to determine differences in said matching objects.

22

22. The method of claim 21, wherein each of said first plurality of objects and said second plurality of objects comprises a set of attributes and methods, wherein said comparing matching objects includes comparing attributes of said matching objects in said first graphical program and said second graphical program.

23

23. The method of claim 15, wherein, for each respective object in said first graphical program, said matching comprises: comparing the respective object in said first graphical program with one or more objects in said second graphical program; determining a score value for a plurality of object pairs in response to said comparing, wherein each of said plurality of object pairs comprises two object elements, said two object elements comprising said respective object in said first graphical program and an object of said one or more objects in said second graphical program, wherein said score value indicates a degree of matching between said object elements comprising said object pair.

24

24. The method of claim 23, wherein said determining said score value for one of said plurality of object pairs includes examining connectivity of object elements comprising said object pair.

25

25. The method of claim 23, wherein said determining said score value for one of said plurality of object pairs includes examining attributes of object elements comprising said object pair.

26

26. The method of claim 23, wherein said score value is a weighted score value, wherein said determining said score value for one of said plurality of object pairs includes examining connectivity of object elements comprising said object pair and examining attributes of object elements comprising said object pair; wherein said connectivity of object elements has greater weight than said attributes of said object elements.

27

27. The method of claim 26, wherein said attributes comprise functional attributes and cosmetic attributes; wherein said functional attributes have greater weight than said cosmetic attributes.

28

28. The method of claim 23, wherein said matching further comprises: storing said score values in a match matrix, wherein said match matrix comprises rows which correspond to said first plurality of objects in said first graphical program, and wherein said match matrix comprises columns which correspond to said second plurality of objects in said second graphical program; wherein for an ith row and a jth column, the matrix element (i,j) includes the score value for the object pair comprising object i and object j.

29

29. The method of claim 28, wherein said matching further comprises: resolving said match matrix using said match matrix score values, wherein said resolving produces a 1:1 or 1:0 relationship between objects in said first graphical program and objects in said second graphical program depending upon whether or not an object in said first graphical program has a matching object in said second graphical program.

30

30. The method of claim 28, wherein said matching further comprises: resolving said match matrix using said match matrix score values, wherein, for each of at least a subset of said rows corresponding to said first plurality of objects, said resolving produces a column from said second plurality of objects in said second graphical program, wherein said produced column has a match matrix element with a highest score value for the respective row.

31

31. The method of claim 15, wherein said matching produces a resolved match matrix, wherein said resolved match matrix comprises matching information regarding matches between said first plurality of objects in said first graphical program and said second plurality of objects in said second graphical program; wherein said determining differences between said first graphical program and said second graphical program comprises: grouping objects which have exact matches with connectivity matches into exact matching connected components using said matching information; grouping remaining objects to produce non-exact matching connected components wherein said grouping remaining objects produces a first list of non-exact-matching connected components and produces a second list of non-matching connected components; matching said first and second lists of non-exact matching connected components, wherein said matching said first and second lists of non-exact matching connected components includes finding common objects in said first and second lists of non-exact matching connected components, wherein said matching said first and second lists of non-exact matching connected components produces second matching information; merging said first and second lists of non-exact matching connected components using said second matching information, wherein said merging produces a composite non-exact matching connected component list; storing corresponding non-exact matching connected components in a result data structure; comparing matching objects in corresponding non-exact matching connected components to determine additional object differences; storing said additional object differences in said result data structure.

32

32. The method of claim 31, wherein said grouping objects which have exact matches with connectivity matches comprises grouping objects which have exact matches with connectivity matches using said matching information to produce a first list of exact matching connected components and to produce a second list of exact matching connected components, wherein said grouping objects includes comparing objects according to one or more criteria to determine exact matches between objects, wherein an exact match comprises a match in the match matrix and match in said comparing.

33

33. The method of claim 15, wherein said first graphical program comprises a first user interface panel including a subset of said first plurality of objects; wherein said second graphical program comprises a second user interface panel including a subset of said second plurality of objects; wherein said matching produces a user interface panel match matrix comprising matching information; wherein said determining differences includes determining differences between said first user interface panel and said second user interface panel which comprises: comparing matching top-level objects of said first and second user interface panels to determine differences between said top-level objects using said matching information; comparing low-level objects of said top-level objects to determine differences between said low-level objects using said matching information; storing said differences in response to said comparing matching top-level objects of said first and second user interface panels and said comparing low-level objects of said top-level objects.

34

34. The method of claim 11, further comprising: creating one or more data structures which includes information regarding said first plurality of objects in said first graphical program and said second plurality of objects in said second graphical program; wherein said determining differences uses said one or more data structures.

35

35. The method of claim 34, wherein said one or more data structures each comprise directed graphs comprising a plurality of vertices connected by edges, wherein each of said vertices represents one of said objects in a respective one of said graphical programs.

36

36. The method of claim 1, wherein said differences are useable in determining differences between the first graphical program and the second graphical program.

37

37. The method of claim 1, wherein said differences are useable in determining errors in at least one of the first graphical program and the second graphical program.

38

38. The method of claim 1, wherein said differences are useable in eliminating errors in at least one of the first graphical program and the second graphical program.

39

39. The method of claim 1, further comprising: modifying at least one of the first graphical program and the second graphical program to eliminate errors in at least one of the first graphical program and the second graphical program, wherein said modifying is performed in response to said differences.

40

40. The method of claim 1, wherein the first graphical program comprises interconnected graphical objects which specify operation of the first graphical program, and wherein the second graphical program comprises interconnected graphical objects which specify operation of the second graphical program.

41

41. The method of claim 1, wherein the first graphical program comprises interconnected icons which specify operation of the first graphical program, and wherein the second graphical program comprises interconnected icons which specify operation of the second graphical program.

42

42. A computer-implemented method for detecting differences between first and second graphical programs, wherein the method executes on a computer including a display, the method comprising: creating the first graphical program, wherein the first graphical program comprises first graphical code; creating the second graphical program, wherein the second graphical program comprises second graphical code; determining differences between said first graphical program and said second graphical program; and displaying an indication of said differences on the display; wherein said differences are used to evaluate at least one of the first graphical program and the second graphical program.

43

43. The method of claim 42, wherein the first graphical program comprises a first plurality of objects; wherein the second graphical program comprises a second plurality of objects; wherein said determining differences comprises determining differences between said first plurality of objects in said first graphical program and said second plurality of objects in said second graphical program.

44

44. The method of claim 42, wherein said graphical code includes function block icons.

45

45. The method of claim 42, wherein said graphical code includes interconnected function block icons.

46

46. The method of claim 42, wherein said creating the second graphical program comprises modifying the first graphical program to create the second graphical program.

47

47. A computer-implemented method for detecting differences between first and second graphical programs, wherein the method executes on a computer including a display, the method comprising: creating the first graphical program, wherein the first graphical program comprises first graphical code, wherein the first graphical program comprises a first plurality of objects; creating the second graphical program, wherein the second graphical program comprises second graphical code, wherein the second graphical program comprises a second plurality of objects; determining differences between said first plurality of objects in said first graphical program and said second plurality of objects in said second graphical program; and displaying an indication of said differences on the display; wherein said differences are used to evaluate at least one of the first graphical program and the second graphical program.

48

48. A computer-implemented method for detecting differences between first and second graphical programs, wherein the method executes on a computer including a display, the method comprising: creating the first graphical program, wherein the first graphical program comprises first graphical code, wherein the first graphical program comprises a first plurality of objects; creating the second graphical program, wherein the second graphical program comprises second graphical code, 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; wherein said differences are used to evaluate at least one of the first graphical program and the second graphical program.

49

49. A computer-implemented method for detecting differences between first and second graphical programs, wherein the method executes on a computer including a display, 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: 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; wherein said differences are used to evaluate at least one of the first graphical program and the second graphical program.

50

50. A computer system for detecting differences between first and second graphical programs, comprising: a central processing unit (CPU); a display coupled to the CPU; and a memory medium coupled to the CPU which stores said first and second graphical programs, wherein each of the said first and second graphical programs comprises graphical code, wherein the memory medium also stores a difference program for detecting differences between said first and second graphical programs; wherein said CPU is operable to execute said difference program to determine differences between said first graphical program and said second graphical program and to display an indication of said differences on the display; wherein said differences are used to evaluate at least one of the first graphical program and the second graphical program.

51

51. The computer system of claim 50, 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 match said first plurality of objects of said first graphical program with said second plurality of objects of said second graphical program to determine differences between said first graphical program and said second graphical program.

52

52. The computer system of claim 51, wherein said objects include function block icons.

53

53. The computer system of claim 51, wherein said objects include controls and indicators for displaying data.

54

54. The computer system of claim 51, wherein said objects include function block icons; and wherein said objects also include data flow paths coupled between said function block icons.

55

55. The computer system of claim 50, wherein, to display an indication of said differences on the display, the CPU is operable to display at least one of said first and second graphical programs and highlight at least a subset of said differences between said first and second graphical programs.

56

56. A computer system for detecting differences between first and second graphical programs, comprising: a central processing unit (CPU); a display coupled to the CPU; and a memory medium coupled to the CPU which stores said first and second graphical programs, wherein each of the said first and second graphical programs comprises 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 the memory medium also stores a difference program for detecting differences between said first and second graphical programs; wherein said CPU is operable to execute said difference program to: 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; wherein said differences are used to evaluate at least one of the first graphical program and the second graphical program.

57

57. A computer-readable memory medium comprising program instructions for detecting differences between first and second graphical programs, wherein the program instructions execute on a computer including a display, wherein the program instructions are executable to implement: determining differences between said first graphical program and said second graphical program, wherein said first graphical program and said second gaphical program each comprise graphical code; and displaying an indication of said differences on the display; wherein said differences are used to evaluate at least one of the first graphical program and the second graphical program.

58

58. The memory medium of claim 57, 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 determining differences includes determining differences between said first plurality of objects of said first graphical program and said second plurality of objects of said second graphical program.

59

59. The memory medium of claim 58, wherein said objects include function block icons.

60

60. The memory medium of claim 58, wherein said objects include controls and indicators.

61

61. The memory medium of claim 58, wherein said objects include functions block icons; and wherein said objects also include data flow paths coupled between said function block icons.

62

62. The memory medium of claim 57, wherein said first and second graphical programs each comprise a block diagram which includes interconnected function icons.

63

63. The memory medium of claim 57, wherein said first and second graphical programs each include a user interface panel which displays data.

64

64. The memory medium of claim 57, wherein said displaying said differences includes displaying a textual description of each of said differences.

65

65. The memory medium of claim 57, wherein said displaying said differences comprises displaying at least one of said first and second graphical programs, wherein said displaying said differences further comprises highlighting at least a subset of said differences between said first and second graphical programs.

66

66. The memory medium of claim 57, wherein said determining differences between said first graphical program and said second graphical program includes comparing differences between attributes of said first graphical program and attributes of said second graphical program.

67

67. The memory medium of claim 57, wherein said first and second graphical programs each comprise a block diagram comprising graphical code, a user interface panel for displaying one or more of data output from the block diagram and data input to the block diagram, and graphical program attributes; wherein said determining differences between said first graphical program and said second graphical program comprises: determining differences between said block diagrams of said first and second graphical programs; determining differences between said user interface panels of said first and second graphical programs; determining differences between said graphical program attributes of said first and second graphical programs.

68

68. The memory medium of claim 57, wherein said determining differences between said first and second graphical programs comprises finding functional differences between said first graphical program and said second graphical program, wherein a functional difference indicates a potential difference in execution of said first and second graphical programs.

69

69. The memory medium of claim 68, wherein said determining differences between said first and second graphical programs includes finding cosmetic differences between said first and second graphical programs, wherein a cosmetic difference is a non-functional difference.

70

70. The memory medium of claim 57, 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 determining differences includes matching said first plurality of objects of said first graphical program with said second plurality of objects of said second graphical program.

71

71. The memory medium of claim 70, wherein said matching includes determining matches between one or more of said first plurality of objects of said first graphical program with one or more of said second plurality of objects of said second graphical program.

72

72. The memory medium of claim 71, wherein said matching comprises determining objects of said first graphical program which have a same type as objects of said second graphical program.

73

73. The memory medium of claim 72, wherein said matching further comprises determining if an object of said first graphical program which has the same type as an object of said second graphical program has the same type as another object in said second graphical program.

74

74. The memory medium of claim 70, wherein said determining differences includes determining objects present in said first graphical program which have no matching object in said second graphical program.

75

75. The memory medium of claim 70, wherein said determining differences includes comparing matching objects in said first graphical program and said second graphical program to determine differences in said matching objects.

76

76. The memory medium of claim 75, wherein each of said objects comprises a set of attributes and methods, wherein said comparing matching objects includes comparing attributes of said matching objects in said first graphical program and said second graphical program.

77

77. The memory medium of claim 70, wherein said first and second graphical programs each comprise a block diagram comprising graphical code, a user interface panel for displaying one or more of data output from the block diagram and data input to the block diagram, and graphical program attributes; wherein said determining differences between said first graphical program and said second graphical program comprises: determining differences between said block diagrams of said first and second graphical programs; determining differences between said user interface panels of said first and second graphical programs; determining differences between said graphical program attributes of said first and second graphical programs.

78

78. The memory medium of claim 70, wherein, for each respective object in said first graphical program, said matching comprises: comparing the respective object in said first graphical program with one or more objects in said second graphical program; determining a score value for a plurality of object pairs in response to said comparing, wherein each of said plurality of object pairs comprises two object elements, said two object elements comprising said respective object in said first graphical program and an object of said one or more objects in said second graphical program, wherein said score value indicates a degree of matching between said object elements comprising said object pair.

79

79. The memory medium of claim 78, wherein said determining said score value for one of said plurality of object pairs includes examining connectivity of object elements comprising said object pair.

80

80. The memory medium of claim 78, wherein said determining said score value for one of said plurality of object pairs includes examining attributes of object elements comprising said object pair.

81

81. The memory medium of claim 78, wherein said score value is a weighted score value, wherein said determining said score value for one of said plurality of object pairs includes examining connectivity of object elements comprising said object pair and examining attributes of object elements comprising said object pair; wherein said connectivity of object elements has greater weight than said attributes of said object elements.

82

82. The memory medium of claim 81, wherein said attributes comprise functional attributes and cosmetic attributes; wherein said functional attributes have greater weight than said cosmetic attributes.

83

83. The memory medium of claim 78, wherein said matching further comprises: storing said score values in a match matrix, wherein said match matrix comprises rows which correspond to said first plurality of objects in said first graphical program, and wherein said match matrix comprises columns which correspond to said second plurality of objects in said second graphical program; wherein for an ith row and a jth column, the matrix element (i,j) includes the score value for the object pair comprising object i and object j.

84

84. The memory medium of claim 83, wherein said matching further comprises: resolving said match matrix using said match matrix score values, wherein said resolving produces a 1:1 or 1:0 relationship between objects in said first graphical program and objects in said second graphical program depending upon whether or not an object in said first graphical program has a matching object in said second graphical program.

85

85. The memory medium of claim 83, wherein said matching further comprises: resolving said match matrix using said match matrix score values, wherein, for each of at least a subset of said rows corresponding to said first plurality of objects, said resolving produces a column from said second plurality of objects in said second graphical program, wherein said produced column has a match matrix element with a highest score value for the respective row.

86

86. The memory medium of claim 70, wherein said first graphical program comprises a first user interface panel including a subset of said first plurality of objects for displaying one or more of data output and data input; wherein said second graphical program comprises a second user interface panel including a subset of said second plurality of objects for displaying one or more of data output and data input; wherein said matching produces a user interface panel match matrix comprising matching information; wherein said determining differences includes determining differences between said first user interface panel and said second user interface panel which comprises: comparing matching top-level objects of said first and second user interface panels to determine differences between said top-level objects using said matching information; comparing low-level objects of said top-level objects to determine differences between said low-level objects using said matching information; storing said differences in response to said comparing matching top-level objects of said first and second user interface panels and said comparing low-level objects of said top-level objects.

87

87. The memory medium of claim 57, wherein said differences are useable in determining differences between the first graphical program and the second graphical program.

88

88. The memory medium of claim 57, wherein said differences are useable in determining errors in at least one of the first graphical program and the second graphical program.

89

89. The memory medium of claim 57, wherein said differences are useable in eliminating errors in at least one of the first graphical program and the second graphical program.

90

90. The memory medium of claim 57, wherein the program instructions are further executable to implement: modifying at least one of the first graphical program and the second graphical program to eliminate errors in at least one of the first graphical program and the second graphical program, wherein said modifying is performed in response to said differences.

91

91. The memory medium of claim 57, wherein the first graphical program comprises interconnected graphical objects which specify operation of the first graphical program, and wherein the second graphical program comprises interconnected graphical objects which specify operation of the second graphical program.

92

92. The memory medium of claim 57, wherein the first graphical program comprises interconnected icons which specify operation of the first graphical program, and wherein the second graphical program comprises interconnected icons which specify operation of the second graphical program.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

Unknown

Publication Date

October 24, 2000

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “System, method and memory medium for detecting differences between graphical programs” (US-6138270). https://patentable.app/patents/US-6138270

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.