One of the critical activities in software development is Requirements Selection, which is to find an optimal subset of the software requirements (features) with the highest value for a given budget. The values of the requirements, however, may depend on one another. Such Value Dependencies have not been considered by the existing requirements selection methods, leading to user dissatisfaction and loss of value and reputation in software projects. To mitigate this, we propose Dependency-Aware Requirements Selection (DARS) as an expert system, which explicitly accounts for value dependencies in software projects. At the heart of DARS is an Integer Linear Programming (ILP) model that reduces the risk of value loss by considering value dependencies among the requirements. These value dependencies are identified from the preferences of the users for the requirements. The validly of DARS is verified by studying a real-world software project as well as carrying out simulations. Our results demonstrate a significant reduction in value loss when DARS is employed. Also, the ILP model of DARS proved scalable to large requirement sets (experimented for up to 3000). The results of our study can be extrapolated to a wide range of expert systems that concern selecting value-dependent items.
- Integer programming