Intuitionistic Fuzzy Sets in Large-Scale Software Requirement Prioritization

Intuitionistic Fuzzy Sets in Large-Scale Software Requirement Prioritization

Vassilis C. Gerogiannis, Dimitrios Tzimos, Le Hoang Son
DOI: 10.4018/978-1-7998-7979-4.ch021
OnDemand:
(Individual Chapters)
Available
$33.75
List Price: $37.50
10% Discount:-$3.75
TOTAL SAVINGS: $3.75

Abstract

Requirements prioritization (RP) is a crucial process which aims to evaluate candidate software requirements to be implemented in the next release of a software system. RP is often applied iteratively, according to various criteria, by multiple stakeholders, who may have different roles and needs. The problems encountered during the RP of large sets of requirements can be addressed by following a systematic large-scale decision-making (LSDM) process. The aim of this chapter is to propose an LSDM RP process which applies multi-criteria evaluation based on intuitionistic fuzzy sets (IFSs). IFSs are suitable to consider stakeholders hesitation for criteria importance and requirements ratings. The proposed process is supported by a recommender system which provides suggestions to stakeholders and also guide them to collaboratively reach consensus for the final RP. The proposed process is tested using an illustrative example. The results are promising since they demonstrate that the suggested process can effectively support multiple stakeholders to prioritize large requirements sets.
Chapter Preview
Top

Introduction

In this section the background of the areas related to this chapter is presented, focusing on the techniques required for the proposed approach.

Requirements Engineering

Requirements engineering has been identified as one of the most crucial processes in software design and development as it addresses the critical problem of designing the right software for the customer (Aurum & Wohlin, 2005). Poorly organized and expressed requirements, weak relation of requirements to stakeholder needs and unnecessary or unrealistic expectations are among the main reasons why software projects fail (Dick et al., 2017).

Requirements engineering deals with the identification of the objectives and the required functions of a software project, their conversion into services and constraints and their implementation through the assignment of tasks to persons. It is a systematic and disciplined approach to the specification and management of requirements that requires understanding the needs of the stakeholders, prioritization, reaching consensus, identifying and documenting the requirements according to standards and systematically managing them to minimize the risk that a system does not meet the goals (Aurum & Wohlin, 2005).

In large software projects with many requirements, it is not feasible to implement all of the requirements because of resources limitations, such as budget, time and staff. Therefore, the development process delivers requirements in successive releases, where each release contains an incremental number of requirements from all the candidate requirements. The selection of the most important requirements to be developed and delivered first in the early releases is important to meet stakeholders’ demands. The requirements that are less important are left for latter releases (Hujainah et al., 2018).

Requirements engineering encompasses certain core activities such as elicitation, prioritization, analysis, negotiation, documentation (or specification), validation and management of requirements. In literature, various approaches exist, where the activities are presented separately, while others group or merge some activities (Bourque et al., 2014; Pohl & Rupp, 2015; Pressman, 2015; Sommerville, 2011).

The RP is one of the key software engineering activities as it helps determine the most important requirements among a pool of requirements and define the order of implementation (Achimugu et al., 2014). The RP process assists stakeholders in selecting the most important requirements of a system and facilitates release planning, and balancing of available resources, budget and time. Additionally, it supports balancing business benefit against the implementation cost, selecting a subset of the requirements that still satisfy the customer and resolving disagreements between stakeholders (Berander & Andrews, 2005).

The RP is an iterative activity which aims to rank the candidate requirements under various criteria. The most frequently used criteria for prioritizing requirements are (Hujainah et al., 2018):

  • Importance: This is a multi-sided criterion as it varies according to the stakeholders’ perspective, knowledge and role.

  • Cost: The implementation cost is one of the most important criteria from the organization’s perspective, since the budget restricts the available resources.

  • Business value: Alignment with business goals and business value in the long run is of high importance for the RP.

  • Other criteria include value, dependency, risk, effort, penalty, software goals etc.

For the purpose of the RP numerous techniques have been developed aiming to increase the accuracy, the efficiency and the reliability and raise the limitations, since each technique comes with specific restrictions and drawbacks based on the project context (Bukhsh et al., 2020). The most popular techniques could be categorized based on the following approaches:

  • AHP: The RP techniques based on the AHP (Analytic Hierarchy Process) approach follow a pairwise comparison of the criteria and the candidate features. It is considered the most accurate technique but it suffers from bad scalability and large computational complexity (Achimugu et al., 2014).

  • Fuzzy logic: The RP techniques based on fuzzy logic aim to include stakeholders’ uncertainty (Achimugu et al., 2014).

  • Advanced data processing: Many recent techniques include data mining and machine learning practices to improve effectiveness and automation (Bukhsh et al., 2020).

  • Numerical assignment: These techniques aim to group requirements into different categories.

  • Cost – Value: These RP techniques focus to identify the requirements value against their implementation cost.

Key Terms in this Chapter

Requirements Engineering: The subset of systems engineering concerned with discovering, developing, tracing, analyzing, qualifying, communicating and managing requirements that define the system at successive levels of abstraction ( Dick et al., 2017 ).

Recommender system: A specific type of advice-giving or decision support system that guides users in a personalized way to interesting or useful objects in a large space of possible options ( Felfernig et al., 2018a ).

Complete Chapter List

Search this Book:
Reset