Fast Static Analyses of Software Product Lines – An Example With More Than 42,000 Metrics

10/12/2021
by   Sascha El-Sharkawy, et al.
0

Context: Software metrics, as one form of static analyses, is a commonly used approach in software engineering in order to understand the state of a software system, in particular to identify potential areas prone to defects. Family-based techniques extract variability information from code artifacts in Software Product Lines (SPLs) to perform static analysis for all available variants. Many different types of metrics with numerous variants have been defined in literature. When counting all metrics including such variants, easily thousands of metrics can be defined. Computing all of them for large product lines can be an extremely expensive process in terms of performance and resource consumption. Objective: We address these performance and resource challenges while supporting customizable metric suites, which allow running both, single system and variability-aware code metrics. Method: In this paper, we introduce a partial parsing approach used for the efficient measurement of more than 42,000 code metric variations. The approach covers variability information and restricts parsing to the relevant parts of the Abstract Syntax Tree (AST). Conclusions: This partial parsing approach is designed to cover all relevant information to compute a broad variety of variability-aware code metrics on code artifacts containing annotation-based variability, e.g., realized with C-preprocessor statements. It allows for the flexible combination of single system and variability-aware metrics, which is not supported by existing tools. This is achieved by a novel representation of partially parsed product line code artifacts, which is tailored to the computation of the metrics. Our approach consumes considerably less resources, especially when computing many metric variants in parallel.

READ FULL TEXT
research
10/19/2021

MetricHaven – More Than 23,000 Metrics for Measuring Quality Attributes of Software Product Lines

Variability-aware metrics are designed to measure qualitative aspects of...
research
10/01/2020

Automatic and Efficient Variability-Aware Lifting of Functional Programs

A software analysis is a computer program that takes some representation...
research
10/12/2021

KernelHaven – An Experimentation Workbench for Analyzing Software Product Lines

Systematic exploration of hypotheses is a major part of any empirical re...
research
12/09/2019

Variability-aware Datalog

Variability-aware computing is the efficient application of programs to ...
research
09/08/2023

How can feature usage be tracked across product variants? Implicit Feedback in Software Product Lines

Implicit feedback is collecting information about software usage to unde...
research
02/11/2021

DirectDebug: Automated Testing and Debugging of Feature Models

Variability models (e.g., feature models) are a common way for the repre...
research
03/18/2021

The impact of using biased performance metrics on software defect prediction research

Context: Software engineering researchers have undertaken many experimen...

Please sign up or login with your details

Forgot password? Click here to reset