Demonstration of a Response Time Based Remaining Useful Life (RUL) Prediction for Software Systems

Ray Islam,Peter Sandborn
2023-07-23
Abstract:Prognostic and Health Management (PHM) has been widely applied to hardware systems in the electronics and non-electronics domains but has not been explored for software. While software does not decay over time, it can degrade over release cycles. Software health management is confined to diagnostic assessments that identify problems, whereas prognostic assessment potentially indicates when in the future a problem will become detrimental. Relevant research areas such as software defect prediction, software reliability prediction, predictive maintenance of software, software degradation, and software performance prediction, exist, but all of these represent diagnostic models built upon historical data, none of which can predict an RUL for software. This paper addresses the application of PHM concepts to software systems for fault predictions and RUL estimation. Specifically, this paper addresses how PHM can be used to make decisions for software systems such as version update and upgrade, module changes, system reengineering, rejuvenation, maintenance scheduling, budgeting, and total abandonment. This paper presents a method to prognostically and continuously predict the RUL of a software system based on usage parameters (e.g., the numbers and categories of releases) and performance parameters (e.g., response time). The model developed has been validated by comparing actual data, with the results that were generated by predictive models. Statistical validation (regression validation, and k-fold cross validation) has also been carried out. A case study, based on publicly available data for the Bugzilla application is presented. This case study demonstrates that PHM concepts can be applied to software systems and RUL can be calculated to make system management decisions.
Software Engineering,Machine Learning,Applications
What problem does this paper attempt to address?
The main problem that this paper attempts to solve is to apply the concept of Prognostic and Health Management (PHM) to software systems in order to predict the Remaining Useful Life (RUL) of software systems. Specifically, the paper focuses on how to continuously predict the RUL of software systems by using parameters (such as the number and category of version releases, performance parameters such as response time, etc.). This includes: 1. **Applying PHM to software systems**: Although PHM has been widely used in hardware systems, its application in software systems is still blank. The paper explores how to use the PHM concept for software fault prediction and RUL estimation to support decisions such as software version updates, module changes, system re - construction, recovery, maintenance planning, budgeting, and system abandonment. 2. **Software degradation management**: Although software does not age naturally over time like hardware, software gradually degrades during the version update cycle. The paper proposes a method to predict the RUL of software systems by using usage parameters (such as the number and category of version releases) and performance parameters (such as response time). 3. **Application of fusion methods**: The paper proposes a fusion method that combines data - driven and model - based methods to predict the RUL of software systems. This method uses data from embedded sensors/health monitoring tools, reports from end - users, and feedback from the development team for dynamic prediction. 4. **Case study verification**: The paper verifies the effectiveness of the proposed method through a case study of the Bugzilla application based on public data. Statistical verification (regression verification and k - fold cross - verification) has also been carried out to ensure the accuracy of the model. In summary, this paper aims to fill the gap in the application of PHM in software systems and provide a new method to predict the RUL of software systems, thereby helping to better manage and maintain software systems.