Non-functional requirements as drivers of software architecture design
ColaboratorFranch Gutiérrez, Xavier; Universitat Politècnica de Catalunya. Departament de Llenguatges i Sistemes Informàtics
Document typeDoctoral thesis
PublisherUniversitat Politècnica de Catalunya
Rights accessOpen Access
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.
- Tesis - TDX-UPC