A systematic literature review on the applications of Bayesian networks to predict software quality
Bayesian networks (BN) have been used for decision making in software engineering for many years. In other fields such as bioinformatics, BNs are rigorously evaluated in terms of the techniques that are used to build the network structure and to learn the parameters. We extend our prior mapping study to investigate the extent to which contextual and methodological details regarding BN construction are reported in the studies. We conduct a systematic literature review on the applications of BNs to predict software quality. We focus on more detailed questions regarding (1) dataset characteristics, (2) techniques used for parameter learning, (3) techniques used for structure learning, (4) use of tools, and (5) model validation techniques. Results on ten primary studies show that BNs are mostly built based on expert knowledge, i.e. structure and prior distributions are defined by experts, whereas authors benefit from BN tools and quantitative data to validate their models. In most of the papers, authors do not clearly explain their justification for choosing a specific technique, and they do not compare their proposed BNs with other machine learning approaches. There is also a lack of consensus on the performance measures to validate the proposed BNs. Compared to other domains, the use of BNs is still very limited and current publications do not report enough details to replicate the studies. We propose a framework that provides a set of guidelines for reporting the essential contextual and methodological details of BNs. We believe such a framework would be useful to replicate and extend the work on BNs.
KeywordsSoftware quality Software reliability prediction Systematic literature review Bayesian network Applications of AI
- Abran, A., Bourque, P., Dupuis, R., & Moore, J. W. (2001). Guide to the software engineering body of knowledge-SWEBOK. Piscataway: IEEE Press.Google Scholar
- Clifton, D. A., Gibbons, J., Davies, J., & Tarassenko, L. Machine learning and software engineering in health informatics. In Realizing Artificial Intelligence Synergies in Software Engineering (RAISE), 2012 first international workshop on, 2012 (pp. 37–41), IEEE.Google Scholar
- Fenton, N., Marsh, W., Neil, M., Cates, P., Forey, S., & Tailor, M. (2004). Making resource decisions for software projects. In Proceedings of the 26th international conference onsoftware engineering, 2004. ICSE 2004 (pp. 397–406), IEEE.Google Scholar
- Fenton, N., Neil, M., & Marquez, D. (2008). Using Bayesian networks to predict software defects and reliability. Proceedings of the Institution of Mechanical Engineers, Part O: Journal of Risk and Reliability, 222(4), 701–712.Google Scholar
- Fineman, M., Fenton, N., & Radlinski, L. (2009).Modelling project trade-off using Bayesian networks. In International conference on computational intelligence and software engineering, 2009. CiSE 2009 (pp. 1–4), IEEE.Google Scholar
- Harman, M. (2012). The role of artificial intelligence in software engineering. In 2012 First international workshop on realizing artificial intelligence synergies in software engineering (RAISE) (pp. 1–6), IEEE.Google Scholar
- Kitchenham, B. A., & Charters, S. (2007). Guidelines for performing systematic literature reviews in software engineering. Technical report, EBSE Technical Report EBSE-2007-01.Google Scholar
- Mendes, E. Predicting web development effort using a bayesian network. In Proceedings of EASE, 2007 (Vol. 7, pp. 83–93).Google Scholar
- Misirli, A. T., & Bener, A. (2014b). Mapping study on Bayesian networks for software quality prediction. In RAISE 2014 Proceedings of the 3rd international workshop on realizing artificial intelligence synergies in software engineering (pp. 7–11).Google Scholar
- Musa, J. D., & Okumoto, K. (1983). Software reliability models: Concepts, classification, comparisons, and practice. In Electronic Systems Effectiveness and Life Cycle Costing (pp. 395–423), Springer.Google Scholar
- Radlinski, L. (2010). A survey of bayesian net models for software development effort prediction. International Journal of Software Engineering and Computing, 2(2), 95–109.Google Scholar
- Schutt, R. (2012). 10 Important data science ideas. http://columbiadatascience.com/2012/10/15/10-important-data-science-ideas/.