Abstract
AbstractManaging non-functional requirements (NFRs) has been a challenge in software development for many years. These requirements are typically used to make important architectural decisions early in the project, which can be problematic if they are uncertain or unstable. When this uncertainty is not considered when designing the software architecture, changes are often costly and sometimes even unfeasible. Some empirical studies on the subject have already been carried out, but few have focused on the perspective of professionals with extensive experience on the changes and uncertainties of NFRs. This work aims to expand the understanding about the management, clarity and validation of NFRs to fill this gap in the literature. To achieve this goal, a survey was carried out with professionals to find out how NFRs were managed and validated. For the research design, instead of generic questions, the questionnaire focused on some specific types of NFRs to induce participants to recall and report concrete situations. As a result, 40 valid responses were obtained, most from professionals with more than 10 years of experience. The results reveal that a significant number of NFRs were defined after the delivery of software increments (more than 30%) and that revision and change occurred in about a third of the NFRs. Hence, this study presents evidence that NFRs, as the functional ones, can also be uncertain and change frequently, requiring agile approaches and techniques to evolve the software architecture to consider this uncertainty.
Publisher
Springer Nature Switzerland
Reference40 articles.
1. Lecture Notes in Computer Science;W Alsaqaf,2017
2. Ambler, S., Lines, M.: Introduction to Disciplined Agile Delivery - Second Edition. Project Management Institute, July 2020
3. Ambler, S.W.: Agile modeling. Wiley, Nashville (2002)
4. Ameller, D., Ayala, C., Cabot, J., Franch, X.: How do software architects consider non-functional requirements: an exploratory study. In: IEEE (2012)
5. Ameller, D., Franch, X., Cabot, J.: Dealing with non-functional requirements in model-driven development (2010)