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

  • Neil B. Harrison
  • Paris Avgeriou
Part of the Lecture Notes in Computer Science book series (LNCS, 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.

Keywords

Software Architecture Central Controller Reliability Requirement Multiple Pattern Design Concern 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    International Standards Organization, Information Technology – Software Product Quality – Part 1: Quality Model, ISO/IEC FDIS 9126-1Google Scholar
  2. 2.
    Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison-Wesley, Reading (2003)Google Scholar
  3. 3.
    Utas, G.: Robust Communications Software: Extreme Availability, Reliability and Scalability for Carrier-Grade Systems. Wiley, Chichester (2005)Google Scholar
  4. 4.
    Hanmer, R.: Patterns for Fault Tolerant Software. Wiley Software Patterns Series. Wiley, Chichester (2007)Google Scholar
  5. 5.
    Buschmann, F., et al.: Pattern-Oriented Software Architecture: A System of Patterns. Wiley, Chichester (1996)Google Scholar
  6. 6.
    Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Addison-Wesley, Reading (1996)MATHGoogle Scholar
  7. 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. 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. 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. 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. 11.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  12. 12.
    Harrison, N., Avgeriou, P., Zdun, U.: Architecture Patterns as Mechanisms for Capturing Architectural Decisions. IEEE Software 24(4) (2007)Google Scholar
  13. 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. 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. 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. 16.
    Brooks, F.P.: No Silver Bullet—Essence and Accident in Software Engineering. IEEE Computer 20(4), 10–19 (1987)MathSciNetGoogle Scholar
  17. 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. 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. 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. 20.
    Rozanski, N., Woods, E.: Software Systems Architecture. Addison-Wesley, Reading (2005)Google Scholar
  21. 21.
    Booch, G.: Handbook of Software Architecture: Gallery, http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Blog (accessed February 4, 2010)
  22. 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. 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. 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. 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. 26.
    Maranzano, J., et al.: Architecture Reviews: Practice and Experience. IEEE Software 22(2), 34–43 (2005)CrossRefGoogle Scholar
  27. 27.
    Clements, P., Kazman, R., Klein, M.: Evaluating Software Architectures: Methods and Case Studies. Addison-Wesley, Reading (2002)Google Scholar
  28. 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. 29.
    Im, T., McGregor, J.D.: Toward a reasoning framework for dependability. In: DSN 2008 Workshop on Architecting Dependable Systems (2008)Google Scholar
  30. 30.
    Bass, L., et al.: Reasoning Frameworks, Technical Report CMU/SEI-2005-TR-007, Software Engineering Institute (2005)Google Scholar
  31. 31.
    Bachmann, F., et al.: Designing software architectures to achieve quality attribute requirements. IEE Proceedings 152(4), 153–165 (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Neil B. Harrison
    • 1
    • 2
  • Paris Avgeriou
    • 1
  1. 1.Department of Mathematics and Computing ScienceUniversity of GroningenGroningenThe Netherlands
  2. 2.Department of Computer ScienceUtah Valley UniversityOremUSA

Personalised recommendations