Degree Type

Dissertation

Date of Award

2013

Degree Name

Doctor of Philosophy

Department

Computer Science

First Advisor

Robyn R. Lutz

Abstract

The systematic reuse provided by software product lines provides

opportunities to achieve increased quality and reliability as a product line

matures. This has led to a widely accepted assumption that as a product line evolves, its reliability improves. However, evidence in terms of empirical investigation of the relationship among change, reuse and reliability in evolving software product lines is lacking.

To address the problem this work investigates: 1) whether reliability as measured by post-deployment failures improves as the products and components in a software product line change over time, and 2)

whether the stabilizing effect of shared artifacts enables accurate prediction of failure-prone files in the product line.

The first part of this work performs defect assessment and investigates defect trends in Eclipse, an open-source software product line. It analyzes the evolution of the product line over time in terms of the total number of defects, the percentage of severe defects and the relationship between defects and changes.

The second part of this work explores prediction of failure-prone files in the Eclipse product line to determine whether prediction improves as the

product line evolves over time. In addition, this part investigates the effect

of defect and data collection periods on the prediction performance.

The main contributions of this work include findings that the majority of files with severe defects are reused files rather than new files, but that

common components experience less change than variation components. The work also found that there is a consistent set of metrics which serve as prominent predictors across multiple products and reuse categories over time. Classification of post-release, failure-prone files using change data for the Eclipse product line gives better recall and false positive rates as compared to classification using static code metrics. The work also found that on-going change in product lines hinders the ability to predict failure-prone files, and that predicting post-release defects using pre-release change data for the Eclipse case study is difficult. For example, using more data from the past to predict future failure-prone files does not necessarily give better results than

using data only from the recent past. The empirical investigation of product line change and defect data leads to an improved understanding of the interplay among change, reuse and reliability as a product line evolves.

Copyright Owner

Sandeep Krishnan

Language

en

File Format

application/pdf

File Size

110 pages

Share

COinS