A Co-Evolution Analysis for Software Product Lines: An Approach based on Evolutionary Trees

A Co-Evolution Analysis for Software Product Lines: An Approach based on Evolutionary Trees

Anissa Benlarabi (National School of Computer Science and Systems Analysis (ENSIAS), University Mohamed V, Rabat, Morocco), Amal Khtira (National School of Computer Science and Systems Analysis (ENSIAS), University Mohamed V, Rabat, Morocco) and Bouchra El Asri (National School of Computer Science and Systems Analysis (ENSIAS), University Mohamed V, Rabat, Morocco)
Copyright: © 2015 |Pages: 24
DOI: 10.4018/IJAEC.2015070102
OnDemand PDF Download:
No Current Special Offers


In this rapidly changing world, business strategies continuously evolve to meet customers' wishes. Hence, the ability to cope with the frequent business changes is becoming important criteria of a leading development paradigm. Software product line engineering is a development paradigm based on reuse that builds a common platform from which a set of applications can be derived. Despite its advantage of enhancing time to market and costs, it is exposed to the risk of falling into the aging phenomenon because of the complexity of its evolution. In this paper the authors present a co-evolution based approach for protecting the software product lines from the aging phenomenon. The approach uses cladistics and trees reconciliation that are mainly used in biology to analyze the co-evolution between organisms. The authors' major goal is to find out changes of products that were not propagated to the common platform at the aim of reconsidering them in the platform and thus protecting it from being obsolete.
Article Preview

1. Introduction

Today, software engineering targets more quality, efficiency and costs challenges. For this reason software development tends to reuse more than building from scratch. Among the most important reuse disciplines in software development we found software product line (SPL) engineering (Pohl, Bockle, and Van der Linden, 2005) which is a large scale reuse approach aimed at reducing costs and time to market. It consists on developing a common platform for a specific business domain from which applications of this domain can be derived with customization (Clements & Northrop, 2002). To achieve its goal of large scale reuse, a SPL have to be able to support not only actual requirements but also future requirements.

Software product lines are long-living systems and must cope with technology evolution and new business needs. The evolution activity in SPLs is even more complex than evolution of single software. Indeed, the change in a SPL must be propagated in two levels, the platform level and the applications level. However, due to time pressure, developers may implement some changes only in the applications level, especially when the change concerns just one application.

Thereby, if products are changed frequently and independently, the domain platform of the SPL risks to fall into the aging phenomenon coined by coined by Parnas (Parnas, 1994) and instead of having a set of products derived from the same platform, we will have a set of independent applications. For this reason, the change impact analysis in SPL requires greater focus. Recent works on SPL evolution aimed mainly on enhancing the rigor and the reliability of the change impact identification. We separated them into three sets, traceability techniques (Passos et al, 2013) (Jirapanthong & Zismanl, 2009) (Anquetil et al, 2010) (Goknil, Kurtev, Van den Berg & Veldhuisl, 2011), the evolution modeling techniques (Passos et al., 2013) (Urli, Blay-Fornarino, Collet & Mosser, 2012) (Ajila & Kaba, 2008) (Romero et al., 2013), and the assessment techniques (Apel et al., 2013) (Ferreira, Borba, Soares & Gheyi, 2012). These approaches rely essentially on human knowledge and data that have to be manually provided, which is time consuming and error prone in practice.

In this paper we introduce our approach for analyzing co-evolution of the SPL and its products. Co-evolution is a famous principal extensively used in biology (Ehrlich & Raven, 1964) to show how organisms influence each other during their evolution. The co-evolution of hosts-parasites is a famous example from biology: because parasites cause damages to their hosts, hosts develop new capacities to resist to their parasites. However, parasites also develop capacities to overcome this resistance (Anderson & May, 1982). Similarly to biological co-evolution, we intend to study the similarities and the divergences between the platform and the products evolution histories of a SPL in order to detect changes of products that were not propagated to the platform. The aim of this study is to reconsider these changes in the platform and thus protect the latter from the aging phenomenon. The major advantage of the co-evolution analysis is its reliance on the features of the studied organisms instead of human knowledge.

Biological co-evolution analysis consists practically on comparing the evolutionary trees of many populations. An evolutionary tree of a population is a branching diagram showing the inferred evolutionary relationships among its members. Perfect co-evolution of two populations is manifested by perfect similarity of their evolutionary trees which means that the changes of the two populations happened at the same time. Similarly to co-evolution in biology, we will study the co-evolution of many populations of software. Each population is formed by a set of releases of a SPL application. Hence we construct an evolutionary tree for each product and also for the platform, then we compare them in order to find out if there were a shortage in the change impact analysis activity. To fulfill this work we used biological techniques that are cladistics classification (Baxevanis & Ouellette, 2004) and trees reconciliation (Page, 2003).

Complete Article List

Search this Journal:
Open Access Articles: Forthcoming
Volume 13: 4 Issues (2022): 1 Released, 3 Forthcoming
Volume 12: 4 Issues (2021)
Volume 11: 4 Issues (2020)
Volume 10: 4 Issues (2019)
Volume 9: 4 Issues (2018)
Volume 8: 4 Issues (2017)
Volume 7: 4 Issues (2016)
Volume 6: 4 Issues (2015)
Volume 5: 4 Issues (2014)
Volume 4: 4 Issues (2013)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing