Relational-Model Based Change Management for Non-Functional Requirements: Approach and Experiment M. Kassab, O. Ormandjieva Department of Software Engineering and Computer Science Concordia University Montreal, Canada {moh_kass , ormandj}@cs.concordia.ca M. Daneva Department of Information Systems University of Twente Enschede, the Netherlands m.daneva@utwente.nl Abstract In software industry, many organizations either focus their traceability efforts on Functional Requirements (FRs) or else fail entirely to implement an effective traceability process. Non- Functional Requirements (NFRs) such as security, safety, performance, and reliability are treated in a rather ad hoc fashion and are rarely traced. This is mainly because of the unique nature of NFRs. They are subjective, relative and they tend to become scattered among multiple modules when they are mapped from the requirements domain to the solution space. Furthermore, NFRs can often interact, in the sense that attempts to achieve one NFR can help or hinder the achievement of other NFRs at particular software functionality. Such an interaction creates an extensive network of interdependencies and tradeoffs among NFRs which is not easy to trace. In a previous work, we proposed a conceptualization of NFRs through the NFRs Ontology. In this paper, we extend the previous work by proposing a change management mechanism for tracing the impact of NFRs on the other constructs in the ontology such as FR or NFR operationalization and vice versa, and providing a traceability mechanism using Datalog expressions to implement queries on a relational model-based representation for the ontology. The proposed traceability queries are then evaluated through a multi- project variation quasi-experiment on regression testing conducted in the industry. I. INTRODUCTION Software systems are characterized both by their functional behavior (what the system does) and by their nonfunctional behavior (how the system behaves with respect to some observable attributes like reliability, reusability, maintainability). In the software market place, in which functionally-equivalent products compete for the same customer, Non Functional Requirements (NFRs) become more important in distinguishing between the competing products. However, in practice, NFRs receive little attention relative to Functional Requirements (FRs) [1]. This is mainly because of the nature of these requirements which poses a challenge when taking the choice of treating them at an early stage of the development process. NFRs are subjective, relative and they tend to become scattered among multiple modules when they are mapped from the requirements domain to the solution space. Furthermore, NFRs can often interact, in the sense that attempts to achieve one NFR can help or hinder the achievement of other NFRs at particular software functionality. Such an interaction creates an extensive network of interdependencies and tradeoffs among NFRs which is not easy to trace or estimate [2]. In a previously published work [3], we proposed a formal model for NFRs and their relations. The model was captured though a Common Foundation for NFRs which was realized by developing the NFRs Ontology. A knowledge-based representation such as the one we presented in [3], is necessary to support the traceability of NFRs within a system and to provide practitioners and researchers with a valuable alternative to current requirements engineering techniques. The research presented in this paper reports on our first usage of the NFRs Ontology as a vehicle towards supporting those requirements engineering (RE) activities that pertain to NFRs. In particular, the purpose of this work is to propose a mechanism to improve the NFRs traceability practice. In software industry, many organizations either focus their traceability efforts on FRs [1] or else fail entirely to implement an effective traceability process [4]. NFRs such as security, safety, performance, and reliability are treated in a rather ad hoc fashion and are rarely traced. Furthermore, the tendency for NFRs to have a global impact upon the software system necessitates the need to create and maintain an overwhelming number of traceability links. On the other hand, the appropriate support for NFRs traceability proposed in this paper can return significant benefits to an organization through helping analysts understand the impact of a proposed change upon critical system qualities and enabling them to maintain these qualities throughout the lifetime of a software system. The research questions we address in this work are: What are the critical areas requiring traceability attention when dealing with change management of NFRs? How are these areas mapped to the concepts and relationships defined in the NFRs Ontology? In this paper, we present a formal implementation of the answers derived from the above questions. The formal implementation was realized through Datalog queries [5] on a relational model-based representation for the NFRs ontology [3]. The proposed traceability for NFRs was further evaluated through a multi-project variation quasi-experiment on improving the quality of the regression testing conducted at NOKIA office in Montreal. The remainder of this paper is organized as follows: Section II provides a brief overview of related work. Section III summarizes the NFRs Ontology, Section IV presents the