Non-functional properties in software product lines: a framework for developing quality-centric software products
University of New Brunswick
Software Product Line Engineering (SPLE) is a discipline that facilitates a systematic reuse-based software development and is founded on the idea of building software products using a set of core assets rather than developing individual software systems from scratch. Feature models are among the widely used artifacts for SPL development that mostly capture functional and operational variability of a system. Researchers have argued that connecting intentional variability models such as gldoal models with feature variability models in a target domain can enrich feature models with valuable quality and non-functional information. Interrelating goal models and feature models has already been proposed in the literature for capturing non-functional properties in software product lines; however, the manual integration process is cumbersome and tedious. In addition, as one of the main artifacts of the software product line, a feature model represents the possible configuration space and can be customized based on the stakeholders' needs and goals. Considering the complexity of the variabilities represented by feature models in addition to the diversity of the stakeholders' expectations, the configuration process can be viewed as a complex optimization problem. In this thesis, we propose a framework for developing quality-centric software products in the SPL context. We developed the Quality-centric Feature Model (QcFM) method as a basis for bringing non-functional properties into feature models via connecting feature and goal models in the domain engineering phase. Based on this, we then developed the Quality-centric Configuration Process (QcCP) method for configuring software product line feature models. The approach is mainly grounded on two theoretical parts. First, in domain engineering, we integrate feature and goal models through a semantic-enabled process to build a comprehensive domain model. Then, in the application engineering phase, we conduct a semi-automated process to configure the product line according to the stakeholders' functional and non-functional requirements and preferences. The key contributions of this thesis are: (i) a semi-automated framework for semantically integrating feature and goal model elements using a semantics-enabled text analysis process; (ii) a method to assist domain analysts to decide on selecting and connecting the related elements in a feature and goal models in such a way that feature models can be extended with domain non-functional properties; (iii) a configuration process by means of a feature model staged configuration approach such that stakeholders' functional and non-functional requirements can be captured using domain level goal models; and (iv) the formalization of the configuration problem in the form of an integer linear program to develop a semi-automated configuration process.