WeaFQAs

A Software Product Line approach for customizing and weaving efficient Functional Quality Attributes

Summary

WeaFQAs is a Software Product Line (SPL) process to manage operationalizations of quality attributes or Functional Quality Attributes (FQAs). WeaFQAs promotes the variability modeling and customization of FQAs separately from the applications, and their incorporation (weaving) into their software architectures following an aspect-oriented approach.

In WeaFQAs, the software architect can manually select the configuration of each FQA that satisfies the application's requirements, or can automatically generate a configuration that optimizes the non-functional properties (NFPs), such as energy efficiency or performance, of the FQA based on the usage context of the application.

The WeaFQAs process.

Functional Quality Attributes (FQAs)

Quality attributes (QAs) have a significant influence on the software architecture of an application, serving as selection criteria to choose from several alternative design patterns and implementations. To satisfy the QAs of an application, some of them (e.g., security, usability) require introducing new functional components into the software architecture of the application (e.g., an encryption component). These new functionalities or operations (e.g., the encryption of a message) that contribute to satisfy QAs such as security are called operationalizations of QAs or Functional Quality Attributes (FQAs).

Examples of FQAs

  • Encryption to provide confidentiality.

  • Hashing to provide integrity.

  • Authentication to provide access control.

  • Logging to provide feedback of transactions.

  • Caching to improve performance.

  • Compression to improve memory usage.

  • ...


The WeaFQAs engineering processes

WeaFQAs follows the classic framework for SPL engineering and extends it to take into account the specific problematic of FQAs. In WeaFQAs four engineering process are defined: (1) Domain, (2) application, (3) weaving, and (4) evolution.

Domain Engineering

It manages the complexity and the variability of the FQAs from the early stages of the development life cycle. The goal is (i) to characterize the QAs and FQAs; (ii) to define the commonalities and the variability of the FQAs including their dependencies and reusable components; and (3) to analyze the influence of the FQA variants over non-functional properties (NFPs).

Application Engineerring

It generates FQA configurations based on the specific application's requirements. The goal is to bind the FQA variability according to the application requirements, generating a product configuration of the FQAs that fulfills those requirements.


Weaving Engineering

It integrates the FQAs architecture configuration generated in the previous process into the core architecture of the application being built. The goal is to incorporate the customized architecture model of the FQAs into the base application by applying the appropriate weaving patterns.

Evolution Engineering

It manages the FQAs when the requirements of the application change and/or the technology of the FQAs evolves. The goal is to update the artifacts of the different engineering process in the WeaFQAs approach and propagate the changes to the final application already deployed.


WeaFQAs in detail through its publications

A total of 23 scientific publications along the 5 years of PhD (2013-2018) support the WeaFQAs thesis (see publications). The following is a summary of the main publications to help understand each contribution in the context of WeaFQAs. For the rest and newest (postdoct) publications related with the WeaFQAs thesis check the Publications section.

◼️ The WeaFQAs approach

This publication defines the Aspect-Oriented SPL approach of WeaFQAs, and compares and discusses two different implementation of WeaFQAs: (1) using the CVL and UML models; and (2) using traditional feature models and a specific Aspect-Oriented architectural description language (AO-ADL).

◼️ Extending WeaFQAs to optimize Non-Functional Properties (NFPs)

This publication extends WeaFQAs to support the analysis of NFPs (e.g., energy consumption, performance) and to assist practitioners in generating optimum configurations of the FQAs according to those NFPs.

◼️ vEXgine: the official tool support

This publication presents vEXgine, a customizable and extensible implementation of the execution engine for the Common Variability Language (CVL), providing tool support for the WeaFQAs approach. vEXgine was recognized with the "Best Paper Award" in the Data, Demonstrations and Tools track of the SPLC'17 conference.

◼️ Implementing WeaFQAs with CVL and UML

This paper details the main implementation of WeaFQAs by using the CVL language to specify the variability of the FQAs, UML to model the software architecture of the FQAs, and CVL in combination with ATL to weave the configurations of the FQAs.

◼️ Implementing WeaFQAs with feature models and AO-ADL

This paper details the first implementation of WeaFQAs that uses traditional feature models to specify the variability of the FQAs, and the AO-ADL language to model the software architectures of the FQAs and weave their configurations.

◼️ The weaving process in detail

Here we go further into the weaving details of WeaFQAs where we implement the weaving as model transformations in ATL and integrate it with the CVL language. We illustrate the weaving in the context of the security FQA.

◼️ Using WeaFQAs at runtime

An adaptation of WeaFQAs to support the weaving of FQAs at runtime. Security FQAs like encryption, hashing, or authentication are implemented as aspects. The design and implementation of an Aspect Generation and an Aspect Weaver module is presented in the context of the international project INTER-TRUST.

◼️ WeaFQAs for multi-agent systems and the Internet of Things (IoT)

An adaptation of the Dynamic Software Product Line (DSPL) of WeaFQAs to dynamically adapt the goals and behaviour of intelligent agents in the context of the Internet of Thing (IoT). The paper received the "Best Paper Award" in the MATES'16 conference.

◼️ WeaFQAs in the automotive domain

An adaptation of WeaFQAs to support reconfiguration of autonomous vehicles according to the context of the traffic, improving the traffic QAs (e.g., travel time, lane change rate, time to collisions).

◼️ Evolving FQAs configurations

This paper presents formal algorithms to automate the evolution of the CVL models, the updating of the configuration models, and the propagation of changes to the FQAs configurations deployed within the applications.

◼️ Green FQAs configurations

Optimization of the FQAs configurations based on the trade-offs between NFPs like energy efficiency and performance.