Skip to main content

Reasoning about Software Architectures with Contractually Specified Components

  • Chapter
Component-Based Software Quality

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2693))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. 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)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. de Roever, W.-P., Langmaack, H., Pnueli, A. (eds.): COMPOS 1997. LNCS, vol. 1536. Springer, Heidelberg (1998)

    Google Scholar 

  5. Dyer, M.: The Cleanroom Approach to Quality Software Development. Series in Software Engineering Practice. Wiley & Sons, New York (1992)

    MATH  Google Scholar 

  6. Frolund, S., Koistinen, J.: Quality-of-service specification in distributed object systems. Technical Report HPL-98-159, Hewlett Packard, Software Technology Laboratory (September 1998)

    Google Scholar 

  7. 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)

    Chapter  Google Scholar 

  8. 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)

    Google Scholar 

  9. Holzmann, G.J.: Design and Validation of Computer Protocols. Prentice Hall, Englewood Cliffs (1991)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. Iannino, A., Musa, J.D., Okumoto, K.: Software Reliability - Measurement, prediction, application. McGraw-Hill, New York (1987)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. 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)

    Google Scholar 

  17. 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)

    Article  Google Scholar 

  18. Meyer, B.: Applying “design by contract”. IEEE Computer 25(10), 40–51 (1992)

    Google Scholar 

  19. Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, Englewood Cliffs (1997)

    MATH  Google Scholar 

  20. Mills, H.D., Dyer, M., Linger, R.: Cleanoom software engineering. IEEE Software 4(5), 19–25 (1987)

    Article  Google Scholar 

  21. Musa, J.D.: Operational profiles in software-reliability engineering. IEEE Software 10(2), 14 (1993)

    Article  Google Scholar 

  22. Microsoft Corp., The .NET homepage, http://www.microsoft.com/net/default.asp

  23. 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)

    Google Scholar 

  24. 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)

    Google Scholar 

  25. Reussner, R.H.: Enhanced component interfaces to support dynamic adaption and extension. In: 34th Hawaiin International Conference on System Sciences. IEEE, Los Alamitos (2001)

    Google Scholar 

  26. Reussner, R.H.: Parametrisierte Verträge zur Protokolladaption bei Software- Komponenten. Logos Verlag, Berlin (2001)

    Google Scholar 

  27. 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)

    Google Scholar 

  28. 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)

    Chapter  Google Scholar 

  29. Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual. Addison-Wesley, Reading (1999)

    Google Scholar 

  30. 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)

    Google Scholar 

  31. 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)

    Google Scholar 

  32. 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)

    Google Scholar 

  33. Shaw, M., Garlan, D.: Software Architecture. Prentice Hall, Englewood Cliffs (1996)

    Google Scholar 

  34. Szyperski, C.: Component Software: Beyond Object-Oriented Programming. ACM Press, Addison-Wesley, Reading, MA, USA (1998)

    Google Scholar 

  35. 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)

    Google Scholar 

  36. 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)

    Chapter  Google Scholar 

  37. 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)

    Google Scholar 

  38. 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)

    Google Scholar 

  39. Whittaker, J.A., Thomason, M.G.: A Markov chain model for statistical software testing. IEEE Transactions on Software Engineering 20(10), 812–824 (1994)

    Article  Google Scholar 

  40. Wirth, N.: Programming in MODULA-2, 3rd edn. Springer, Heidelberg (1985)

    MATH  Google Scholar 

  41. Wydaeghe, B.: Component Composition Based on Composition Patterns and Usage Scenarios. Dissertation, Department of Computer Science, Vrije Universitiet Brussel, Belgium (2001)

    Google Scholar 

  42. Yellin, D., Strom, R.: Protocol Specifications and Component Adaptors. ACM Transactions on Programming Languages and Systems 19(2), 292–333 (1997)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics