Software Development by Refinement

  • Dusko Pavlovic
  • Douglas R. Smith
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2757)


This paper presents an overview of the technical foundations and current directions of Kestrel’s approach to mechanizing software development. The approach emphasizes machine-supported refinement of property-oriented specifications to code, based on a category of higher-order specifications. A key idea is representing knowledge about programming concepts, such as algorithm design, and datatype refinement by means of taxonomies of abstract design theories and refinements. Concrete refinements are generated by composing library refinements with a specification.

The framework is partially implemented in the research systems Specware, Designware, Epoxi, and Planware. Specware provides basic support for composing specifications and refinements via colimit, and for generating code via logic morphisms. Specware is intended to be general-purpose and has found use in industrial settings. Designware extends Specware with taxonomies of software design theories and support for constructing refinements from them. Epoxi builds on Designware to support the specification and refinement of systems. Planware transforms behavioral models of tasks and resources into high-performance scheduling algorithms. A few applications of these systems are presented.


Software Development Design Knowledge Global Search Algorithm Embed System Design Automate Software Engineer 
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.
    Becker, M., Smith, D.R.: Planware: Synthesis of resource allocation algorithms. Tech. rep., Kestrel Institute (2002)Google Scholar
  2. 2.
    Blaine, L., Gilham, L., Liu, J., Smith, D., Westfold, S.: Planware – domain-specific synthesis of high-performance schedulers. In: Proceedings of the Thirteenth Automated Software Engineering Conference, October 1998, pp. 270–280. IEEE Computer Society Press, Los Alamitos (1998)Google Scholar
  3. 3.
    Burstall, R.M., Goguen, J.A.: The semantics of clear, a specification languge. In: Bjorner, D. (ed.) Abstract Software Specifications. LNCS, vol. 86. Springer, Heidelberg (1980)Google Scholar
  4. 4.
    Burstein, M., McDermott, D., Smith, D., Westfold, S.: Formal derivation of agent interoperation code. Journal of Autonomous Agents and Multi-Agent Systems (2001); earlier version in Proceedings of the Agents 2000 Conference, Barcelona, Spain (2000)Google Scholar
  5. 5.
    Goguen, J.A.: Categorical foundations for general systems theory. In: Pichler, F., Trappl, R. (eds.) Advances in Cybernetics and Systems Research, pp. 121–130. Transcripta Books (1973)Google Scholar
  6. 6.
    Gurevich, Y.: Evolving algebra 1993: Lipari guide. In: Boerger, E. (ed.) Specification and Validation Methods, pp. 9–36. Oxford University Press, Oxford (1995)Google Scholar
  7. 7.
    Fiadeiro, J.L., Lopes, A., Maibaum, T.: Synthesising interconnections. In: Bird, R., Meertens, L. (eds.) Algorithmic Languages and Calculi, London, pp. 240–264. Chapman & Hall, Boca Raton (1997)Google Scholar
  8. 8.
    Kutter, P.W.: State transitions modeled as refinements. Tech. Rep. KES.U.96.6, Kestrel Institute (August 1996)Google Scholar
  9. 9.
    Meseguer, J.: General logics. In: Ebbinghaus, H. (ed.) Logic Colloquium 87, pp. 275–329. North Holland, Amsterdam (1989)Google Scholar
  10. 10.
    Pavlovic, D.: Semantics of first order parametric specifications. In: Wing, J.M., Woodcock, J.C.P., Davies, J. (eds.) FM 1999. LNCS, vol. 1708, pp. 155–172. Springer, Heidelberg (1999)Google Scholar
  11. 11.
    Pavlovic, D., Smith, D.R.: Composition and refinement of behavioral specifications. In: Proceedings of Sixteenth International Conference on Automated Software Engineering, pp. 157–165. IEEE Computer Society Press, Los Alamitos (2001)Google Scholar
  12. 12.
    Pavlovic, D., Smith, D.R.: System construction via evolving specifications. In: Complex and Dynamic Systems Architectures, CDSA 2001 (2001)Google Scholar
  13. 13.
    Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, NJ (1996)zbMATHGoogle Scholar
  14. 14.
    Smith, D.R.: Constructing specification morphisms. Journal of Symbolic Computation, Special Issue on Automatic Programming 15(5-6), 571–606 (1993)zbMATHGoogle Scholar
  15. 15.
    Smith, D.R.: Toward a classification approach to design. In: Nivat, M., Wirsing, M. (eds.) AMAST 1996. LNCS, vol. 1101, pp. 62–84. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  16. 16.
    Smith, D.R.: Mechanizing the development of software. In: Broy, M., Steinbrueggen, R. (eds.) Calculational System Design, Proceedings of the NATO Advanced Study Institute, pp. 251–292. IOS Press, Amsterdam (1999)Google Scholar
  17. 17.
    Smith, D.R.: Harbinger: Formal development of embedded systems. Tech. rep., Kestrel Institute (2002)Google Scholar
  18. 18.
    Srinivas, Y.V., Jüllig, R.: Specware: Formal support for composing software. In: Möller, B. (ed.) MPC 1995. LNCS, vol. 947, pp. 399–422. Springer, Heidelberg (1995)Google Scholar
  19. 19.
    Widmaier, J., Schmidts, C., Huang, X.: Producing more reliable software: Mature software engineering process vs. state-of-the-art technology? In: Proceedings of the International Conference on Software Engineering 2000, Limerick, Ireland, pp. 87–92. ACM, New York (2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Dusko Pavlovic
    • 1
  • Douglas R. Smith
    • 1
  1. 1.Kestrel InstitutePalo AltoUSA

Personalised recommendations