TY - JOUR
T1 - Multidimensional Characterization of Evolutionary Clusters: An Experience Report
AU - Vanya, A.
AU - Klusener, A.S.
AU - van Rooyen, N.
AU - van Vliet, H.
PY - 2013
Y1 - 2013
N2 - Context: Software architects try to decompose software systems such that their constituent parts can evolve independently from one another. During the actual evolution, identifying groups of software entities from different parts which frequently changed together, is one way to help architects evaluate how independently the different parts can evolve. However, there may be many such groups from which the architects have to select the ones denoting issues in the decomposition worth addressing. Objective: In this paper, we use a number of properties of those groups of entities, such as whether they involve more than one site, how many entities are involved, how often these entities are changed, and so on, to identify a subset of groups indicating issues the architect does want to address. Method: We describe (1) a number of properties of groups of co-changing entities, (2) scenarios expressing issues to be addressed, in terms of values for the different properties, and (3) the mapping of such scenarios to queries on a set of groups of software entities that changed together. Executing that query results in a subset pointing to issues worth addressing according to that scenario. Results: We apply our method to a large embedded software system having a development history of more than a decade. For several scenarios worked out, the number of issues selected for further investigation by the architect is less than half the number of issues selected using only one or two properties. Conclusion: Our experience suggests that using multiple properties of groups of co-changing entities is a useful way to accurately identify the set of issues an architect has to address when improving the decomposition of a system. © 2013 Elsevier B.V. All rights reserved.
AB - Context: Software architects try to decompose software systems such that their constituent parts can evolve independently from one another. During the actual evolution, identifying groups of software entities from different parts which frequently changed together, is one way to help architects evaluate how independently the different parts can evolve. However, there may be many such groups from which the architects have to select the ones denoting issues in the decomposition worth addressing. Objective: In this paper, we use a number of properties of those groups of entities, such as whether they involve more than one site, how many entities are involved, how often these entities are changed, and so on, to identify a subset of groups indicating issues the architect does want to address. Method: We describe (1) a number of properties of groups of co-changing entities, (2) scenarios expressing issues to be addressed, in terms of values for the different properties, and (3) the mapping of such scenarios to queries on a set of groups of software entities that changed together. Executing that query results in a subset pointing to issues worth addressing according to that scenario. Results: We apply our method to a large embedded software system having a development history of more than a decade. For several scenarios worked out, the number of issues selected for further investigation by the architect is less than half the number of issues selected using only one or two properties. Conclusion: Our experience suggests that using multiple properties of groups of co-changing entities is a useful way to accurately identify the set of issues an architect has to address when improving the decomposition of a system. © 2013 Elsevier B.V. All rights reserved.
U2 - 10.1016/j.infsof.2013.02.016
DO - 10.1016/j.infsof.2013.02.016
M3 - Article
SN - 0950-5849
VL - 55
SP - 1625
EP - 1639
JO - Information and Software Technology
JF - Information and Software Technology
IS - 9
ER -