Identifying, Structuring, and Evolving Features in Software Product Lines

Date
2019-06-26
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Software product lines (SPLs) are a set of similar software products that are developed in a coordinated manner, sharing commonalities. Software product line engineering (SPLE) aims to better manage SPLs through the use of both source code artifacts and a variability model (VM) that describes legal configurations of the source code artifacts. Current approaches lack support for recommending, structuring, and evolving features in SPLE, requiring manual intervention that can result in the introduction of severe inconsistencies and flaws. We propose two approaches to address these issues: (1) a recommendation system for software engineering (RSSE), called FFRE, to support the extraction, maintenance, and categorization of VMs; and (2) an approach for change impact analysis that assists in identifying the prone artifacts in SPLs, identifying dependencies through analysis of code artifacts, variability model, and source code history. We evaluate our approaches through five studies. (1)We evaluate FFRE qualitatively from four SRS documents and compare it against other tools and approaches. (2)We study the unanticipated evolution of a software product family, implemented both as separate products and in delta-oriented programming (DOP), comparing the ease of change within the two versions through quantitative measurements and qualitative observations. (3) We compare six different configurations of our CIA approach (reified in the tool CIAHelper) and one based on an existing tool by performing seven case studies on three different SPLs developed using DOP. (4) We evaluate CIAHelper in supporting semi-automated RTE such that the initial set of changes could either occur in the model or in the code artifacts. (5) We conduct a controlled experiment where software developers were given change requests to estimate using either CIAHelper or a manual approach. By providing SPL developers and practitioners with semi-automated support to identify, structure, and evolve features, we can provide better understanding of the implications of proposed changes that affect features’ evolution in SPLs.
Description
Keywords
software product lines, software product line engineering, change impact analysis, delta oriented programming, DOP, natural language processing, NLP, software product line evolution
Citation
Seyed, M. A H. (2019). Identifying, Structuring, and Evolving Features in Software Product Lines (Doctoral thesis, University of Calgary, Calgary, Canada). Retrieved from https://prism.ucalgary.ca.