Handling Non-Functional Requirements in Software Architecture

Abstract:

The requirements are defined at the start of the process of developing a system. And the both types of requirements are equally important and are supposed to be elicited, specified, and represented to ensure a good quality system. Though it has been verified that more attention is given to the functional requirements, when the relationship of NFRs is stronger with software architecture than other activities related to the software development process, especially architectural decision-making. Thus, poor handling of NFRs may affect in the architectural decision making. Therefore, multiple frameworks, methods and tools have been developed to handle the NFRs in software architecture. This work, through a literature review, aims to present the relationship between NFRs and software architecture, how the NFRs are currently handled in software architecture and, present recently developed and proposed tools that may help to adequately handle the NFRs in software architecture in order to deliver a good quality system. And, of which, three recent tools were highlighted, ArchiTech, URML and Breeze.