Advanced

Controlling Fault-Prone Components for Software Evolution

Ohlsson, Magnus C LU (2001)
Abstract
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 ... (More)
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)
Please use this url to cite or link to this publication:
author
supervisor
opponent
  • Dr. Briand, Lionel, Dept. of System and Computer Engineering, Carleton University, Canada
organization
publishing date
type
Thesis
publication status
published
subject
keywords
quality improvement, process improvement, software engineering, Data- och systemvetenskap, software evolution, Systems engineering, computer technology
pages
218 pages
publisher
Ingrid Nilsson, Dept. of Communication Systems,
defense location
E:1406
defense date
2001-06-01 10:15
external identifiers
  • other:ISRN: LUTEDX/TETS-1051-SE+218P
ISSN
1101-3931
language
English
LU publication?
yes
id
237361a7-3639-45e2-a114-225e1e249e29 (old id 41701)
date added to LUP
2007-08-01 09:41:54
date last changed
2018-05-29 09:33:02
@phdthesis{237361a7-3639-45e2-a114-225e1e249e29,
  abstract     = {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.<br/><br>
<br/><br>
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.<br/><br>
<br/><br>
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.<br/><br>
<br/><br>
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.},
  author       = {Ohlsson, Magnus C},
  issn         = {1101-3931},
  keyword      = {quality improvement,process improvement,software engineering,Data- och systemvetenskap,software evolution,Systems engineering,computer technology},
  language     = {eng},
  pages        = {218},
  publisher    = {Ingrid Nilsson, Dept. of Communication Systems,},
  school       = {Lund University},
  title        = {Controlling Fault-Prone Components for Software Evolution},
  year         = {2001},
}