Claims
- 1. A system for maintaining compliance among a plurality of software modules comprising:
a plurality of software modules that form a software project and include dependencies between two or more of said software modules; a specification or specifications that is associated with each or a set of said plurality of software modules and that defines rules applicable to the dependencies allowed, forbidden, or required for those software modules; and, a processor that combines the rules from said specification or specifications to form a set of ordered rules, and that checks the compliance of any dependencies within the software project against said set of ordered rules.
- 2. The system of claim 1 further comprising:
an output device that outputs the results from the processor in checking the compliance of dependencies within the software project against said set of ordered rules.
- 3. The system of claim 1 wherein said software modules are a component of an enterprise system.
- 4. The system of claim 1 wherein said software modules are a logical subsystem of an application server.
- 5. The system of claim 1 wherein said software modules are software objects.
- 6. The system of claim 1 wherein said software modules are Java objects.
- 7. The system of claim 1 wherein said software modules are Java source or class files.
- 8. The system of claim 1 wherein each module includes a specification associated therewith.
- 9. The system of claim 1 wherein a plurality of modules may be associated with a particular specification.
- 10. The system of claim 1 wherein a module may be associated with a plurality of specifications.
- 11. The system of claim 1 wherein said specifications are checked by the processor for contradictions, and any contradictions are resolved prior to forming the ordered rules.
- 12. The system of claim 1 wherein said specification includes a compound or extended language statement that is then desugared by the processor into a set of core rules or statements prior to forming the ordered rules.
- 13. A method for maintaining compliance among a plurality of software modules comprising the steps of:
reading a plurality of software modules that form a software project and include dependencies between two or more of said software modules; reading a specification or specifications that is associated with each or a set of said plurality of software modules and that defines rules applicable to the dependencies allowed, forbidden, or required for those software modules; and, combining, using a processor, the rules from said specification or specifications to form a set of ordered rules, and that checks the compliance of any dependencies within the software project against said set of ordered rules.
- 14. The method of claim 13 further comprising:
outputting the results from the processor in checking the compliance of dependencies within the software project against said set of ordered rules.
- 15. The method of claim 13 wherein said software modules are a component of an enterprise system.
- 16. The method of claim 13 wherein said software modules are a logical subsystem of an application server.
- 17. The method of claim 13 wherein said software modules are software objects.
- 18. The method of claim 13 wherein said software modules are Java objects.
- 19. The method of claim 13 wherein said software modules are Java source or class files.
- 20. The method of claim 13 wherein each module includes a specification associated therewith.
- 21. The method of claim 13 wherein a plurality of modules may be associated with a particular specification.
- 22. The method of claim 13 wherein a module may be associated with a plurality of specifications.
- 23. The method of claim 13 wherein said specifications are checked by the processor for contradictions, and any contradictions are resolved prior to forming the ordered rules.
- 24. The method of claim 13 wherein said specification includes a compound or extended language statement that is then desugared by the processor into a set of core rules or statements prior to forming the ordered rules.
- 25. A system for module architecture language and compliance checking, comprising computer-readable code which when executed cause the computer to perform the steps of:
parsing a set of specifications associated with each or a set of software modules that defines rules applicable to the dependencies allowed, forbidden, or required for those software modules; checking the set of rules and patterns for contradictions, and ordering the set of rules; and, reading all dependencies in a software project including a plurality of software modules, and checking each for compliance with the ordered rules.
- 26. The system of claim 25 wherein said step of parsing includes expanding any extended-language statements within each specification into a set of core-language rules and patterns.
- 27. The system of claim 25 wherein said step of checking includes ordering the rules only if no unresolved contradiction is found, and if an unresolved contradiction is found alerting a user.
- 28. The system of claim 25 wherein said software modules are a component of an enterprise system.
- 29. The system of claim 25 wherein said software modules are a logical subsystem of an application server.
- 30. The system of claim 25 wherein said software modules are software objects.
- 31. The system of claim 25 wherein said software modules are Java objects.
- 32. The system of claim 25 wherein said software modules are Java source or class files.
- 33. A method for module architecture language and compliance checking, comprising the steps of:
parsing a set of specifications associated with each or a set of software modules that defines rules applicable to the dependencies allowed, forbidden, or required for those software modules; checking the set of rules and patterns for contradictions, and ordering the set of rules; and, reading all dependencies in a software project including a plurality of software modules, and checking each for compliance with the ordered rules.
- 34. The system of claim 33 wherein said step of parsing includes expanding any extended-language statements within each specification into a set of core-language rules and patterns.
- 35. The system of claim 33 wherein said step of checking includes ordering the rules only if no unresolved contradiction is found, and if an unresolved contradiction is found alerting a user.
- 36. The system of claim 33 wherein said software modules are a component of an enterprise system.
- 37. The system of claim 33 wherein said software modules are a logical subsystem of an application server.
- 38. The system of claim 33 wherein said software modules are software objects.
- 39. The system of claim 33 wherein said software modules are Java objects.
- 40. The system of claim 33 wherein said software modules are Java source or class files.
- 41. A method for maintaining compliance among a plurality of software modules in a software project comprising:
developing code for a software module, object, or other software component for use with or within the software project; defining a specification for a particular module, or for a group of modules, wherein said specification defines any dependencies or restrictions that should preferably be associated with that module, including any dependencies on other modules, isolations, or layering; associating the specification with the module or object for later use in compliance checking; parsing a set of specifications and expanding all extended-language statements are expanded in each specification into a set of core-language rules and patterns; checking the set of all core-language rules and patterns for contradictions, and if no unresolved contradiction is found, ordering the rules by specificness, and optionally simplifying the ordered set; reading all dependencies within the software project and checking each for compliance with the ordered rules; and, outputting or saving the results of the compliance analysis of the code and associated specification, including the presence of incompliant dependencies.
CLAIM OF PRIORITY
[0001] This application claims the benefit of U.S. Provisional Application No. 60/408,697, filed Sep. 5, 2002 and claims the benefit of U.S. Provisional Patent Application Serial No. 60/450,839, filed Feb. 28, 2003.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60408697 |
Sep 2002 |
US |
|
60450839 |
Feb 2003 |
US |