Reuse of Knowledge at an Appropriate Level of Abstraction – Case Studies Using Specware

  • Keith E. Williamson
  • Michael J. Healy
  • Richard A. Barker
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1844)


We describe an alternative paradigm for software reuse that attempts to reuse software derivation knowledge at an appropriate level of abstraction. Sometimes that level is a domain theory that is involved in stating system requirements. Sometimes it is a design pattern. Sometimes it is a software component. Often it is a combination of the these. We describe our experiences using Specware for deriving software and reusing software derivations.


Software Component Category Theory Task Model Proof Obligation Requirement Elicitation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Balzer, R.: A 15 Year Perspective on Automatic Programming. IEEE Transactions on Software Engineering SE-11(11), 1257–1268 (1986)CrossRefGoogle Scholar
  2. 2.
    Baxter, I.: Design Maintenance System. Communications of the ACM 35(4), 73–89 (1992)CrossRefGoogle Scholar
  3. 3.
    Bjorner, D., Jones, C.: Formal Specification & Software Development. Prentice-Hall International, Englewood Cliffs (1982)zbMATHGoogle Scholar
  4. 4.
    Blaine, L., Goldberg, A.: DTRE - A Semi-Automatic Transformation System. In: Moller, B. (ed.) Constructing Programs from Specifications, North Holland, Amsterdam (1991)Google Scholar
  5. 5.
    Burstall, R.M., Goguen, J.A.: The Semantics of Clear, a Specification Language. In: Bjorner, D. (ed.) Abstract Software Specifications. LNCS, vol. 86. Springer, Heidelberg (1980)Google Scholar
  6. 6.
    Gannon, J., et al.: Software Specification - A Comparison of Formal Methods. Ablex Publishing, GreenwichGoogle Scholar
  7. 7.
    Gardiner, M., Christie, B.: Applying Cognitive Psychology to User-Interface Design. John Wiley & Sons, Chichester (1987)Google Scholar
  8. 8.
    Gibbs, W.: Taking Computers to Task. Scientific American (July 1997)Google Scholar
  9. 9.
    Goguen, J.A.: Mathematical Representation of Hierarchically Organized Systems. In: Attinger, E., Karger, S. (eds.) Global Systems Dynamics, pp. 112–128 (1970)Google Scholar
  10. 10.
    Goguen, J.A., Burstall, R.M.: Institutions: Abstract Model Theory for Specification and Programming. Journal of the Association of Computing Machinery (1992)Google Scholar
  11. 11.
    Goguen, J.A.: An Introduction to Algebraic Semiotics, with Applications to User Interface Design. In: Nehaniv, C. (ed.) Computation for Metaphor, Analogy and Agents. LNCS (LNAI). Springer, Heidelberg (1999)Google Scholar
  12. 12.
    Jullig, R., Srinivas, Y.V.: Diagrams for Software Synthesis. In: Proceedings of the 8th Knowledge-Based Software Engineering Conference, Chicago, IL (1993)Google Scholar
  13. 13.
    MacLane, S.: Categories for the Working Mathematician. Springer, Heidelberg (1971)Google Scholar
  14. 14.
    Mayhew, D.J.: The Usability Engineering Lifecycle. Academic Press/Morgan Kauffman (1999)Google Scholar
  15. 15.
    Meseguer, J.: General Logics. In: Ebbinghaus, et al. (eds.) Logic Colloquium 1987. Elsevier Science Publishers, Amsterdam (1989)Google Scholar
  16. 16.
    Pierce, B.C.: Basic Category Theory for Computer Scientists. MIT Press, Cambridge (1994)Google Scholar
  17. 17.
    Rogers, Y., et al.: Models in the Mind - Theory, Perspective, and Application. Academic Press, London (1992)Google Scholar
  18. 18.
    Smith, D.: KIDS: A Knowledge Based Software Development System. In: Lowry, M., McCartney, R. (eds.) Automating Software Design. MIT Press, Cambridge (1991)Google Scholar
  19. 19.
    Smith, D.: Mechanizing the Development of Software. In: Broy, M. (ed.) Calculational System Design. NATO ASI series. IOS Press, Amsterdam (1999)Google Scholar
  20. 20.
    Spivey, J.M.: The Z Notation: A Reference Manual. Prentice-Hall, New York (1992)Google Scholar
  21. 21.
    Srinivas, Y.V., Jullig, R.: SpecwareTM: Formal Support for Composing Software. In: Proceedings of the Conference of Mathematics of Program Construction, Kloster Irsee, Germany (1995)Google Scholar
  22. 22.
    Waldinger, R., et al.: SpecwareTM Language Manual 2.0.1, Suresoft (1996)Google Scholar
  23. 23.
    Wang, T.C., Goldberg, A.: A Mechanical Verifier for Supporting the Design of Reliable Reactive Systems. In: International Symposium on Software Reliability Engineering, Austin, Texas (1991)Google Scholar
  24. 24.
    Williamson, K., Healy, M.: Formally Specifying Engineering Design Rationale. In: Proceedings of the Automated Software Engineering Conference (1997)Google Scholar
  25. 25.
    Williamson, K., Healy, M.: Deriving Engineering Software from Requirements. Journal of Intelligent Manufacturing (1999) (to appear)Google Scholar
  26. 26.
    Williamson, K., Healy, M.: Industrial Applications of Software Synthesis via Category Theory. In: Proceedings of the Automated Software Engineering Conference (1999)Google Scholar
  27. 27.
    Human Engineering Program - Processes and Procedures, US Department of Defense, Handbook MIL-HDBK-46855A (1996)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Keith E. Williamson
    • 1
  • Michael J. Healy
    • 1
  • Richard A. Barker
    • 1
  1. 1.The Boeing CompanySeattle

Personalised recommendations