Patent Document ID: 5440742
Application ID: 08224083
Patent Status: 1

Claim One:
1. 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.