Survey of reliability and availability prediction methods from the viewpoint of software architecture

Regular Paper

Abstract

Many future software systems will be distributed across a network, extensively providing different kinds of services for their users. These systems must be highly reliable and provide services when required. Reliability and availability must be engineered into software from the onset of its development, and potential problems must be detected in the early stages, when it is easier and less expensive to implement modifications. The software architecture design phase is the first stage of software development in which it is possible to evaluate how well the quality requirements are being met. For this reason, a method is needed for analyzing software architecture with respect to reliability and availability. In this paper, we define a framework for comparing reliability and availability analysis methods from the viewpoint of software architecture. Our contribution is the comparison of the existing analysis methods and techniques that can be used for reliability and availability prediction at the architectural level. The objective is to discover which methods are suitable for the reliability and availability prediction of today’s complex systems, what are the shortcomings of the methods, and which research activities need to be conducted in order to overcome these identified shortcomings. The comparison reveals that none of the existing methods entirely fulfill the requirements that are defined in the framework. The comparison framework also defines the characteristics required of new reliability and availability analysis methods. Additionally, the framework is a valuable tool for selecting the best suitable method for architecture analysis. Furthermore, the framework can be extended and used for other evaluation methods as well.

Keywords

Reliability and availability analysis Software architecture Software components 

