As part of Requirements Engineering, “Elicitation” is the phase where an analyst collects information from the stakeholders, clarifies the problems and the needs of the customers and users, tries to find the best solutions, and makes its planning on what software system will be developed. During elicitation, to get well-defined requirements, a consensus among the different stakeholders is needed. There are several elicitation techniques in the literature; however every technique faces the same problem: each stakeholder has different requirements and priorities, which potentially produces conflicting situations. Therefore, this situation points out Requirements Prioritization as a relevant research area to define the requirements’ level of importance. Nevertheless, often the strategies implemented to solve conflicts among stakeholders are inadequate; for example, weighting requirements can be problematic because sometimes weights are inconsistent and lead to confusion about which are the most essential customer requirements. The prioritizing process must hold stakeholder satisfaction considering high-priority requirements first. However, practical experience shows that prioritizing requirements is not as straightforward task as the Literature suggests. In any case, clearly defining a way of balancing preferences on requirements is essential to the elicitation process. The remainder of this chapter is structured as follows. Section 2 describes a conceptual framework to describe several prioritization proposals, which are characterized in Section 3. Future trends are presented afterwards.
Some comparisons of elicitation methods have clarified common features. Firstly, the comparative study by Thomas and Oliveros (2003) is centralized in properties and limitations of five of the most significant methods for eliciting requirements in goal-oriented requirements engineering. This comparison is organized from the viewpoint of goal acquisition with especial emphasis in goal elicitation. Secondly, based on an evaluation framework and influenced by an industrial application (Karlsson & Ryan, 1997), characterizes six different methods for prioritizing software requirements. The objective of Karlsson’s evaluation is outlining the methods’ behavior for a particular experience, thus the results obtained are not supposed to be generalized by any environment for any application. This evaluation framework is based on inherent characteristics, objective measures and subjective measures.
Our classification framework (Figure 1) is structured into two building blocks – design features and cognitive features.
A conceptual framework for comparison
The Design category is composed of four elements that consider different aspects: Process, Stakeholders, Implementation and Requirements. The specific features of each prioritization method are categorized by the Process element. It considers answering some questions, such as: Does the process detect inconsistency? Is the process referred to as a systematic or a rigorous process? How we address the problem of dealing with different priorities? Conceptually, is it based on goal decomposition? Does it use a priority or an importance order? The framework also characterizes how prioritizing methods consider stakeholders. There are two parameters to be analyzed here: the former refers to the kind of information the method provides with respect to stakeholders. Does the method analyze which stakeholder prioritized a goal, and which priority degree was assigned? The second parameter considers stakeholders geographically distributed.
Key Terms in this Chapter
Requirements Traceability: The ability of manage all concern about a requirement. The reason for its existence, which constraints has the implementation of it, which dependent requirement has, the person who has defended it and so on.
Candidate Requirements: A set of requirements which probably requirements engineer would decide to be implemented first.
Requirements Interdependencies: When one requirement depends in a big percentage on the implementation of others requirements.
Nonfunctional Requirements: There are quality attribute describing systems needs, such as performance, safety, security, traceability.
Negotiation Process: When at least two people groups interchange opinions in order to resolve conflicts between stakeholders with satisfaction for each group.
Goal Decomposition: When a goal can be expressed in terms of logical combinations of subgoals.
Distributed Stakeholders: Participants geographically situated in distant places that are involved in a software development project.
Conflicts Between Requirements: Are conflicts between stakeholders on satisfactory level of a requirement, imprecise requirements or opposite candidate requirements.
Rigorous Method: A method which has consistent and well defined steps to follow.
Cognitive Features: The use of cognitive sciences such cognitive psychology and cognitive informatics to characterize people according to some personal characteristics or cognitive profiles.