PhD Thesis



Click here to download the full text in Spanish (Abstract and Conclusions also in English)
Click here to download the Thesis Slides


The production of quality software, on time, and within budget, remains an open problem of Software Engineering that has been addressed from different approaches. An industrial approach to tackle this problem is the adoption of Software Product Lines (SPL). Software product line engineering involves domain engineering (building the product line) and application engineering (deriving products from the product line). One of the most critical tasks during product derivation is meeting the required quality attributes.

Quality assurance is a crucial activity for the success of any software development effort, but is even more important in software product line engineering since a defect in a software asset may impact negatively on the quality of the whole set of products within the product line. This fact is especially relevant when dealing with the software architecture. Software architectures are the means for the attainment of the non-functional requirements of the products that will be derived from the product line, and thus assuring the achievement of those non-functional requirements during the architecture derivation process is a critical activity in the development process.

Despite the huge number of research work dealing with architecture derivation in software product line development, the introduction of quality concerns in this process has not received a proper coverage. The majority of the proposed approaches are only applicable to a specific set of attributes (e.g., performance, reliability, modifiability) or kind of architectures specified using a particular architectural description language (e.g., SysML, AADL). With regard to the architecture evaluation, there is a lack of metric-based architecture evaluation methods defined for software product line that allow the evaluation of product architectures at derivation time.

The objective of this PhD thesis is to define and empirically validate a method, QuaDAI, for the derivation, evaluation, and improvement of product architectures in model-driven software product line development environments. The method comprises a multimodel, which represents the different viewpoints of the software product line, and a process conducted by model transformations that automate the derivation, evaluation, and improvement of product architectures.

This method allows, on the one hand, the introduction of quality concerns in the decision-making processes that occur during the product architecture derivation, whereas makes possible its automation. On the other hand, may help novice architects to be able i) to carry out the evaluation of software architectures and, when required, ii) to apply architectural transformations to improve some product architecture quality attributes.

The QuaDAI method has been empirically validated through a case study conducted in Spain and Brazil as well as through a family of five experiments, with internal and external replications that took place on Spain, Italy and Paraguay. The objective of the case study was to analyze the perceived ease of use, perceived usefulness and intention to use with regard to professionals and software engineering researchers applying the QuaDAI derivation process. The statistical analysis indicated there is a significant positive effect on all the variables under study associated with the use of QuaDAI as a product architecture derivation method. The family of experiments involved 108 subjects including Computer Science and Software Engineering Master students and PhD students. The objective of this study was to compare the effectiveness, efficiency, perceived ease of use, perceived usefulness and intention to use with regard to participants using QuaDAI as opposed to the Architecture Tradeoff Analysis Method (ATAM), a widely applied evaluation method. The statistical analysis and meta-analysis of the data obtained from each experiment indicate that the participants produced their best results when applying QuaDAI, signifying that they obtained architectures with better quality attribute levels faster, and that they found the method easier to use, more useful and more likely to be used in practice. These results make us to consider QuaDAI as a promising approach for the derivation, evaluation and improvement of product architectures in model-driven software product line development.

This PhD thesis contributes to the software product line engineering field by providing an automated, integrated, and generic method for deriving, evaluating and improving software architectures based on quality attributes.