An automatic process for weaving functional quality attributes using a software product line approach

Some quality attributes can be modelled using software components, and are normally known as Functional Quality Attributes (FQAs). Applications may require different FQAs, and each FQA (e.g., security) can be composed of many concerns (e.g., access control or authentication). They normally have depe...

Descripción completa

Detalles Bibliográficos
Autores: Horcas Aguilera, José Miguel, Pinto, Mónica, Fuentes, Lidia
Tipo de recurso: artículo
Estado:Versión enviada para evaluación y publicación
Fecha de publicación:2016
País:España
Institución:Universidad de Sevilla (US)
Repositorio:idUS. Depósito de Investigación de la Universidad de Sevilla
OAI Identifier:oai:idus.us.es:11441/111434
Acceso en línea:https://hdl.handle.net/11441/111434
https://doi.org/10.1016/j.jss.2015.11.005
Access Level:acceso abierto
Palabra clave:Quality Attributes
Software Product Lines
Aspect-Orientation
Weaving
Model Transformations
Descripción
Sumario:Some quality attributes can be modelled using software components, and are normally known as Functional Quality Attributes (FQAs). Applications may require different FQAs, and each FQA (e.g., security) can be composed of many concerns (e.g., access control or authentication). They normally have dependencies between them and crosscut the system architecture. The goal of the work presented here is to provide the means for software architects to focus only on application functionality, without having to worry about FQAs. The idea is to model FQAs separately from application functionality following a Software Product Line (SPL) approach. By combining SPL and aspect-oriented mechanisms, we will define a generic process to model and automatically inject FQAs into the application without breaking the base architecture. We will provide and compare two implementations of our generic approach using different variability and architecture description languages: (i) feature models and an aspect-oriented architecture description language; and (ii) the Common Variability Language (CVL) and a MOF-compliant language (e.g., UML). We also discuss the benefits and limitations of our approach. Modelling FQAs separately from the base application has many advantages (e.g., reusability, less coupled components, high cohesive architectures).