Skip to main content
Log in

Fuzzy optimization approach to component selection of fault-tolerant software system

  • Regular research paper
  • Published:
Memetic Computing Aims and scope Submit manuscript

Abstract

In developing software systems, a manager’s goal is to design software using limited resources and meet the user requirements. One of the important user requirements concerns the reliability of the software. The decision to choose the right software modules (components) becomes extremely difficult because of the number of parameters to be considered while making the decision. If suitable components are not available, then the decision process is further complicated with build versus buy decisions. In this paper, we have formulated a fuzzy multi-objective approach to optimal decision “build-or-buy” for component selection for a fault-tolerant modular software system under the consensus recovery block scheme. A joint optimization model is formulated where the two objectives are maximization of system reliability and minimization of the system cost with a constraint on delivery time. An example of developing a retail system for small-and-medium-size enterprises is used to illustrate the proposed methodology.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

Abbreviations

\(R\) :

System quality measure

\(C\) :

Overall system cost

\(f_l\) :

Frequency of use, of function \(l\)

\(s_l\) :

Set of modules required for function \(l\)

\(R_i\) :

Reliability of module \(i\)

\(L\) :

Number of functions, the software is required to perform

\(n\) :

Number of modules in the software

\(m_i\) :

Number of alternatives available for module \(i\)

\(V_{ij}\) :

Number of versions available for alternative \(j\) of module \(i\)

\(t_1\) :

Probability that next alternative is not invoked upon failure of the current alternative

\(t_2\) :

Probability that the correct result is judged wrong

\(t_3\) :

Probability that an incorrect result is accepted as correct

\(Y_{ij}\) :

Event that correct result of alternative \(j\) of module \(i\) is accepted

\(X_{ij}\) :

Event that output of alternative \(j\) of module \(i\)is rejected

\(r_{ij}\) :

Reliability of alternative \(j\) of module \(i\)

\(C_{ijk}\) :

Cost of version \(k\) of alternative \(j\) of module \(i\)

\(s_{ijk}\) :

Reliability of version \(k\) of alternative \(j\) of module \(i\)

\(d_{ijk}\) :

Delivery time of version \(k\) of alternative \(j\) of module \(i\)

\(c_{ij}\) :

Unitary development cost for alternative \(j\) of module \(i\)

\(t_{ij}\) :

Estimated development time for alternative \(j\) of module \(i\)

\(\tau _{ij}\) :

Average time required to perform a test case for alternative \(j\) of module \(i\)

\(\pi _{ij}\) :

Probability that a single execution of software fails on a test case chosen from a certain input distribution

\(x_{ijk}\) :

\(\left\{ {\begin{array}{l@{\quad }l} 1,&{} \text{ if } \text{ the }\, k\mathrm{th}\, \mathrm{version}\, \text{ of }\, j\mathrm{th}\, \text{ COTS } \text{ alternative }\\ &{} \text{ of } \text{ the }\, i\mathrm{th}\,\text{ module } \text{ is } \text{ chosen } \\ 0,&{} \text{ otherwise } \\ \end{array}} \right. \)

\(y_{ij}\) :

\(\left\{ {\begin{array}{l@{\quad }l} 1, &{}\text{ if } \text{ the }\,j\mathrm{th}\, \text{ alternative } \text{ of }\,i\mathrm{th}\,\text{ module } \text{ is }\\ &{} \mathrm{in}\text{- }\mathrm{house} \ \mathrm{developed} \\ 0,&{} \text{ otherwise } \\ \end{array}} \right. \)

\(z_{ij}\) :

\(\left\{ {\begin{array}{l@{\quad }l} 1, &{} \text{ if } \text{ alternative }\,j\,\text{ is } \text{ present } \text{ in } \text{ module }\,i \\ 0, &{} \text{ otherwise } \\ \end{array}} \right. \)

References

  1. Bellman RE, Zadeh LA (1970) Decision-making in a fuzzy environment. Manag Sci 17(B):141–164

    Google Scholar 

  2. Berman O, Ashrafi N (1993) Optimization models for reliability of modular software systems. IEEE Trans Softw Eng 19(11):1119–1123

    Article  Google Scholar 

  3. Berman O, Kumar UD (1999) Optimization models for recovery block schemes. Eur J Oper Res 115:368–379

    Article  MATH  Google Scholar 

  4. Bertolino A, Strigini L (1996) On the use of testability measures for dependability assessment. IEEE Trans Softw Eng 22(2):97–108

    Google Scholar 

  5. Cortellessa V, Marinelli F, Potena P (2006) Automated selection of software components based on cost/reliability trade-off. Lecture notes in Computer Science 4344, pp 66–81

  6. Cortellessa V, Marinelli F, Potena P (2008) An optimization framework for “build-or-buy” decisions in software architecture. J Comput Oper Res 35:3090–3106

    Google Scholar 

  7. Gupta P, Verma S, Mehlawat MK (2011) A membership function approach for cost-reliability trade-off of COTS selection in fuzzy environment. Int J Reliab Qual Saf Eng 18(6):573–595

    Article  Google Scholar 

  8. Jha PC, Bali S, Kapur PK (2011) Fuzzy approach for selecting optimal COTS based software products under consensus recovery block scheme. BVICAM’s Int J Inform Technol (BIJIT) 3(1) (ISSN 0973-5658)

  9. Jha PC, Kapur PK, Bali S, Kumar UD (2010) Optimal component selection of COTS based software system under consensus recovery block scheme incorporating execution time. Int J Reliab Qual Saf Eng 17(3):209–222

    Article  Google Scholar 

  10. Jung HW, Choi B (1999) Optimization models for quality and cost of modular software system. Eur J Oper Res 112:613–619

    Article  MATH  Google Scholar 

  11. Kumar UD (1998) Reliability analysis of fault tolerant recovery block. OPSEARCH 35(2):281–294

    MATH  MathSciNet  Google Scholar 

  12. Kwong CK, Tang Mu JF (2010) Optimization of software components selection for component-based software system development. Comput Ind Eng 58:618–624

    Article  Google Scholar 

  13. Mohamed RH (1997) The relationship between goal programming and fuzzy programming. Fuzzy Sets Syst 89:215–222

    Article  Google Scholar 

  14. Neubauer T, Stummer C (2007) Interactive decision support for multiobjective COTS selection. In: IEEE Proceedings \(40^{\rm th}\) annual Hawaii international conference on system sciences (HICSS’ 07)

  15. Tanaka H, Okuda T, Asai K (1974) On fuzzy mathematical programming. J Cybernet 3:37–46

    Article  MathSciNet  Google Scholar 

  16. Thiriez H (2000) OR software LINGO. Eur J Opl Res 124:655–656

    Google Scholar 

  17. Zimmermann HJ (1976) Description and optimization of fuzzy systems. Int J Gen Syst 2:209–215

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to P. C. Jha.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Jha, P.C., Bali, S., Kumar, U.D. et al. Fuzzy optimization approach to component selection of fault-tolerant software system. Memetic Comp. 6, 49–59 (2014). https://doi.org/10.1007/s12293-013-0116-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12293-013-0116-4

Keywords

Navigation