Architecting Dependable Systems VII pp 97-122 | Cite as
Implementing Reliability: The Interaction of Requirements, Tactics and Architecture Patterns
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.
Keywords
Software Architecture Central Controller Reliability Requirement Multiple Pattern Design ConcernPreview
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-1Google 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)MATHGoogle 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)CrossRefGoogle 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)MathSciNetGoogle 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)CrossRefGoogle 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)MATHMathSciNetGoogle 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 CrossRefGoogle 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)CrossRefGoogle 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 CrossRefGoogle 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)CrossRefGoogle Scholar