A Fuzzy Based Approach for Early Requirement Prioritization

The importance of the prioritization in commercial software development has been analyzed by many researchers. The gathered requirements are required to be put into an order of some priority. In other words we can say that there is a need to prioritize the requirements. It is evident 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 paper we propose a fuzzy based approach for requirement prioritization in which requirement are prioritized in early phase of requirement engineering as post elicitation step. This category of prioritization is known as early requirement prioritization. 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 Indexing terms/


INTRODUCTION
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. 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. Early Requirement Prioritization is the process to prioritize the requirements according to need and requirement of the stakeholders [4] after successful requirement elicitation [2][3] [5]. This technique is performed as post elicitation technique. In early requirement prioritization process, after successful requirement elicitation the gathered requirements are prioritized so that the requirements with high priority are implemented first than low 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 this paper various methods of requirements prioritization are studied and analyzed and finally a fuzzy based method for early requirement prioritization is proposed.

2.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 .In this paper we studied, analyze and compare six methods based on various parameters are shown in table 1.

3.COMPARISON OF REQUIREMENT PRIORITIZATION TECHNIQUES
All the methods discussed so far are compared on the basis of the parameters shown in table 1.From the results provided in Table 1, it is seen that AHP [6] 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 [8] 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 [7] is the easiest method to use and it can provide relatively reliable results and relatively good fault tolerance, but it involves the largest number of decisions. Hierarchy AHP [9] 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. It is seen that no one prioritization method is perfect among these six methods. 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. B-Tree [8] 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(n 2 ). 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 N o v e m b e r 0 2 , 2 0 1 5 a small number of comparisons are required. 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 by which analyst can easily prioritize the requirements during implementation phase especially in large scale projects. The proposed fuzzy based approach for requirement prioritization requires less comparisons as compared to other techniques, supports grouping of prioritized requirement ,reliable ,easy to implement , cost effective, less time to perform , fault tolerant in nature and suitable for large scale projects.,. 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.

4.BACKGROUND OF FUZZY INFERENCE SYSTEMS
Fuzzy Logic is a powerful problem-solving methodology to deal with imprecision and information granularity [14]. Fuzzy logic is completely empirical and relies on experience and knowledge rather than the technical understanding of the subject for modeling the complex system [11] [13]. A fuzzy inference system (FIS) tries to derive answers from a knowledge base by using a fuzzy inference engine. 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 [10].

5.REQUIREMENT PRIORITIZATION USING FUZZY SYSTEM
The proposed model for early requirement prioritization has an input stage consisting 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 implemented in first phase of implementation.

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. After critical analysis of various factors on the basis of their role, project support and impact on 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 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 are large. The three factors support large scale projects. 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. After critical analysis of identified factors various metrics are defined .The impact of these metrics are shown in the table 2 . [CS] indicates the customer satisfaction of the customer in the system Step 2: Specifying rules for Fuzzy inference system using Rule Editor for requirement Prioritization Problem.

Algorithm to Solve Requirement Prioritization problem using Fuzzy logic
Step 3: Rule Evaluation Step 4: Aggregation of the rule output Step 5: Defuzzification of the output value } }

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 as  Step 3: Specifying rules for Fuzzy inference system using Rule Editor for Requirement Prioritization Problem. Step 4: Rule Evaluation Aggregation of the rule output and Defuzzification of the output value.

Figure 7: Rule Evaluation Aggregation
Step 5: Surface viewer

Empirical Analysis
In previous sections the fuzzy based approach for early requirement prioritization is proposed. The methodology of the fuzzy based for early requirement prioritization approach is shown in the algorithm and results are shown in fig 8.In this section the proposed Fuzzy based approach for early requirement prioritization is applied to a project as a case study. The proposed fuzzy based approach shown in the fig 1 to fig 8 is applied to calculate the priority of the requirements. 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 requirements of CMS project gathered during requirement elicitation phase and prioritized using fuzzy based system. Table 4 listed few requirements of CMC project gathered during requirement elicitation phase. These requirements are elicited by using proposed requirement elicitation framework [5]. Now the next challenge is to prioritize the requirements of CMC project. The gathered requirements are prioritized as early phase of requirement engineering.

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.  The CMC project 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 5 and table 6. Above table shows that Pr value of R2, R3 and R9 are high calculated by applying fuzzy logic system and considered as high priority requirements. These CMC requirements of high priority are implemented in the first phase of implementation. Fuzzy Based Approach for Early Requirement Prioritization is efficient approach to prioritize the requirements especially in large scale projects where requirement set is large.

CONCLUSION
Requirement prioritization is the important activity of requirement engineering. In this work requirements are prioritized using fuzzy based system. Fuzzy based early requirement prioritization method supports large scale projects where the requirement set is large and requirements are prioritized according to the needs of stakeholders. This work proposes an approach for prioritizing software requirements based on the formulation of a fuzzy logic based System. The results of fuzzy based system are accurate, reliable and acceptable to variety of projects. Proposed fuzzy based system for requirement prioritization is efficient approach to prioritize the requirements.