Claims Analysis
Total Claims: 18
Claim 1
Independent Claim
351 words
A method utilizing a programmed digital computer, including memory means for storage of digital data, for computing the similarity between two groups of program objects in computer system software and for implementing structural changes in said computer system software wherein the similarity between any pair of objects can be computed by a similarity function, said method being for use in software clustering, when it is known that only objects that are "near neighbors" to a given object are to be considered when computing similarity, that is, for some positive integer "Y", only the Y-nearest neighbors are to be considered, wherein for some smaller integer "X", when an object is in the same group as at least X of its Y nearest neighbors, none of the other neighbors matter, and wherein input data to be stored in said memory means comprises a set of groups containing software objects, two specific groups, A and B, and two integer values for X and Y, said method comprising: (a') retrieving data from said memory for performing by said digital computer the steps following hereafter; (a) for each object, identifying its X nearest neighbors, hereinafter called its x-neighbors, and storing this data in said memory means; (b) for each object, identifying its Y nearest neighbors, hereinafter called its Y-neighbors, and storing this data in said memory means; (c) for each pair of objects for which neither is a Y-neighbor of the other, redefining the similarity between them to be zero and storing this data in said memory means; (d) for each pair of objects, each of whose X-neighbors are all in the same group as the object itself, redefining the similarity between them to be zero and storing this data in said memory means; (e) outputing for use in software clustering a similarity between groups A and B, whereby said similarity is the maximum similarity between any object in A and any object in B; and (f) repositioning said objects in said memory means according to said outputted similarity, whereby said objects are repositioned to better redefine membership of program modules within said computer system software.
Claim 2
Independent Claim
351 words
A method utilizing a programmed digital computer, including memory means for storage of digital data, for computing the similarity between two groups of program objects in computer system software and for implementing structural changes in said computer system software wherein the similarity between any pair of objects can be computed by a similarity function, said method being for use in software clustering, when it is known that only objects that are "near neighbors" to a given object are to be considered when computing similarity, that is, for some positive integer "Y", only the Y-nearest neighbors are to be considered, wherein for some smaller integer "X", when an object is in the same group as at least X of its Y nearest neighbors, none of the other neighbors matter, and wherein input data to be stored in said memory means comprises a set of groups containing software objects, two specific groups, A and B, and two integer values for X and Y, said method comprising: (a') retrieving data from said memory for performing by said digital computer the steps following hereafter; (a) for each object, identifying its X nearest neighbors, hereinafter called its x-neighbors, and storing this data in said memory means; (b) for each object, identifying its Y nearest neighbors, hereinafter called its Y-neighbors, and storing this data in said memory means; (c) for each pair of objects for which neither is a Y-neighbor of the other, redefining the similarity between them to be zero and storing this data in said memory means; (d) for each pair of objects, each of whose X-neighbors are all in the same group as the object itself, redefining the similarity between them to be zero and storing this data in said memory means; (e) outputing for use in software clustering a similarity between groups A and B, whereby said similarity is the maximum similarity between any object in A and any object in B; and (f) repositioning said objects in said memory means according to said outputted similarity, whereby said objects are repositioned to better redefine membership of program modules within said computer system software.
Claim 3
Dependent Claim
19 words
The method of claim 1, wherein said objects are repositioned heuristically into a subsystem hierarchy according to agglomerative clustering.
Claim 4
Dependent Claim
29 words
The method of claim 1, wherein said repositioning is accomplished by means of interactive clustering, whereby objects are clustered into newly created groups subject to approval by an analyst.
Claim 5
Dependent Claim
27 words
The method of claim 1, wherein said repositioning is accomplished by means of batch clustering whereby clustering decisions are automatically approved unless explicitly disapproved by preprogrammed criteria.
Claim 6
Dependent Claim
20 words
The method of claim 1, wherein said repositioning is accomplished by means of a combination of automatic and interactive clustering.
Claim 7
Dependent Claim
17 words
The method of claim 1, wherein said similarity measures an amount of design coupling between said objects.
Claim 8
Dependent Claim
26 words
The method of claim 1, wherein said similarity is utilized in conjunction with a maverick analysis to detect objects which are assigned to a wrong group.
Claim 9
Dependent Claim
113 words
The method of claim 1, wherein said similarity function is defined as the following: ##EQU4## where A is a first software object; B is a second software object; k is a coefficient controlling how important said invoker-invokee relationship is in computing similarity; d is a coefficient controlling relative importance of common and distinctive features of said software objects A and B; n is a coefficient controlling how sensitive similarity is to said total weight of said common features; W(A∩B), W(A-B) and W(B-A) represent respective sums of the weights of the features in each of the three sets; and Linked(A,B) is a term to account for linking between said software objects A and B.
Claim 10
Dependent Claim
357 words
A programmed digital computer, including memory means for storage of digital data, including program steps, programmed for computing the similarity between two groups of program objects in computer system software and for implementing structural changes in said computer system software wherein the similarity between any pair of objects can be computed by a similarity function for use in software clustering, when it is known that only objects that are "near neighbors" to a given object are to be considered when computing similarity, that is, for some positive integer "Y" only the Y-nearest neighbors are to be considered, wherein for some smaller integer "X" when an object is in the same group as at least X of its Y nearest neighbors, none of the other neighbors matter, and wherein input data to be stored in said memory means comprises a set of groups containing software objects, two specific groups, A and B, and two integer values for X and Y, said computer comprising: (a) stored program means for retrieving data from said memory means; (b) stored program means for identifying for each object X nearest neighbors, hereinafter called its X-neighbors, and storing this data in said memory means; (c) stored program means for identifying for each object its Y nearest neighbors, hereinafter called its Y-neighbors, and storing this data in said memory means; (d) stored program means for redefining the similarity between each pair of objects for which neither is a Y-neighbor of the other to be zero and storing this data in said memory means; (e) stored program means for redefining the similarity between each pair of objects, each of whose X-neighbors are all in the same group as the object itself, to be zero and storing this data in said memory means; (f) means for outputing for use in software clustering a similarity between groups A and B, whereby said similarity is the maximum similarity between any object in A and any object in B; and (g) means for repositioning said objects in said memory means according to said outputted similarity, whereby said objects are repositioned to better redefine program modularity within said computer system software.
Claim 11
Dependent Claim
357 words
A programmed digital computer, including memory means for storage of digital data, including program steps, programmed for computing the similarity between two groups of program objects in computer system software and for implementing structural changes in said computer system software wherein the similarity between any pair of objects can be computed by a similarity function for use in software clustering, when it is known that only objects that are "near neighbors" to a given object are to be considered when computing similarity, that is, for some positive integer "Y" only the Y-nearest neighbors are to be considered, wherein for some smaller integer "X" when an object is in the same group as at least X of its Y nearest neighbors, none of the other neighbors matter, and wherein input data to be stored in said memory means comprises a set of groups containing software objects, two specific groups, A and B, and two integer values for X and Y, said computer comprising: (a) stored program means for retrieving data from said memory means; (b) stored program means for identifying for each object X nearest neighbors, hereinafter called its X-neighbors, and storing this data in said memory means; (c) stored program means for identifying for each object its Y nearest neighbors, hereinafter called its Y-neighbors, and storing this data in said memory means; (d) stored program means for redefining the similarity between each pair of objects for which neither is a Y-neighbor of the other to be zero and storing this data in said memory means; (e) stored program means for redefining the similarity between each pair of objects, each of whose X-neighbors are all in the same group as the object itself, to be zero and storing this data in said memory means; (f) means for outputing for use in software clustering a similarity between groups A and B, whereby said similarity is the maximum similarity between any object in A and any object in B; and (g) means for repositioning said objects in said memory means according to said outputted similarity, whereby said objects are repositioned to better redefine program modularity within said computer system software.
Claim 12
Dependent Claim
24 words
The computer of claim 9, wherein said repositioning means is operative to reposition said objects heuristically into a subsystem hierarchy according to agglomerative clustering.
Claim 13
Dependent Claim
36 words
The computer of claim 9, wherein said outputing and repositioning means are operable to reposition said objects by means of interactive clustering, whereby objects are clustered into newly created groups subject to approval by an analyst.
Claim 14
Dependent Claim
27 words
The computer of claim 9, wherein said repositioning means is operative to utilize batch clustering whereby clustering decisions are automatically approved unless explicitly disapproved by preprogrammed criteria.
Claim 15
Dependent Claim
25 words
The computer of claim 9, wherein said repositioning means is operable to reposition said objects by means of a combination of automatic and interactive clustering.
Claim 16
Dependent Claim
20 words
The computer of claim 9, wherein said computer is operable to measure an amount of design coupling between said objects.
Claim 17
Dependent Claim
27 words
The computer of claim 9, wherein said repositioning means is operable in conjunction with a maverick analysis to detect objects which are assigned to a wrong group.
Claim 18
Dependent Claim
113 words
The computer of claim 9, wherein said similarity function is defined as the following: ##EQU5## where A is a first software object; B is a second software object; k is a coefficient controlling how important said invoker-invokee relationship is in computing similarity; d is a coefficient controlling relative importance of common and distinctive features of said software objects A and B; n is a coefficient controlling how sensitive similarity is to said total weight of said common features; W(A∩B), W(A-B) and W(B-A) represent respective sums of the weights of the features in each of the three sets; and Linked(A,B) is a term to account for linking between said software objects A and B.