Quantitative ranking for software dependency compatibility
A computer system, computer readable storage medium, and computer-implemented method for ranking and ordering software interrelationships. The method includes generating a ranking of software dependency combinations. The ranking is at least partially subject to one or more criteria. The method also includes ordering the ranked software dependency combinations.
1 . A computer system for ranking and ordering software interrelationships, comprising:
one or more processing devices;
one or more memory devices communicatively and operably coupled to the one or more processing devices;
a software interrelationships tool at least partially resident within the one or more memory devices, the software interrelationships tool configured to:
generate a ranking of software dependency combinations, wherein the ranking is at least partially subject to one or more criteria, the software dependency combinations associated with inherent dependences between software and an operating system; and
order the ranked software dependency combinations, ordering the ranked software dependence combinations being directed towards a temporal order of installing software packages.
2 . The system of claim 1 , wherein the software interrelationships tool is further configured to:
insert a first population of software dependency combinations into a Cartesian product, thereby generating a Cartesian product of software dependency combinations;
remove, subject to the one or more criteria, one or more software dependency combinations from the Cartesian product of software dependency combinations, thereby defining a second population of software dependency combinations that is less than the first population of software dependency combinations;
reduce, subject to the one or more criteria, each software dependency combination of the second population of software dependency combinations into one or more software dependency sub-combinations; and
translate each software dependency sub-combination into an eigenvector.
3 . The system of claim 2 , wherein the software interrelationships tool is further configured to:
reduce, subject to the one or more criteria, each software dependency combination of the second population of software dependency combinations into one or more sets of dependencies.
4 . The system of claim 1 , wherein the software interrelationships tool is further configured to:
receive software package interrelationship data comprising one or more of:
receive software package dependency information;
receive information from one or more package managers; and
receive software package metadata from one or more repositories.
5 . The system of claim 1 , wherein each software dependency combination includes two or more software dependencies, the software interrelationships tool is further configured to:
model the two or more software dependencies, comprising one or more of:
generate sets of dependency logic within one or more models; and
apply weighting factors to one or more software entities resident within the one or more models.
6 . The system of claim 2 , wherein the software interrelationships tool is further configured to:
generate a first ranking of the software dependency combinations within the Cartesian product of software dependency combinations;
generate a filtered first ranking of the software dependency combinations within the Cartesian product of software dependency combinations; and
reduce, subject to the one or more criteria, the filtered first ranking of the software dependency combinations to software dependency sub-combinations.
7 . The system of claim 6 , wherein each software dependency combination includes one or more sets of software dependencies, the software interrelationships tool is further configured to:
test and verify the one or more sets of the software dependencies; and
decrease a population of the one or more sets of the software dependencies and decrease the first population of the software dependency combinations.
8 . The method of claim 1 , wherein one or more criteria associate with the ranking include one or more versions with a fewest number of defects, one or more versions with a fewest number of vulnerabilities, and one or more versions with a largest user base.
9 . A computer readable storage medium having computer executable instructions that when executed by at least one computing device ranks and orders software interrelationships, comprising instructions to:
generate a ranking of software dependency combinations, wherein the ranking is at least partially subject to one or more criteria, the software dependency combinations associated with inherent dependences between software and an operating system; and
order the ranked software dependency combinations, ordering the ranked software dependence combinations being directed towards a temporal order of installing software packages.
10 . The computer readable storage medium of claim 9 , further comprising instructions to:
insert a first population of software dependency combinations into a Cartesian product, thereby generating a Cartesian product of software dependency combinations;
remove, subject to the one or more criteria, one or more software dependency combinations from the Cartesian product of software dependency combinations, thereby defining a second population of software dependency combinations that is less than the first population of software dependency combinations;
reduce, subject to the one or more criteria, each software dependency combination of the second population of software dependency combinations into one or more software dependency sub-combinations; and
translate each software dependency sub-combination into an eigenvector.
11 . The computer readable storage medium of claim 10 , further comprising instructions to:
reduce, subject to the one or more criteria, each software dependency combination of the second population of software dependency combinations into one or more sets of dependencies.
12 . The computer readable storage medium of claim 9 , further comprising instructions to:
receive software package interrelationship data comprising one or more of:
receive software package dependency information;
receive information from one or more package managers; and
receive software package metadata from one or more repositories.
13 . The computer readable storage medium of claim 9 , further comprising instructions to:
model two or more software dependencies, wherein each software dependency combination includes the two or more software dependencies, comprising one or more of:
generate sets of dependency logic within one or more models; and
apply weighting factors to one or more software entities resident within the one or more models.
14 . The computer readable storage medium of claim 10 , further comprising instructions to:
generate a first ranking of the software dependency combinations within the Cartesian product of software dependency combinations;
generate a filtered first ranking of the software dependency combinations within the Cartesian product of software dependency combinations;
reduce, subject to the one or more criteria, the filtered first ranking of the software dependency combinations to software dependency sub-combinations;
test and verify one or more sets of the software dependencies, wherein each software dependency combination includes the one or more sets of software dependencies; and
decrease a population of the one or more sets of the software dependencies and decrease the first population of software dependency combinations.
15 . A computer-implemented method for ranking and ordering software interrelationships, comprising:
generating a ranking of software dependency combinations, wherein the ranking is at least partially subject to one or more criteria, the software dependency combinations associated with inherent dependences between software and an operating system; and
ordering the ranked software dependency combinations, ordering the ranked software dependence combinations being directed towards a temporal order of installing software packages.
16 . The method of claim 15 , further comprising:
inserting a first population of software dependency combinations into a Cartesian product, thereby generating a Cartesian product of software dependency combinations;
removing, subject to the one or more criteria, one or more software dependency combinations from the Cartesian product of software dependency combinations, thereby defining a second population of software dependency combinations that is less than the first population of software dependency combinations;
reducing, subject to the one or more criteria, each software dependency combination of the second population of software dependency combinations into one or more software dependency sub-combinations; and
translating each software dependency sub-combination into an eigenvector.
17 . The method of claim 16 , wherein the reducing each software dependency combination of the second population of software dependency combinations comprising:
reducing, subject to the one or more criteria, each software dependency combination of the second population of software dependency combinations into one or more sets of dependencies.
18 . The method of claim 15 , further comprising:
receiving software package interrelationship data comprising one or more of:
receiving software package dependency information;
receiving information from one or more package managers; and
receiving software package metadata from one or more repositories.
19 . The method of claim 15 , wherein each software dependency combination includes two or more software dependencies, further comprising:
modeling the two or more software dependencies, comprising one or more of:
generating sets of dependency logic within one or more models; and
applying weighting factors to one or more software entities resident within the one or more models.
20 . The method of claim 16 , wherein the generating a ranking of software dependency combinations comprises:
generating a first ranking of the software dependency combinations within the Cartesian product of software dependency combinations;
generating a filtered first ranking of the software dependency combinations within the Cartesian product of software dependency combinations; and
reducing, subject to the one or more criteria, the filtered first ranking of the software dependency combinations to software dependency sub-combinations.
21 . The method of claim 20 , wherein each software dependency combination includes one or more sets of software dependencies, further comprising:
testing and verifying the one or more sets of the software dependencies; and
decreasing a population of the one or more sets of the software dependencies and decreasing the first population of the software dependency combinations.