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.
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
International Standards Organization, Information Technology – Software Product Quality – Part 1: Quality Model, ISO/IEC FDIS 9126-1
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison-Wesley, Reading (2003)
Utas, G.: Robust Communications Software: Extreme Availability, Reliability and Scalability for Carrier-Grade Systems. Wiley, Chichester (2005)
Hanmer, R.: Patterns for Fault Tolerant Software. Wiley Software Patterns Series. Wiley, Chichester (2007)
Buschmann, F., et al.: Pattern-Oriented Software Architecture: A System of Patterns. Wiley, Chichester (1996)
Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Addison-Wesley, Reading (1996)
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)
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)
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)
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)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Harrison, N., Avgeriou, P., Zdun, U.: Architecture Patterns as Mechanisms for Capturing Architectural Decisions. IEEE Software 24(4) (2007)
Schmidt, D., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture: Patterns for Concurrent and Distributed Objects. Wiley, Chichester (2000)
Avgeriou, P., Zdun, U.: Architectural Patterns Revisited – a Pattern Language. In: 10th European Conference on Pattern Languages of Programs, EuroPLoP (2005)
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)
Brooks, F.P.: No Silver Bullet—Essence and Accident in Software Engineering. IEEE Computer 20(4), 10–19 (1987)
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)
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)
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)
Rozanski, N., Woods, E.: Software Systems Architecture. Addison-Wesley, Reading (2005)
Booch, G.: Handbook of Software Architecture: Gallery, http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog (accessed February 4, 2010)
Scott, J., Kazman, R.: Realizing and Refining Architectural Tactics: availability, Technical Report CMU/SEI-2009-TR-006, Software Engineering Institute (2009)
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
Bass, L., et al.: Risk Themes Discovered Through Architecture Evaluations, Technical Report CMU/SEI-2006-TR-012, 2006, Software Engineering Institute (2006)
Abowd, G., et al.: Recommended Best industrial Practice for Software Architecture Evaluation, Technical Report CMU/SEI-96-TR-025, Software Engineering Institute (1997)
Maranzano, J., et al.: Architecture Reviews: Practice and Experience. IEEE Software 22(2), 34–43 (2005)
Clements, P., Kazman, R., Klein, M.: Evaluating Software Architectures: Methods and Case Studies. Addison-Wesley, Reading (2002)
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
Im, T., McGregor, J.D.: Toward a reasoning framework for dependability. In: DSN 2008 Workshop on Architecting Dependable Systems (2008)
Bass, L., et al.: Reasoning Frameworks, Technical Report CMU/SEI-2005-TR-007, Software Engineering Institute (2005)
Bachmann, F., et al.: Designing software architectures to achieve quality attribute requirements. IEE Proceedings 152(4), 153–165 (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)