Software organisations aim to develop and maintain high-quality software systems. Due to large amounts of behaviour data available, software organisations can conduct datadriven software maintenance. Indeed, software quality assurance and improvement programs have attracted many researchers' attention. Bayesian Networks (BNs) are proposed as a log analysis technique to discover poor performance indicators in a system and to explore usage patterns that usually require temporal analysis. For this, an action research study is designed and conducted to improve the software quality and the user experience of a web application using BNs as a technique to analyse software logs. To this aim, three models with BNs are created. As a result, multiple enhancement points have been identified within the application ranging from performance issues and errors to recurring user usage patterns. These enhancement points enable the creation of cards in the Scrum process of the web application, contributing to its data-driven software maintenance. Finally, the authors consider that BNs within quality-aware and data-driven software maintenance have great potential as a software log analysis technique and encourage the community to deepen its possible applications. For this, the applied methodology and a replication package are shared.
K E Y W O R D SBayes methods, software maintenance, software quality
| INTRODUCTIONSoftware quality management is a key activity for the maintenance of software systems. Indeed, the budget that companies invest in software quality management is estimated to increase in the next years [1]. Software systems can generate large amounts of data both from its internal state and from how it is being used. The maintenance of such systems can benefit from the analysis of the available data to get better insights of the system, thus, performing data-driven software maintenance. For instance, companies can analyse the user experiences of their software systems [2] in order to detect possible defects, such as performance downgrades or unexpected errors. To improve the user experience, it is key to understand the users' usage patterns when navigating a software system. Understanding these patterns enables companies the ability to enhance the design of their software systems [3] as well as provide personalised information depending on the user [4]. In this regard, software logs are a popular resource to monitor.Developers place Application Programming Interface calls to a logging framework (e.g., SLF4J [5] or Log4J [6]) to record events that describe the internal state of the system as it runs in production. The analysis of software logs has been proved useful in improving system comprehension [7,8], performance analysis [9, 10], finding usage patterns [11,12], and anomaly detection [13,14]. Nevertheless, this analysis is not free from its own challenges [15].Regarding software logs analysis, the introduction of Bayesian Networks (BNs) based on behaviour data to improve performance and users' experience has not been ...