P. Haindl, R. Plösch, C. Körner: An Operational Constraint Language To Evaluate Feature-Dependent Non-Functional Requirements, 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), Portorož , Slovenia, August 26-28, 2020, accepted for publication.
Features in a software system usually must satisfy different quality expectations, arising e.g., from their usage context or the long-term strategy of the manufacturer. As an example, the maintainability of the source code will likely be more important if the associated feature is frequently used by customers or if it has strategic value for the software manufacturer. Accordingly, features that process user-generated near real-time data will likely impose higher requirements towards performance efficiency than other features of the same application for maintaining the user profile. In order to practically approach these qualitative subtleties particularly in a DevOps context, we need an operational means to specify and automatically evaluate the fulfillment of these feature-dependent non-functional requirements, e.g., through quantitative constraints. However, the multitude of systems involved in DevOps and the heterogeneous data types of measures accruing on these systems hinder their effortless acquisition and automated evaluation. In this paper we present an operational constraint language for specifying and evaluating feature-dependent non-functional requirements quantitatively. Our language provides a compact set of time series operations, time filters, and comparison operators and allows to define metrical and ordinal threshold values. A comprehensive evaluation based on a large-scale software project with measures spanning the period over one year shows the performance and suitability of the approach for evaluating feature-dependent non-functional requirements specially in DevOps.