Abstract
With the advent of intelligent computer aided design systems, companies such as Boeing are embarking on an era in which core competitive engineering knowledge and design rationale is being encoded in software systems. The promise of this technology is that this knowledge can be leveraged across many different designs, product families, and even different uses (e.g., generative process planning for manufacturing). The current state of the practice attempts to achieve this goal through the reuse of software components. A fundamental problem with this approach to knowledge sharing and reuse is that what we are trying to reuse is software—the end artifact in a long and complicated process that goes from requirement specifications, through a process of design, to implementations. Knowledge sharing and reuse can not easily and uniformly occur at the software level. So what can be done as an alternative? This paper describes a theory, methodology, language, and tool for the semi-automatic development and maintenance of engineering software from requirement specifications. In essence, this paradigm for software development and maintenance is one that explicitly captures requirement specifications, designs, implementations, and the refinement processes that lead from requirements all the way down to software. By recording this entire refinement history, we stand a better chance of leveraging knowledge for different uses.
Similar content being viewed by others
References
Bjorner, D. and Jones, C. (1982) Formal Specification & Software Development, Prentice-Hall International, London.
Blaine, L. and Goldberg, A. (1991) DTRE—A semiautomatic transformation system, in Constructing Programs from Specifications, ed. B. Moller, North Holland, New York.
Burstall, R. M. and Goguen, J. A. (1980) The semantics of clear, a specification language, in Proceedings of the 1979 Copenhagen Winter School on Abstract Software Specification, Lecture Notes in Computer Science, 86, Springer-Verlag, New York, pp. 292–332.
Crole, R. (1993) Categories for Types, Cambridge University Press, Cambridge UK.
Cutkosky, M. et al. (1993) PACT: An experiment in integrating concurrent engineering systems, in IEEE Computer, IEEE Press, Piscataway, NJ, pp. 28–37.
Farquhar, A., Fikes, R., Pratt, W. and Rice, J. (1995) Collaborative Ontology Construction for Information Integration, Technical Report KSL-95–63, Knowledge Systems Laboratory, Stanford University.
Fikes, R., Cutkosky, M., Gruber, T. and Van Baalen, J. (1991) Knowledge Sharing Technology Project Overview, Technical Report KSL-91–71, Knowledge Systems Laboratory, Stanford University.
Gannon, J., Purtilo, J. and Zelkowitz, M. (1995) Software Specification—A Comparison of Formal Methods, Ablex Publishing.
Genesereth, M. and Fikes, R. (1992) Knowledge Interchange Format, Version 3.0 Reference Manual, Technical Report Logic-92–1, Computer Science Department, Stanford University.
Goguen, J. A. (1971) Mathematical representation of hierarchically organized systems, in Global Systems Dynamics, ed. E. Attinger and S. Karger, pp. 112–128.
Goguen, J. A. (1993) Sheaf semantics for concurrent interacting objects, in Mathematical Structures in Computer Science, 2, pp. 159–191.
Goguen, J. A. and Burstall, R. M. (1984) Introducing institutions, in Proceedings of the Logics in Programming Workshop, ed. E. Clarke and D. Kozen, Lecture Notes in Computer Science, 164, Springer-Verlag, New York, pp. 221–256.
Gruber, T. (1993) A translation approach to portable ontology specifications, in Knowledge Acquisition, 5(2), pp. 199–220.
Gruber, T. (1994) An ontology for engineering mathematics, in Proceedings of the Fourth International Conference on Principles of Knowledge Representation and Reasoning, Morgan Kauffman, New York.
Jacky, J. (1997) The Way of Z, Cambridge University Press, Cambridge, UK.
Kneuper, R. (1997) Limits of formal methods, in Formal Aspects of Computing, 9(4), Springer, New York, pp. 379–394.
MacLane, S. (1971) Categories for the Working Mathematician, Springer-Verlag, New York.
Neches, R., Fikes, R., Finin, T., Gruber, T. and Patil, R. (1991) Enabling Technology for Knowledge Sharing, AI Magazine, 12(2), pp. 36–56.
Pierce, B. C. (1994) Basic Category Theory for Computer Scientists, MIT Press, Cambridge, MA.
Smith, D. (1991) KIDS: A knowledge based software development system, in Automating Software Design, Eds. M. Lowry and R. McCartney, MIT Press, Cambridge, MA.
Spivey, J. M. (1992) The Z Notation: A Reference Manual, Prentice-Hall, New York.
Srinivas, Y. V. and Jullig, R. (1995) SpecwareTM: Formal support for composing software, in Proceedings of the Conference of Mathematics of Program Construction, Kloster Irsee, Germany.
Uschold, M., Barley, M., Williamson, K., Woods, S. and Clarke, P. (1998) Ontology reuse and application, in Proceedings of the First International Conference on Formal Ontology in Information Systems, Trento, Italy.
Waldinger, R., Julig, R. and Srinivas, Y.V. (1996) SpecwareTM: Language manual 2.0.1, Suresoft, Inc, Palo Alto, CA.
Wang, T. C. and Goldberg, A. (1991) A Mechanical Verifier for Supporting the Design of Reliable Reactive Systems, International Symposium on Software Reliability Engineering, Austin, Texas.
Williamson, K. and Riddle, P. (1991) Knowledge Repositories for Multiple Uses, Goddard Conference on Space Applications of Artificial Intelligence, Greenbelt, MD. pp. 353–367.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Williamson, K., Healy, M. Deriving engineering software from requirements. Journal of Intelligent Manufacturing 11, 3–28 (2000). https://doi.org/10.1023/A:1008959706859
Issue Date:
DOI: https://doi.org/10.1023/A:1008959706859