Automated measurement programs are an efficient way of collecting, processing, and visualizing measures in large software development companies. The number of measurements in these programs is usually large, which is caused by a diversity of the needs of the stakeholders. In this paper, we present the application of the self-healing concepts to assure the availability of measurements to the stakeholders without the need for effort-intensive and costly manual interventions of the operators. We study the measurement infrastructure at one of the development units of a large infrastructure provider. In this paper, we present how the Monitor, Analyze, Plane, and Execute with Knowledge model was instantiated in a simplistic manner to reduce the need for manual intervention in the operation of the measurement systems. Based on the experiences from the 2 cases studied in this paper, we show how an evolution toward self-healing measurement systems is done both with a dedicated failure taxonomy and with an effective straightforward handling of the most common errors in the execution.The mechanisms studied and presented in this paper show that self-healing provides significant improvements to the operation of the measurement program and reduces the need for daily oversight by an operator for the measurement systems.KEYWORDS measurement systems, metrics, self-healing
INTRODUCTIONModern software development organizations utilize software measurement to get insight into the performance of their products or efficiency of the organization, which over time leads companies to collect a large amount of measurement data. The growing amount of measurement data leads to a growing effort for maintaining the measurement program. The needs in such large organizations and their evolution entail the need to constantly monitor and repair measurement systems. One of the challenges is to balance the availability of the measurements and with the cost of operating the measurement program. The availability of the measurement systems is required to support the operations of the company and to improve its decisions; the up-to-date information should be available, and if it is not up-to-date, its latest status should be provided and the user (stakeholder) of the information notified.