№1, 2024

PREDICTING THE RELIABILITY OF SOFTWARE SYSTEMS USING RECURRENT NEURAL NETWORKS: LSTM MODEL

Tamilla A. Bayramova

The dynamics and complexity of processes occurring in complex software systems, as well as the emergence of new types of malicious threats, further complicate the issues of ensuring software reliability. Despite the development of hundreds of models for increasing the reliability of software systems, this issue still remains relevant. Research shows that the use of neural networks in predicting the reliability of software systems allows one to obtain more accurate results. In this paper, to predict reliability, we used a neural network model with long short-term memory, which is a type of recurrent neural networks. Seven real-world software crash datasets were used to test the model's performance. The experiments were carried out in Python. Both parametric and nonparametric models were taken for comparison. The experimental results showed the practical significance of using the proposed model in predicting the reliability of software systems (pp.52-61).

Keywords: Software Reliability Growth Models, Recurrent neural network, LSTM, Deep learning, Parametric model, Non-parametric model
DOI : http://doi.org/10.25045/jpit.v15.i1.07
References
  • Aljahdali, S. H., & Buragga, K. A. (2008). Employing four ANNs paradigms for software reliability prediction: an analytical study. ICGST-AIML Journal, ISSN, 1687-4846.
  • Cai, K. Y., Cai, L., Wang, W. D., Yu, Z. Y., & Zhang, D. (2001). On the neural network approach in software reliability modeling. Journal of Systems and Software, 58(1), 47-62.
    https://doi.org/10.1016/S0164-1212(01)00027-9
  • DATA Directory in the CD-ROM.
    https://www.cse.cuhk.edu.hk/~lyu/book/reliability/data.html
  • Govindasamy, P., & Dillibabu, R. (2020). Development of software reliability models using a hybrid approach and validation of the proposed models using big data. The Journal of Supercomputing, 76(4), 2252-2265.
    https://doi.org/10.1007/s11227-018-2457-8
  • Granitto, P. M., Verdes, P. F., & Ceccatto, H. A. (2005). Neural network ensembles: evaluation of aggregation algorithms. Artificial Intelligence, 163(2), 139-162.
    https://doi.org/10.1016/j.artint.2004.09.006
  • Hewamalage, H., Bergmeir, C., & Bandara, K. (2021). Recurrent neural networks for time series forecasting: Current status and future directions. International Journal of Forecasting, 37(1), 388-427.
    https://doi.org/10.1016/j.ijforecast.2020.06.008
  • Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural computation, 9(8), 1735-1780.
    https://doi.org/10.1162/neco.1997.9.8.1735
  • Hu, Q. P., Dai, Y. S., Xie, M., & Ng, S. H. (2006). Early software reliability prediction with extended ANN model. In 30th Annual International Computer Software and Applications Conference (COMPSAC'06), Chicago, USA, September 2006 (pp. 234-239).
    https://doi.org/10.1109/COMPSAC.2006.130
  • Karunanithi, N., Malaiya, Y. K., & Whitley, L. D. (1991). Prediction of software reliability using neural networks. In ISSRE (pp. 124-130).
  • Khoshgoftaar, T. M., & Lanning, D. L. (1995). A neural network approach for early detection of program modules having high risk in the maintenance phase. Journal of Systems and Software, 29(1), 85-91. 
    https://doi.org/10.1016/0164-1212(94)00130-F
  • Kianimoqadam, A., & Lapp, J. (2023). Calculating the view factor of randomly dispersed multi-sized particles using hybrid GRU-LSTM recurrent neural networks regression. International Journal of Heat and Mass Transfer, 202, 123756.
    https://doi.org/10.1016/j.ijheatmasstransfer.2022.123756 
  • Lai, R., & Garg, M. (2012). A detailed study of NHPP software reliability models. J. Softw., 7(6), 1296-1306.
    doi:10.4304/jsw.7.6.1296-1306
  • Lakshmanan, I., & Ramasamy, S. (2017). Improving software reliability estimation using multi-layer neural-network combination model. International Journal of Innovative Computing and Applications, 8(2), 113-121.
  • https://doi.org/10.1504/IJICA.2017.084897
  • LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444.
    https://doi.org/10.1038/nature14539
  • Lu, K., & Ma, Z. (2018, October). Parameter estimation of software reliability growth models by a modified whale optimization algorithm. In 2018 17th International Symposium on Distributed Computing and Applications for Business Engineering and Science (DCABES), Wuxi, China, October 2018 (pp. 268-271).
    https://doi.org/10.1109/DCABES.2018.00076
  • Mičko, R., Chren, S., & Rossi, B. (2022). Applicability of Software Reliability Growth Models to Open Source Software. In 2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), Gran Canaria, Spain, August - September 2022 (pp. 255-262). 
    https://doi.org/10.1109/SEAA56994.2022.00047
  • Musa, J. D. (2004). Software reliability engineering: more reliable software. Faster Development and Testing, 632.
  • Munir, H. S., Ren, S., Mustafa, M., Siddique, C. N., & Qayyum, S. (2021). Attention based GRU-LSTM for software defect prediction. Plos one, 16(3), e0247444.
    https://doi.org/10.1371/journal.pone.0247444
  • Ramasamy, S., & Preetha, C. D. (2016). Dynamically weighted combination model for describing inconsistent failure data of software projects. Indian Journal of Science and Technology, 9(35), 1-4.
  • http://doi.org/10.17485/ijst/2016/v9i35/90211
  • Reimers, N., & Gurevych, I. (2017). Optimal hyperparameters for deep LSTM-networks for sequence labeling tasks. arXiv preprintarXiv:1707.06799. https://doi.org/10.48550/arXiv.1707.06799
  • Roy, P., Mahapatra, G. S., Rani, P., Pandey, S. K., & Dey, K. N. (2014). Robust feedforward and recurrent neural network based dynamic weighted combination models for software reliability prediction. Applied Soft Computing, 22, 629-637.
    https://doi.org/10.1016/j.asoc.2014.04.012
  • Sahu, K., Alzahrani, F. A., Srivastava, R. K., & Kumar, R. (2021). Evaluating the Impact of Prediction Techniques: Software Reliability Perspective. Computers, Materials & Continua, 67(2).
    https://doi.org/10.32604/cmc.2021.014868
  • Salman, A. G., Heryadi, Y., Abdurahman, E., & Suparta, W. (2018). Single layer & multi-layer long short-term memory (LSTM) model with intermediate variables for weather forecasting. Procedia Computer Science, 135, 89-98.
    https://doi.org/10.1016/j.procs.2018.08.153
  • Schmidhuber, J. (2015). Deep learning in neural networks: An overview. Neural networks, 61, 85-117.
    https://doi.org/10.1016/j.neunet.2014.09.003
  • Sezer, O. B., Gudelek, M. U., & Ozbayoglu, A. M. (2020). Financial time series forecasting with deep learning: A systematic literature review: 2005–2019. Applied soft computing, 90, 106181.
    https://doi.org/10.1016/j.asoc.2020.106181
  • Singh, Y., & Kumar, P. (2010). Application of feed-forward neural networks for software reliability prediction. ACM SIGSOFT Software Engineering Notes, 35(5), 1-6.
    https://doi.org/10.1145/1838687.1838709
  • Stisen, A., Blunck, H., Bhattacharya, S., Prentow, T. S., Kjærgaard, M. B., Dey, A., Sonne, T., & Jensen, M. M. (2015). Smart devices are different: assessing and mitigating mobile sensing heterogeneities for activity recognition. 2015 ACM Conference on Embedded Networked Sensor Systems (SenSys), Seoul, South Korea, November 2015 (pp. 127-140).
    https://doi.org/10.1145/2809695.2809718
  • Su, Y. S., & Huang, C. Y. (2007). Neural-network-based approaches for software reliability estimation using dynamic weighted combinational models. Journal of Systems and Software, 80(4), 606-615.
    https://doi.org/10.1109/ACCESS.2020.2972826
  • Tian, L., & Noore, A. (2005). Evolutionary neural network modeling for software cumulative failure time prediction. Reliability Engineering & system safety, 87(1), 45-51.
  • https://doi.org/10.1016/j.ress.2004.03.028
  • Wang, J., & Zhang, C. (2018). Software reliability prediction using a deep learning model based on the RNN encoder–decoder. Reliability Engineering & System Safety, 170, 73-82.
    https://doi.org/10.1016/j.ress.2017.10.019
  • Wang, J., & Zhang, C. (2018). Software reliability prediction using a deep learning model based on the RNN encoder–decoder. Reliability Engineering & System Safety, 170, 73-82.
    https://doi.org/10.1016/j.ress.2017.10.019
  • Yangzhen, F., Hong, Z., Chenchen, Z., & Chao, F. (2017, July). A software reliability prediction model: Using improved long short term memory network. In 2017 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C), Prague, Czech Republic, July 2017 (pp. 614-615). https://doi.org/10.1109/QRS-C.2017.115
  • Zhen, L., Liu, Y., Dongsheng, W., & Wei, Z. (2020). Parameter estimation of software reliability model and prediction based on hybrid wolf pack algorithm and particle swarm optimization. IEEE Access, 8, 29354-29369.
  • https://doi.org/10.1109/ACCESS.2020.2972826
  • Zheng, J. (2009). Predicting software reliability with neural network ensembles. Expert systems with applications, 36(2), 2116-2122. https://doi.org/10.1016/j.eswa.2007.12.029