Please use this identifier to cite or link to this item:
Title: The pathway to customised product solutions
Authors: Tang, Yutian
Degree: Ph.D.
Issue Date: 2018
Abstract: Software Product Line Engineering (SPLE) allows variants of a software system to be created with customised configurations. However, building a software product line from scratch could be an error-prone task, given the complexity of the task and lacking of domain knowledge. To reduce the complexity of the task and provide a complete procedure to build a software product line, in this thesis, we proposed a strategy to build a software product line from a legacy application. Specifically, we focus on Java based applications. In a Java based software product line, it consists of a configuration space and a code space. The configuration space shows how features are organised and relations between features. Features and the constraints between them are commonly documented in a feature model. The code space contains the implementation of the system. In this thesis, we build a software product line from a legacy application by the following steps: (1) we detect and build the feature model from the implementation by building a variability-aware module system; (2) we further propose a conditional probability based approach to locate features in the legacy system; and (3) at last, we propose a strategy to build variant applications. For (1), we carefully analyse previous research in building product line feature model and several representative approaches for recovering software architecture. We complement these research which are not suitable for building the feature model, by proposing a novel approach to build variability-aware module system. The programming elements are first composed to be variability-aware modules, then these modules are merged to compose features. We additionally analyse and extract programming elements and relations between them to build well-typed modules and features. Our work shows that current approaches in software architecture recovery could be used in the product line context. We build a prototype tool LoongFMR, which is an Eclipse plugin to assist the process. Our work also indicates that a fine-granularity approach to build a feature model could significantly improve the performance comparing to a coarse-granularity approach. Since at the fine-granularity level, the programming elements are presented as abstract syntax tree (AST) nodes, and relations between them can be easily extracted. For (2), we develop a novel approach to locate feature in the legacy system. To overcome the main limitations in other works, which cannot locate feature at a fine-granularity and cannot well-expressed the relation between programming elements, we propose a feature location technique using conditional probability. As demonstrated in the case study, our approach could locate the feature correctly with a performance of 83% for precision and 41% for recall. For (3), we further propose an effective approach to reengineer an annotated legacy, which is the output of (2), to product variants. We also ensure the product variants generated are syntactical correct, well-typed and feature behaviors well-preserved. The results demonstrate that our approach maintains feature consistency. Concretely, our approach could reach an accuracy of 88% in terms of creating product variants without any syntactic errors. As for behaviour preservation, our approach could pass 93% test cases generated by evosuite tool. Overall, we provide tools and techniques to help developers create software product lines by reusing legacy applications with ease. Our work helps to ensure the product variants created are well-typed and behaviors preserved during the process.
Subjects: Hong Kong Polytechnic University -- Dissertations
Software product line engineering
Computer software -- Development -- Management
Pages: xx, 179 pages : color illustrations
Appears in Collections:Thesis

Show full item record

Page views

Last Week
Last month
Citations as of Jun 4, 2023

Google ScholarTM


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.