Patching Auto-Stop
US-2015378710-A1 · Dec 31, 2015 · US
US9454360B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9454360-B2 |
| Application number | US-93963410-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 4, 2010 |
| Priority date | Nov 4, 2010 |
| Publication date | Sep 27, 2016 |
| Grant date | Sep 27, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
The disclosed embodiments provide a system that facilitates the development and maintenance of a software program. This system includes a software development kit (SDK) and a runtime system for the software program. During operation, the system obtains a role associated with a dependency of a consumer in the software program on an interface. Next, the system obtains a compatibility policy for the interface. Finally, the system uses the role and the compatibility policy to manage use of the interface by the consumer in the software program.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method for facilitating development and maintenance of a software program, comprising: obtaining a role associated with a dependency of a consumer in the software program on an interface, wherein the role specifies that the consumer calls or implements the interface, and wherein the role is obtained from a definition file that is separate from source code files for the software program; obtaining a compatibility policy for the interface from the definition file, wherein the compatibility policy corresponds to a module that provides the interface and comprises a reverse dependency constraint that specifies one or more allowable versions and a second role associated with the one or more allowable versions for the consumer, wherein, based on the second role, the reverse dependency constraint specifies that one of callers of the interface or implementers of the interface can depend on the interface; and using the role and the compatibility policy to manage use of the interface by the consumer in the software program by: when the second role specifies a caller of the interface, allowing the consumer to use the interface only when the role specifies that the consumer calls one or more functions of the interface and the consumer expresses a dependency on a version of the module that matches the one or more allowable versions, and when the second role specifies an implementer of the interface, allowing the consumer to use the interface when the role specifies that the consumer implements the interface and the consumer expresses a dependency on a version of the module that matches the one or more allowable versions. 2. The computer-implemented method of claim 1 , wherein using the role and the compatibility policy to facilitate use of the interface by the consumer further involves: using the compatibility policy to characterize a change in the interface; if the change is characterized as a source-incompatible change, disabling use of the interface by the implementer; and if the change is characterized as a binary-incompatible change, disabling use of the interface by the caller. 3. The computer-implemented method of claim 2 , wherein the binary-incompatible change comprises a removal of an existing function from the interface, and wherein the source-incompatible change comprises an addition of a new function to the interface. 4. The computer-implemented method of claim 1 , wherein the consumer is at least one of a class, a package, and a module. 5. The computer-implemented method of claim 1 , wherein the role is declared by the consumer or inferred from type declarations in the consumer. 6. The computer-implemented method of claim 1 , wherein the compatibility policy is applied to the interface, a set of interfaces, or the software program. 7. A system for facilitating development of a software program, comprising: a software development kit (SDK) for the software program; and a runtime system for the software program, wherein the SDK and the runtime system are configured to: obtain a role associated with a dependency of a consumer in the software program on an interface, wherein the role specifies that the consumer calls or implements the interface, and wherein the role is obtained from a definition file that is separate from source code files for the software program; obtain a compatibility policy for the interface from the definition file, wherein the compatibility policy corresponds to a module that provides the interface and comprises a reverse dependency constraint that specifies one or more allowable versions and a second role associated with the one or more allowable versions for the consumer, wherein, based on the second role, the reverse dependency constraint specifies that one of callers of the interface or implementers of the interface can depend on the interface; and use the role and the compatibility policy to manage use of the interface by the consumer in the software program by: when the second role specifies a caller of the interface, allowing the consumer to use the interface only when the role specifies that the consumer calls one or more functions of the interface and the consumer expresses a dependency on a version of the module that matches the one or more allowable versions, and when the second role specifies an implementer of the interface, allowing the consumer to use the interface when the role specifies that the consumer implements the interface and the consumer expresses a dependency on a version of the module that matches the one or more allowable versions. 8. The system of claim 7 , wherein using the role and the compatibility policy to facilitate use of the interface by the consumer further involves: using the compatibility policy to characterize a change in the interface; if the change is characterized as a source-incompatible change, disabling use of the interface by the implementer; and if the change is characterized as a binary-incompatible change, disabling use of the interface by the caller. 9. The system of claim 8 , wherein the binary-incompatible change comprises a removal of an existing function from the interface, and wherein the source-incompatible change comprises an addition of a new function to the interface. 10. The system of claim 7 , wherein the consumer is at least one of a class, a package, and a module. 11. The system of claim 7 , wherein the compatibility policy is applied to the interface, a set of interfaces, or the software program. 12. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a function for facilitating development and maintenance of a software program, the function comprising: obtaining a role associated with a dependency of a consumer in the software program on an interface, wherein the role specifies that the consumer calls or implements the interface, and wherein the role is obtained from a definition file that is separate from source code files for the software program; obtaining a compatibility policy for the interface from the definition file, wherein the compatibility policy corresponds to a module that provides the interface and comprises a reverse dependency constraint that specifies one or more allowable versions and a second role associated with the one or more allowable versions for the consumer, wherein, based on the second role, the reverse dependency constraint specifies that one of callers of the interface or implementers of the interface can depend on the interface; and using the role and the compatibility policy to manage use of the interface by the consumer in the software program by: when the second role specifies a caller of the interface, allowing the consumer to use the interface only when the role specifies that the consumer calls one or more functions of the interface and the consumer expresses a dependency on a version of the module that matches the one or more allowable versions, and when the second role specifies an implementer of the interface, allowing the consumer to use the interface when the role specifies that the consumer implements the interface and the consumer expresses a dependency on a version of the module that matches the one or more allowable versions. 13. The non-transitory computer-readable storage medium of claim 12 , wherein using the role and the compatibility policy to facilitate use of the interface by the consumer further involves: using the compatibility policy to characterize a change in the interface; if the change is characterized as a source-incompatible change, disabling use of the
Related publications grouped by family.
Answers are generated from the same data shown on this page.