MetricHaven: More than 23,000 Metrics for Measuring Quality Attributes of Software Product Lines

Variability-aware metrics are designed to measure qualitative aspects of software product lines. As we identified in a prior SLR [6], there exist already many metrics that address code or variability separately, while the combination of both has been less researched. MetricHaven fills this gap, as it extensively supports combining information from code files and variability models. Further, we also enable the combination of well established single system metrics with novel variability-aware metrics, going beyond existing variability-aware metrics. Our tool supports most prominent single system and variability-aware code metrics. We provide configuration support for already implemented metrics, resulting in 23,342 metric variations. Further, we present an abstract syntax tree developed for MetricHaven, that allows the realization of additional code metrics. Tool: https://github.com/KernelHaven/MetricHaven Video: https://youtu.be/vPEmD5Sr6gM

[1]  Dragan Gasevic,et al.  Assessing the maintainability of software product line feature models using structural metrics , 2011, Software Quality Journal.

[2]  Klaus Schmid,et al.  Analysing the Kconfig semantics and its analysis tools , 2015, GPCE.

[3]  Krzysztof Czarnecki,et al.  A study of non-Boolean constraints in variability models of an embedded operating system , 2011, SPLC '11.

[4]  Krzysztof Czarnecki,et al.  A Study of Variability Models and Languages in the Systems Software Domain , 2013, IEEE Transactions on Software Engineering.

[5]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[6]  H. E. Dunsmore,et al.  Software engineering metrics and models , 1986 .

[7]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[8]  Sven Apel,et al.  An analysis of the variability in forty preprocessor-based software product lines , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[9]  Sven Apel,et al.  A Study of Feature Scattering in the Linux Kernel , 2021, IEEE Transactions on Software Engineering.

[10]  Sascha El-Sharkawy,et al.  Metrics for analyzing variability and its implementation in software product lines: A systematic literature review , 2019, Inf. Softw. Technol..

[11]  Sven Apel,et al.  Preprocessor-based variability in open-source and industrial software systems: An empirical study , 2016, Empirical Software Engineering.

[12]  Capers Jones,et al.  Programming Productivity , 1986 .

[13]  Sven Apel,et al.  Do #ifdefs influence the occurrence of vulnerabilities? an empirical study of the linux kernel , 2016, SPLC.

[14]  James M. Bieman,et al.  Software Metrics: A Rigorous and Practical Approach, Third Edition , 2014 .

[15]  Sascha El-Sharkawy,et al.  An Empirical Study of Configuration Mismatches in Linux , 2017, SPLC.

[16]  Sascha El-Sharkawy,et al.  KernelHaven: an open infrastructure for product line analysis , 2018, SPLC.

[17]  Sascha El-Sharkawy,et al.  KernelHaven – An Experimentation Workbench for Analyzing Software Product Lines , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).