Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Becker, M., Smith, D.R.: Planware: Synthesis of resource allocation algorithms. Tech. rep., Kestrel Institute (2002)
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)
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)
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)
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)
Gurevich, Y.: Evolving algebra 1993: Lipari guide. In: Boerger, E. (ed.) Specification and Validation Methods, pp. 9–36. Oxford University Press, Oxford (1995)
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)
Kutter, P.W.: State transitions modeled as refinements. Tech. Rep. KES.U.96.6, Kestrel Institute (August 1996)
Meseguer, J.: General logics. In: Ebbinghaus, H. (ed.) Logic Colloquium 87, pp. 275–329. North Holland, Amsterdam (1989)
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)
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)
Pavlovic, D., Smith, D.R.: System construction via evolving specifications. In: Complex and Dynamic Systems Architectures, CDSA 2001 (2001)
Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, NJ (1996)
Smith, D.R.: Constructing specification morphisms. Journal of Symbolic Computation, Special Issue on Automatic Programming 15(5-6), 571–606 (1993)
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)
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)
Smith, D.R.: Harbinger: Formal development of embedded systems. Tech. rep., Kestrel Institute (2002)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Pavlovic, D., Smith, D.R. (2003). Software Development by Refinement. In: Aichernig, B.K., Maibaum, T. (eds) Formal Methods at the Crossroads. From Panacea to Foundational Support. Lecture Notes in Computer Science, vol 2757. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-40007-3_17
Download citation
DOI: https://doi.org/10.1007/978-3-540-40007-3_17
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20527-2
Online ISBN: 978-3-540-40007-3
eBook Packages: Springer Book Archive