oriented systems. Another widely diffused metric is
the cyclomatic complexity, which represents an
internal complexity of the software modules, and is a
good indicator to assume for identifying the
presence of buggy modules.
However, many widely used software metrics
exist that do not have a complete definition. For
example, metric WMC (Weighted Methods for
Class), which is part of the CK metrics suite,
represents the weighted sum of the class methods,
but its definition does not suggest how methods are
weighted. Such ambiguities in the definitions of
metrics unintentionally have impacts on their
measurement.
Several research works have been proposed to
analyze the behavior of software metrics tools.
Specifically, an analysis of tools evauating OO
metrics has been performed in (Lincke, 2007),
(Lincke et al., 2008). The authors considered the
tools supporting the CK metrics and concluded that
the analysed metric tools outputs different values for
the same metrics. This is due to the difference in
interpretation of the metric. A similar study has been
proposed in (Codesido, 2011), where the authors
observe that the metrics supported by the tools
complement each other. In (Rutar et al., 2004) five
tools making static analysis of Java source code
have been compared, concluding that the usability of
the results is difficult.
In (Bakar and Boughton, 2012), a further
comparison is performed and the authors concluded
that the values of the metrics obtained by the tools
are different. The values obtained through manual
calculation and metric tools were also different. In
addition, in (Tomas, 2013), an analysis of open
source tools that analyse Java language and evaluate
the supported metrics is discussed, but the authors
do not provide an empirical validation.
The aim of the proposed comparative study is to
further investigate the behaviour of a set of selected
software metric tools and supported features, for
understanding if they interpret and evaluate in the
same manner. Differently from the previous papers,
the presented study focus on a wider set of software
metric tools.
3 EXPERIMENTAL SETUP
This section presents the planning of the performed
analysis. The main steps are:
Scope Definition. The aim is to analyze and
compare a set of software analysis tools evaluating
software quality metrics, with the goal of verifying if
they consider the same set of metrics and interpret
and evaluate them in the same manner. Then, a
selection of software analysis tools will be
performed, and they will be compared respect to the
metrics they consider and the measurement they
perform. The paper investigates the following
aspects: Do the software analysis tools consider the
same set of metrics? Do the software analysis tools
evaluate a metric in the same manner?
Selection of the Evaluation Tools. The goal of this
phase is to select the software tools to be analyzed
and compared.
Metrics Selection. The execution of this step
requires the analysis of both standards and quality
models and selected tools for selecting a
comprehensive set of metrics. The selected metrics
have to be analyzed in the context of the chosen
tools for understanding the adopted interpretation
and measurement modality.
Selection of the Software Systems to Be
Evaluated. The step aims at identifying a set of
software systems to be analyzed by using the
selected analysis tools. As many metrics that have
been selected for being evaluated consider the
source code for performing their measurement, open
source software systems were considered. Their
selection had to take into account the license, as
many tools are just partially open source and their
code cannot be completely analyzed. In addition, the
choice of the software system was limited to those
ones written in the Java programming language.
Metric Evaluation. This steps aims at measuring
the chosen metrics by using the considered software
analysis tools and selected software systems.
Analysis of the Results. This step compares the
values of the metrics assessed on the same software
system by using the different software analysis tools.
The aim is to verify to which extent the evaluation
tools interpret the metrics in a similar manner and
apply the same rules for evaluating the same metric.
The following subsections describe with a
greater details the process applied for performing the
selection of the considered software analysis tools
and the selected metrics.
3.1 Selection of the Evaluation Tools
The software analysis tools to be considered were
chosen among the most used open source systems
used for measuring software metrics. Open source