Shedding Light on the Techniques for Building Bayesian Networks in Software Engineering

  • Thiago Rique IFPB
  • Emanuel Dantas IFPB
  • Danyllo Albuquerque UFCG
  • Mirko Perkusich UFCG
  • Kyller Gorgônio UFCG
  • Hyggo Almeida UFCG
  • Angelo Perkusich UFCG

Resumo


Context Bayesian networks (BNs) have been used to tackle several software engineering (SE) problems, such as risk management and effort estimation. They enable reasoning under uncertainty and have the advantage of incorporating expert knowledge to build more accurate models when sufficient historical data are not available. Software practitioners often encounter a lack of substantial evidence concerning the usability, limitations, risks, and benefits of BNs, as is the case with many other topics in the SE literature. Therefore, there is a need to organize and systematize the existing knowledge in this area. Objective This paper aims to provide researchers and practitioners with an overview of the techniques for building BNs in SE. Method We conducted a tertiary study following the guidelines available in the SE literature. Results We examined six secondary studies. Our findings revealed that expert knowledge emerges as the predominant technique for structure learning and, in conjunction with learning from data using automated tools, is widely employed for parameter learning in BNs. Conclusion Despite the attention given to data-driven approaches in SE, it is worth acknowledging the significant value that expert knowledge continues to hold in constructing more accurate and robust models. This observation underscores potential opportunities for developing expert-driven solutions to enhance model building and foster the adoption of BNs in the software industry.

Palavras-chave: Bayesian networks, software engineering, tertiary study

Referências

Daniela S Cruzes and Tore Dyba. 2011. Recommended steps for thematic synthesis in software engineering. In 2011 international symposium on empirical software engineering and measurement. IEEE, 275–284.

Abraham LR de Sousa, Cleidson RB de Souza, and Rodrigo Q Reis. 2022. A 20-year mapping of Bayesian belief networks in software project management. IET Software 16, 1 (2022), 14–28.

Eliezer Dutra, Bruna Diirr, and Gleison Santos. 2021. Human factors and their influence on software development teams-a tertiary study. In Proceedings of the XXXV Brazilian Symposium on Software Engineering. 442–451.

Norman Fenton, Martin Neil, William Marsh, Peter Hearty, Łukasz Radliński, and Paul Krause. 2008. On the effectiveness of early life cycle defect prediction with Bayesian Nets. Empirical Software Engineering 13 (2008), 499–537.

Rashina Hoda, Norsaremah Salleh, John Grundy, and Hui Mien Tee. 2017. Systematic literature reviews in agile software development: A tertiary study. Information and software technology 85 (2017), 60–70.

Helvio Jeronimo Junior and Guilherme Horta Travassos. 2022. Consolidating a common perspective on Technical Debt and its Management through a Tertiary Study. Information and Software Technology 149 (2022), 106964.

Barbara Kitchenham, Stuart Charters, et al. 2007. Guidelines for performing systematic literature reviews in software engineering.

Barbara Kitchenham, Rialette Pretorius, David Budgen, O Pearl Brereton, Mark Turner, Mahmood Niazi, and Stephen Linkman. 2010. Systematic literature reviews in software engineering–a tertiary study. Information and software technology 52, 8 (2010), 792–805.

Barbara A Kitchenham, Tore Dyba, and Magne Jorgensen. 2004. Evidence-based software engineering. In Proceedings. 26th International Conference on Software Engineering. IEEE, 273–281.

Ghazwa Malak, Houari Sahraoui, Linda Badri, and Mourad Badri. 2010. Modeling web quality using a probabilistic approach: An empirical validation. ACM Transactions on the Web (TWEB) 4, 3 (2010), 1–31.

Ayse Tosun Misirli and Ayse Basar Bener. 2014. Bayesian networks for evidence-based decision-making in software engineering. IEEE Transactions on Software Engineering 40, 6 (2014), 533–554.

Ayse Tosun Misirli and Ayşe Başar Bener. 2014. A mapping study on bayesian networks for software quality prediction. In Proceedings of the 3rd International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering. 7–11.

Sirsendu Mohanta, Gopika Vinod, AK Ghosh, and Rajib Mall. 2010. An approach for early prediction of software reliability. ACM SIGSOFT Software Engineering Notes 35, 6 (2010), 1–9.

Ganesh J Pai and Joanne Bechta Dugan. 2007. Empirical analysis of software fault content and fault proneness using Bayesian methods. IEEE Transactions on software Engineering 33, 10 (2007), 675–686.

Mirko Perkusich, Lenardo Chaves e Silva, Alexandre Costa, Felipe Ramos, Renata Saraiva, Arthur Freire, Ednaldo Dilorenzo, Emanuel Dantas, Danilo Santos, Kyller Gorgônio, et al. 2020. Intelligent software engineering in the context of agile software development: A systematic literature review. Information and Software Technology 119 (2020), 106241.

Lukasz Radlinski. 2010. A survey of bayesian net models for software development effort prediction. International Journal of Software Engineering and Computing 2, 2 (2010), 95–109.

Thiago Rique, Mirko Perkusich, Emanuel Dantas, Danyllo Albuquerque, Kyller Gorgônio, Hyggo Almeida, and Angelo Perkusich. 2023. On Adopting Software Analytics for Managerial Decision-Making: A Practitioner’s Perspective. IEEE Access (2023).

Daniel Rodriguez, Javier Dolado, and Javier Tuya. 2015. Bayesian concepts in software testing: An initial review. In Proceedings of the 6th International Workshop on Automating Test Case Design, Selection and Evaluation. 41–46.

Richard Berntsson Svensson, Robert Feldt, and Richard Torkar. 2019. The unfulfilled potential of data-driven decision making in agile software development. In Agile Processes in Software Engineering and Extreme Programming: 20th International Conference, XP 2019, Montréal, QC, Canada, May 21–25, 2019, Proceedings 20. Springer, 69–85.

Nuria Torrado, Michael P Wiper, and Rosa E Lillo. 2012. Software reliability modeling with software metrics data via Gaussian processes. IEEE Transactions on Software Engineering 39, 8 (2012), 1179–1186.

Ayse Tosun, Ayse Basar Bener, and Shirin Akbarinasaji. 2017. A systematic literature review on the applications of Bayesian networks to predict software quality. Software Quality Journal 25 (2017), 273–305.

Claes Wohlin, Marcos Kalinowski, Katia Romero Felizardo, and Emilia Mendes. 2022. Successful combination of database search and snowballing for identification of primary studies in systematic literature studies. Information and Software Technology 147 (2022), 106908.

Tao Xie. 2018. Intelligent software engineering: Synergy between AI and software engineering. In Proceedings of the 11th Innovations in Software Engineering Conference. 1–1.

Elijah Zolduoarrati, Sherlock A Licorish, and Nigel Stanger. 2023. Secondary studies on human aspects in software engineering: A tertiary study. Journal of Systems and Software 200 (2023), 111654.
Publicado
26/09/2023
RIQUE, Thiago; DANTAS, Emanuel; ALBUQUERQUE, Danyllo; PERKUSICH, Mirko; GORGÔNIO, Kyller; ALMEIDA, Hyggo; PERKUSICH, Angelo. Shedding Light on the Techniques for Building Bayesian Networks in Software Engineering. In: WORKSHOP BRASILEIRO DE ENGENHARIA DE SOFTWARE INTELIGENTE (ISE), 3. , 2023, Campo Grande/MS. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2023 . p. 1-6. DOI: https://doi.org/10.5753/ise.2023.235744.