Polyphasic modules for software development

US9229709B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9229709-B2
Application numberUS-77112110-A
CountryUS
Kind codeB2
Filing dateApr 30, 2010
Priority dateApr 30, 2010
Publication dateJan 5, 2016
Grant dateJan 5, 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 associates classes of the software program with module declarations for a set of modules and uses the module declarations to manage dependencies in the software program throughout the life cycle of the software program.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method, comprising: associating classes of a software program with module declarations for a set of modules; and using the module declarations to manage dependencies in the software program throughout a life cycle of the software program; wherein a first module declaration of the module declarations comprises a reverse dependency constraint for a first module within the set of modules; wherein the reverse dependency constraint limits a visibility of the first module towards one or more dependent modules based on one or more dependencies for the one or more dependent modules; and wherein determining whether a second module is allowed to depend on the first module comprises: allowing the second module to depend on the first module if the second module declares at least one dependency that satisfies the reverse dependency constraint; and hiding the first module from the second module if the second module does not declare at least one dependency that satisfies the reverse dependency constraint. 2. The computer-implemented method of claim 1 , wherein each of the modules is uniquely identified by a module identity. 3. The computer-implemented method of claim 1 , wherein each module declaration from the module declarations includes at least one of: a member; a dependency; and a reverse dependency constraint. 4. The computer-implemented method of claim 1 , wherein the visibility of the first module to the one or more dependent modules is further based on at least one of: a name of the dependent module; and a version of the dependent module. 5. The computer-implemented method of claim 1 , wherein the life cycle of the software program comprises compilation, testing, packaging, deployment, installation, and execution of the software program. 6. The computer-implemented method of claim 1 , wherein the module declarations are obtained separately from source code for the software program. 7. The computer-implemented method of claim 1 , wherein the module declarations are stored in one or more files that do not include source code for the software program. 8. The computer-implemented method of claim 1 , wherein a name of the reverse dependency constraint refers to a name of the first module and wherein the reverse dependency constraint refers to a version of the first module to define a version range. 9. The computer-implemented method of claim 1 : wherein the reverse dependency constraint comprises a module name and a module version range; wherein the second module declares at least one dependency that satisfies the reverse dependency constraint if the at least one dependency specifies that the second module depends on a module with the module name and a module version that falls within the module version range. 10. A system, comprising: a processor; a software development kit (SDK) for a software program; and a runtime system for the software program coupled to the processor, wherein the SDK and the runtime system are configured to: associate classes of the software program with module declarations for a set of modules; and use the module declarations to manage dependencies in the software program throughout a life cycle of the software program, wherein a first module declaration of the module declarations comprises a reverse dependency constraint for a first module within the set of modules; wherein the reverse dependency constraint limits a visibility of the first module towards one or more dependent modules based on one or more dependencies for the one or more dependent modules; and wherein determining whether a second module is allowed to depend on the first module comprises: allowing the second module to depend on the first module if the second module declares at least one dependency that satisfies the reverse dependency constraint; and hiding the first module from the second module if the second module does not declare at least one dependency that satisfies the reverse dependency constraint. 11. The system of claim 10 , wherein each of the modules is uniquely identified by a module identity. 12. The system of claim 10 , wherein each module declaration from the module declarations includes at least one of: a member; a dependency; and a reverse dependency constraint. 13. The system of claim 10 , wherein the visibility of the first module to the one or more dependent modules is further based on at least one of: a name of the dependent module; and a version of the dependent module. 14. The system of claim 10 , wherein the life cycle of the software program comprises compilation, testing, packaging, deployment, installation, and execution of the software program. 15. The system of claim 10 , wherein the module declarations are obtained separately from source code for the software program. 16. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising: associating classes of a software program with module declarations for a set of modules; and using the module declarations to manage dependencies in the software program throughout a life cycle of the software program, wherein a first module declaration of the module declarations comprises a reverse dependency constraint for a first module within the set of modules; wherein the reverse dependency constraint limits a visibility of the first module towards one or more dependent modules based on one or more dependencies for the one or more dependent modules; and wherein determining whether a second module is allowed to depend on the first module comprises: allowing the second module to depend on the first module if the second module declares at least one dependency that satisfies the reverse dependency constraint; and hiding the first module from the second module if the second module does not declare at least one dependency that satisfies the reverse dependency constraint. 17. The computer-readable storage medium of claim 16 , wherein each of the modules is uniquely identified by a module identity. 18. The computer-readable storage medium of claim 17 , wherein each module declaration from the module declarations includes at least one of: a member; a dependency; and a reverse dependency constraint. 19. The computer-readable storage medium of claim 16 , wherein the visibility of the first module to the one or more dependent modules is further based on at least one of: a name of the dependent module; and a version of the dependent module. 20. The computer-readable storage medium of claim 16 , wherein the life cycle of the software program comprises compilation, testing, packaging, deployment, installation, and execution of the software program.

Assignees

Inventors

Classifications

  • Programming languages or programming paradigms · CPC title

  • Requirements analysis; Specification techniques · CPC title

  • G06F8/71Primary

    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 US9229709B2 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 associates classes of the software program with module declarations for a set of modules and uses the module declarations to manage dependencies in the …
Who is the assignee on this patent?
Reinhold Mark B, Buckley Alexander R, Gibbons Jonathan J, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F8/71. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 05 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).