Analyzing Trends in Software Product Lines Evolution Using aCladistics Based Approach
Abstract
:1. Introduction
2. Software Product Lines Evolution Challenges
2.1. Software Product Line Engineering
2.2. Separating Software Product Lines Evolution from Software Evolution
- The ability to plan the evolution and to predict future changes
- The ability to define the impact of a change easily
- The improvement of the change understanding
2.3. Our Previous Work
2.4. Related Works
3. Modeling Evolution of SPLs through Cladistics
3.1. Biological Evolution vs. Software Evolution
3.2. Modeling Software Product Line Evolution Using Cladistics
- (1)
- Organisms selection: The organisms of the classification should be necessarily related by ancestor-descendant relationships or indirect relationships based on common ancestry.
- (2)
- Characters extraction: The characters include physical and behavioural characters that allow to make distinction between different organisms, e.g., the wings and the feathers are two characters for birds. Each character has two or more exclusive states, e.g., its presence or absence in an organism denotes two different states, the absence of the character is called the “primitive” state and its presence is called the “derived” state.
- (3)
- Characters matrix construction: This matrix summarizes the results of organisms selection and characters extraction. The organisms are put in lines and the characters are put in columns. Then, the matrix is filled by numbers that represents the codification of the states of the characters.
- (4)
- Cladogram drawing: The cladogram is a tree constructed on the basis of the characters matrix by grouping organisms together based on their shared characters. All the organisms are in the endpoints of the tree. Each node regroups shared characters between all the next organisms unless these characters are modified later. The order of characters in the tree is determined by its number of occurrence in the matrix.
4. Experimental Section
4.1. Our Approach
4.2. Population Selection
4.3. Characters Extraction
Population | Description |
---|---|
Product 1 | An application for photo management. It encompasses the following features: Create album, delete album, create photo, delete photo, view photo, sort photo, capture photo, and edit photo label |
Product 2 | An application for photo management. It encompasses the same features as the product 1 and two new features: Set favourites and see favourites |
Product 3 | An application for photo management. It encompasses the same features as the product 2, the possibility to create many copies of the photo was added |
Product 4 | An application for photo management. It encompasses the same features as the product 2. Other features related to sending and receiving Photos were added |
Product 5 | An application for music management. It encompasses the following features: Create album, delete album, create voice, delete song, play song, sort song, and edit song label |
Product 6 | An application for music management. It encompasses the same features as the product 5 with the possibility to set and see favourites |
Product 7 | An application for music management. It encompasses the same features as the product 6 with the possibility send and receive song |
Product 8 | An application for video management. It encompasses the following features: Create album, delete album, create video, delete video, play video, sort video, and edit video label |
Product 9 | An application for video management. It encompasses the same features as the product 8 with the possibility to set and see favourites |
Product 10 | An application for video management. It encompasses the same features as the product 9 with the possibility to send video and receive video |
Product 11 | An application for photo management. It encompasses the same features as the product 4 with the possibility to share photo in social application and modify photo (trim and resize) |
Character | Code | State |
---|---|---|
1 Create album | 0 | Absence |
1 | Existence | |
2 Delete album | 0 | Absence |
1 | Existence | |
3 Create Media | ||
4 Delete Media | ||
5 View Media | 000 | Absence |
6 Edit Media Label | 001 | Type of media is photo |
7 Sort Media | 010 | Type of media is photo or music |
8 Set Favorites | 100 | Type of media is photo or music |
9 View Favorites | or video | |
10 Copy Media | ||
11 Send Media | ||
12 Receive Media | ||
13 Capture Photo | ||
14 Capture Video | ||
15 View Photo | 0 | Absence |
16 Play Song | 1 | Existence |
17 Play Video | ||
18 Share Photo | ||
19 Modify Photo |
4.4. Features Matrix Construction
Variants | Characters | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | |||||||||||||||||||||
P1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
P2 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
P3 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
P4 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
P5 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
P6 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
P7 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
P8 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
P9 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
P10 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
P11 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
4.5. Cladogram Drawing
5. Results and Discussion
5.1. Graphic Based Analysis
5.1.1. Identifying Evolution Trends
5.1.2. Improving Design Decision
5.1.3. Anticipating Future Changes
5.2. Measures Based Analysis
5.2.1. Cladogram Metrics
- Feature Weight: To measure the importance of features, we calculate for each feature its weight which represents the number of occurrences of the feature in the population.
- Node Range: This measure is calculated for each node in order to find out the characters that are shared between the maximum of SPL applications. It represents the number of leafs descended from the node.
- Evolution Distance: It measures the number of changes that separate two leafs. By calculating the average distance, we can estimate the difference between the SPL products.
- The feature weight graphic shows the degree of sharing of features and also their importance. Therefore, it helps identifying the impact of a feature change. This measure can also help in deriving new products. Features that have the maximum weight are the mandatory ones, and also the features that customers have a preference for. The graph can be much more useful for SPLs with substantial number of features. It gives a quick and real view on the use of features.
- The evolution distance graphic presents the differences between the products. It can also reveal the degree of similarity between two products. The value of this metric for two successive products increases when the difference between them is considerable. Similarity between successive products can enhance our understanding for customers preferences. Low value for this metric proves weak diversity among the SPL products.
- The node range graphic shows the importance of each node and also the tendency to derive products from a node. A node with high number of derived products gathers the features shared by the majority of products. Otherwise, the possibility for new derived product to be under this node is of great importance.
6. Conclusions and Perspectives
Author Contributions
Conflicts of Interest
References
- Pohl, K.; Böckle, G.; van der Linden, F.J. Software Product Line Engineering: Foundations, Principles and Techniques; Springer-Verlag: Berlin, Germany, 2005. [Google Scholar]
- Clements, P.; Northrop, L.; Boehm, B.W. Software Product Lines : Practices and Patterns; Addison-Wesley: Boston, MA, USA, 2002. [Google Scholar]
- Benlarabi, A.; Khtira, A.; El Asri, B. A co-evolution model for software product lines: An approach based on evolutionary trees. In Proceedings of the Second World Conference on Complex Systems, Agadir, Morocco, 10–12 November 2014.
- Brinkman, F.S.L.; Leipe, D.D. Bioinformatics: A Practical Guide to the Analysis of Genes and Proteins; John Wiley & Sons: New York, NY, USA, 2004; Volume 43. [Google Scholar]
- Ziadi, T.; Henard, C.; Papadakis, M.; Ziane, M.; Le Traon, Y. Towards a language-independent approach for reverse-engineering of software product lines. In Proceedings of the 29th Annual ACM Symposium on Applied Computing, Gyeongju, Korea, 24–28 March 2014; pp. 1064–1071.
- Bennett, K.H.; Rajlich, V.T. Software maintenance and evolution: A roadmap. In Proceedings of the Conference on the Future of Software Engineering, Limerick, Ireland, 4–11 June 2000; pp. 73–87.
- Parnas, D.L. Software agingm. In Proceeding of the 16th International Conference on Software Engineering, Sorento, Italy, 16–21 May 1994; pp. 279–287.
- Svahnberg, M.; Bosch, J. Evolution in software product lines. J. Softw. Maint. Res. Pract. 1999, 11, 391–422. [Google Scholar] [CrossRef]
- Benlarabi, A.; Khtira, A.; El Asri, B. Co-evolution analysis for software product lines. In Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software Engineering, Barcelone, Spain, 29–30 April 2015.
- Benlarabi, A.; Khtira, A.; El Asri, B. An analysis of domain and application engineering co-evolution for software product lines based on cladistics: A case study. In Proceedings of the Ninth International Conference on Software Engineering Advances, Nice, France, 12–16 October 2014; pp. 495–501.
- Lin, Z. Understanding and simulating software evolution. In Proceedings of the International Conference on Software Engineering, San Francisco, CA, USA, 18–26 May 2013; pp. 1411–1414.
- Bhattacharya, P.; Iliofotou, M.; Neamtiu, I.; Faloutsos, M. Graph-based analysis and prediction for software evolution. In Proceedings of the 34th International Conference on Software Engineering, Zurich, Switzerland, 2–9 June 2012; pp. 419–429.
- Kanda, T.; Ishio, T.; Inoue, K. Extraction of product evolution tree from source code of product variants. In Proceedings of the 17th International Software Product Line Conference, Tokyo, Japan, 26–30 August 2013; pp. 141–150.
- Futuyma, D.J. Evolutionary Biology, 3rd ed.; Sinauer Associates Inc.: Sunderland, MA, USA, 1998; Volume 4. [Google Scholar]
- Mayr, E.; Bock, W.J. Classifications and other ordering systems. J. Zool. Syst. Evolut. Res. 2002, 4, 169–194. [Google Scholar] [CrossRef]
- Rosenthal, G.A.; Berenbaum, M.R. Herbivores Their Interactions with Secondary Plant Metabolites: Ecological and Evolutionary Processes; Academic Press: Waltham, MA, USA, 1992; Volume 2. [Google Scholar]
- Fitch, W.M.; Margoliash, M. Construction of phylogenetic trees. Science 1967, 155, 279–284. [Google Scholar] [CrossRef] [PubMed]
- Tizzei, L.P.; Dias, M.; Rubira, C.M.; Garcia, A.; Lee, J. Components meet aspects: Assessing design stability of a software product line. Inf. Softw. Technol. 2011, 53, 121–136. [Google Scholar] [CrossRef]
- Kang, K.C.; Kim, S.; Lee, J.; Kim, K.; Shin, E.; Huh, M. FORM: A feature-oriented reuse method with domain-specific reference architectures. Ann. Softw. Eng. 1998, 5, 143–168. [Google Scholar] [CrossRef]
© 2015 by the authors; licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Benlarabi, A.; Khtira, A.; Asri, B.E. Analyzing Trends in Software Product Lines Evolution Using aCladistics Based Approach. Information 2015, 6, 550-563. https://doi.org/10.3390/info6030550
Benlarabi A, Khtira A, Asri BE. Analyzing Trends in Software Product Lines Evolution Using aCladistics Based Approach. Information. 2015; 6(3):550-563. https://doi.org/10.3390/info6030550
Chicago/Turabian StyleBenlarabi, Anissa, Amal Khtira, and Bouchra El Asri. 2015. "Analyzing Trends in Software Product Lines Evolution Using aCladistics Based Approach" Information 6, no. 3: 550-563. https://doi.org/10.3390/info6030550
APA StyleBenlarabi, A., Khtira, A., & Asri, B. E. (2015). Analyzing Trends in Software Product Lines Evolution Using aCladistics Based Approach. Information, 6(3), 550-563. https://doi.org/10.3390/info6030550