Upload
trankhanh
View
224
Download
5
Embed Size (px)
Citation preview
105
CHAPTER 7
A FUZZY BASED APPROACH FOR EARLY REQUIREMENT
PRIORITIZATION
7.1 Introduction
The success of a software project depends upon how intensively it accomplishes its
intended purpose by meeting all stakeholders concerns pertaining to project
requirements such as cost, schedule, performance etc. After successful requirement
elicitation process the next challenge is to prioritize the requirement. There are various
stakeholders involved in the project and each stakeholder has consolidated concerns
over requirements. Each stakeholder has individual concerns facilitate to obtain
preference orderings or priority of software requirements and consolidated concerns
assist the software developer and analyst to obtain consensual preference priority that
would satisfy all stakeholders involved in the project. Requirement prioritization is one
of the most important activity of requirement engineering. One characteristic of
effective requirements is that they are explicitly prioritized .Requirement prioritization
is all set to prioritize the needs and requirement of the stakeholders. Requirement
Prioritization provides support to project manager and analyst to resolve conflicts, plan
for staged deliveries and make the necessary trade-off decisions, opting balancing
strategy is to drop or defer low priority requirements to later release and implementing
higher priority requirements. It’s difficult for an analyst to decide which of his
requirements are most important; gaining agreement among multiple stakeholders with
diverse expectations is even more challenging. Analysts prioritize requirements initially
from the perspective of how valuable each requirement is to them. There are various
factors on the basis of which an analyst assigns a priority to requirements. The
challenge is to decide which factor is used as a basis for requirement prioritization and
selection of appropriate technique for requirement prioritization. In proposed
106
requirement elicitation framework requirements are prioritized in early phase of
requirement engineering as post elicitation step. This category of prioritization at early
stage of requirement engineering is known as early requirement prioritization. In this
research study various methods of requirement prioritization are studied and analyzed
and finally a fuzzy based method for early requirement prioritization is proposed on the
basis of identified factors.
7.2 Categories of Requirement Prioritization
The important factor for requirement prioritization is to decide when to prioritize the
requirement. There are two categories of requirement prioritization are as follows.
7.2.1 Early Requirement Prioritization
In this category of prioritization gathered requirements are prioritized at early stage of
requirement engineering as post elicitation phase. This type of prioritization is known as
early requirement prioritization. In this category there are identifiable requirements
gathered from stakeholders, prioritization is done on the basis of some technique and
give each requirement a priority rating like High, Medium, Low. The results of
prioritization are used in further stages of requirement engineering.
7.2.2 Progressively Requirement Prioritization
In this category of prioritization gathered requirements progressively considered
whether to prioritize them. If there are any requirements that have Low value, then tag
them L. Use the idea of customer satisfaction and customer dissatisfaction to help other
analyst make choices. Part of the reason for this progressive prioritization is expectation
management. After requirement elicitation process requirements are gathered analysts
often think that means once they are gathered they will definitely be implemented. If the
analyst progressively talking about prioritization throughout the project, they may be
able to understand the concept required for effective requirement prioritization
technique. At this point an idea is developed that it is not possible to implement all the
requirements, but there is no point in saying this just once. To effectively manage
expectations there is a need to mention the need for requirement prioritization.
107
7.3 Requirement Prioritization Techniques
There is a growing acknowledgment in industrial software development that
requirements are of varying importance and there is need for methods capable of
prioritizing requirements. Reasons for this include that not all requirements can usually
be met with available time and resource constraints. Efficient and trustworthy methods
for prioritizing requirements are therefore strongly demanded by practitioners. There are
several methods of requirement prioritization which are studied in this research study.
(i) Analytic Hierarchy Process (AHP)
Another well-known prioritization technique based on ratio scale results is called
Analytic Hierarchy Process (AHP). AHP is developed by Saaty (1980) and it is
designed for complex decision making. The idea of AHP is that it compares all possible
pairs of hierarchical requirements to determine the priority .It requires n*(n-1)/2 pair-
wise comparisons to settle the priority, it is trustworthy and insensitive to judgmental
errors [157]. The priorities are relative and based on a ratio scale, which allows for
useful assessment of requirements in the future.
(ii) Hierarchy AHP
This method is same as AHP but requires slightly less number of comparisons to
prioritize the requirements. It uses the hierarchical structure to establish relationship
between the requirements [150] thereby reducing the number of comparisons and
amount of redundancy. Thus it is more sensitive to judgmental errors than AHP. This
can reduce the number of redundant comparisons, but the trade-off is that the ability to
identify inconsistent judgments is also reduced.
(iii) Minimal Spanning Tree
The pair-wise comparison in AHP introduces redundancy indicating inconsistent
judgments if decision makers were perfectly consistent. Minimal spanning tree removes
this redundancy .In this method the decision maker create a minimal spanning tree in a
directed graph, it requires only n-1 comparisons, takes least effort and is very fast but it
is more sensitive to judgmental errors since all redundancy has been removed.
108
(iv) Bubble Sort
It is one of the simplest and most basic methods for sorting elements [148] in
requirement prioritization, sort’s requirements according to their priorities. This method
is closely related to AHP as it requires same number of pair-wise comparisons as in
AHP , requirements are ranked according to their priority on an ordinal scale.
(v) B Tree
B-Tree[149] are balanced search trees, internal nodes having the variable number of
child nodes with in some pre-defined range .When the data is inserted or removed from
a node, its number of child nodes changes. B-Tree is kept balanced by requiring that all
nodes are at same depth. B Tree is a dynamic method for requirement prioritization. It is
seen that the number of comparisons is dramatically reduced for B-Tree compared with
AHP. This is significant when there are a large number of requirements that need to be
prioritized, but only a small number of comparisons is required.
(vi) Priority Groups
In software projects one group of requirements can be clearly different in terms of
importance than another set. It divides the requirements into separate groups based on a
rough prioritization thereby reducing the required effort. These groups are internally
ranked and then the requirements inside these sets are ranked by using a suitable
approach for ordering the requirement. This reduces risks of fixing priority in wrong
order. The numbers of comparisons are same as binary search tree.
7.4. Comparison of Requirement Prioritization Techniques
All the methods discussed so far are compared on the basis of the criterion given below.
Table 7.1 suggests few potential advantages and disadvantages of the methods discussed
above. From the results provided in table 7.1, it is seen that AHP can provide the most
reliable result of the six methods, but it requires the largest number of decisions and the
longest time consumption. Minimum spanning tree involves the smallest number of
decisions and the shortest amount of time consumption, but it provides the least reliable
result and the lowest fault tolerance. Bubble sort is the easiest method to use and it can
109
provide relatively reliable results and relatively good fault tolerance, but it involves the
largest number of decisions. Hierarchy AHP and binary search tree reside in the middle.
They produce less reliable results than AHP and bubble sort, but also take fewer
decisions and less time to perform than AHP and bubble sort. Minimum spanning tree
requires less effort and time to perform the prioritization process, but it contains a high
risk of misdirecting project resources and time since it provides low reliable results.
AHP and bubble sort methods can provide reliable results, but they need large amounts
of effort and time to perform. B-Tree is a well established method for sorting elements.
The idea of B-Tree is that its internal nodes can contain a variable number of children
nodes .The complexity of B-tree is О (t*logt n) and the complexity of AHP is O(n2). It
is seen that the number of comparisons is dramatically reduced for B- Tree compared
with AHP. This is significant when there are a large number of requirements that need
to be prioritized, but only a small number of comparisons are required. But the
drawback of this technique it is not reliable as the accuracy of this technique is
unknown. It is seen that no one of the prioritization method is perfect among these six
methods especially in large scale project .In large scale projects requirements set are
very large, and the most important challenge is to prioritize the requirement. The above
discussion conclude that for early requirement prioritization an effective approach is
needed ,which supports analysts to easily prioritize the requirements during
implementation phase especially in large scale projects.
The proposed fuzzy based approach for requirement prioritization involves n-1
comparisons as compared to other technique and also supports grouping of prioritized
requirement suitable for large scale projects. The fuzzy based approach is easy to
implement and the requirements are prioritized using fuzziness as fuzzy inference
system. The FIS uses knowledge base and rules defined in FIS as a basis for decision
making in requirement prioritization technique. The proposed approach is easy to
implement, reliable, cost effective, less time to perform and fault tolerant in nature. The
results obtained using fuzzy based approach are always appreciable as compared to
other techniques and provide support to analyst in decision making related to
requirement prioritization.
110
Methods Concept No of
Comparison
s
Ease of
use
Reliability Size of
Project
Fuzziness Complexity
Analysis
Analytic
Hierarchy
Process
Pair-wise
Comparison
n*(n-1)/2 Easy High Medium Not
Supported
O(n2)
Fuzzy AHP
Pair-wise
Comparison
< n*(n-1)/2 Easy High Medium Supported O(n2)
Spanning
Tree Matrix
Pair-wise
Comparison
n-1 Difficult Low Medium
Large
Not
Supported
О(log n)
Bubble Sort
Comparison
of Adjacent
requirement
n*(n-1)/2 Very
easy
Medium Small Not
Supported
O(n2)
B -Tree
Comparison
of Adjacent
requirement
n*(n-1)/2 Very
easy
Medium Medium
Large
Not
Supported
О (t*logt n)
Priority
Group
Relationship
Matrix
n-1 Difficult Low Medium Not
Supported
О (n log n)
Table 7.1: Comparison of Prioritization Methods
111
7.5 Requirement prioritization factors
There are various requirement prioritization factors on the basis of which analyst can
prioritize the requirements. Selecting right prioritization factor is the key to successful
prioritization process. In this work various factors are studied [159][160][161] shown in
the table 7.2.
Requirement
Prioritization
Factor
Description Project
support
Impact on
Prioritization
Business value At the time of implementation, different set of
requirements will have different business
value.
Small Low
Risk The requirements are prioritized by the risks
associated with their implementation.
Small Low
Cost The implementations of different set of
requirements have different development time
or cost.
Small Low
Complexity Level Related to prioritizing the requirement by their
estimated Complexity level to implement.
Large High
Requirements
stability
Some requirements are relatively stable as
compared to others. Whereas other set of
requirements are very much subject to change
at the time of implementation.
Large Medium
Importance to
customers
In software projects some requirements will be
critical and important to customers, whereas
others will be less important though still
mandatory.
Large High
Different kinds of
requirements
Different categories of requirements may need
different approaches to prioritize the
requirements.
Small Medium
Reusability Requirements reusability is defined as the
ability to use in software project requirements
that have already been used before in other
software projects
Large High
Table 7.2: Requirement prioritization factors
The above table shows list of various prioritization factors. There are 8 prioritization
factors which are identified after critical analysis of various literatures and methods.
112
The study shows the functions, impact, and project support of various factors in
prioritization process. The analysis suggests that different factors have different
behavior and impact during requirement prioritization.
7.6 Problem Definition
The above discussion justifies the importance of requirement prioritization in
commercial software development has been established. Yet there has been little
progress to prioritize the requirements either theoretical or practical, on the mechanisms
for requirement prioritization. One problem with requirements is, there are many
requirements related to the project in large scale as well as in small scale projects. So
there is a need to select or choose the requirements, which of the requirement is
implemented in different versions of the product. The gathered requirements are
required to be put into an order of some priority, in other words there is a need to
prioritize the requirements. Decisions about requirement prioritization are critical
because they involve different factors for a set of stakeholders and these factors are
often conflicts with other stakeholders. Also, as there are many stakeholders with
different goals and objectives, it is difficult to conclude into an agreement about
requirement priorities. It is evident from above discussion that most of the approaches
and techniques proposed in recent research to prioritize the requirements have not been
widely adopted. These approaches are too complex, time consuming, or inconsistent and
difficult to implement. In this work a new approach to early prioritize requirements is
proposed that is practical and easily implemented.
7.7 Background of Fuzzy Inference Systems
Fuzzy Logic is a powerful problem-solving methodology to deal with imprecision and
information granularity [154] [155]. A fuzzy model is used when the system is not
suitable for analysis by conventional approach or when the available data is uncertain,
inaccurate or vague. Fuzzy Logic starts with the concept of fuzzy set theory. It is a
theory of classes with sharp boundaries and considered as an extension of the classical
set theory. Classical theory requires high understanding of the system, whereas fuzzy
logic is completely empirical and relies on experience and knowledge rather than the
technical understanding of the subject for modeling the complex system [152] [153].
113
A fuzzy inference system (FIS) tries to derive answers from a knowledge base by using
a fuzzy inference engine. The inference engine which is considered to be the brain of
the expert systems provides the methodologies for reasoning around the information in
the knowledge base and formulating the results. The membership function of a fuzzy set
corresponds to the indicator function of the classical sets. It can be defined in the form
of a curve that explains how each point in the input space is mapped to a membership
function value or a degree of truth table. There are various shapes of a membership
function, triangular, trapezoidal and bell curves. Fuzzy Inference Systems are
conceptually very simple. An FIS have three stages named, input, processing and output
stage. The input stage maps the inputs like deadline, execution time, and so on, to the
appropriate set of membership functions and truth values. The processing stage calls
each appropriate rule and generates result for each rule. After that it then combines the
results of all the rules designed. In the last stage, output stage converts the combined
result back into a specific set of output values [151]. The five steps toward a fuzzy
inference are as follows:
Fuzzifying Inputs
Applying Fuzzy Operators
Applying Implication Methods
Aggregating Outputs
Defuzzifying Results
Below is a quick review of these steps. Fuzzifying the inputs is the process of
determining the degree to which they belong to each of the appropriate fuzzy sets by
means of membership functions. Once the inputs have been fuzzified, the degree of
each part of the antecedent has been satisfied for each defined rule is known. If the
antecedent of a given rule has more than one part, the fuzzy operator is applied to obtain
one value that represents the result of the antecedent for that rule. The implication
function then modifies that output fuzzy set to the degree specified by the antecedent.
The decisions are based on the testing of all of the rules in the Fuzzy Inference System
(FIS), the results from each rule must be combined in order to make the final decision.
Aggregation is the process by which the fuzzy sets that represent the outputs of each
114
rule are processes into a single fuzzy set. The input for the defuzzification process is the
aggregated output fuzzy set and the output is then a single crisp value [151].
7.8 Requirement Prioritization Using Fuzzy system
The proposed model for early requirement prioritization has an input stage consisting of
three linguistic variables. The output stage consists of one linguistic variable called
priority rating Pr. The input and output variables are mapped into fuzzy sets using
appropriate membership functions. The shape of the membership function for each
linguistic term is determined by the expert. There are 27 rules specified for fuzzy
inference system. These rules are aggregated for the output. The output of fuzzy
inference system is priority rating Pr. If Pr value is high , the more important is the
requirement. The requirements with high priority are considered as high priority
requirements and implemented in first phase of implementation process.
7.8.1 Selection of Requirement Prioritization Input Attributes
The success of requirement prioritization depends on the selection of factors on the
basis of which the analysts prioritize the requirements. In this work various factors are
studied and analyzed as shown in table 7.2 .In fuzzy based early requirement
prioritization approach, requirements are prioritized using fuzzy based system. After
critical analysis of various factors on the basis of their role, project support and impact
of prioritization process, three attributes are identified which gives better results in
requirement prioritization process. These factors are as follows.
1. Complexity Level
2. Degree of Reusability
3. Importance to customer
These three factors play an important role in prioritization of requirements especially in
large scale projects. The impact of identified factor on requirement prioritization is high
as compared to other factors. The fuzzy based approach for early requirement
prioritization is proposed for large scale project where the requirements set is large. The
three factors supports large scale projects as shown in table 7.2.In fuzzy based approach,
linguistic inputs are used as input to fuzzy based system. The three factors selected for
prioritization are worked as linguistic inputs .Considering these factors one can easily
prioritize the requirement. Not all defined factors are relevant to every software project,
115
and the relative importance of the defined factors is different for each project. And, within a
project, the relative importance is not the same for all the project stakeholders. After critical
analysis of identified factors various metrics are defined .The impact of these metrics are shown
in the table 7.3
Input
Attributes
Metrics Definition Value
Complexity
Level
Interface Complexity [IC] Defines the Ext/Int interface
complexity
Low Level
Medium Level
High Level
User Complexity [UC] Defines the users complexity
System Feature Complexity [SFC] Defines the system features
complexity
Design Constraint Imposed [DCI] Defines the total no of
constraints imposed on the
system
Degree of
Reusability
Observability [OBS] [OBS] measures how easy it is
to observe a component.
Low Degree
Medium Degree
High Degree
Existence of Meta-Information [MI] The existence of [MI] indicates
whether the[MI] of the target
component is provided.
Customizability [CST] [CST] indicates the built-in
capability for supporting the
customization.
Understandability [UDS] [UDS] indicated the
understanding of components
Portability [PRT] [PRT] indicated the portability
of components
Importance
to customer
Functionality Usage [FU] [FU] indicates the important
functionality of the system
Less Important
Intermediate
Importance
High
Importance
Customer Satisfaction [CS] [CS] indicates the customer
satisfaction of the customer in
the system
Table 7.3: Requirement prioritization Input attributes
116
7.8.2 Proposed Algorithm
1. Using Fuzzy Inference System to Requirement Prioritization.
2. Defining FIS variables and fuzzification of the input variables using membership
function editor
3. Specifying rules for Fuzzy inference system using Rule Editor for requirement
prioritization problem.
4. Rule Evaluation
5. Aggregation of the rule output
6. Defuzzification of the output value
7.8.3 Description of Algorithm
Step 1: Using Fuzzy Inference System to Solve Requirement Prioritization
problem.
Fuzzy logic starts with the concept of a fuzzy set. A fuzzy set is a set without a crisp,
clearly defined boundary. A membership function (MF) is a curve that defines how
each point in the input space is mapped to a membership value between 0 and 1. There
are five primary GUI tools for building, editing, and observing fuzzy inference systems
in Fuzzy Logic Toolbox:
1. Fuzzy Inference System (FIS) Editor
2. Membership Function Editor
3. Rule Editor
4. Rule Viewer
5. Surface Viewer
117
In this work Mamdani method is used. This method is widely accepted for capturing
expert knowledge. It also allows us to describe the expertise in more intuitive, more
human like manner. In Mamdani method the fuzzy sets from the consequent of each
rule are combined through the aggregation operator and the resulting fuzzy set is
defuzzified to yield the output of the system.
Figure 7.1: FIS editor for Requirement Prioritization Problem
118
Step 2: Defining FIS variables and fuzzification of the input variables using
membership function editor
Figure 7.2: FIS variable Complexity Level
Figure 7.3: FIS variable Reusability
119
Figure 7.4: FIS variable ITC
Figure 7.5: FIS output variable Pr
120
Step 3: Specifying rules for Fuzzy inference system using Rule Editor for
Requirement Prioritization Problem.
Complexity Level
Degree of
Reusability
Importance to
Customer
Priority
Rating
Low Low Low Low
Low Low Medium Low
Low Low High Low
Low Medium Low Low
Low Medium Medium Medium
Low Medium High Medium
Low High Low Medium
Low High Medium Medium
Low High High High
Medium Low Low Low
Medium Low Medium Medium
Medium Low High Medium
Medium Medium Low Medium
Medium Medium Medium Medium
Medium Medium High Medium
Medium High Low Medium
Medium High Medium Medium
Medium High High High
High Low Low Medium
High Low Medium Medium
High Low High Medium
121
High Medium Low Medium
High Medium Medium Medium
High Medium High High
High High Low Medium
High High Medium High
High High High High
Table 7.4: Fuzzy Rules
Figure 7.6: Rule Editor for Requirement Prioritization Problem.
122
Step 4: Rule Evaluation Aggregation of the rule output and Defuzzification of the
output value.
Fig 7.7: Rule Evaluation Aggregation of the rule output
123
Step 5: Surface view
Fig 7.8: Surface view of Requirement Prioritization problem
7.9 Empirical Analysis
In previous sections the fuzzy based approach for early requirement prioritization is
proposed. The methodology of fuzzy based approach for early requirement
prioritization approach is shown in fig 7.1 to fig 7.8.In this section proposed fuzzy
based approach for early requirement prioritization is applied to a project as a case
study. CMS project is selected as a case study for the empirical analysis of fuzzy based
approach for early requirement prioritization. CMS project enables the ability to
acquire, store and reuse the assets necessary for the successful content management of
any business platform. The CMS project process would allow acquisition and
management of assets coming from different sources and medium .The requirements of
CMS project gathered during requirement elicitation phase are listed below in table 7.5.
124
Req_Id Requirement Description
R1 Customize the User Interface.
R2 Add Content Editor and content approver role.
R3 To provide a portal to the Content provider with options.
R4 Email notifications to be send to content provider.
R5 Conversion of the content to Digital form.
R6 Quality check of the content.
R7 Check Content format.
R8 Apply security over the content.
R9 Create of package.
R10 Create poster for advertisements.
Table 7.5: CMS Requirements Elicited
Requirement Complexity Level Degree of
Reusability
Importance to
customer
Priority
Rating
R1 6.5 3.9 7.0 6.0
R2 5.5 9.7 9.9 9.5
R3 9.0 4.8 8.0 8.8
R4 2.0 2.2 2.0 2.0
R5 6.0 8.5 7.7 5.4
125
R6 9.5 9.1 7.2 9.7
R7 4.3 3.7 4.0 5.7
R8 1.0 6.2 2.5 2.0
R9 1.5 4.5 3.7 5.0
R10 2.9 1.9 8.8 2.0
Table 7.6: Prioritized Requirements
Priority Requirements
High { R2,R3,R9}
Medium { R1,R5,R7,R9}
Low { R4,R8,R10}
Table 7.7: Requirement Priority of CMS project
Table 7.5 listed a few requirements of CMC project gathered during requirement
elicitation phase. These requirements are elicited by using proposed requirement
elicitation framework. Now the next challenge of proposed framework is to prioritize
requirements of CMC project. The gathered requirements are prioritized in early phase
of requirement engineering. The CMC requirements are prioritized using fuzzy based
system having three inputs, complexity level, degree of reusability, importance to
customer and 27 rules are defined in FIS, output is defuzzified using Pr variable. The
results are shown in table 7.6& 7.7. Table 7.6 shows Pr values of R2, R3 & R9 are high
and considered as high priority requirements. These CMC requirements are
implemented in the first phase of implementation. The proposed model for early
requirement prioritization is compared with other techniques [157][155][148][149] and
models[137][138][139]. The proposed fuzzy based approach for requirement
126
prioritization involves n-1 comparisons as compared to other technique and also
supports grouping of prioritized requirement suitable for large scale projects. The fuzzy
based approach is easy to implement and the requirements are prioritized using
fuzziness as fuzzy inference system. The proposed approach is easy to implement,
accurate, effective as compared to other techniques. The results obtained using fuzzy
based approach are always appreciable as compared to other techniques and provide
support to analyst in decision making related to requirement prioritization.
7.10 Conclusion
Requirement prioritization is an important activity of requirement engineering. This
work proposes an approach for prioritizing software requirements based on the
formulation of a fuzzy logic based System. The proposed fuzzy based approach
considers the nature of requirements by modeling their attributes as fuzzy variables. As
such, these variables are integrated into a fuzzy based inference system in which the
requirements represented as input attributes and ranked via the expected value operator
of a fuzzy variable. The proposed approach is easy to implement, reliable, cost
effective, less time to perform and fault tolerant in nature. The results obtained using
fuzzy based approach are always appreciable as compared to other techniques and
provide support to analyst in decision making related to requirement prioritization.