Abstract
One of the motivations for specifying software architectures explicitly is the better prediction of system quality attributes. In this chapter we present an approach for determining the reliability of component-based software architectures.
Our method is based on RADL (Rich Architecture Definition Language), an extension of DARWIN [16]. RADL places special emphasis on component interoperation and, in particular, on accounting for the effects of interoperation on system reliability. To achieve this, our methods use a notion of design-by-contract [19] for components, called parameterized contracts [26]. Our contracts involve finite state machines that allow software architects to define how a component’s reliability will react to a deployment environment. We show how a system, built from contractually specified components, can be understood in terms of Markov models, facilitating system reliability analysis.
We illustrate our approach with an e-commerce example and report about empirical measurements which confirm our analytical reliability prediction by means of monitoring in our reliability testbed.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Brada, P.: Towards automated component compatibility assessment. In: Weck, W., Bosch, J., Szyperski, C. (eds.) Proceedings of the Sixth International Workshop on Component-Oriented Programming (WCOP 2001) (June 2001)
Cheung, R.C.: A user-oriented software reliability model. IEEE Transactions on Software Engineering 6(2), 118–125 (1980); Special collection from COMPSAC 1978 (1978)
de Alfaro, L., Henzinger, T.A.: Interface automata. In: Gruhn, V. (ed.) Proceedings of the Joint 8th European Software Engeneering Conference and 9th ACM SIGSOFT Symposium on the Foundation of Software Engeneering (ESEC/FSE 2001), New York. Software Engineering Notes, vol. 26, 5, pp. 109–120. ACM Press, New York (2001)
de Roever, W.-P., Langmaack, H., Pnueli, A. (eds.): COMPOS 1997. LNCS, vol. 1536. Springer, Heidelberg (1998)
Dyer, M.: The Cleanroom Approach to Quality Software Development. Series in Software Engineering Practice. Wiley & Sons, New York (1992)
Frolund, S., Koistinen, J.: Quality-of-service specification in distributed object systems. Technical Report HPL-98-159, Hewlett Packard, Software Technology Laboratory (September 1998)
Hamlet, D., Mason, D., Woit, D.: Theory of software reliability based on components. In: Proceedings of the 23rd International Conference on Software Engeneering (ICSE 2001), Los Alamitos, California, pp. 361–370. IEEE Computer Society, Los Alamitos (2001)
Han, J.: Temporal logic based specification of component interaction protocols. In: Proccedings of the 2nd Workshop of Object Interoperability at ECOOP 2000, Cannes, France, June 12–16 (2000)
Holzmann, G.J.: Design and Validation of Computer Protocols. Prentice Hall, Englewood Cliffs (1991)
Hunzelmann, G.: Generierung von Protokollinformation für Softwarekomponentenschnittstellen aus annotiertem Java-Code. Diplomarbeit, Fakultät für Informatik, Universität Karlsruhe (TH), Germany (April 2001)
Iannino, A., Musa, J.D., Okumoto, K.: Software Reliability - Measurement, prediction, application. McGraw-Hill, New York (1987)
Kleene, S.C.: Representation of events in nerve nets and finite automata. In: Shannon, C., McCarthy, J. (eds.) Automata Studies, Annals of Math. Studies, vol. 34, pp. 3–40. Princeton, New Jersey (1956)
Krämer, B.: Synchronization constraints in object interfaces. In: Krämer, B., Papazoglou, M.P., Schnmidt, H.W. (eds.) Information Systems Interoperability, pp. 111–141. Research Studies Press, Taunton (1998)
Kramer, J., Magee, J., Ng, K., Dulay, N.: Software architecture description. In: Software Architecture for Product Families: Principles and Practice, pp. 31–64. Addison-Wesley, Reading (2000)
Laprie, J.-C., Kanoun, K.: Software reliability and system reliability. In: Lyu, M.R. (ed.) Handbook of Software Engineering Reliability, pp. 27–69. McGraw-Hill, New York (1996)
Magee, J., Dulay, N., Eisenbach, S., Kramer, J.: Specifying distributed software architectures. In: Botella, P., Schäfer, W. (eds.) ESEC 1995. LNCS, vol. 989, pp. 137–153. Springer, Heidelberg (1995)
Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering 26(1), 70–93 (2000)
Meyer, B.: Applying “design by contract”. IEEE Computer 25(10), 40–51 (1992)
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, Englewood Cliffs (1997)
Mills, H.D., Dyer, M., Linger, R.: Cleanoom software engineering. IEEE Software 4(5), 19–25 (1987)
Musa, J.D.: Operational profiles in software-reliability engineering. IEEE Software 10(2), 14 (1993)
Microsoft Corp., The .NET homepage, http://www.microsoft.com/net/default.asp
Nierstrasz, O.: Regular types for active objects. In: Proceedings of the 8th ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1993), October 1993. ACM SIGPLAN Notices, vol. 28(10), pp. 1–15 (1993)
Reussner, R.H.: Dynamic types for software components. In: Companion of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 1999), November 5–10 (1999) (extended abstract)
Reussner, R.H.: Enhanced component interfaces to support dynamic adaption and extension. In: 34th Hawaiin International Conference on System Sciences. IEEE, Los Alamitos (2001)
Reussner, R.H.: Parametrisierte Verträge zur Protokolladaption bei Software- Komponenten. Logos Verlag, Berlin (2001)
Reussner, R.H.: The use of parameterised contracts for architecting systems with software components. In: Weck, W., Bosch, J., Szyperski, C. (eds.) Proceedings of the Sixth International Workshop on Component-Oriented Programming (WCOP 2001) (June 2001)
Reussner, R.H.: Counter-constraint finite state machines: A new model for resource-bounded component protocols. In: Grosky, B., Plasil, F., Krenek, A. (eds.) SOFSEM 2002. LNCS, vol. 2540, pp. 20–40. Springer, Heidelberg (2002)
Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual. Addison-Wesley, Reading (1999)
Schmidt, H.W., Poernomo, I., Reussner, R.H.: Trust-by-contract: Modelling, analysing and predicting behaviour in software architectures. Journal of Integrated Design and Process Science 5(3), 25–51 (2001)
Schmidt, H.W., Reussner, R.H.: Generating Adapters for Concurrent Component Protocol Synchronisation. In: Proceedings of the Fifth IFIP International conference on Formal Methods for Open Object-based Distributed Systems (March 2002)
Schmidt, H.W., Reussner, R.H.: Parameterised Contracts and Adaptor Synthesis. In: Proceedings of the ICSE Workshop of Component Oriented Software Engineering (CBSE5). IEEE, Los Alamitos (2002)
Shaw, M., Garlan, D.: Software Architecture. Prentice Hall, Englewood Cliffs (1996)
Szyperski, C.: Component Software: Beyond Object-Oriented Programming. ACM Press, Addison-Wesley, Reading, MA, USA (1998)
Trammell, C.: Quantifying the reliability of software: Statistical testing based on a usage model. In: Proceedings of the Second IEEE International Symposium on Software Engineering Standards, pp. 208–218 (1995)
Vallecillo, A., Hernández, J., Troya, J.M.: Object interoperability. In: Moreira, A.M.D., Demeyer, S. (eds.) ECOOP 1999 Workshops. LNCS, vol. 1743, pp. 1–21. Springer, Heidelberg (1999)
Vallecillo, A., Hernández, J., Troya, J.M.: Object interoperability. In: Malenfant, J., Moisan, S., Moreira, A.M.D. (eds.) ECOOP 2000 Workshops. LNCS, vol. 1964, pp. 256–269. Springer, Heidelberg (2000)
Wang, W.-L., Wu, Y., Chen, M.-H.: An Architecture-Based Software Reliability Model. In: Proceedings of the 1999 Pacific Rim International Symposium on Dependable Computing, Hong Kong, China. IEEE, Los Alamitos (1999)
Whittaker, J.A., Thomason, M.G.: A Markov chain model for statistical software testing. IEEE Transactions on Software Engineering 20(10), 812–824 (1994)
Wirth, N.: Programming in MODULA-2, 3rd edn. Springer, Heidelberg (1985)
Wydaeghe, B.: Component Composition Based on Composition Patterns and Usage Scenarios. Dissertation, Department of Computer Science, Vrije Universitiet Brussel, Belgium (2001)
Yellin, D., Strom, R.: Protocol Specifications and Component Adaptors. ACM Transactions on Programming Languages and Systems 19(2), 292–333 (1997)
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
Reussner, R.H., Poernomo, I.H., Schmidt, H.W. (2003). Reasoning about Software Architectures with Contractually Specified Components. In: Cechich, A., Piattini, M., Vallecillo, A. (eds) Component-Based Software Quality. Lecture Notes in Computer Science, vol 2693. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45064-1_14
Download citation
DOI: https://doi.org/10.1007/978-3-540-45064-1_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40503-0
Online ISBN: 978-3-540-45064-1
eBook Packages: Springer Book Archive