2013 · 12 citations · 19 references
ComputingComputer EngineeringFeature EngineeringNew Product DevelopmentSoftware EngineeringSoftware ConstructionSoftware DesignSoftware EvolutionSoftware MaintenanceSoftware ReuseCost Function ModelingMinimum Spanning Tree AlgorithmsMinimum Spanning Tree ConstructionMinimum Spanning Tree ProblemSoftware Evolution AnalysisSoftware Product LinesSource Code Evolution
A large number of software products may be derived from an original single product. Although software product line engineering is advocated as an effective approach to maintaining such a family of products, re-engineering existing products requires developers to understand the evolution history of the products. This can be challenging because developers typically only have access to product source code. In this research, we propose to extract a Product Evolution Tree that approximates the evolution history from source code of products. Our key idea is that two successive products are the most similar to one another in the evolution history. We construct a Product Evolution Tree as a minimum spanning tree whose cost function is defined by the number of similar files between products. As an experiment, we extracted Product Evolution Trees from 6 datasets of open-source projects. The result showed that 53% to 92% of edges in the extracted trees were consistent with the actual evolution history of the projects.
19
Granularity in software product lines
Christian Kästner, Sven Apel, Martin Kuhlemann · 2008 · 495 citations