Skip to main content

Architectural Design Decisions for Achieving Reliable Software Systems

  • Conference paper
Architecting Critical Systems (ISARCS 2010)

Part of the book series: Lecture Notes in Computer Science ((LNSC,volume 6150))

Included in the following conference series:

Abstract

Software architectural design decisions are key guidelines to achieve non-functional requirements of software systems in the early stages of software development. These decisions are also important for justifying the modifications of dynamic architectures during software evolution in the operational phase. Incorporating reliability goals in software architectures is important for successful applications in large and safety-critical systems. However, most of the existing software design mechanisms do not consider the architectural reliability (the impact of software architecture on system reliability). As a result, alternative software architectures cannot be compared adequately with respect to software system reliability. In this paper, we extend our previous work on failure propagation analysis to propose a selection framework for incorporating reliability in software architectures. The selection criterion in this framework exploits architectural attributes to appropriately select software architectures based on their reliabilities. We provide algorithms to derive the architectural attributes required by the model and to select the appropriate architecture using a quick and a comprehensive decision approach for minor and major architectural changes, respectively.

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. Abdelmoez, W., Nassar, D.M., Shereshevsky, M., Gradetsky, N., Gunnalan, R., Ammar, H.H., Yu, B., Mili, A.: Error propagation in software architectures. In: Proceedings of the 10th IEEE International Symposium on Software Metrics (METRICS 2004), Morgantown, WV, USA, September 2004, pp. 384–393 (2004)

    Google Scholar 

  2. Allen, R., Douence, R., Garlan, D.: Specifying and Analyzing Dynamic Software Architectures. In: Astesiano, E. (ed.) ETAPS 1998 and FASE 1998. LNCS, vol. 1382, pp. 21–37. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  3. Avizienis, A., Laprie, J.C., Randell, B., Landwehr, C.: Basic concepts and taxonomy of dependable and secure computing. In: Proceedings of the IEEE Transactions on Dependable and Secure Computing, January 2004, vol. 1, pp. 11–33 (2004)

    Google Scholar 

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

    Google Scholar 

  5. Candea, G., Delgado, M., Chen, M., Fox, A.: Automatic Failure-Path Inference: A Generic Introspection Technique for Internet Applications. In: Proceedings of the 3rd IEEE Workshop on Internet Applications (WIAPP 2003), California, USA, June 2003, pp. 132–141 (2003)

    Google Scholar 

  6. Cheung, L., Roshandel, R., Medvidovic, N., Golubchik, L.: Early Prediction of Software Component Reliability. In: Proceedings of the 30-th International Conference on Software engineering (ICSE 2008), Leipzig, Germany, May 2008, pp. 111–120 (2008)

    Google Scholar 

  7. Cortellessa, V., Grassi, V.: A Modeling Approach to Analyze the Impact of Error Propagation on Reliability of Component-Based Systems. In: Schmidt, H.W., Crnković, I., Heineman, G.T., Stafford, J.A. (eds.) CBSE 2007. LNCS, vol. 4608, pp. 140–156. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  8. Everett, W.W.: Software component reliability analysis. In: Proceedings of the IEEE Symposium on Application - Specific Systems and Software Engineering and Technology, Washington, DC, USA, pp. 204–211 (1999)

    Google Scholar 

  9. Gacek, C., De Lemos, R.: Architectural Description of Dependable Software Systems. In: Besnard, D., Gacek, C., Jones, C. (eds.) Proceedings of Structure for Dependability: Computer-Based Systems from an Interdisciplinary Perspective, pp. 127–142. Springer, Heidelberg (2006)

    Google Scholar 

  10. Georgiadis, I., Magee, J., Kramer, J.: Self-Organizing Software Architectures for Distributed Systems. In: Proceedings of the 1st workshop on Self-healing systems, Charleston, South Carolina, USA, pp. 33–38 (2002)

    Google Scholar 

  11. Goseva-Popstojanova, K., Trivedi, K.S.: Architecture based approach to reliability assessment of software systems. Proceedings of the International Journal on Performance Evaluation 45, 179–204 (2001)

    Article  MATH  Google Scholar 

  12. Grunske, L.: Identifying “Good” Architectural Design Alternatives with Multi-Objective Optimization Strategies. In: Proceedings of the 28th International conference on Software engineering (ICSE 2006), China, pp. 849–852 (2006)

    Google Scholar 

  13. Hamlet, D., Mason, D., Woitm, D.: Theory of Software Reliability Based on Components. In: Proceedings of the 23rd International Conference on Software Engineering (ICSE 2001), Toronto, Ontario, Canada, May 2001, pp. 361–370 (2001)

    Google Scholar 

  14. Hiller, M., Jhumka, A., Suri, N.: An Approach for Analysing the Propagation of Data Errors in Software. In: Proceedings of the IEEE International Conference on Dependable Systems and Networks, Goteborg, Sweden, July 2001, pp. 161–170 (2001)

    Google Scholar 

  15. Jansen, A., Bosch, J.: Software Architecture as a Set of Architectural Design Decisions. In: The 5th Working IEEE/IFIP Conference on Software Architecture (WICSA 2005), The Netherlands, pp. 109–120 (2005)

    Google Scholar 

  16. Komiya, S.: A model for the recording and reuse of software design decisionsand decision rationale. In: Proceedings of the 3rd International Conference on Software Reuse: Advances in Software Reusability (ICSR 1994), Rio de Janeiro, Brazil, November 1994, pp. 200–201 (1994)

    Google Scholar 

  17. Kramer, J.: Configuration programming – A framework for the development of distributable systems. In: Proceedings of the IEEE International Conference on Computer Systems and Software Engineering (CompEuro 1990), Israel, pp. 1–18 (1990)

    Google Scholar 

  18. Leveson, N.G.: Software Safety: Why, What, and How. In: Proceedings of ACM Computing Surveys (CSUR) archive, June 1986, vol. 18, pp. 125–163 (1986)

    Google Scholar 

  19. Littlewood, B., Strigini, L.: Software Reliability and Dependability: A Roadmap. In: Proceedings of the 22-nd IEEE International Conference on Software Engineering on the Future of Software Engineering (ICSE 2000), Limerick, Ireland, pp. 175–188 (2000)

    Google Scholar 

  20. Mohamed, A., Zulkernine, M.: Improving Reliability and Safety by Trading Off Software Failure Criticalities. In: Proceedings of the 10-th IEEE International Symposium on High Assurance System Engineering (HASE 2007), Dallas, Texas, USA, November 2007, pp. 267–274 (2007)

    Google Scholar 

  21. Mohamed, A., Zulkernine, M.: On Failure Propagation in Component-Based Software Systems. In: Proceedings of the 8-th IEEE International Conference on Quality Software (QSIC 2008), Oxford, UK, August 2008, pp. 402–411 (2008)

    Google Scholar 

  22. Object Management Group, OMG Unified Modeling Language (OMG UML), Superstructure, Version 2.1.2, OMG Available Specification without Change Bars, formal/2007-02-05 (November 2007)

    Google Scholar 

  23. Philippe, K.: An ontology of architectural design decisions in software intensive systems. In: The 2-nd Groningen Workshop on Software Variability, Groningen, The Netherlands, December 2004, pp. 54–61 (2004)

    Google Scholar 

  24. Popic, P., Desovski, D., Abdelmoez, W., Cukic, B.: Error propagation in the reliability analysis of component based systems. In: Proceedings of the 16-th IEEE International Symposium on Software Reliability Engineering (ISSRE 2005), Morgantown, WV, USA, November 2005, pp. 53–62 (2005)

    Google Scholar 

  25. Pullum, L.L.: Fault Tolerance Techniques and Implementation. Artech House (2001), ISBN 1-58053-470-8

    Google Scholar 

  26. Szyperski, C.: Component Software: Beyond Object-Oriented Programming. Addison-Wesley, Reading (1998), ISBN 0-201-17888-5

    Google Scholar 

  27. Tang, A., Ali Babar, M., Gorton, I., Han, J.: A Survey of Architecture Design Rationale. Proceedings of the Journal of Systems and Software 79, 1792–1804 (2006)

    Article  Google Scholar 

  28. Voas, J., McGraw, G., Ghosh, A., Miller, K.: Glueing Together Software Components: How Good Is Your Glue? In: Proceedings of the Pacific Northwest Software Quality Conference, Portland, Oregon, USA, October 1996, pp. 338–349 (1996)

    Google Scholar 

  29. Walter, M., Trinitis, C., Karl, W.: OpenSESAME: An Intuitive Dependability Modeling Environment Supporting Inter-Component Dependencies. In: Proceedings of the Pacific Rim International Symposium on Dependable Computing, Seoul, Korea, December 2001, pp. 76–83 (2001)

    Google Scholar 

  30. Wang, Q.: Towards a Rule Model for Self-Adaptive Software. In: Proceedings of the ACM SIGSOFT Software Engineering Notes, vol. 30, pp. 8–12 (2005)

    Google Scholar 

  31. Weihang, W., Kelly, T.: Safety Tactics for Software Architecture Design. In: Proceedings of the 28-th Annual International Conference on Computer Software and Applications (COMPSAC 2004), York University, United Kingdum, September 2004, pp. 368–375 (2004)

    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 paper

Cite this paper

Mohamed, A., Zulkernine, M. (2010). Architectural Design Decisions for Achieving Reliable Software Systems. In: Giese, H. (eds) Architecting Critical Systems. ISARCS 2010. Lecture Notes in Computer Science, vol 6150. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13556-9_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-13556-9_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-13555-2

  • Online ISBN: 978-3-642-13556-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics