Abstract
Abadi and Lamport established a general theorem for composing specifications [1] . Based on an assume-guarantee principle, it enables one to prove the specification of a composite system from the ones of its components. But the general application of this theorem to software composition is not that straightforward because the resulting abstract specification of the composite depends upon the hidden guarantees of its subcomponents. In this paper, we investigate how this result can be exploited without blurring responsibilities between the different participants. Our contributions leverage an existing contracting framework for hierarchical software components [7] , in which contracts are first-class objects during configuration and run times. This framework already associates specifications and responsibilities to software components, within the traditional horizontal form of composition. We show here how the vertical one can be made operational using the theorem as a sound formal basis. The resulting composite contracts make possible not only to detect violations, but also to determine and exploit precisely responsibilities upon them, related to both forms of composition.
This work was partially supported by France Telecom under the collaboration contracts number 422721832-I3S and 46132097-I3S.
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
Abadi, M., Lamport, L.: Composing specifications. ACM Trans. Program. Lang. Syst. 15(1), 73–132 (1993)
Abadi, M., Lamport, L.: Conjoining specifications. ACM Trans. Program. Lang. Syst. 17(3), 507–534 (1995)
Aegedal, J.O.: Quality of Service Support in Development of Distributed Systems. PhD thesis, University Of Oslo (2001)
Bruneton, E., Coupaye, T., Leclercq, M., Quéma, V., Stefani, J.-B.: An Open Component Model and Its Support in Java. In: Crnković, I., Stafford, J.A., Schmidt, H.W., Wallnau, K. (eds.) CBSE 2004. LNCS, vol. 3054, Springer, Heidelberg (2004)
Chang, H., Collet, P.: Fine-grained Contract Negotiation for Hierarchical Software Components. In: 31th EUROMICRO Conference 2005, Porto, Portugal, 30 August - 3 September 2005, IEEE Computer Society Press, Los Alamitos (2005)
Collet, P., Ozanne, A., Rivierre, N.: Towards a versatile contract model to organize behavioral specifications. In: van Leeuwen, J., Italiano, G.F., van der Hoek, W., Meinel, C., Sack, H., Plášil, F. (eds.) SOFSEM 2007. LNCS, vol. 4362, Springer, Heidelberg (2007)
Collet, P., Rousseau, R., Coupaye, T., Rivierre, N.: A contracting system for hierarchical components. In: Heineman, G.T., Crnkovic, I., Schmidt, H.W., Stafford, J.A., Szyperski, C.A., Wallnau, K.C. (eds.) CBSE 2005. LNCS, vol. 3489, pp. 187–202. Springer, Heidelberg (2005)
D’azzo, J.J., Houpis, C.: Linear control system analysis and design: Conventional and modern. McGraw-Hill, New York (1995)
Findler, R.B., Felleisen, M.: Contract soundness for object-oriented languages. In: Proceedings of OOPSLA 2001 (2001)
Goguen, J.A., Burstall, R.M.: Cat, a system for the structured elaboration of correct programs from structured specifications. Technical Report CSL-118, SRI International, Computer Science Lab (1980)
Jones, C.B.: Specification and design of (parallel) programs. In: IFIP Congress, pp. 321–332 (1983)
Jézéquel, J.-M., Defour, O., Plouzeau, N.: An mda approach to tame component based software development. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2003. LNCS, vol. 3188, pp. 260–275. Springer, Heidelberg (2004)
Leboucher, L., Najm, E.: A framework for real-time qos in distributed systems. In: IEEE Workshop on Middleware for Distributed Real-Time Systems and Service, San Francisco, California (1997)
Magee, J., Kramer, J.: Concurrency: state models & Java programs. John Wiley & Sons, Inc., Chichester (1999)
Milanovic, N.: Contract-based web service composition framework with correctness guarantees. In: Malek, M., Nett, E., Suri, N. (eds.) ISAS 2005. LNCS, vol. 3694, pp. 52–67. Springer, Heidelberg (2005)
Misra, J., Chandy, M.: Proofs of networks of processes. IEEE Transactions on Software Engineering 7(4), 417–426 (1981)
Plasil, F., Visnovsky, S.: Behavior protocols for software components. IEEE Transactions on Software Engineering 28(11) (November 2002)
Reussner, R., Poernomo, I., Schmidt, H.W.: Reasoning about software architectures with contractually specified components. In: Cechich, A., Piattini, M., Vallecillo, A. (eds.) Component-Based Software Quality. LNCS, vol. 2693, pp. 287–325. Springer, Heidelberg (2003)
Szyperski, C.: Component Software — Beyond Object-Oriented Programming. Addison-Wesley Publishing Co., Reading (1997)
Tran, H.-M., Bedu, P., Duchien, L., Nguyen, H.-Q., Perrin, J.: Toward structural and behavioral analysis for component models. In: SAVBCS 2004. 12th ACM SIGSOFT Symposium on the Foundation of Software Engineering, NewPort Beach, California, USA, ACM Press, New York (November 2004)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Collet, P., Malenfant, J., Ozanne, A., Rivierre, N. (2007). Composite Contract Enforcement in Hierarchical Component Systems. In: Lumpe, M., Vanderperren, W. (eds) Software Composition. SC 2007. Lecture Notes in Computer Science, vol 4829. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77351-1_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-77351-1_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-77350-4
Online ISBN: 978-3-540-77351-1
eBook Packages: Computer ScienceComputer Science (R0)