DRank: A semi-automated requirements prioritization method based on preferences and dependencies
Abstract There are many types of dependencies between software requirements, such as the contributions dependencies (Make, Some+, Help, Break, Some-, Hurt) and business dependencies modeled in the i * framework. However, current approaches for prioritizing requirements seldom take these dependencies into consideration, because it is difficult for stakeholders to prioritize requirements considering their preferences as well as the dependencies between requirements. To make requirement prioritization more practical, a method called DRank is proposed. DRank has the following advantages: 1) a prioritization evaluation attributes tree is constructed to make the ranking criteria selection easier and more operable; 2) RankBoost is employed to calculate the subjective requirements prioritization according to stakeholder preferences, which reduces the difficulty of evaluating the prioritization; 3) an algorithm based on the weighted PageRank is proposed to analyze the dependencies between requirements, allowing the objective dependencies to be automatically transformed into partial order relations; and 4) an integrated requirements prioritization method is developed to amend the stakeholders’ subjective preferences with the objective requirements dependencies and make the process of prioritization more reasonable and applicable. A controlled experiment performed to validate the effectiveness of DRank based on comparisons with Case Based Ranking, Analytical Hierarchy Process, and EVOLVE. The results demonstrate that DRank is less time-consuming and more effective than alternative approaches. A simulation experiment demonstrates that taking requirement dependencies into consideration can improve the accuracy of the final prioritization sequence.