Empirical Validation of Complexity and Extensibility Metrics for
Software Product Line Architectures
Edson A. Oliveira Junior, Jos´ e C. Maldonado
Computing Systems Department
University of S˜ ao Paulo (USP)
S˜ ao Carlos-SP, Brazil
Email: {edsonjr, jcmaldon}@icmc.usp.br
Itana M. S. Gimenes
Informatics Department
State University of Maring´ a (UEM)
Maring´ a-PR, Brazil
Email: itana@din.uem.br
Abstract—The software product line (PL) architecture (PLA)
is one of the most important PL core assets as it is the
abstraction of the products that can be generated, and it
represents similarities and variabilities of a PL. Its quality
attributes analysis and evaluation can serve as a basis for
analyzing the managerial and economical values of a PL.
We proposed metrics for PLA complexity and extensibility
quality attributes. This paper is concerned with the empirical
validation of such metrics. As a result of the experimental
work we can conclude that the metrics are relevant indicators
of complexity and extensibility of PLA by presenting their
correlation analysis.
Keywords-complexity; empirical validation; extensibility; me-
trics; product line architecture; software product line.
I. I NTRODUCTION
In the last decades effective methodologies to evaluate
software architectures, such as ATAM (Architecture Trade-
off Analysis Method) and SAAM (Software Architecture
Analysis Method), were proposed and consolidated by both
industrial and academic segments [6]. Such a consolidation
is corroborated by the analysis of the number of published
research papers and technical reports providing important
examples of how to carry out a software architecture evalu-
ation based on quality attributes. Thus, these methodologies
are essential for evaluating single-product architectures.
However, in recent years, the software product line (PL)
[8] engineering has emerged as a promising reusability
approach, which brings out some important benefits, such as
increases the reusability of its core assets, while decreases
the time to market. One of the most important assets of a
PL is its architecture (PLA). The PLA plays a central role
at the development of products from a PL.
The evaluation of a PLA must be supported by a set of
metrics [7]. Such metrics must both evidence the quality
of PL and serve as a basis to analyze the managerial and
economical value of a PL [2]. The PLA must explicit the
common (similarities) and variable (variabilities) aspects of
a PL. The variability impact analysis on the PL develop-
ment can determine the aggregated value of a PL for an
organization. Metrics for a PLA are applied to a set of assets
from which variants can be generated rather than one specific
product. Thus, it is necessary to define specific PLA metrics
to provide effective indicators with regard to the overall PL
development and evolution.
We proposed two metrics for PLA quality attributes [10]:
one for complexity (CompPLA) and one for extensibility
(ExtensPLA). These metrics were defined to provide an
indicator of how complex and extensible is a PLA by
measuring derived PL products. Complexity is measured
based on McCabe’s Cyclomatic Complexity [9] while exten-
sibility is measured based on the relation between abstract
classes and methods over concrete classes and methods.
Class extensibility is calculated taking into account the
number of abstract methods divided by the total number of
methods (concrete plus abstract) of a class. Thus, component
extensibility is the sum of the extensibility of all classes that
form a component. The metrics are presented as follows:
CompPLA: is the sum of the complexity of each compo-
nent of a PLA. This metric is represented as:
CompPLA(PLA) =
nCpt
i=1
CompV arComponent(Cpt
i
),
where:
• CompVarComponent is the complexity of a PLA compo-
nent. It is the sum of the complexity of each variability in
class
• Cpt
i
is the i
th
component of a PLA
• nCpt is the number of variable components of a PLA
⎫
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎬
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎭
(1)
ExtensPLA: is the sum of the extensibility of each
component of a PLA. This metric is represented as:
ExtensPLA(PLA) =
nCpt
i=1
ExtensV arComponent(Cpt
i
),
where:
• ExtensVarComponent is the extensibility of a PLA com-
ponent. It is the sum of the extensibility of each variability
in class
• Cpt
i
is the i
th
component of a PLA
• nCpt is the number of variable components of a PLA
⎫
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎬
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎭
(2)
Variabilities are related to PLA class and/or components.
Each variability is related to variation points and/or variants
2010 Fourth Brazilian Symposium on Software Components, Architectures and Reuse
978-0-7695-4259-1/10 $26.00 © 2010 IEEE
DOI 10.1109/SBCARS.2010.13
31