Co-evolution Analysis for Software Product Lines
Anissa Benlarabi, Amal Khtira and Bouchra El Asri
IMS Team, Laboratory SIME, ENSIAS, University Mohamed V, Rabat, Morocco
Keywords:
Software Product Lines, Co-evolution, Cladistics Classification.
Abstract:
The purpose of our approach is to study the co-evolution of the platform and the products of software product
lines. Because the platform must be able to derive all the family products, products are not allowed to evolve
independently from the plateform, thus the propagation of the products changes must be managed efficiently.
Instead of focusing on the change impact analysis we propose an approach to compare the evolution histories
of the products and the platform illustrated through evolutionary trees built using the biological technique
cladistics. This comparison yields important results concerning the change propagation. In this paper, we
introduce the use of cladistics for software product lines to build evolutionary trees for platform and products,
then we elaborate a mathematical analysis to compare these trees, afterwards we validate this work through a
case study (mobile media software product lines). We also provide the design of an automated tool.
1 INTRODUCTION
Today the software development tends to reuse the
knowledge more than building software from scratch.
The software product line (SPL) engineering is the
most widespread software reuse approach, it consists
in building a common platform for a set of products
dedicated for a business domain (Pohl et al., 2005).
The main advantage of this approach is the improve-
ment of the productivity by bringing to customers
products adapted to their needs at a reasonable price
and a short time (Clements et al., 2002). However, the
customers requirements evolve continuously, thus the
(SPL) must be adapted to cope with customers needs.
Among the most frequent SPL evolution prob-
lems, we mention the change propagation problem.
this issue occurs when the products evolve indepen-
dently from their common platform. In fact, if many
changes are applied to the products without propaga-
tion to the common platform, the SPL will not be able
to derive the family product. Hence, the SPL will fall
into the aging phenomenon. This issue has been tack-
led by many approaches, specifically the traceabil-
ity approaches (Anquetil et al., 2010) (Goknil et al.,
2011) that use the links between the SPL artifacts
to identify the impact of the change, the evolution
modeling approaches (Romero et al., 2013)(Ajila and
Kaba, 2008) that separates the evolution phase to el-
ementary operations for better understanding of the
impact. These approaches focus mainly on the change
understanding and the impact analysis and rely essen-
tially on human knowledge (Benlarabi et al., 2014b).
Instead of focusing on the change impact analysis
activity we proposed a new approach for co-evolution
anaysis in SPL, which consists in modelling the evo-
lution history of the platform and the derived products
in evolutionary trees and compare them to understand
how they impacted each other during their evolution
and also to discover the changes of products that were
not propagated to the platform with the aim of propa-
gating them to the platform. The comparison of evo-
lutionary trees is a prominent technique used in biol-
ogy to study the co-evolution of organisms (Ehrlich
and Raven, 1964), it allows for understanding the his-
tory of life. To model the evolution of the SPl we
use the cladistics classification (CC) (Brinkman et al.,
2004). We illustrated our approach through a case
study on the mobile media SPL (Tizzei et al., 2011).
In this paper the focus is on the summary of our
co-evolution modelling approach and the elaboration
of an automated tool. The remainder of this paper is
structured as follows. Section 2 introduces the soft-
ware evolution problem. Section 3 reminds the bio-
logical co-evolution principal, the cladistics method
and the analogy between SPL co-evolution and bio-
logical co-evolution. Section 4 presents our approach
to study the co-evolution in SPL. Section 5 illustrates
the approach through the mobile media case study.
Section 6 investigates the design of an automated tool
and the section 7 concludes the paper.
263
Benlarabi A., Khtira A. and El Asri B..
Co-evolution Analysis for Software Product Lines.
DOI: 10.5220/0005464702630269
In Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE-2015), pages 263-269
ISBN: 978-989-758-100-7
Copyright
c
2015 SCITEPRESS (Science and Technology Publications, Lda.)
2 SPLs EVOLUTIONS
The SPL engineering consists in building a platform
composed of common assets for a set of products.
By reusing these assets (Clements et al., 2002), cus-
tomers get products adapted to their needs at reason-
able price and short time. However, the users re-
quirements evolve over time, hence the SPL must be
adapted continuously to cope with the user require-
ments changes. In this section we present the SPL
evolution propagation problem. Thereby, we discuss
the previous research and we introduce our approach.
2.1 SPLs Evolution
Software evolution is an important activity because
it must accompany the evolution of business require-
ments. Compared to single software evolution, the
SPL evolution is more difficult since the change must
be propagated in the two levels: the level of the prod-
ucts and the level of the platform. Hence, if a change
concerns an application product, It could not be all the
time propagated to the platform. Thereby, if products
are changed frequently and independently, the domain
artifacts of the SPL risk to be out of date and instead
of having a set of product derived from the same do-
main artifacts, we will have a set of independent soft-
ware.
2.2 Change Propagation Problem
The great majority of works done to deal with the
change propagation problem such as the traceabil-
ity (Anquetil et al., 2010)(Goknil et al., 2011) or the
evolution modelling (Romero et al., 2013)(Ajila and
Kaba, 2008) approaches focus on the change impact
analysis activity because they consider that this prob-
lem is mainly caused by a shortage in this activity.
Regarding the traceability approaches, they rely on
links defined by the developers to determine the im-
pact of the change, while the evolution modelling
approaches separates the change to elementary op-
erations and identify the impact of each operation
based on a database of relationships between differ-
ent components. Both approaches presents shortcom-
ings. Firstly they rely on human knowledge and use
data that have to be manually provided which is error
prone and too expensive in practice. In addition, they
perform only pre-analysis of the change.
We aim to overcome the presented shortcomings
by studying the co-evolution of the products and the
platform. Through our approach (Benlarabi et al.,
2014b) we improve the change understanding by
summarizing the evolution history in an evolutionary
tree, we also define the impact of the change by com-
paring the evolutionary tree of the platform with the
evolutionary tree of each products, and we help cor-
recting the divergences between the platform and the
products.
3 CO-EVOLUTION FOR SPLs
In this section we introduce the co-evolution of organ-
isms with concrete examples from biology, then we
present the technique used to study the co-evolution
in biology and we discuss the analogy with SPL co-
evolution.
3.1 Co-evolution in Biology
According to Erlich (Ehrlich and Raven, 1964) the
co-evolution is the examination of patterns of inter-
action between two major groups of organisms with
a close and evident ecological relationship. The co-
evolution of host-parasite is a famous example of bi-
ological co-evolution. Because parasites cause dam-
ages to their hosts, hosts develop new capacities to re-
sist to their parasites however parasites also develop
capacities to overcome this resistance (Anderson and
M.May, 1982). Hence, a clearer understanding of
hostparasite co-evolution will point to new possibil-
ities for organic farming and reduce the application of
ecologically harmful chemicals.
3.2 Co-evolution Analysis Through
Cladistics
Co-evolution analysis consists practically on compar-
ing the evolution histories of populations depicted
by their phylogenetic trees (Fitch and Margoliash,
1967). the phylogenetic tree of a population is a
branching diagram showing the inferred evolution-
ary relationships among their members on the ba-
sis of the similarities and differences in their phys-
ical or genetic characteristics. There are two main
methods to create a phylogenetic tree (Fitch and Mar-
goliash, 1967): phenetic which is DNA sequence
based method, and cladistics which is character-based
method. We choose cladistics method (Brinkman
et al., 2004) because we rely on features. It consists
in the following steps:
Organisms selection: the organisms of the classi-
fication should be necessarily related by ancestor-
descendant relationships.
Characters extraction: the characters include physical
and behavioral characters that allow to make distinc-
tion between organisms.
ENASE2015-10thInternationalConferenceonEvaluationofNovelSoftwareApproachestoSoftwareEngineering
264
Figure 1: SPL and Product Cladograms.
Characters matrix construction: this matrix is filled by
numbers that represents the codification of the states
of the characters in organisms.
Cladograms drawing: the cladogram is a tree. All the
organisms are in the endpoints of the tree, each node
regroups shared characters between all the next organ-
isms.
3.3 Cladistics Classification for SPLs
The proposed approach aims at examining the co-
evolution of domain and application feature models
in SPLs, similarly to biology we investigate the co-
evolution of two major groups of organisms that are
closely related, the first group is composed by the
common platform and the second group is composed
by the derived products. All the populations members
are derived from the same ancestor which is the first
release of the common SPL platform. Thus, we study
the interaction between the two populations on the ba-
sis of the history of their evolution. The input of our
study is the feature models of the different releases of
the platform and the products, otherwise, for a prod-
uct we gather all the feature models of its releases then
we build the evolutionary tree of the product on the
basis of the models by applying the CC method. We
repeat this operation for each product and also for the
common platform in order to produce their evolution-
ary trees. Thereby we proceed to the comparison of
the resulted trees.
4 CO-EVOLUTION OF DOMAIN
AND APPLICATION
ENGINEERING
Similarly to biology the characters of the products are
the features and the variants of the SPL. In our pre-
vious work (Benlarabi et al., 2014b) we introduced a
new approach for establishing the evolutionary trees
of the platform and the derived products in based on
cladistics classification, we also proposed a mathe-
matical analysis to compare these trees and to find out
the products changes that were not propagated to the
platform. In this section, we give an overview of our
proposal.
4.1 Cladistics Application for SPLs
The first step of the CC method is the populations
identification. In our study we identified many pop-
ulations, each one is a set of software systems derived
from the same ancestor software. The first population
is composed by the releases of the common platform,
while the other populations are composed by the dif-
ferent releases of the products. The second step is
characters extraction, the characters are the features.
We extract the independent features of each popula-
tion. For example, Considering the following pop-
ulation of the product P1 composed by n versions
{P1.1,P1.2,P1.3,...,P1.n}, the set of its characters
is {F1.1,F1.2,F1.3,...,F1.m} where m is the num-
ber of the independent features of the population.
After the extraction of characters we construct the
characters states matrix of each population, each fea-
ture has two states, the primitive state 0 which denotes
the non-existence of the feature in the release, and the
derived state 1 which denotes its existence. in Fig.
1 we represent an example of the features states ma-
trix of the population of the product P1. The last step
is the evolutionary tree construction, in this step we
draw a branching tree of the population based on the
characters states matrix, in the Fig. 1 figures the re-
sulted cladogram of the matrix of our population ex-
ample
4.2 Perfect Co-evolution Hypothesis
By investigating the similarities and the divergences
between the cladogram of the platform and the clado-
gram of each product, we can deduce the changes
happened to the products that were not propagated
to the platform. The branches of a cladogram repre-
sent the set of features of the population. The imper-
fect evolution is caused by branches that exist in one
cladogram and are absent from the other. However,
we eliminate the imperfection caused by branches
that exist in the SPL cladogram and are absent from
the products cladogams because features of the SPL
could not be all used in the products. We express
mathematically the relationship between the clado-
gram of a product and the cladogram of the platform
on the basis of their features states matrices. In this
subsection we formalize our hypothesis, then in the
following subsection we proceed to the comparison
and we discuss the restoration of missed features to
the platform.
Co-evolutionAnalysisforSoftwareProductLines
265
We consider two populations P1 and P2. P1 con-
sists of k releases of the SPL and P2 consists of k re-
leases of a derived product. By extracting features of
the two populations we will obtain the sets A1 com-
posed of n features and the set A2 composed of m
features respectively for P1 and P2:
A1 = {F1i while i N, i n}
A2 = {F2i while i N, i m}
We stated the following hypothesis in our previous
work as follow:
(H0) Features Independence. In the set of features
A1 and A2, the features are independent.
i, j N,i n, j n, F1i 6= F1 j
i, j N,i m, j m, F2i 6= F2 j
(H1) Domain Features Sufficiency. Each feature
of the set A2 has a corresponding feature in the set A1.
j N, j m,i N,i n/F2 j = F1i
(H2) Features Exclusion. This hypothesis is deduced
from the combination of H0 and H1. Each feature of
A2 has only one corresponding feature in A1.
{F2i,F2 j/i, j m} {F1x,F1x/x,y n}
F2i = F1x
F2 j = F1y
4.3 Perfect Co-evolution Restoration
On the basis of the hypotheses H0 and H2, we deduce
that the relationship between the two cladograms of
P1 and P2 must respect the following inequality:
B × A1 C × A2
Where B is the matrix (k x n) of features states of P1,
k is the number of taxa of P1 and P2, C is the matrix (k
x m) of features states of P2, A1 is the features vector
(n x 1) of P1 and A2 is the features vector (m x 1) of
P2.
After developing the inequality, it is reduced to a set
of k inequalities:
n
i=1
b
1,i
× F1
i
m
j=1
c
1, j
× F2
j
n
i=1
b
2,i
× F1
i
m
j=1
c
2, j
× F2
j
.
.
.
n
i=1
b
k,i
× F1
i
m
j=1
c
k, j
× F2
j
By considering the hypothesis H1, the inequalities
can be transformed to a set of k equalities because
the difference between the two sides of each inequal-
ity i where 0 < i k will be equal to the set of fea-
tures of the SPL version P1i that did not exist in
the product version P2i. The number s represents
the difference between n the number of features of
P1 and m the number of features of P1 (s = n-m):
B × A1 C × A2 =
d
1,1
·· · d
1,s
d
2,1
·· · d
2,s
.
.
.
.
.
.
.
.
.
d
k,1
·· · d
k,s
×
F3
1
.
.
.
F3
i
.
.
.
F3
s
The vector of features (F3
1
,F3
2
,··· , F3
s
) represents
the set A3 which is given by subtracting A2 from A1
(A3 = A1 A2), and the entries d
i, j
/i, j N,0 < i
k,0 < j s of the matrix D must be equal to 0 if the
feature F3
j
exist in the SPL version P1i or 1 if the
opposite is true.
In order to repropagate the identified changes to
the SPL we propose the algorithm of restoration (Ben-
larabi et al., 2014b) in which we add to A1 all the fea-
ture of A3 that are absent from A1, these features rep-
resent the product features that are not derived from
the domain features of the SPL. Then we extend the
features states matrix of the SPL P1 with these fea-
tures.
5 CASE STUDY
We performed a case study on the mobile media SPL
(Benlarabi et al., 2014a). It manipulates photo, mu-
sic, and video on mobile devices such as mobile
phones and has many derived products (Tizzei et al.,
2011). Firstly, we constructed a population of the SPL
formed by its different releases, it is described in the
table 1. We construct also a population for the derived
product. We started by applying our approach on the
Mobile Media and one of its derived product.
5.1 Cladistics Classification for Mobile
Media SPL
We constructed two populations, the first one P1 is
formed by seven versions of the SPL mobile media,
while the second one P2 is formed by seven versions
of the derived product. In Tables 1 and 2, respectively,
we give a detailed description of the populations P1
and P2, which we constructed on the basis of the fea-
ture models of the different releases of P1 and P2:
Each population is composed of six organisms, P1 has
19 features and P2 has 16 features:
A1 = {F
1,i
while i N,i 19}
A2 = {F
2,i
while i N,i 16}
The features states matrices of the two population are
constructed on the basis of Table 1 and Table 2. We
present in Table 3 an example of the matrix B of the
mobile media SPL. The matrix C of the products is
constructed similarly. We constructed cladograms on
ENASE2015-10thInternationalConferenceonEvaluationofNovelSoftwareApproachestoSoftwareEngineering
266
Table 1: Mobile Media Platform Population.
V1.0 The first release of the mobile media SPL, this release encom-
passes the following features: Manage photos (F
1,1
), Create al-
bum (F
1,2
), Delete album(F
1,3
), Create media (F
1,4
), Delete me-
dia (F
1,5
), View media (F
1,6
), Sort media (F
1,7
), Edit media label
(F
1,8
)
V1.1 Release 2: the features Set favorites (F
1,9
) and See favorites
(F
1,10
) were added
V1.2 Release 3: the feature Copy media (F
1,11
) was added
V1.3 Release 4: the features Send media (F
1,12
) and Receive media
(F
1,13
) were added
V1.4 Release 5: the feature Add music media management (F
1,14
)
was added
V1.5 Release 6: the features Add video media management (F
1,15
),
Capture videos (F
1,16
) and Capture photos (F
1,17
) were added
V1.6 Release 7: the features Play videos (F
1,18
) and Play music
(F
1,19
) were added
Table 2: Derived Product Population.
V2.0 The first release of the product, this release encompasses the
following features: Manage photos (F
2,1
), Create album (F
2,2
),
Delete album(F
2,3
), Create Photo (F
2,4
), Delete Photo (F
2,5
),
View Photo (F
2,6
), Sort media (F
2,7
), Edit media label (F
2,8
)
V2.1 Release 2: the features Set favorites (F
2,9
) and See favorites
(F
2,10
) were added
V2.2 Release 3: the feature Copy media (F
2,11
) was added
V2.3 Release 4: the features Send media (F
2,12
) and Receive media
(F
2,13
) were added
V2.4 Release 5: the feature Print photo (F
2,14
) was added
V2.5 Release 6: the feature Capture photos (F
2,15
) was added
V2.6 Release 7: the feature Share photo in social websites (F
2,16
) was
added
Table 3: Features States Matrix B of the Mobile Media SPL.
B F
1,1..
F
1,8
F
1,9
F
1,10
F
1,11
F
1,12
F
1,13
F
1,14
F
1,15..
F
1,17
F
1,18
F
1,19
V0 1 0 0 0 0 0 0
V1 1 1 0 0 0 0 0
V2 1 1 1 0 0 0 0
V3 1 1 1 1 0 0 0
V4 1 1 1 1 1 0 0
V5 1 1 1 1 1 1 0
V6 1 1 1 1 1 1 1
the basis of these matrices by grouping releases to-
gether based on their shared characters. In this step
we used the biological tool PHYLIP to generate the
coordinates of the evolutionary trees of P1 and P2
from their features states matrices. We used the out-
pout files generated by PHYLIP in the online tool
Phyfi to generate cladograms that correspond to the
coordinates of these file. After generating the two
cladograms we proceed to the co-evolution analysis
of the two populations
5.2 Co-evolution Analysis of Mobile
Media SPL
After applying the mathematical analysis we de-
scribed before, we noticed that two imperfections
were detected after the calculation. They are caused
by the two features F
2,14
”Print photo” and F
2,16
”Share photo in social websites”. The two features
exist in the product and are absent from the SPL. Fi-
nally we obtained the following formulate.
B × A1 C × A2 =
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 0 0 0 0 1 0
1 1 1 0 0 1 0
1 1 1 1 1 1 1
×
F
1,14
F
1,15
F
1,16
F
1,18
F
1,19
F
2,14
F
2,16
The vector A3 is composed by the following features:
F
1,14
”Add music media management”, F
1,15
”Add
video media management”, F
1,16
”Capture videos”,
F
1,18
”Play videos”, F
1,19
”Play music”, F
2,14
”Print
photo”, F
2,16
”share photo in social websites”.
6 AUTOMATED TOOL
To implement our approach we have chosen to de-
sign a tool composed of three main functional blocks,
the first block generates the features states matrix of
a population, the second block compare two clado-
grams using their features states matrices and vectors
of features and generates a log file containing the re-
sult of the comparison. and the third block proposes
on the basis of the generated log file the features that
may be added to the platform to correct the imperfect
co-evolution.
6.1 Features States Matrix Generator
In this step we use the FeatureIDE tool (Kastner et al.,
2009) to model our case study feature models. It is an
open source framework for software product line en-
gineering, the main advantage of this tool is the pos-
sibility to generate the XML scheme of the feature
model. in Fig. 2 we illustrate a domain feature model
of the mobile media software product line.
Once the xml files are generated, this block inte-
grate the features reference file and also the generated
files, then it looks for the features in each file and gen-
erate the matrix in a flat file in the accepted input for-
mat for the PHYLIP tool.
Co-evolutionAnalysisforSoftwareProductLines
267
Figure 2: Mobile Media SPL feature model.
6.2 Co-evolution Comparator
The second block consists in comparing two input
matrices, by automating the mathematical analysis of
our approach. It integrates the two files generated by
the first block and also the features reference files.
Thereby, it makes a comparison of the evolution his-
tories of the two population and generate a log file
which contains the traces of the comparison and the
resulted differences.
6.3 Perfect Co-evolution Analyzer
The third block deals with the perfect co-evolution
restoration, it integrates the log file generated by the
second blocks and displays the features that may be
restored to the platform. this block gives also the pos-
sibility to integrate the two matrices with the features
reference files and applies the perfect co-evolution
restoration algorithm which we previously elaborated
and generate a new matrix for the SPL platform.
Firstly we started by developing the first block,
currently we are performing a list of test cases to val-
idate it. Subsequently, we intend after that to develop
the second and the third functional blocks. We envis-
age after finalizing the three blocks, integrating them
into an application for complete co-evolution analy-
sis.
7 CONCLUSIONS
Our general research work addresses the problem
of change propagation in evolving software product
lines. Thereby, we deal with the analysis of co-
evolution of the platform and the products of the soft-
ware product line to understand how they impact each
other during their evolution. In this paper, we have
first proposed the use of biological technique cladis-
tics to illustrate the evolution history of the products
and the platform through evolutionary trees, each tree
represents the history of a product, then we estab-
lished a mathematical analysis to compare the trees
and to find out the changes of product that were not
propagated to the platform and finally we elaborated
an algorithm to help repropagating the missing fea-
tures to the platform. We illustrated the approach
through a case study on the mobile media software
product line. There are several perspectives to our
current work. Firstly, we will develop a tool to auto-
mate the co-evolution analysis, we separated the tool
to three main functional blocks representing the three
steps of the approach. The first block is currently
developed and under validation. Secondly, we aim
to improve the third step of our approach to act di-
rectly on the feature models of the platform and cor-
rect them.
REFERENCES
Ajila, S. A. and Kaba, A. B. (2008). Evolution support
mechanisms for software product line process. Jour-
nal of Systems and Software, 81(10):1784–1801.
Anderson, R. M. and M.May, R. (1982). Coevolution of
hosts and parasites. Parasitology, 85(02):411–426.
Anquetil, N., Kulesza, U., Mitschke, R., Moreira, A.,
Royer, J., Rummler, A., and Sousa, A. (2010).
A model-driven traceability framework for software
product lines. Software and Systems Modeling, 9:427–
451.
Benlarabi, A., A. Khtira, A., and Asri, B. E. (2014a). An
analysis of domain and application engineering co-
evolution for software product lines based on cladis-
tics: A case study. In ICSEA’14 Forthcoming (2014),
pages 495–501.
Benlarabi, A., Khtira, A., and Asri, B. E. (2014b). A co-
evolution model for software product lines: an ap-
proach based on evolutionary trees. In WCCS14. IEEE
Forthcoming (2014).
Brinkman, Fiona, S., and Leipe, D. D. (2004). Bioinformat-
ics: a Practical Guide to the Analysis of Genes and
Proteins, volume 43. John Wiley & Sons.
Clements, P., Northrop, L., and Boehm, B. W. (2002). Soft-
ware Product Lines : Practices and Patterns. Fondo
Xavier Clavigero, S.J. ITESO.
Ehrlich, P. R. and Raven, P. H. (1964). Butterflies and
plants: a study in coevolution evolution. JSTOR,
pages 586–608.
Fitch, W. and Margoliash, M. (1967). Construction of phy-
logenetic trees. Science, 155(760):279–284.
Goknil, A., Kurtev, I., van den Berg, K., and Veldhuis,
J. (2011). Semantics of trace relations in require-
ments models for consistency checking and inferenc-
ing. Software & Systems Modeling, 10:31–54.
Kastner, C., Thum, T., Saake, G., FeigenspanLeich, J.,
Wielgorz, T. F., and Apel, S. (2009). Featureide: A
tool framework for feature-oriented software develop-
ment. In IEEE 31st International Conference on Soft-
ware Engineering, pages 611–614. IEEE.
Pohl, K., Bckle, G., and van der Linden, F. J. (2005). Soft-
ware Product Line Engineering: Foundations, Princi-
ples and Techniques. Springer.
Romero, D., Urli, S., Quinton, C., Blay-Fornarino, M., Col-
let, P., Duchien, L., and Mosser, S. (2013). Splemma:
ENASE2015-10thInternationalConferenceonEvaluationofNovelSoftwareApproachestoSoftwareEngineering
268
A generic framework for controlled-evolution of soft-
ware product lines. In The 17th International Software
Product Line Conference, pages 59–66.
Tizzei, L. P., Dias, M., Rubira, C. M., Garcia, A., and Lee, J.
(2011). Components meet aspects: Assessing design
stability of a software product line. Information and
Software Technology, 53(2):121–136.
Co-evolutionAnalysisforSoftwareProductLines
269