Techniques for maintaining compatibility of a software core module and an interacting module
First Claim
1. A method of maintaining version compatibility between a first computer program module and one or more interacting computer program modules that interact with the first module through a interface with capabilities shared by all the interacting modules, wherein the modules are stored in computer storage, the method comprising the computer-implemented steps of:
- creating first information describing the computer program module interface capabilities at one or more times;
storing the first information in a corresponding plurality of instances of a data structure wherein each instance of the data structure corresponds to the interface capabilities at one or more plurality of times;
creating and storing a mapping that associates the plurality of instances with a corresponding plurality of version numbers for the first computer program module;
automatically assigning a second version number for a second computer program module of the one or more interacting modules based on a corresponding instance from the plurality of instances of the data structure contained in the mapping and based on second information describing interface capabilities of the second computer program module;
determining compatibility of the modules based on a first version number for the first module and the second version number for the second module;
wherein the step of automatically assigning comprises;
describing a subset of the interface capabilities, which subset is employed by the second computer program module;
determining from the plurality of instances at least one instance including data describing the subset of the interface capabilities; and
assigning the second version number for the second module based on the corresponding version number in the mapping and the at least one instance.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for maintaining version compatibility between a first module and one or more interacting modules that interact with the first module through an interface. Stored mapping maps instances of a data structure describing the interface at corresponding release times with corresponding version numbers for the first module. A second version number is automatically developed for a second module of the interacting modules based on the mapping. Compatibility is determined based on a first version number for the first module and the second version number for the second module. These techniques allow the developer of the central module to provide the developers of the interacting modules with a tool to automatically assign version numbers to the interacting module being developed. Automatic assignment of version numbers avoids the tedium and errors associated with manual methods. Furthermore, the automated methods not only ensure compatibility but also discover compatibility with the earliest core module.
-
Citations
27 Claims
-
1. A method of maintaining version compatibility between a first computer program module and one or more interacting computer program modules that interact with the first module through a interface with capabilities shared by all the interacting modules, wherein the modules are stored in computer storage, the method comprising the computer-implemented steps of:
-
creating first information describing the computer program module interface capabilities at one or more times; storing the first information in a corresponding plurality of instances of a data structure wherein each instance of the data structure corresponds to the interface capabilities at one or more plurality of times; creating and storing a mapping that associates the plurality of instances with a corresponding plurality of version numbers for the first computer program module; automatically assigning a second version number for a second computer program module of the one or more interacting modules based on a corresponding instance from the plurality of instances of the data structure contained in the mapping and based on second information describing interface capabilities of the second computer program module; determining compatibility of the modules based on a first version number for the first module and the second version number for the second module; wherein the step of automatically assigning comprises; describing a subset of the interface capabilities, which subset is employed by the second computer program module; determining from the plurality of instances at least one instance including data describing the subset of the interface capabilities; and assigning the second version number for the second module based on the corresponding version number in the mapping and the at least one instance. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-implemented method of maintaining version compatibility between a first module and one or more interacting modules that interact with the first module through an interface, the method comprising the steps of:
-
retrieving data from a stored mapping between a plurality of instances of a data structure describing capabilities of the interface at a corresponding plurality of times and a corresponding plurality of version numbers for the first module; automatically assigning a second version number for a second module of the one or more interacting modules based on the mapping and based on a description of interface capabilities of the second module; determining compatibility based on a first version number for the first module and the second version number for the second module; wherein the step of automatically assigning comprises; describing a subset of the interface capabilities which subset is employed by the second module; determining from the plurality of instances at least one instance including data describing the subset of the interface capabilities; and assigning the second version number for the second module based on the corresponding version number in the mapping and the at least one instance. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer-implemented method of determining version compatibility between a first computer program module and a computer program second module of one or more interacting modules that interact with the first computer program module through an interface, the method comprising the steps of:
-
obtaining a first version number for the first computer program module; automatically assigning a second version number for the second computer program module, the second version number set when the second computer program module is developed based on a mapping between a plurality of instances of a data structure describing the interface capabilities at a corresponding plurality of times and a corresponding plurality of version numbers for the first computer program module and based on a description of interface capabilities of the second computer program module; and determining whether the computer program modules are compatible based on the first version number and the second version numbers; wherein the step of automatically assigning comprises; describing a subset of the interface capabilities, which subset is employed by the second computer program module; determining from the plurality of instances at least one instance including data describing the subset of the interface capabilities; and assigning the second version number for the second module based on the corresponding version number in the mapping and the at least one instance. - View Dependent Claims (24)
-
-
25. A computer-readable storage medium for maintaining version compatibility between a first computer program module and one or more interacting computer program modules that interact with the first computer program module through an interface, the computer-readable storage medium carrying:
-
a plurality of instances of a data structure describing the interface capabilities at a corresponding plurality of times; a mapping that associates the plurality of instances with a corresponding plurality of version numbers for the first computer program module; and one or more sequences of instructions, which, when executed by one or more processors, cause the one or more processors to carry out the steps of retrieving data from the mapping, and automatically assigning a second version number for a second computer program module of the one or more interacting computer program modules based on the mapping and based on a description of interface capabilities of the second module, wherein compatibility is determined based on a first version number for the first computer program module and the second version number for the second computer program module; wherein the step of automatically assigning comprises; describing a subset of the interface capabilities, which subset is employed by the second computer program module; determining from the plurality of instances at least one instance including data describing the subset of the interface capabilities; and assigning the second version number for the second module based on the corresponding version number in the mapping and the at least one instance.
-
-
26. A system for maintaining version compatibility between a first computer program module and one or more interacting computer program modules that interact with the first computer program module through an interface, the system comprising:
-
means for retrieving a stored mapping between a plurality of instances of a data structure describing the interface capabilities at a corresponding plurality of times and a corresponding plurality of version numbers for the first computer program module; means for automatically assigning a second version number for a second computer program module of the one or more interacting computer program modules based on the mapping and based on a description of interface capabilities of the second module; means for determining compatibility based on a first version number for the first computer program module and the second version number for the computer program second module; wherein the automatically assigning means comprises; means for describing a subset of the interface capabilities which subset is employed by the second computer program module; means for determining from the plurality of instances at least one instance including data describing the subset of the interface capabilities; and means for assigning the second version number for the second module based on the corresponding version number in the mapping and the at least one instance.
-
-
27. A computer system for maintaining version compatibility between a first computer program module and one or more interacting computer program modules that interact with the first computer program module through an interface, the system comprising:
-
a processor; a computer-readable storage medium carrying a stored mapping between a plurality of instances of a data structure describing the interface capabilities at a corresponding plurality of times and a corresponding plurality of version numbers for the first computer program module, and one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of; retrieving data from the mapping; automatically assigning a second version number for a second computer program module of the one or more interacting computer program modules based on the mapping and based on a description of interface capabilities of the second module; determining compatibility based on a first version number for the first computer program module and the second version number for the second computer program module; wherein the step of automatically assigning comprises; describing a subset of the interface capabilities which subset is employed by the second computer program module; determining from the plurality of instances at least one instance including data describing the subset of the interface capabilities; and assigning the second version number for the second module based on the corresponding version number in the mapping and the at least one instance.
-
Specification