Applying Category Theory to Derive Engineering Software from Encoded Knowledge
In an industrial research project, we have demonstrated the feasibility of applying category-theoretic methods to the specification, synthesis, and maintenance of industrial strength software systems. The demonstration used a first-of-its-kind tool for this purpose, Kestrel’s Specware™ software development system. We describe our experiences and discuss broadening the application of such category-theoretic methods in industry.
Although the technology is promising, it needs additional development to make it generally usable. This is not surprising given its mathematical foundation. On the other hand, we believe our demonstration is a turning point in the use of mathematically rigorous approaches in industrial software development and maintenance. We have demonstrated here the capture via mathematical methods not only of software engineering design rationale, but also of the product design and manufacturing process rationale used by different engineering disciplines, and the production of usable software directly from the captured rationale. We feel that that further evolution of the tools for this technology will make formal systems engineering a reality.
KeywordsSoftware Development Category Theory Proof Obligation Base Diagram Proof Checker
Unable to display preview. Download preview PDF.
- 1.D. Bjorner and C. Jones. Formal Specification and Software Development. Prentice-Hall International, 1982.Google Scholar
- 2.L Blaine and A Goldberg. Dtre-a semi-automatic transformation system. In B Moller, editor, Constructing Programs from Specifications. North-Holland, 1991.Google Scholar
- 3.T. Gruber et al. An ontology for engineering mathematics. In Proceedings of the Fourth International Conference on Principles of Representation and Reasoning. Morgan Kauffman, 1994.Google Scholar
- 6.R. Jullig and Y. V. Srinivas. Diagrams for software synthesis. In Proceedings of KBSE’ 93: The Eighth Knowledge-Based Software Engineering Conference, pages 10–19. IEEE Computer Society Press, 1993.Google Scholar
- 7.J. Meseguer. General logics. In Logic Colloquium’ 87, pages 275–329. Science Publishers B. V. (North-Holland), 1987.Google Scholar
- 8.B C Pierce. Basic CategoryThe oryf or Computer Scientists. MIT Press, 1991.Google Scholar
- 9.D. Smith. Kids: Akno wledge based software development system. In M. Lowry and R. McCartney, editors, Automating Software Design. MIT Press, 1991.Google Scholar
- 10.J. M. Spivey. The Z Notation: A Reference Manual. Prentice-Hall, 1992.Google Scholar
- 11.Y. V. Srinivas and R. Jullig. specwaretm: Formal support for composing software. In Proceedings of the Conference of Mathematics of Program Construction, 1995.Google Scholar
- 12.T. C. Wang and A. Goldberg. A mechanical verifier for supporting the design of reliable reactive systems. In Proceedings of the International Symposium on Software ReliabilityE ngineering, 1991.Google Scholar
- 13.K. Williamson and M. Healy. Formally specifyuing engineering design rationale. In Proceedings of the Automated Software Engineering Conference-1997, 1997.Google Scholar