Methods and systems for managing software development
First Claim
1. A non-transitory computer readable medium storing instructions that, when executed by one or more computing processors, cause the one or more computing processors to:
- receive a specification of materials to be included in a software product thereby generating an inventory of materials included in the software product, wherein the materials included in the software product include a source code component;
receive a specification of metadata for at least one of the materials in the inventory, the metadata comprising licensing terms governing the distribution of the at least one of the materials;
store the licensing terms in a profile in a database;
verify that the materials included in the software product match the specified materials in the inventory, including comparing a first set of tokens generated for the source code component to a second set of tokens stored in the database for a corresponding component in the specified materials in the inventory, wherein the first set of tokens and the second set of tokens are generated by a same code compiler;
verify that each of the licensing terms represented in the profile, for the materials used in the software product, are either compliant with a specified license policy or are mutually compatible with the licensing terms for the other materials used in the software product;
intermittently receive additional metadata comprising new or revised licensing terms governing the distribution of at least some of the specified materials in the inventory and update the licensing terms stored in the profile based on the received additional metadata; and
verify that each of the licensing terms represented in the updated profile, for the materials used in the software product, are either compliant with the specified license policy or are mutually compatible with the licensing terms for the other materials used in the software product.
4 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems to manage software development. Embodiments of the present invention allow a programmer to specify the software packages, services, and other materials used in a particular software project. As development of the software project proceeds, the materials associated with the project are reviewed to identify the materials actually used in the project and to identify any discrepancies between what has been specified and what materials are actually used. Metadata, for example license and contractual terms and other policies relating to the specified materials and the materials actually used in the project may optionally be retrieved and analyzed to identify conflicting metadata.
-
Citations
36 Claims
-
1. A non-transitory computer readable medium storing instructions that, when executed by one or more computing processors, cause the one or more computing processors to:
-
receive a specification of materials to be included in a software product thereby generating an inventory of materials included in the software product, wherein the materials included in the software product include a source code component; receive a specification of metadata for at least one of the materials in the inventory, the metadata comprising licensing terms governing the distribution of the at least one of the materials; store the licensing terms in a profile in a database; verify that the materials included in the software product match the specified materials in the inventory, including comparing a first set of tokens generated for the source code component to a second set of tokens stored in the database for a corresponding component in the specified materials in the inventory, wherein the first set of tokens and the second set of tokens are generated by a same code compiler; verify that each of the licensing terms represented in the profile, for the materials used in the software product, are either compliant with a specified license policy or are mutually compatible with the licensing terms for the other materials used in the software product; intermittently receive additional metadata comprising new or revised licensing terms governing the distribution of at least some of the specified materials in the inventory and update the licensing terms stored in the profile based on the received additional metadata; and verify that each of the licensing terms represented in the updated profile, for the materials used in the software product, are either compliant with the specified license policy or are mutually compatible with the licensing terms for the other materials used in the software product. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for managing software development, the system comprising:
-
a non-transitory computer-readable memory storing computer-executable instructions; and a computing device operatively coupled to the non-transitory memory, a receiver, and an interface, wherein the computer-executable instructions, when executed by the computing device, provide; a specification module for specifying materials to be included in a software product and generating an inventory of materials included in the software product, wherein the materials included in the software product include a source code component; a licensing module identifying licensing terms governing the distribution of specifying metadata for at least one of the materials in the inventory and storing the licensing terms in a profile; and a verification module for verifying that the materials included in the software product match the specified materials in the inventory, comparing a first set of tokens generated for the source code component to a second set of tokens stored in the database for a corresponding component in the specified materials in the inventory, wherein the first set of tokens and the second set of tokens are generated by a same code compiler, and verifying that each of the licensing terms represented in the profile, for the materials used in the software product, are either compliant with a specified license policy or are mutually compatible with the licensing terms for the other materials used in the software product, and wherein the receiver is configured to;
intermittently receive additional metadata comprising new or revised licensing terms governing the distribution of at least some of the specified materials in the inventory, update the stored profile with the received additional metadata, and notify the verification module to verify that each of the licensing terms represented in the updated profile, for the materials used in the software product, are either compliant with the specified license policy or are mutually compatible with the licensing terms for the other materials used in the software product. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification