A Dependable Architecture for COTS-Based Software Systems Using Protective Wrappers

  • Paulo Asterio de C. Guerra
  • Cecília Mary F. Rubira
  • Alexander Romanovsky
  • Rogério de Lemos
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3069)


Commercial off-the-shelf (COTS) software components are built to be used as black boxes that cannot be modified. The specific context in which these COTS components are employed is not known to their developers. When integrating such COTS components into systems, which have high dependability requirements, there may be mismatches between the failure assumptions of these components and the rest of the system. For resolving these mismatches, system integrators must rely on techniques that are external to the COTS software components. In this paper, we combine the concepts of an idealised architectural component and protective wrappers to develop an architectural solution that provides an effective and systematic way for building dependable software systems from COTS software components.


Software Architecture Error Recovery Assembly Stage Error Handler Architectural Solution 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Anderson, T., Feng, M., Riddle, S., Romanovsky, A.: Protective Wrapper Development: A Case Study. In: Erdogmus, M.H., Weng, T. (eds.) ICCBSS 2003. LNCS, vol. 2580, pp. 1–14. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  2. 2.
    Anderson, T., Lee, P.A.: Fault Tolerance: Principles and Practice. Prentice-Hall, Englewood Cliffs (1981)Google Scholar
  3. 3.
    Van Baelen, S., Urting, D., Van Belle, W., Jonckers, V., Holvoet, T., Berbers, Y., De Vlaminck, K.: Toward a unified terminology for component-based development. In: WCOP Workshop, ECOOP 2000, Cannes, France (2000), Available at:
  4. 4.
    Chessman, J., Daniels, J.: UML Components: A Simple Process for Specifying Component-Based Software. Addison-Wesley, Reading (2001)Google Scholar
  5. 5.
    De Lemos, R., Saeed, A., Anderson, T.: Analyzing Safety Requirements for Process-Control Systems. IEEE Software 12(3), 42–53 (1995)CrossRefGoogle Scholar
  6. 6.
    DeLine, R.: A Catalog of Techniques for Resolving Packaging Mismatch. In: Proc. 5th Symposium on Software Reusability (SSR 1999), Los Angeles, CA, May 1999, pp. 44–53 (1999)Google Scholar
  7. 7.
    Garlan, D., Allen, R., Ockerbloom, J.: Architectural mismatch: Why reuse is so hard. IEEE Software 12(6), 17–26 (1995)CrossRefGoogle Scholar
  8. 8.
    Guerra, P.A.C., Rubira, C.M.F., de Lemos, R.: An Idealized Fault-Tolerant Architectural Component. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds.) Architecting Dependable Systems. LNCS, vol. 2677, pp. 21–41. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  9. 9.
    Guerra, P.A.C., Rubira, C.M.F., Romanovsky, A., de Lemos, R.: Integrating COTS Software Components Into Dependable Software Architectures. In: Proc. 6th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, Hokkaido, Japan, pp. 139–142 (2003)Google Scholar
  10. 10.
    Guerra, P.A.C., Rubira, C.M.F., Romanovsky, A., de Lemos, R.: A Fault-Tolerant Software Architecture for COTS-based Software Systems. In: Proc. 9th European Software Engineering Conference held jointly with 10th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Helsinki, Finland, pp. 375–378 (2003)Google Scholar
  11. 11.
    Hamlet, D., Mason, D., Woit, D.: Theory of System Reliability Based on Components. In: Proc. 2000 International Workshop on Component-Based Software Engineering. CMU/SEI (2000)Google Scholar
  12. 12.
    Koopman, P., De Vale, J.: Comparing the Robustness of POSIX Operating Systems. In: Proc. Fault Tolerant Computing Symposium (FTCS-29), Wisconsin, USA, pp. 30–37 (1999)Google Scholar
  13. 13.
    Oberndorf, P., Wallnau, K., Zaremski, A.M.: Product Lines: Reusing Architectural Assets within an Organisation. In: Bass, L., Clements, P., Kazman, R. (eds.) Software Architecture in Practice, pp. 331–344. Addison-Wesley, Reading (1998)Google Scholar
  14. 14.
    Plasil, F., Visnovsky, S.: Behavior Protocols for Software Components. IEEE Transactions on Software Engineering 28(11), 1056–1076 (2002)CrossRefGoogle Scholar
  15. 15.
    Popov, P., Riddle, S., Romanovsky, A., Strigini, L.: On Systematic Design of Protectors for Employing OTS Items. In: Proc. 27th Euromicro Conference, Warsaw, Poland, September 4-6, pp. 22–29. IEEE, CS (2001)CrossRefGoogle Scholar
  16. 16.
    Rodriguez, M., Fabre, J.-C., Arlat, J.: Wrapping Real-Time Systems from temporal Logic Specification. In: Bondavalli, A., Thévenod-Fosse, P. (eds.) EDCC 2002. LNCS, vol. 2485, pp. 253–270. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  17. 17.
    Rakic, M., Medvidovic, N.: Increasing the Confidence in Off-The-Shelf Components: A Software Connector-Based Approach. In: Proc. 2001 Symposium on Software Reusability (SSR 2001). ACM/SIGSOFT Software Engineering Notes, vol. 26(3), pp. 11–18 (2001)Google Scholar
  18. 18.
    Schneider, J.-G., Nierstrasz, O.: Components, Scripts and Glue. In: Barroca, L., Hall, J., Hall, P. (eds.) Software Architecture Advances and Applications, pp. 13–25. Springer, Heidelberg (2000)Google Scholar
  19. 19.
    Sedigh-Ali, S., Ghafoor, A., Paul, R.A.: Metrics and Models for Cost and Quality of Component-Based Software. In: Proc. 6th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, Hokkaido, Japan (2003)Google Scholar
  20. 20.
    Sotirovski, D.: Towards Fault-Tolerant Software Architectures. In: Kazman, R., Kruchten, P., Verhoef, C., Van Vliet, H. (eds.) Working IEEE/IFIP Conference on Software Architecture, Los Alamitos, CA, pp. 7–13 (2001)Google Scholar
  21. 21.
    Sha, L.: Using Simplicity to Control Complexity. IEEE Software, pp.20-28 (July/August 2001)Google Scholar
  22. 22.
    Shaw, M., Clements, P.C.: A Field Guide to Boxology: Preliminary Classification of Architectural Styles for Software Systems. In: Proc. 21st International Computer Software and Applications Conference, pp. 6–13 (1997)Google Scholar
  23. 23.
    Salles, F., Rodriguez, M., Fabre, J.-C., Arlat, J.: Metakernels and Fault Containment Wrappers. In: Proc. Fault Tolerant Computing Symposium (FTCS-29), Wisconsin, USA, pp. 22–29 (1999)Google Scholar
  24. 24.
    Saridakis, T., Issarny, V.: Developing Dependable Systems using Software Architecture. In: Proc. 1st Working IFIP Conference on Software Architecture, February 1999, pp. 83–104 (1999)Google Scholar
  25. 25.
    Stavridou, V., Riemenschneider, R.A.: Provably Dependable Software Architectures. In: Proc. Third ACM SIGPLAN International Software Architecture Workshop, pp. 133–136. ACM, New York (1998)CrossRefGoogle Scholar
  26. 26.
    Taylor, R.N., Medvidovic, N., Anderson, K.M., Whitehead Jr., E.J., Robbins, J.E., Nies, K.A., Oreizy, P., Dubrow, D.L.: A Component- and Message-based Architectural Style for GUI Software. IEEE Transactions on Software Engineering 22(6), 390–406 (1996)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Paulo Asterio de C. Guerra
    • 1
  • Cecília Mary F. Rubira
    • 1
  • Alexander Romanovsky
    • 2
  • Rogério de Lemos
    • 3
  1. 1.Instituto de ComputaçãoUniversidade Estadual de CampinasBrazil
  2. 2.School of Computing ScienceUniversity of Newcastle upon TyneUK
  3. 3.Computing LaboratoryUniversity of Kent at CanterburyUK

Personalised recommendations