|Title:||The pathway to customised product solutions|
|Subject:||Hong Kong Polytechnic University -- Dissertations|
Software product line engineering
Computer software -- Development -- Management
|Department:||Department of Computing|
|Pages:||xx, 179 pages : color illustrations|
|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.|
Files in This Item:
|991022141358203411.pdf||For All Users||4.58 MB||Adobe PDF||View/Open|
As a bona fide Library user, I declare that:
- I will abide by the rules and legal ordinances governing copyright regarding the use of the Database.
- I will use the Database for the purpose of my research or private study only and not for circulation or further reproduction or any other purpose.
- I agree to indemnify and hold the University harmless from and against any loss, damage, cost, liability or expenses arising from copyright infringement or unauthorized usage.
By downloading any item(s) listed above, you acknowledge that you have read and understood the copyright undertaking as stated above, and agree to be bound by all of its terms.
Please use this identifier to cite or link to this item: