Specifying Reusable Components
Reusable software components need expressive specifications. This paper outlines a rigorous foundation of model − basedcontracts, a method to equip classes with strong contracts that support accurate design, implementation, and formal verification of reusable components. Model-based contracts conservatively extend the classic Design by Contract approach with a notion of model, which underpins the precise definitions of such concepts as abstract object equivalence and specification completeness. Experiments applying model-based contracts to libraries of data structures suggest that the method enables accurate specification of practical software.
Unable to display preview. Download preview PDF.
- 3.Chalin, P.: Are practitioners writing contracts? In: Rigorous Development of Complex Fault-Tolerant Systems, pp. 100–113 (2006)Google Scholar
- 5.Gougen, J.A., Thatcher, J.W., Wagner, E.G.: An initial algebra approach to the specification, correctness, and implementation of abstract data types. In: Current Trends in Programming Methodology, pp. 80–149. Prentice-Hall, Englewood Cliffs (1978)Google Scholar
- 11.Polikarpova, N., Furia, C.A., Meyer, B.: Specifying reusable components, Extended version, http://arxiv.org/abs/1003.5777
- 12.Schoeller, B.: Making classes provable through contracts, models and frames. PhD thesis, ETH Zurich (2007)Google Scholar
- 13.Schoeller, B., Widmer, T., Meyer, B.: Making specifications complete through models. In: Architecting Systems with Trustworthy Components, pp. 48–70 (2004)Google Scholar