Skip to main content

Implementing Reliability: The Interaction of Requirements, Tactics and Architecture Patterns

  • Chapter
Architecting Dependable Systems VII

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6420))

Abstract

An important way that the reliability of a software system is enhanced is through the implementation of specific run-time measures called runtime tactics. Because reliability is a system-wide property, tactic implementations affect the software structure and behavior at the system, or architectural level. For a given architecture, different tactics may be a better or worse fit for the architecture, depending on the requirements and how the architecture patterns used must change to accommodate the tactic: different tactics may be a better or worse fit for the architecture. We found three important factors that influence the implementation of reliability tactics. One is the nature of the tactic, which indicates whether the tactic influences all components of the architecture or just a subset of them. The second is the interaction between architecture patterns and tactics: specific tactics and patterns are inherently compatible or incompatible. The third is the reliability requirements which influence which tactics to use and where they should be implemented. Together, these factors affect how, where, and the difficulty of implementing reliability tactics. This information can be used by architects and developers to help make decisions about which patterns and tactics to use, and can also assist these users in learning what modifications and additions to the patterns are needed.

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. International Standards Organization, Information Technology – Software Product Quality – Part 1: Quality Model, ISO/IEC FDIS 9126-1

    Google Scholar 

  2. Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison-Wesley, Reading (2003)

    Google Scholar 

  3. Utas, G.: Robust Communications Software: Extreme Availability, Reliability and Scalability for Carrier-Grade Systems. Wiley, Chichester (2005)

    Google Scholar 

  4. Hanmer, R.: Patterns for Fault Tolerant Software. Wiley Software Patterns Series. Wiley, Chichester (2007)

    Google Scholar 

  5. Buschmann, F., et al.: Pattern-Oriented Software Architecture: A System of Patterns. Wiley, Chichester (1996)

    Google Scholar 

  6. Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Addison-Wesley, Reading (1996)

    MATH  Google Scholar 

  7. Shaw, M.: Toward Higher-Level Abstractions for Software Systems. In: Tercer Simposio Internacional del Conocimiento y su Ingerieria, pp. 55–61 (October 1988); Reprinted in Data and Knowledge Engineering 5, 19–28 (1990)

    Google Scholar 

  8. Harrison, N., Avgeriou, P.: Incorporating Fault Tolerance Techniques in Software Architecture Patterns. In: International Workshop on Software Engineering for Resilient Systems (SERENE 2008), Newcastle upon Tyne, UK, November 17-19, ACM Press, New York (2008)

    Google Scholar 

  9. Harrison, N.B., Avgeriou, P.: Leveraging Architecture Patterns to Satisfy Quality Attributes. In: Oquendo, F. (ed.) ECSA 2007. LNCS, vol. 4758, pp. 263–270. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  10. Wood, W.G.: A Practical Example of Applying Attribute-Driven Design (ADD), Version 2.0, Technical Report CMU/SEI-2007-TR-005, Software Engineering Institute (2007)

    Google Scholar 

  11. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)

    Google Scholar 

  12. Harrison, N., Avgeriou, P., Zdun, U.: Architecture Patterns as Mechanisms for Capturing Architectural Decisions. IEEE Software 24(4) (2007)

    Google Scholar 

  13. Schmidt, D., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture: Patterns for Concurrent and Distributed Objects. Wiley, Chichester (2000)

    Google Scholar 

  14. Avgeriou, P., Zdun, U.: Architectural Patterns Revisited – a Pattern Language. In: 10th European Conference on Pattern Languages of Programs, EuroPLoP (2005)

    Google Scholar 

  15. Harrison, N., Avgeriou, P.: Analysis of Architecture Pattern Usage in Legacy System Architecture Documentation. In: 7th Working IEEE/IFIP Conference on Software Architecture (WICSA), Vancouver, February 18-22, pp. 147–156 (2008)

    Google Scholar 

  16. Brooks, F.P.: No Silver Bullet—Essence and Accident in Software Engineering. IEEE Computer 20(4), 10–19 (1987)

    MathSciNet  Google Scholar 

  17. Harrison, N., Avgeriou, P., Zdun, U.: Focus Group Report: Capturing Architectural Knowledge with Architectural Patterns. In: 11th European Conference on Pattern Languages of Programs (EuroPLoP 2006), Irsee, Germany (2006)

    Google Scholar 

  18. Hofmeister, C., Kruchten, P., Nord, R.L., Obbink, H., Ran, A., America, P.: Generalizing a Model of Software Architecture Design from Five Industrial Approaches. In: 5th Working IEEE/IFIP Conference on Software Architecture (WICSA), November 06 - 10, pp. 77–88. IEEE Computer Society, Los Alamitos (2005)

    Chapter  Google Scholar 

  19. Aguilera, M.K., Chen, W., Toueg, S.: Using the Heartbeat Failure Detector for Quiescent Reliable Communication and Consensus in Partitionable Networks. Theoretical Computer Science, special issue on distributed algorithms 220(1), 3–30 (1999)

    MATH  MathSciNet  Google Scholar 

  20. Rozanski, N., Woods, E.: Software Systems Architecture. Addison-Wesley, Reading (2005)

    Google Scholar 

  21. Booch, G.: Handbook of Software Architecture: Gallery, http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog (accessed February 4, 2010)

  22. Scott, J., Kazman, R.: Realizing and Refining Architectural Tactics: availability, Technical Report CMU/SEI-2009-TR-006, Software Engineering Institute (2009)

    Google Scholar 

  23. Tekinerdogan, B., Sozer, H., Aksit, M.: Software architecture reliability analysis using failure scenarios. J. Syst. Softw. 81(4), 558–575 (2008), http://dx.doi.org/10.1016/j.jss.2007.10.029

    Article  Google Scholar 

  24. Bass, L., et al.: Risk Themes Discovered Through Architecture Evaluations, Technical Report CMU/SEI-2006-TR-012, 2006, Software Engineering Institute (2006)

    Google Scholar 

  25. Abowd, G., et al.: Recommended Best industrial Practice for Software Architecture Evaluation, Technical Report CMU/SEI-96-TR-025, Software Engineering Institute (1997)

    Google Scholar 

  26. Maranzano, J., et al.: Architecture Reviews: Practice and Experience. IEEE Software 22(2), 34–43 (2005)

    Article  Google Scholar 

  27. Clements, P., Kazman, R., Klein, M.: Evaluating Software Architectures: Methods and Case Studies. Addison-Wesley, Reading (2002)

    Google Scholar 

  28. Gokhale, S.S.: Architecture-Based Software Reliability Analysis: Overview and Limitations. IEEE Trans. Dependable Secur. Comput. 4(1), 32–40 (2007), http://dx.doi.org/10.1109/TDSC.2007.4

    Article  Google Scholar 

  29. Im, T., McGregor, J.D.: Toward a reasoning framework for dependability. In: DSN 2008 Workshop on Architecting Dependable Systems (2008)

    Google Scholar 

  30. Bass, L., et al.: Reasoning Frameworks, Technical Report CMU/SEI-2005-TR-007, Software Engineering Institute (2005)

    Google Scholar 

  31. Bachmann, F., et al.: Designing software architectures to achieve quality attribute requirements. IEE Proceedings 152(4), 153–165 (2005)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Harrison, N.B., Avgeriou, P. (2010). Implementing Reliability: The Interaction of Requirements, Tactics and Architecture Patterns. In: Casimiro, A., de Lemos, R., Gacek, C. (eds) Architecting Dependable Systems VII. Lecture Notes in Computer Science, vol 6420. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-17245-8_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-17245-8_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-17244-1

  • Online ISBN: 978-3-642-17245-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics