Characterizing interface evolution and consumer roles in module systems

US9454360B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9454360-B2
Application numberUS-93963410-A
CountryUS
Kind codeB2
Filing dateNov 4, 2010
Priority dateNov 4, 2010
Publication dateSep 27, 2016
Grant dateSep 27, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • G06F8/70Primary

    Software maintenance or management · CPC title

  • Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9454360B2 cover?
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 t…
Who is the assignee on this patent?
Buckley Alexander R, Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F8/70. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 27 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).