Abstract
The increasing dependence of our modern society on software systems has driven the development of software products become even more competitive and time-consuming. Single release software product no longer meets the increasing market requirements. Thereby it is important to release multiple version software products in order to add new features in the next release and fix remaining faults from previous release. In this paper, we develop a multi-release software reliability model with consideration of the remaining software faults from previous release and the new introduced-faults (from newly added features). Additionally, dependent fault detection process is taken into account in this research. In particular, the detection of a new fault for developing the next release depends on the detection of the remaining faults from previous release and the detection of the new introduced-faults. The proposed model is validated on the open source software project datasets with multiple releases.
Similar content being viewed by others
Notes
Abbreviations
- LSE:
-
Least square estimation
- MLE:
-
Maximum likelihood estimate
- MSE:
-
Mean square error
- NHPP:
-
Non-homogeneous Poisson process
- OSS:
-
Open source software
- PP:
-
Predictive power
- PRR:
-
Predictive-ratio risk
- SGRM:
-
Software reliability growth model
- \(a\left( t \right) \) :
-
Total fault content function from previous release
- \(b\left( t \right) \) :
-
Total fault content function for newly added features
- \(d\left( t \right) \) :
-
Fault detection rate function for the next release
- \(m_0 \) :
-
Expected number of software failures at \(t=0\)
- \(m\left( t \right) \) :
-
Expected number of software failures by time t
- \(N\left( t \right) \) :
-
Total number of software failures in the time interval \(\left[ {0,t} \right] \)
- \(\lambda \left( t \right) \) :
-
Failure intensity function \(\lambda \left( t \right) =d[ {m( t )} ]{/}dt\).
References
Ahmadi, M., Mahdavi, I., & Garmabaki, A. H. S. (2016). Multi up-gradation reliability model for open source software. In U. Kumar, A. Ahmadi, A. K. Verma, & P. Varde (Eds.), Current trends in reliability, availability, maintainability and safety (pp. 691–702). Berlin: Springer.
Al-Emran, A., & Pfahl, D. (2007). Operational planning, re-planning and risk analysis for software releases. In: International conference on product focused software process improvement (pp. 315–329). Berlin: Springer.
Carlshamre, P., Sandahl, K., Lindvall, M., Regnell, B., & och Dag, J. N. (2001). An industrial survey of requirements interdependencies in software product release planning. In Proceedings of the fifth IEEE international symposium on requirements engineering (pp. 84–91).
Etgar, R., Gelbard, R., & Cohen, Y. (2017). Optimizing version release dates of research and development long-term processes. European Journal of Operational Research, 259(2), 642–653.
Febrero, F., Calero, C., & Moraga, M. Á. (2016). Software reliability modeling based on ISO/IEC SQuaRE. Information and Software Technology, 70, 18–29.
Garmabaki, A. H., Aggarwal, A. G., & Kapur, P. K. (2011). Multi up-gradation software reliability growth model with faults of different severity. In 2011 IEEE international conference on industrial engineering and engineering management (IEEM) (pp. 1539–1543).
Goel, A. L., & Okumoto, K. (1979). Time-dependent error-detection rate model for software reliability and other performance measures. IEEE Transactions on Reliability, 28(3), 206–211.
Gorschek, T., & Davis, A. M. (2008). Requirements engineering: in search of the dependent variables. Information and Software Technology, 50(1), 67–75.
Greer, D., & Ruhe, G. (2004). Software release planning: An evolutionary and iterative approach. Information and Software Technology, 46(4), 243–253.
Ho, J., & Ruhe, G. (2013). Releasing sooner or later: An optimization approach and its case study evaluation. In Proceedings of the 1st international workshop on release engineering (pp. 21–24). IEEE Press.
Hu, Q. P., Peng, R., Xie, M., Ng, S. H., & Levitin, G. (2011). Software reliability modelling and optimization for multi-release software development processes. In 2011 IEEE international conference on industrial engineering and engineering management (pp. 1534–1538).
Huang, C. Y., & Kuo, S. Y. (2002). Analysis of incorporating logistic testing-effort function into software reliability modeling. IEEE Transactions on Reliability, 51(3), 261–270.
Jeske, D. R., & Zhang, X. (2005). Some successful approaches to software reliability modeling in industry. Journal of Systems and Software, 74(1), 85–99.
Jørgensen, N. (2001). Putting it all in the trunk: Incremental software development in the FreeBSD open source project. Information Systems Journal, 11(4), 321–336.
Kachitvichyanukul, V. (2012). Comparison of three evolutionary algorithms: GA, PSO, and DE. Industrial Engineering and Management Systems, 11(3), 215–223.
Kapur, P. K., Pham, H., Aggarwal, A. G., & Kaur, G. (2012). Two dimensional multi-release software reliability modeling and optimal release planning. IEEE Transactions on Reliability, 61(3), 758–768.
Kapur, P. K., Pham, H., Anand, S., & Yadav, K. (2011). A unified approach for developing software reliability growth models in the presence of imperfect debugging and error generation. IEEE Transactions on Reliability, 60(1), 331–340.
Leszak, M. (2005). Software defect analysis of a multi-release telecommunications system. In International conference on product focused software process improvement (pp. 98-114). Berlin: Springer.
Li, L., Harman, M., Letier, E., & Zhang, Y. (2014). Robust next release problem: Handling uncertainty during optimization. In Proceedings of the ACM 2014 annual Conference on Genetic and Evolutionary Computation (pp. 1247–1254).
Li, X., Li, Y. F., Xie, M., & Ng, S. H. (2011). Reliability analysis and optimal version-updating for open source software. Information and Software Technology, 53(9), 929–936.
Li, Z., Tan, L., Wang, X., Lu, S., Zhou, Y., & Zhai, C. (2006). Have things changed now?: An empirical study of bug characteristics in modern open source software. In Proceedings of the ACM 1st workshop on architectural and system support for improving software dependability (pp. 25–33).
Mahimkar, A. (2016). Detecting and diagnosing performance impact of smartphone software upgrades. In 2016 IEEE 12th international conference on network and service management (CNSM) (pp. 188–194).
Maurice, S., Ruhe, G., & Saliu, O. (2006). Decision support for value-based software release planning. In S. Biffl, A. Aurum, B. Boehm, H. Erdogmus, & P. Grünbacher (Eds.), Value-based software engineering (pp. 247–261). Berlin: Springer.
Mehlawat, M. K. (2013). A multi-choice goal programming approach for COTS products selection of modular software systems. International Journal of Reliability, Quality and Safety Engineering, 20(6), 1350026-1-18.
Missbauer, H. (2002). Aggregate order release planning for time-varying demand. International Journal of Production Research, 40(3), 699–718.
Musa, J. D. (1975). A theory of software reliability and its application. IEEE Transactions on Software Engineering, 3, 312–327.
Naciri, S., Idrissi, M. A. J., & Kerzazi, N. (2015). A strategic release planning model from TPM point of view. In 2015 10th international conference on IEEE intelligent systems: Theories and applications (SITA) (pp. 1–9).
Pachauri, B., Dhar, J., & Kumar, A. (2015). Incorporating inflection S-shaped fault reduction factor to enhance software reliability growth. Applied Mathematical Modelling, 39(5), 1463–1469.
Pham, H. (2014). A new software reliability model with Vtub-shaped fault-detection rate and the uncertainty of operating environments. Optimization - A Journal of Mathematical Programming and Operations Research, 63(10), 1481–1490.
Raymond, E. S. (2001). The cathedral and the bazaar: Musings on Linux and open source by an accidental revolutionary. Sebastopol: O’Reilly Media Inc.
Ruhe, G., & Momoh, J. (2005). Strategic release planning and evaluation of operational feasibility. In HICSS’05 proceedings of the 38th IEEE annual Hawaii international conference on system sciences (p. 313b).
Ruhe, G., & Saliu, M. O. (2005). The art and science of software release planning. IEEE Software, 22(6), 47–53.
Saliu, O., & Ruhe, G. (2005). Software release planning for evolving systems. Innovations in Systems and Software Engineering, 1(2), 189–204.
Sukhwani, H., Alonso, J., Trivedi, K. S., & Mcginnis, I. (2016). Software reliability analysis of NASA space flight software: A practical experience. In 2016 IEEE international conference on software quality, reliability and security (pp. 386–397).
Svahnberg, M., Gorschek, T., Feldt, R., Torkar, R., Saleem, S. B., & Shafique, M. U. (2010). A systematic review on strategic release planning models. Information and Software Technology, 52(3), 237–248.
Szöke, Á. (2011). Conceptual scheduling model and optimized release scheduling for agile environments. Information and Software Technology, 53(6), 574–591.
Tsay, J., Wright, H. K., & Perry, D. E. (2011). Experiences mining open source release histories. In Proceedings of the ACM 2011 international conference on software and systems process (pp. 208–212).
Yamada, S., Hishitani, J., & Osaki, S. (1993). Software-reliability growth with a Weibull test-effort: A model and application. IEEE Transactions on Reliability, 42(1), 100–106.
Yamada, S., Ohtera, H., & Narihisa, H. (1986). Software reliability growth models with testing-effort. IEEE Transactions on Reliability, 35(1), 19–23.
Yang, J., Liu, Y., Xie, M., & Zhao, M. (2016). Modeling and analysis of reliability of multi-release open source software incorporating both fault detection and correction processes. Journal of Systems and Software, 115, 102–110.
Zhu, M., & Pham, H. (2016). A software reliability model with time-dependent fault detection and fault removal. Vietnam Journal of Computer Science, 3(2), 71–79.
Zhu, M., Zhang, X., & Pham, H. (2015). A comparison analysis of environmental factors affecting software reliability. Journal of Systems and Software, 109, 150–160.
Author information
Authors and Affiliations
Corresponding author
Appendix
Appendix
Proof of Lemma 1
We need to show that: (a) the function \(g\left( t \right) \) in Eq. (7) is convex, and (b) the function \(f\left( x \right) \) in Eq. (8) is concave.
-
(a)
Since d is non-negative and \({g}''(t)=d^{2}e^{dt+C_{0}}>0\), thus function g(t) is convex.
-
(b)
\(f\left( x \right) =x^{\frac{1}{ab}}\left( {x-a} \right) ^{\frac{1}{a\left( {a-b} \right) }}\left( {x-b} \right) ^{-\frac{1}{b\left( {a-b} \right) }}\)
$$\begin{aligned} f'\left( x \right)= & {} \frac{1}{{ab}}{x^{\frac{1}{{ab}} - 1}}~{\left( {x - a} \right) ^{\frac{1}{{a\left( {a - b} \right) }}}}~{\left( {x - b} \right) ^{ - \frac{1}{{b\left( {a - b} \right) }}}} + \frac{1}{{a\left( {a - b} \right) }}{x^{\frac{1}{{ab}}}}~{\left( {x - a} \right) ^{\frac{1}{{a\left( {a - b} \right) }} - 1}}~{\left( {x - b} \right) ^{ - \frac{1}{{b\left( {a - b} \right) }}}} \\&-\frac{1}{{b\left( {a - b} \right) }}{x^{\frac{1}{{ab}}}}~{\left( {x - a} \right) ^{\frac{1}{{a\left( {a - b} \right) }}}}~{\left( {x - b} \right) ^{ - \frac{1}{{b\left( {a - b} \right) }} - 1}}\\= & {} {x^{\frac{1}{{ab}}}}~{\left( {x - a} \right) ^{\frac{1}{{a\left( {a - b} \right) }}}}~{\left( {x - b} \right) ^{ - \frac{1}{{b\left( {a - b} \right) }}}}\left( {\frac{1}{{abx}} + \frac{1}{{a\left( {a - b} \right) \left( {x - a} \right) }} - \frac{1}{{b\left( {a - b} \right) \left( {x - b} \right) }}} \right) \\= & {} {x^{\frac{1}{{ab}}}}~{\left( {x - a} \right) ^{\frac{1}{{a\left( {a - b} \right) }}}}~{\left( {x - b} \right) ^{ - \frac{1}{{b\left( {a - b} \right) }}}}\frac{{\left( {ab + a + b} \right) - \left( {a + b} \right) x}}{{abx\left( {x - a} \right) \left( {x - b} \right) }}\\= & {} f\left( x \right) \frac{{\left( {ab + a + b} \right) - \left( {a + b} \right) x}}{{abx\left( {x - a} \right) \left( {x - b} \right) }}\\= & {} {\left[ {f\left( x \right) } \right] ^{ - 1}}\frac{{\left( {ab + a + b} \right) - \left( {a + b} \right) x}}{{ab}}\\ f''\left( x \right)= & {} - {\left[ {f\left( x \right) } \right] ^{ - 2}}f'\left( x \right) \frac{{\left( {ab + a + b} \right) - \left( {a + b} \right) x}}{{ab}} - {\left[ {f\left( x \right) } \right] ^{ - 1}}\frac{{a + b}}{{ab}}\\= & {} - \frac{{f'\left( x \right) \left\{ {{{\left[ {f\left( x \right) } \right] }^{ - 1}}\frac{{\left( {ab + a + b} \right) - \left( {a + b} \right) x}}{{ab}}} \right\} }}{{f\left( x \right) }} - {\left[ {f\left( x \right) } \right] ^{ - 1}}\frac{{a + b}}{{ab}}\\= & {} - \frac{{{{\left[ {{f^{'\left( x \right) }}} \right] }^2}}}{{f\left( x \right) }} - \frac{{\frac{{a + b}}{{ab}}}}{{f\left( x \right) }} < 0 \end{aligned}$$Note that \(f\left( x \right) =g\left( t \right) >0\) in Eq. (3), \(a>0\) and \(b>0\), therefore, function f(x) in Eq. (8) is concave. Since the function \(g\left( t \right) \) is convex, and \(f\left( x \right) \) is concave, the results in Lemma 1 follow accordingly. \(\square \)
Rights and permissions
About this article
Cite this article
Zhu, M., Pham, H. A multi-release software reliability modeling for open source software incorporating dependent fault detection process. Ann Oper Res 269, 773–790 (2018). https://doi.org/10.1007/s10479-017-2556-6
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10479-017-2556-6