Agriculture 1
Agriculture 1
Abstract— Prioritizing requirements helps the project team would be possible to arrange them in ascending and
to understand which requirements are most important and descending orders.
most urgent. Based on this finding a software engineer can
decide what to develop/implement in the first release and A systematic approach of prioritization takes some
what on the coming releases. Prioritization is also a useful parameters which are also called key factors or aspects of
activity for decision making in other phases of software prioritization process. Some common aspects like
engineering like development, testing, and implementation. importance, penalty, cost, time, risk, volatility and other
There are a number of techniques available to prioritize the aspects have been discussed in [20] along with their
requirements with their associated strengths and limitations. combination. The detail discussion is out of the scope of
In this paper we will examine state of the art techniques and this paper. Similarly, a discussion on stakeholder can also
analyze their applicability on software requirements domain. be found in [5, 20] regarding prioritization process.
At the end we present a framework that will help the
software engineer of how to perform prioritization process Next section presents an overview of main
by combining existing techniques and approaches. prioritization techniques with their strengths and
limitation. In section III, we summarized these techniques
Keywords- Requirements Engineering, Prioritization and discussed our findings. Based on these findings, we
Framework propose a framework and explain its methodology. Finally,
we conclude our work and set future directions.
I. INTRODUCTION
The goal of prioritization is to support decision making II. LITRATURE REVIEW
process, which has always been a key topic of many There are a number of prioritization techniques that can
subject ranges from economics, military, politics, be applied to software requirements to calculate priority
administration to daily life’s simple activities. Regarding values of each candidate requirement. Each of these
software engineering, prioritization is used in almost every techniques uses a measurement scale to present the output.
phase its life cycle i.e., selecting a project, finalizing the
requirements, designing and developing of modules, Before taking an overview of these techniques lets first
testing, implementation, and even in post implementation examine level of measurements or scales, because each
activities. But unfortunately it becomes more difficult as technique is based on one of them. Table 1 presents a
the subject expands its base criteria. In its simplest form, summary of the scales [7]. It is claimed that all
there comes no need for prioritizing objects if there is only measurement in science can be classified in one of the four
one of it. But with just a couple alternatives, it becomes types i.e., "nominal", "ordinal", "interval" and "ratio”. The
difficult to make a decision based on more than one suggested level of measurement also implies a hierarchy.
criterion. In case of having tens, hundreds or even Assumptions are less restrictive and data analyses rend to
thousands of alternatives, decision-making becomes much be less sensitive. At each level up in the hierarchy, the
more difficult and complex. A number of prioritization current level includes all the qualities of the lowers and
techniques are available in order to deal with different adds something more. Therefore, it is desirable to have a
level of complexity. These techniques are in used in higher level of measurement (e.g., interval or ratio) rather
different domains for supporting decision making. than a lower one (nominal or ordinal).
ordinal median, percentile Monotonic totally ordered Ranking horse race ranking like 1st, 2nd,
increasing set 3rd etc
(order (<))
interval mean, standard deviation, Positive linear affine line interval scale measurement temperature with the Celsius
correlation, regression, (affine) scale
analysis of variance
ratio All statistics permitted for Positive field Estimation of the ratio between a Weight , Mass, length, time,
interval scales as well as similarities magnitude of a continuous quantity plane angle, energy and electric
geometric mean, harmonic (multiplication) and a unit magnitude of the same charge
mean, coefficient of kind .also possesses meaning for
variation, logarithms non-arbitrary zero.
F. Ranking
Ranking is based on an ordinal scale but the
requirements are ranked without ties in rank [27].
Using this technique, the most important requirement
is ranked as 1 and the least important requirement is
Theory W: ranked as n (for n requirements). In order to obtain
the ranks of the requirements, different algorithms
like bubble sort, binary search tree, Quick sort and
Figure 2. Prioritization Techniques other sorting techniques may be used. [5]. However,
in ranking, multiple aspects can be combined by taking the
mean priority of each requirement. This might result in ties
in the requirements that this method wants to avoid [20].
D. Commulative Voting, The $100 test This technique is Medium in granularity and easy in terms
Hundred-Dollar Test is rather subjective method of sophistication [5] and more suitable candidate when the
proposed by Leffingwell and Widrig. Basically, this priorities of a single stakeholder have to be prioritized.
technique is used in brainstorming exercise. In this
approach [26], each of the stakeholders spends money out G. Top Ten Requirements
of $100 to “invest” in purchasing requirements. Once each In this approach, the stakeholders are asked to choose
participant has taken down their points, then next step is of their top-ten requirements from all specified (candidate)
totaling. The written values are connected and list that on requirements. Doing so, they are not bound to assign an
a chart. The requirement that has got the highest score is internal order between the chosen requirements. The
the most important requirement. reason to not prioritize further is that it might create
This is a simple technique that can be easily understood unnecessary conflict when some stakeholders get support
and applied by stakeholders but with greater numbers of for their top priority and others only for their third priority.
requirements it becomes difficult for them to deal with this [27]. It is very easy technique in terms of sophistication as
method. Moreover, this technique is useful when well as useful in the situation of multiple stakeholders with
requirements require human judgment because it is hard to same and equal importance, however, it is extremely
describe quantitatively. In this case, it is heavily based on coarse in terms of granularity [5]. This technique can be
experienced stakeholders whose availability is also an used in conjunction with other techniques to achieve better
issue. results.
The experts then estimate how much effort is required to ranking in combined form i.e., first divide the requirements
build each story. The customer then chooses which stories into priority groups (numerical assignment) and then rank
should be built in the next cycle, based on the time them within each group [22]. Based on these observations,
available and the estimates from the experts [28]. we found that an easier or more efficient technique can be
developed if we combine some existing techniques.
It is a variation of numerical assignment technique and
very suitable to extreme programming. However it offers Based on these findings, in the next section we present
more flexibility than numerical assignment where users are our propose model that will be analyzed against its
asked to essentially divide the requirements into three established objectives.
groups
IV. THE PROPOSED FRAMEWORK
I. Theory W
We presented an overview of some most common
Theory W is also known as Win-Win model [29] is prioritization techniques and approaches in section II.
based on negotiation to resolve any differences of opinion These techniques are not especially for software
among various stakeholders. The principles of this engineering domain, but with some alteration they can be
technique are progress based on predefined plan, risk made so. The main issue in adoption of these techniques is
assessment and risk handling. Before starting the actual deciding; when to use which technique/approach and how.
negotiations, users are asked to rank their requirements Moreover, the number of requirements can vary from 10 to
carefully such that they point out the requirements they are hundreds and even more then hundreds based on the
willing to negotiate and which they are not. Theory W is a software nature. Therefore, a general purpose and unified
major constituent of Value Based Software Engineering software requirement prioritization framework is needed
(VBSE) agenda and principle as well. that could facilitate most of the software systems’
requirements to prioritized.
III. DISCUSSION AND FINDINGS
In order to develop a unified framework for
Requirements of a software system can be prioritized requirement prioritization; we reviewed the existing
using the techniques discussed in the previous sections. techniques and determine their scope in section II and
Each technique has some good quality attributes and identified the quality attributes that our ideal technique
limitations of scope. In Table 3, we present a summary of should have ( see section IV.A). In the light of these
existing techniques based on some parameters. Some are attributes we designed a new technique by combining the
closed to more reasonable result but expensive in time strategies of existing techniques in one (section IV.B).
and/or cost complexity when requirements increase. Some Finally we analyzed the strength of these techniques based
techniques are mainly based on human judgments that are on their desirable attributes (section IV.C).
sometimes not preferred due to two reasons i.e., biasness
parameter of human nature and expert people A. Quality Attributes
unavailability.
After the examining the literature we conclude that
We see that AHP and 100 dollars test are fine in terms there should be a uniform model that could be used as an
of granularity as well as they are based on ratio scale (with upper layer software requirement prioritization technique.
is a good measurement scale for statistical calculations). The desired model or framework should have maximum
Regarding its algorithmic nature, AHP takes lead from 100 benefits with minimum computational overhead flexible
dollars test technique. Complexity and time penalty are enough to meet the requirements of small, medium and
two main disadvantages of AHP as soon as number of even large projects. It should be made automated in its
candidate requirements increase. To overcome this maximum operation. At user perspective, it should be
problem, AHP input can be filter out with 100 dollars test, simple to understand easily i.e., take a list of requirements
or Numerical assessment, because they are very easy. and produces output in a series of releases based on their
Similarly, the output of AHP can be presented with the priorities.
help of B-Tree (which is also algorithmic). AHP can be
made more optimized by using range values instead of The purpose of specifying the above quality attributes
crisp values. One such example can be seen in eXtreme is to validate our proposed model against them. In other
Programming (XP) [31] that uses Planning Game (PG) in words, specified our requirements.
it. Moreover, In PG we can see numerical assignment and
C. Analysis
In this section we analyze our system and determine;
how much we satisfied our desired quality attributes
(section IV.A).
It is still a useful approach for a one with fewer
requirements, as well as for a large amount of
requirements; therefore, it can be referred as unified
model. Figure 3. Proposed Framework