Towards indicators of instabilities in software product lines: An empirical evaluation of metrics

A Software Product Line (SPL) is a set of software systems (products) that share common functionalities, so-called features. The success of a SPL design is largely dependent on its stability; otherwise, a single implementation change will cause ripple effects in several products. Therefore, there is a growing concern in identifying means to either indicate or predict design instabilities in the SPL source code. However, existing studies up to now rely on conventional metrics as indicators of SPL instability. These conventional metrics, typically used in standalone systems, are not able to capture the properties of SPL features in the source code, which in turn might neglect frequent causes of SPL instabilities. On the other hand, there is a small set of emerging software metrics that take into account specific properties of SPL features. The problem is that there is a lack of empirical validation of the effectiveness of metrics in indicating quality attributes in the context of SPLs. This paper presents an empirical investigation through two set of metrics regarding their power of indicating instabilities in evolving SPLs. A set of conventional metrics was confronted with a set of metrics we instantiated to capture important properties of SPLs. The software evolution history of two SPLs were analysed in our studies. These SPLs are implemented using two different programming techniques and all together they encompass 30 different versions under analysis. Our analysis confirmed that conventional metrics are not good indicators of instabilities in the context of evolving SPLs. The set of employed feature dependency metrics presented a high correlation with instabilities proving its value as indicator of SPL instabilities.

[1]  Frank Schweitzer,et al.  The Link between Dependency and Cochange: Empirical Evidence , 2012, IEEE Transactions on Software Engineering.

[2]  Cláudio Sant'Anna,et al.  Evolving software product lines with aspects , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[3]  Fabiano Cutigi Ferrari,et al.  An empirical evaluation of coupling metrics on aspect-oriented programs , 2010, WETSoM '10.

[4]  Claus Brabrand,et al.  On the impact of feature dependencies when maintaining preprocessor-based software product lines , 2011, GPCE '11.

[5]  Nenad Medvidovic,et al.  Using service utilization metrics to assess the structure of product line architectures , 2003, Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717).

[6]  Huilin Ye,et al.  Approach to modelling feature variability and dependencies in software product lines , 2005, IEE Proc. Softw..

[7]  Vander Alves,et al.  Extracting and Evolving Mobile Games Product Lines , 2005, SPLC.

[8]  Mariano Ceccato,et al.  Measuring the Effects of Software Aspectization , 2004 .

[9]  Carlos José Pereira de Lucena,et al.  A Product Derivation Tool Based on Model-Driven Techniques and Annotations , 2008, J. Univers. Comput. Sci..

[10]  Robert Feldt,et al.  Software Product Line , 2008 .

[11]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[12]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[13]  Cecília M. F. Rubira,et al.  Components meet aspects: Assessing design stability of a software product line , 2011, Inf. Softw. Technol..

[14]  Kyo Chul Kang,et al.  Feature Relation and Dependency Management: An Aspect-Oriented Approach , 2008, 2008 12th International Software Product Line Conference.

[15]  David M. Weiss,et al.  Software Product Line Engineering , 2005, SEKE.

[16]  Francisco Dantas,et al.  On-demand integration of product lines: a study of reuse and stability , 2011, PLEASE '11.

[17]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[18]  Juan Hernández,et al.  Analysis of crosscutting features in software product lines , 2008, EA '08.

[19]  Informatika Software Product Line , 2010 .

[20]  Sven Apel,et al.  Feature cohesion in software product lines: an exploratory study , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[21]  Francisco Dantas,et al.  On the role of composition code properties on evolving programs , 2012, Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement.

[22]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..