Abstract
We propose a semantic foundation for the contract-based design of software components. Our approach focuses on the characteristic principles of component-oriented development, like provided and required interface specifications and strong encapsulation. Semantically, we adopt classical concepts of mathematical logic using models, in our framework given by labelled transition systems with “states as algebras”, sentences, and a satisfaction relation which characterizes those properties of a component which are observable by the user in the “strongly reachable” states. We distinguish between models of interfaces and models of component bodies. The latter are equipped with semantic encapsulation constraints which guarantee, that if the component body is a correct user of the required interface operations, then it can safely rely on all properties of the required interface specification. Our model-theoretic semantics of interfaces and component bodies suggests two semantic views on a component, its external and its internal semantics which must be properly related to ensure the correctness of a component. We also study a refinement relation between required and provided interface specifications of different components used for component composition.
This research has been partially supported by the GLOWA-Danube project 01LW0602A2 sponsored by the German Federal Ministry of Education and Research.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ahrendt, W., Beckert, B., Hähnle, R., Schmitt, P.H.: KeY: A formal method for object-oriented systems. In: Bonsangue, M.M., Johnsen, E.B. (eds.) FMOODS 2007. LNCS, vol. 4468, pp. 32–43. Springer, Heidelberg (2007)
Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# Programming System: An Overview. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 49–69. Springer, Heidelberg (2005)
Berger, K., Rausch, A., Sihling, M., Vilbig, A., Broy, M.: A Formal Model for Componentware. In: Leavens, G.T., Sitaraman, M. (eds.) Foundations of Component-Based Systems, pp. 189–210. Cambridge Univ. Press, Cambridge (2000)
Bidoit, M., Hennicker, R., Knapp, A., Baumeister, H.: Glass-box and black-box views on object-oriented specifications. In: Proc. SEFM 2004, Beijing, China. IEEE Comp. Society Press, Los Alamitos (2004)
Börger, E., Stärk, R.: Abstract State Machines: A Method for High-Level System Design and Analysis. Springer, Heidelberg (2003)
Cheesman, J., Daniels, J.: UML Components. Addison Wesley, Boston (2000)
Goguen, J.A., Tracz, W.: An Implementation-Oriented Semantics for Module Composition. In: Foundations of Component-Based Systems, pp. 231–263. Cambridge Univ. Press, Cambridge (2000)
Leavens, G.T., Baker, A.L., Ruby, C.: JML: A Notation for Detailed Design. In: Behavioral Specifications of Businesses and Systems, ch. 12, pp. 175–188. Kluwer, Dordrecht (1999)
Leavens, G.T., Dhara, K.K.: Concepts of Behavioral Subtyping and a Sketch of Their Extension to Component-Based Systems. In: Foundations of Component-Based Systems, pp. 113–136. Cambridge Univ. Press, Cambridge (2000)
Lu, Y., Potter, J., Xue, J.: Validity invariants and effects. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 202–226. Springer, Heidelberg (2007)
Poetzsch-Heffter, A.: Specification and Verification of Object-Oriented Programs. Habilitationsschrift, Technische Universität München (1997)
Poetzsch-Heffter, A., Schäfer, J.: Modular Specification of Encapsulated Object-Oriented Components. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2005. LNCS, vol. 4111, pp. 313–341. Springer, Heidelberg (2006)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bidoit, M., Hennicker, R. (2008). An Algebraic Semantics for Contract-Based Software Components. In: Meseguer, J., Roşu, G. (eds) Algebraic Methodology and Software Technology. AMAST 2008. Lecture Notes in Computer Science, vol 5140. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-79980-1_17
Download citation
DOI: https://doi.org/10.1007/978-3-540-79980-1_17
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-79979-5
Online ISBN: 978-3-540-79980-1
eBook Packages: Computer ScienceComputer Science (R0)