Abstract:
The growing complexity of modern software systems makes the prediction of performance a challenging activity. Many drawbacks incurred by using the traditional performance prediction techniques such as simulation, guessing, and depending on previous experience. Moreover, performance assessment and prediction is time consuming activity and may produce inaccurate results especially in complex and large scale software applications.
To contribute to solving these problems, we adopt a model-based approach for resource utilization and performance risk prediction. The steps of the approach can be stated as follows: Firstly, we model the software system into annotated UML diagrams. Secondly, performance model is derived from the annotated UML diagrams in order to be evaluated. Thirdly, we run the performance model to generate and record performance indices such as response time, system throughput, and resources utilization into a large dataset by different values of workload. Finally, we can predict different performance indices for new workloads based on previously observed performance dataset. In addition to this, we can assess the software performance risk incurred on a given workload into three classes of performance risk level either low, or medium, or high.The approach could be used to enhance the work of human experts and improve efficiency of software performance prediction and risk assessment.
In this research, we validate the approach by applying three different case studies:a hospital system, an e-commerce system, and an online timetable system. The resultswere compared of three machine learning techniques for performance risk prediction andthe approach shows prediction accuracy between93.1 % and 97.6 %.