A new change propagation metric to assess software evolvability

The development of software-intensive systems faces many challenges; one of the most important from an economic perspective is to reduce their maintenance costs. This thesis proposes a modified change propagation metric as a tool to assist the analysis of evolvability and maintainability of a softwa...

Full description

Bibliographic Details
Main Author: Gonzalez, Marco A.
Language:English
Published: University of British Columbia 2013
Online Access:http://hdl.handle.net/2429/44607
id ndltd-LACETR-oai-collectionscanada.gc.ca-BVAU.-44607
record_format oai_dc
spelling ndltd-LACETR-oai-collectionscanada.gc.ca-BVAU.-446072013-07-03T03:14:55ZA new change propagation metric to assess software evolvabilityGonzalez, Marco A.The development of software-intensive systems faces many challenges; one of the most important from an economic perspective is to reduce their maintenance costs. This thesis proposes a modified change propagation metric as a tool to assist the analysis of evolvability and maintainability of a software system and to ultimately support the reduction of its maintenance cost. The technical complexity of software systems has a great impact on their ability to make increased functionality and adaptability to the environment possible. One approach to understand and master the complexity of large software systems, varying from thousands to millions of lines of source code, is through software architecture. This study examines a sample of software systems from the dependencies of their static structural view. The dependencies and their importance are expressed as a design structure matrix (DSM) that is used as an indicator to reflect the strength of dependence and connection among the different modules. In this thesis, we propose a “modified change propagation” metric as a set of incremental improvements over the original Propagation Cost (PC) metric proposed by MacCormack (2008). Our improved metric uses dependencies weighted with strength to convey more information about the incidence of strongly connected relationships and it discounts weak dependencies. Moreover the original propagation metrics considered that the system should be acyclical; but we found that in practice a very few real systems are exempt of cycles. Furthermore, if cyclic dependencies are heavy rather than weak then these cycles should be treated differently. Finally, our metric is normalized to minimize the effect of both change in the total depth of the dependency graph, and increases in the size of the code. Our modified change propagation metric can help software designers assess the maintainability of a software system at design time and over a proposed release sequence by comparing change propagation measures for different designs of software architecture. For instance, after refactoring. We validated our metric both on a system developed at UBC, and on several large open-source repositories for which we were able to obtain long release histories.University of British Columbia2013-06-26T14:08:33Z2013-06-27T09:16:07Z20132013-06-262013-11Electronic Thesis or Dissertationhttp://hdl.handle.net/2429/44607eng
collection NDLTD
language English
sources NDLTD
description The development of software-intensive systems faces many challenges; one of the most important from an economic perspective is to reduce their maintenance costs. This thesis proposes a modified change propagation metric as a tool to assist the analysis of evolvability and maintainability of a software system and to ultimately support the reduction of its maintenance cost. The technical complexity of software systems has a great impact on their ability to make increased functionality and adaptability to the environment possible. One approach to understand and master the complexity of large software systems, varying from thousands to millions of lines of source code, is through software architecture. This study examines a sample of software systems from the dependencies of their static structural view. The dependencies and their importance are expressed as a design structure matrix (DSM) that is used as an indicator to reflect the strength of dependence and connection among the different modules. In this thesis, we propose a “modified change propagation” metric as a set of incremental improvements over the original Propagation Cost (PC) metric proposed by MacCormack (2008). Our improved metric uses dependencies weighted with strength to convey more information about the incidence of strongly connected relationships and it discounts weak dependencies. Moreover the original propagation metrics considered that the system should be acyclical; but we found that in practice a very few real systems are exempt of cycles. Furthermore, if cyclic dependencies are heavy rather than weak then these cycles should be treated differently. Finally, our metric is normalized to minimize the effect of both change in the total depth of the dependency graph, and increases in the size of the code. Our modified change propagation metric can help software designers assess the maintainability of a software system at design time and over a proposed release sequence by comparing change propagation measures for different designs of software architecture. For instance, after refactoring. We validated our metric both on a system developed at UBC, and on several large open-source repositories for which we were able to obtain long release histories.
author Gonzalez, Marco A.
spellingShingle Gonzalez, Marco A.
A new change propagation metric to assess software evolvability
author_facet Gonzalez, Marco A.
author_sort Gonzalez, Marco A.
title A new change propagation metric to assess software evolvability
title_short A new change propagation metric to assess software evolvability
title_full A new change propagation metric to assess software evolvability
title_fullStr A new change propagation metric to assess software evolvability
title_full_unstemmed A new change propagation metric to assess software evolvability
title_sort new change propagation metric to assess software evolvability
publisher University of British Columbia
publishDate 2013
url http://hdl.handle.net/2429/44607
work_keys_str_mv AT gonzalezmarcoa anewchangepropagationmetrictoassesssoftwareevolvability
AT gonzalezmarcoa newchangepropagationmetrictoassesssoftwareevolvability
_version_ 1716590084738777088