Controlling Fault-Prone Components for Software Evolution
暂无分享,去创建一个
The amount of software around us has increased incredibly. A lot of the new software is integrated into different devices, for example, home electronics, cars and cell-phones. As existing and new systems evolve through different maintenance releases, they naturally inherit functionality and characteristics from previous releases and therefore become what we refer to as legacy systems. Often new functionality and features are added, which increase the complexity. Defects may also be injected when adding new functions or as a result of fixing other defects. This may impact on the maintenance work by requiring large amounts of resources due to the increasing complexity, often related to some limited subset of the software components. This implies that there is a need for methods and models to identify problematic components and to track the evolution of systems and their components. The information from these models can be used to direct development effort when a new system release is developed, direct testing resources to the parts of the system that are over-represented in the failure statistics and to determine which components need to be reengineered in the long run. This thesis presents the results from building models for managing continuous product development, using experience from earlier projects. The focus is on identification and evolution of problematic components in large software systems. Structural changes causing problems are also investigated. Different statistical methods are used to build models to extract the necessary information. An important issue is to create models that are easy to use at the same time as they provide useful results. The results show how different types of models can be used to support the control of fault-prone components, both with a short-term (prediction) and a long-term (evolution) view. The models are successful in identifying problematic components and revealing underlying problems, for example, architectural deterioration by visualising problematic relationships between components. Knowledge from using models and replicating studies has been gained, which identified the need for a thorough presentation of a model’s prerequisites and results. For example, it is necessary to present data set characteristics, statistical methods and variants used, how different parameters were chosen and deviations from the study approach. To support practitioners and researchers to choose the most appropriate model and to compare different prediction models, the thesis presents a classification framework and an evaluation framework for this type of models. (Less)