References

  1. 1.
    Purhonen A., Niemelä E. and Matinlassi M. (2004). Viewpoints of DSP software and service architectures. J. Systems Softw. 69(1–2): 57–73 CrossRefGoogle Scholar
  2. 2.
    Reussner R.H., Schmidt H.W. and Poernomo I.H. (2003). Reliability prediction for component-based software architectures. J. Systems Softw. 66(3): 241–252 CrossRefGoogle Scholar
  3. 3.
    Avizienis, A., Laprie, J.C., Randell, B.: Fundamental Concepts of Dependability. LAAS-CNRS. p. 21 (2001)Google Scholar
  4. 4.
    Matinlassi, M., Niemelä, E.: The impact of maintainability on component-based software systems. In: Proceedings of the 29th Euromicro Conference. Antalya, Turkey (2003)Google Scholar
  5. 5.
    Chung, L., Nixon, B., Yu, E., Mylopoulos, J.: Non-functional Requirements in Software Engineering. Kluwer, Boston, Dordrecht 439 p (2000)Google Scholar
  6. 6.
    In, H., Boehm, B., Rodgers, T., Deutsch, M.: Applying WinWin to quality requirements: a case study. In: Proceedings of the 23rd International Conference on Software Engineering. Toronto, Canada (2001)Google Scholar
  7. 7.
    Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison-Wesley, Reading, 452 p (1998)Google Scholar
  8. 8.
    Jazayeri, M., Ran, A., van der Linden, F.: Software Architecture for Product Families. Addison-Wesley, Boston, 257 p (2000)Google Scholar
  9. 9.
    Jayaratna, N.: Understanding and Evaluating Methodologies: NIMSAD: a Systematic Framework. McGraw-Hill, London, 259 p (1994)Google Scholar
  10. 10.
    Buschmann, F., et al.: Pattern Oriented Software Architecture. A System of Patterns. John Wiley, New York, 467 p (1996)Google Scholar
  11. 11.
    Bosch, J.: Design and use of Software Aarchitectures: Adopting and Evolving a Product-line Approach. Addison-Wesley, Harlow, 354 p (2000)Google Scholar
  12. 12.
    Klein M. (1999). Attribute-Based Architecture Styles. in WICSA1 First Working IFIP Conference on Software Architecture. San Antonio, USA Google Scholar
  13. 13.
    Garlan D., Shaw M. An introduction to software architecture. In: Advances in Software Engineering and Knowledge Engineering. World Scientific, Singapore, (1993)Google Scholar
  14. 14.
    Brown, A.: An Introduction to Model Driven Architecture, Part I: MDA and Today’s Systems (2004)Google Scholar
  15. 15.
    OMG, Unified Modeling Language (UML), version 1.5. Object Management Group (2002)Google Scholar
  16. 16.
    OMG, Unified Modeling Language (UML) 2.0 Specification. Object Management Group (2003)Google Scholar
  17. 17.
    Barry, D.K.: Web Services and Service-Oriented Architectures: The Savvy Manager’s Guide. Morgan Kaufmann, 200 p (2003)Google Scholar
  18. 18.
    IEEE, IEEE Std 1471-2000, Recommended Practice for Architectural Description of Software-Intensive Systems. Institute of Electrical and Electronics Engineers Inc (2000)Google Scholar
  19. 19.
    Hofmeister, C., Nord, R., Soni, D.: Applied Software Architecture. Addison-Wesley, Reading, 397 p (1999)Google Scholar
  20. 20.
    Kruchten P. (1995). The 4+1 view model of architecture. IEEE Softw. 12(6): 42–50 CrossRefGoogle Scholar
  21. 21.
    Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Boston, 608 p (2002)Google Scholar
  22. 22.
    Shooman, M.: Structural models for software reliability prediction. In: Proceedings of the 2nd International Conference on Software Engineering (1976)Google Scholar
  23. 23.
    McCall, J., et al.: Methodology for Software Reliability Prediction. Rome Labs Technical Report, RADC-TR-87-171, Vols I & II (1987)Google Scholar
  24. 24.
    Smidts, C., Li, M.: Software Engineering Measures for Predicting Software Reliability in Safety Critical Digital Systems. Nuclear Engineering Department, Technical Report, University of Maryland (2000)Google Scholar
  25. 25.
    Goseva-Popstojanova K. and Trivedi K.S. (2001). Architecture-based approach to reliability assessment of software systems. Perform. Evaluat. 45(2–3): 179–204 MATHCrossRefGoogle Scholar
  26. 26.
    Littlewood B. (1979). Software reliability model for modular program structure. IEEE Trans. Reliability 28(3): 241–246 MATHCrossRefGoogle Scholar
  27. 27.
    Douglass, B.P.: Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks, and Patterns. Addison Wesley Professional, 800 p (1999)Google Scholar
  28. 28.
    Kazman R., Abowd G., Bass L. and Clements P. (1996). Scenario-based analysis of software architecture. IEEE Softw. 13(6): 47–55 CrossRefGoogle Scholar
  29. 29.
    Lassing, N., Rijsenbrij, D., van Vilet, H.: On software architecture analysis of flexibility, complexity of changes: size isn’t everything. In: Proceedings of the 2nd Nordic Software Architecture Workshop (1999)Google Scholar
  30. 30.
    Molter, G.: Integrating SAAM in Domain-centric and Reuse-based development process. In: Proceedings of the 2nd Nordic Workshop on Software Architecture (1999)Google Scholar
  31. 31.
    Kazman, R., et al.: The architecture tradeoff analysis method. In: The 4th IEEE International Conference on Engineering of Complex Computer Systems (1998)Google Scholar
  32. 32.
    Cheung R.C. (1980). A user-oriented software reliability model. IEEE Trans. Softw. Eng. 6(2): 118–125 CrossRefMathSciNetGoogle Scholar
  33. 33.
    Musa J.D. (1993). Operational profiles in software-reliability engineering. IEEE Softw. 10(2): 14–32 CrossRefGoogle Scholar
  34. 34.
    Runeson, P., Regnell, B.: Derivation of an integrated operational profile and use case model. In: Proceedings. The Ninth International Symposium on Software Reliability Engineering (1998)Google Scholar
  35. 35.
    Whittaker J.A. and Thomason M.G. (1994). A Markov chain model for statistical software testing. IEEE Trans. Softw. Eng. 20(10): 812–824 CrossRefGoogle Scholar
  36. 36.
    Jacobson, I.: Object-Oriented Software Engineering: A Use Case Driven Approach. Addison-Wesley, ACM Press, 400 p (1992)Google Scholar
  37. 37.
    Rodrigues, G.N., Rosenblum, D.S., Uchitel, S.: Using scenarios to predict the reliability of concurrent component-based software systems. In: 8th International Conference on Fundamental Approaches to Software Engineering, FASE 2005. Springer Lecture Notes in Computer Science, Edinburgh, (2005)Google Scholar
  38. 38.
    Thomason, M.G., Whittaker, J.A.: Rare failure-state in a Markov chain model for software reliability. In: Proceedings of the 10th International Symposium on Software Reliability Engineering. IEEE, Boca Raton, (1999)Google Scholar
  39. 39.
    Gokhale, S., Trivedi, K.S.: Reliability prediction and sensitivity analysis based on software architecture. In: Proceedings of the 3rd International Symposium on Software Reliability Engineering (ISSRE 02). IEEE Computer Society, Annapolis, (2002)Google Scholar
  40. 40.
    Yacoub, S., Cukic, B., Ammar, H.: Scenario-based reliability analysis of component-based software. In: Proceedings of 10th International Symposium on Software Reliability Engineering (ISSRE’99) (1999)Google Scholar
  41. 41.
    Krishnamurthy, S., Mathur, A.P.: On the estimation of reliability of a software system using reliabilities of its components. In: Proceedings of the 8th International Symposium on Sotfware Reliability Engineering (ISSRE97) (1997)Google Scholar
  42. 42.
    Gokhale, S.S., Trivedi, K.S.: Dependency characterization in path-based approaches to architecture-based software reliability prediction. In: Proceedings of the IEEE Workshop on Application-Specific Software Engineering Technology, ASSET-98 (1998)Google Scholar
  43. 43.
    Gokhale, S.S., Lyu, M.R., Trivedi, K.S.: Reliability simulation of component-based software systems. In: Proceeding of the 9th International Software Reliability Engineering (1998)Google Scholar
  44. 44.
    Leangsuksun, C., Song, H., Shen, L.: Reliability modeling using UML. In: Proceeding of the 2003 International Conference on Software Engineering Research and Practice. Las Vegas (2003)Google Scholar
  45. 45.
    Singh, H., et al.: A Bayesian approach to reliability prediction and assessment of component based systems. In: Proceedings of 12th International Symposium on Software Reliability Engineering (ISSRE’01). Hong Kong (2001)Google Scholar
  46. 46.
    Cortellessa, V., Singh, H., Cukic, B.: Early reliability assessment of UML based software models. In: Third International Workshop on Software and Performance. Rome (2002)Google Scholar
  47. 47.
    OMG, UML Profile for Modeling Quality of Service and Fault Tolerance Characteristics and Mechanisms. Revised submission, Object Management Group (2003)Google Scholar
  48. 48.
    Cortellessa, V., Pompei, A.: Towards a UML Profile for QoS: A Contribution in the Reliability Domain. In: Proceedings of the Fourth International Workshop on Software and Performance. ACM Press (2004)Google Scholar
  49. 49.
    Rodrigues, G.N., Roberts, G., Emmerich, W., Skene, J.: Reliability support for the model driven architecture. In: Proceedings of the ICSE Workshop on Software Architecture for Dependable Systems. Portland (2003)Google Scholar
  50. 50.
    OMG, UML Profile for Schedulability, Performance, and Time Specification. Object Management Group (2003)Google Scholar
  51. 51.
    Greenfield, J.: UML Profile for EJB, in Technical report. Rational Software Corp (2001)Google Scholar
  52. 52.
    Rodrigues, G.N.: A model driven approach for software systems reliability. In: 26th International Conference on Software Engineering (ICSE’04). Edinburgh (2004)Google Scholar
  53. 53.
    Zarras, A., Issarny, V.: Assessing software reliability at the architectural level. In: Proceedings of the 4th ACM SIGSOFT International Software Architecture Workshop. ACM, Ireland (2000)Google Scholar
  54. 54.
    Grassi, V.: Architecture-based dependability prediction for service-oriented computing. In: Proceedings of the Twin Workshops on Architecting Dependable Systems, International Conference on Software Engineering (ICSE 2004). Springer, Edinburgh, (2004)Google Scholar
  55. 55.
    Wang, W.-L., Wu, Y., Chen, M.-H.: An architecture-based software reliability model. In: Pacific Rim International Symposium on Dependable Computing. IEEE, Hong Kong (1999)Google Scholar
  56. 56.
    Leangsuksun, C., et al.: Availability prediction and modeling of high availability OSCAR cluster. In: IEEE International Conference on Cluster Computing. Hong Kong (2003)Google Scholar
  57. 57.
    Laprie J.C. and Kanoun K. (1992). X-ware reliability and availability modeling. IEEE Trans. Softw. Eng. 18(2): 130–147 CrossRefGoogle Scholar
  58. 58.
    Ledoux J. (1999). Availability modeling of modular software. IEEE Trans. Reliability 48(2): 159–168 CrossRefMathSciNetGoogle Scholar
  59. 59.
    Bachmann, F., Bass, L., Klein, M.: Moving from quality attribute requirements to architectural decisions. In: Second International Software Requirements to Architectures, STRAW’03. Portland, USA (2003)Google Scholar
  60. 60.
    Fugua N.B. (2003). The applicability of Markov analysis methods to reliability, maintainability and safety. Reliability Anal. Center START Sheet 10(2): 8 Google Scholar
  61. 61.
    Dobrica, L., Niemelä, E.: Using UML notation extensions to model variability in product line architectures. In: ICSE, International Workshop on Software Variability Management. Portland (2003)Google Scholar
  62. 62.
    Everett, W.: Software component reliability analysis. In: IEEE Symposium on Application—Specific Systems and Software Engineering and Technology. Richardson (1999)Google Scholar
  63. 63.
    Voas J.M. (1998). Certifying off-the-shelf software components. Computer 31(6): 53–59 CrossRefGoogle Scholar
  64. 64.
    McGregor, J.D., Stafford, J.A., Cho, I.-H.: Measuring component reliability. In: Proceedings of the 6th ICSE Workshop on Component-Based Software Engineering. IEEE, Portland (2003)Google Scholar
  65. 65.
    Roshandel, R., Medvidovic, N.: Toward architecture-based reliability estimation. In: Proceedings of the Twin Workshops on Architecting Dependable Systems, International Conference on Software Engineering (ICSE 2004). Edinburgh (2004)Google Scholar
  66. 66.
    ISO/IEC, Software Engineering - Product Quality. Part 1: Quality Model (2001)Google Scholar
  67. 67.
    Ozekici S. and Soyer R. (2003). Reliability of software with an operational profile. Eur. J. Oper. Res. 149(Issue 2): 459–474 CrossRefMathSciNetGoogle Scholar
  68. 68.
    Elbaum, S., Narla, S.: A methodology for operational profile refinement. In: Proceedings of the Annual Reliability and Maintainability Symposium (2001)Google Scholar
  69. 69.
    Gittens, M., Lutfiyya, H., Bauer, M.: An extended operational profile model. In: 15th International Symposium on Software Reliability Engineering, ISSRE 2004 (2004)Google Scholar

Copyright information

© Springer-Verlag 2007

Authors and Affiliations

  1. 1.Software Architectures and PlatformsVTT Technical Research Centre of FinlandOuluFinland

Personalised recommendations