M. Vierhauser, J. Cleland-Huang, J. Burge, P. Grünbacher: The Interplay of Design and Runtime Traceability for Non-Functional Requirements, Proceedings of IEEE/ACM 10th International Symposium on Software and Systems Traceability (SST), pages 3-10, Montreal, QC, Canada, 27 May 2019 Doi: 10.1109/SST.2019.00010
Non-functional Requirements (NFRs) play a unique role in the development of any software-intensive system. They often have a significant impact upon the architectural design and drive critical trade-offs. However, such trade-off decisions are often based on assumptions about future workloads, environmental factors, and anticipated system behavior. From a traceability perspective, it is thus necessary to trace individual NFRs into the design and their associated design rationales, and further forward into the running system in order to monitor and assess the design-time assumptions at runtime. When runtime data indicates that a mismatch has occurred that adversely impacts system performance and/or behavior, measures need to be taken, such as applying critical bug fixes, or refactoring performance bottlenecks. In this paper, we explore five different types of NFRs across the design and runtime phases of the development process. Our approach is illustrated by examples from the Dronology System for Fault Tolerance, Security, Usability, Performance, and other critical qualities.