Non-functional requirements as drivers of software architecture design

Author

Ameller, David

Director

Franch Gutiérrez, Xavier

Date of defense

2014-01-23

Legal Deposit

B 15972-2014

Pages

260 p.



Department/Institute

Universitat Politècnica de Catalunya. Departament de Llenguatges i Sistemes Informàtics

Abstract

In the last decades, software engineering has become an important area of research. As researchers, we try to identify a problem, a need, or a hole in some research topic, once identified we make an effort to produce new techniques, methods, and tools that hopefully will help to improve the detected issue. In the present thesis the identified issue was the need of supporting non-functional requirements in the software architecture design where these requirements are the drivers of the architectural decision-making. This thesis started with the idea that a relatively new software engineering discipline, model-driven development, was a good place to propose a solution for the detected issue. We envisioned how non-functional requirements can be integrated in model-driven development and how this integration will impact in the architectural design activities. When we started to produce our techniques, methods, and tools for model-driven development we found out that there was a bigger hole in the web of knowledge than what we had initially foreseen. Much of the evidence of how non-functional requirements affect the software architecture design is hidden. This situation caused a turn in this thesis: we needed to understand architects, how they think and how they make the architectural decisions, what is the role of non-functional requirements in the architectural decision-making process, and to what extent are the non-functional requirements important in this process. All these questions needed an answer, an answer that only architects could provide. In consequence we opted to drove several empirical studies to answer these questions. In parallel, we started to work in a way of representing this knowledge, an ontology for software architecture that integrates non-functional requirements. Using this ontology as basis, we designed a method to assist architects in the architectural decision-making process and a tool that acted as a proof of concept of both, the ontology and the method. In summary, this thesis explores how non-functional requirements are currently integrated in the software architecture design practices, and proposes ways to improve this integration and facilitate the work of architects by providing means to assist them in the architectural decision-making process.

Subjects

004 - Computer science

Documents

TDA1de1.pdf

3.334Mb

 

Rights

L'accés als continguts d'aquesta tesi queda condicionat a l'acceptació de les condicions d'ús establertes per la següent llicència Creative Commons: http://creativecommons.org/licenses/by/3.0/es/
L'accés als continguts d'aquesta tesi queda condicionat a l'acceptació de les condicions d'ús establertes per la següent llicència Creative Commons: http://creativecommons.org/licenses/by/3.0/es/

This item appears in the following Collection(s)