Implementing Product Line Architecture with Code Generation and Separation
Software product line engineering (SPLE) emphasizes high level of reuse and mass customization of the core assets shared by a family of software products. Product line architecture (PLA) is a promising application of architecture-centric development in SPLE. However, unfaithful implementation of the PLA and manual implementation of its variation points remain two difficult challenges that need to be addressed in this area. While many PLA implementation approaches exist, they either focus on certain types of variability or require manual implementation of variation points. In this thesis, I present a novel code generation and separation approach that can faithfully implement the PLA with a goal of reducing the inconsistency between the PLA and its implementation. Moreover, the approach can automatically implement the variation points modeled in the PLA and convert them to code entities using different techniques based on the variation point’s type. I have implemented the approach in ArchFeature, an Eclipse-based PLA development environment, and evaluated it in a case study with a chat application. The purpose of the evaluation was to validate the approach and to assess its feasibility, performance, and affordability.
Table of Contents
Introduction -- Background and related work -- Approach -- Implementation -- Evaluation -- Conclusion and future work