An integrated approach for simultaneous prioritization of functional and nonfunctional requirements / Mohammad Dabbagh - Mohammad, Dabbagh (2015)

(untitled)
Requirements prioritization, as one of the important activities in the requirements engineering phase, is the process of giving precedence to one requirement over another to help accomplishing software projects on a predefined schedule. Over the recent past years, a substantial amount of research effort has been dedicated to proposing various approaches to perform requirements prioritization. Although these approaches have contributed a lot to the software development process, an in-depth study of current research work has found that they can only be applied with functional requirements or non-functional requirements separately though most have been adopted with respect to functional requirements. However, it is not an effective way to prioritize functional and non-functional requirements separately since both types of requirements are interrelated and have an influence on each other. Moreover, considering merely each type of requirements separately during the requirements prioritization process may lead to failure in the final software product, or at least, may result in a poor-quality system because both types of requirements have a serious impact on each other. To achieve a high-quality software system, both functional and non-functional requirements need to be taken into consideration together during the prioritization process. Hereupon, fulfilling this gap is considered as a major motivation toward conducting this research to provide software researchers and practitioners with an approach which is capable of integrating the process of prioritizing functional and non-functional requirements simultaneously. In this research, an approach called Integrated Prioritization Approach (IPA), is proposed, which aims to simultaneously integrate the process of prioritizing functional and non-functional requirements. IPA allows practitioners to prioritize both functional and non-functional requirements simultaneously in an integrated manner by establishing their relationships, ultimately producing the prioritized lists of functional and noniv functional requirements separately. It utilizes triangular fuzzy number to prioritize nonfunctional requirements based on their importance degree for achieving functional requirements. Furthermore, IPA prioritizes functional requirements according to the importance degrees of non-functional requirements using weighted average decision matrix. Two successive controlled experiments were conducted to evaluate IPA against two state-of-the-art approaches. In the first experiment, IPA was compared with AHPbased approach, whereas in the second experiment, IPA was compared with HAMbased approach. In both experiments, evaluation was based on measuring three properties: actual time-consumption, accuracy of results, and ease of use. Statistical analysis of the experimental results obtained from the two controlled experiments shows the better performance of IPA compared to both AHP-based approach and HAM-based approach, with respect to actual time-consumption, accuracy of results, and ease of use. IPA requires a time reduction of 43% and 20% compared to AHP-based approach and HAM-based approach respectively, to perform the prioritization task. Furthermore, IPA is validated to be easier to use and produces more accurate results compared to these two approaches at 95% confidence level (i.e. p<0.05). Results extracted from the conducted experiments provide practitioners with valuable information to choose the most appropriate approach for a given prioritization problem, and also could be used as a guideline by interested researchers for identifying trends before conducting a study in future.