Comics

G-4REPrioritization: A Guide to Help in the Prioritization of Requirements

Description
Prioritizing requirements allows handling conflicting demands and helps planning software development. It is essential for a software product to incorporate the most important and valuable functionalities as soon as possible, ensuring its success,
Categories
Published
of 15
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
    G-4REPrioritization: A Guide to Help in the Prioritization of Requirements  José Júnior, Maria Lencastre, Sergio Galdino Universidade de Pernambuco - UPE Rua Benfica, 455, bloco C, 2° andar, Madalena, Recife, PE, Brazil, CEP: 50720-001  jmsj2@ecomp.poli.br , mlpm@ecomp.poli.br and galdino.sergio@gmail.com  ABSTRACT Prioritizing requirements allows handling conflicting demands and helps planning software development. It is essential for a software product to incorporate the most important and valuable functionalities as soon as possible, ensuring its success, especially when deadlines are short and customer expectations are high. So, establishing the relative priority between requirements helps to plan the construction of the product. But, while there are many prioritization techniques, there is a lack of available guidelines to facilitate their choice. This paper proposes a guide to help the requirements engineer planning and choosing the suitable techniques for his (her) projects, according to each  project’s  profile; it also presents a survey, applied in Brazilian information technology companies, facing the usage of requirements prioritization techniques. KEYWORDS Requirements Prioritization; Requirements Engineering; Software Engineering; Prioritization Techniques; Prioritization Modeling 1 INTRODUCTION  With the increasing of systems size and complexity, the requiremen ts’  prioritization task becomes a critical activity to achieve the product success. However, generally, the requirements’ prioritization is defined late in the software development process [1], and it’ s performed in an ad-hoc basis, i.e. without clear guidelines [2]. In addition, usually customers do not like, and also have difficulty in prioritizing requirements; they consider that all of them have high priority; on the other side, developers also do not like to make requirements prioritization, because it can be considered a weakness, as it seems that they are not capable to implement all at once. But the reality is that prioritization is essential for success in a product delivery. There are several techniques that support the prioritization of requirements; in [3] the authors have mapped 49 techniques, but there are only a few poor guidelines to facilitate their choice. Another issue is that these techniques are limited in terms of: the number of requirements to be considered, i ssues in requirements’ dependency, and so on. The authors of this article conducted a survey on IT companies, in a city in northeastern Brazil, to identify the practice in the requirements prioritization. It was analyzed if they apply prioritization algorithms; whom participates in this activity, what are the criteria used to establish the prioritization, and what are the most common used techniques. The results showed that despite the importance of this activity, there is very little investment in the requirements ’  prioritizing process in these companies, and that a very limited number of techniques are adopted by them. This article aims at giving support to face problems in prioritization of requirements. It proposes a guide, called G-4REPrioritization, which guides the choice of appropriate techniques according to the features of each project. The proposed guide considers a set of techniques, which are among the most Proceedings of the International Conference on Software Engineering, Mobile Computing and Media Informatics (SEMCMI2015), Kuala Lumpur, Malaysia, 2015 ISBN: 978-1-941968-18-5 ©2015 SDIWC75   referenced ones in the literature for prioritization requirements. The rest of this article is structured in the following way. Section 2 gives a background about requirements’  prioritization. Section 3 details the survey conducted in IT companies. Section 4 describes the proposed Guide and illustrates its use. Finally, section 5 presents conclusions and future work. 2 BACKGROUND   Requirements’  prioritization helps identifying the most important requirements for the software being developed, as well as optimizing the  planning of versions’ delivery. In requirements ’  prioritization some issues should be considered, such as: the requirements’ importance, risks, costs, development time [1]. In most cases, the prioritization of requirements it’ s based on the combination of different aspects, directed by multiple objectives. Prioritization techniques can be classified according to their scale, as: nominal, ordinal and reason [4]. Each one is described below:    Nominal scale: separates the requirements on groups of priorities, where all the requirements of the same group have equal priority [5]; Examples of these techniques include: Moscow and Kano;    Ordinal Scale: sorts a list of requirements; examples of these techniques include: Simple Ranking; Bubble Sort; Binary Search Tree;    The ratio scale: produce results that can bring significant differences between the requirements; example of these techniques include: Hundred Dollar ($100), Analytic Hierarchy Process (AHP), AHP Hierarchy, Cost-Value Approach. There are also other techniques, very promising, as the ones which use intelligent algorithms; examples are: the VIRP method and its variations, genetic algorithms, and Fuzzy. Table 1 summarizes some of the existing prioritization techniques [6], gives a short description and highlights some main features. Table 1  Prioritization Techniques [6], [7], [8], [9].  Prioritization technique and description Evaluation 1.AHP : First builds up a hierarchy based on requirements attributes. The preferences are de-fined for each pair, using a scale of 1 to 9. Then, derives the numerical priority for each element of the hierarchy. The comparison is between pairs of requirements in the same level of the hierarchy. Faces complex decisions; is time consuming as makes a high number of comparisons. Suitable for linear development models and little contradictory requirements; It is not suitable for iterative modeling and ambiguous requirements. . Cost-Value Approach:  Each requirement is detailed in two aspects: its value to users and the osts to implement it; uses the AHP technique to compare requirements pairs, according to he relative values and costs. It is a time consuming approach. . Numerical assignment:  Arranges requirements in groups. enerally it is used in three groups and reflects the interests of stakeholders It is not recommended, except when there is a low degree of change in requirements. 4. Ranking: Most important requirements are ranked with 1, and the less important ones with n.   Effective for linear development model. In other situations, their performance it is lower than the others.Not recommended for a large number of requirements, and for high degree of accuracy 5.Top 10:  Select the n  most important requirements for a given criterion. Then, orders them considering their importance Partially effective when there is a low degree of changes in requirements. 6. Theory W:  based on negotia-tion for solving differences of opinions between stakeholders, and it is based on predefined risk. Users are asked to rate their needs before negotiation. One of the best appro-aches; however, it slows down when done in iterative develo-pment or when project constraints are high. Proceedings of the International Conference on Software Engineering, Mobile Computing and Media Informatics (SEMCMI2015), Kuala Lumpur, Malaysia, 2015 ISBN: 978-1-941968-18-5 ©2015 SDIWC76    7. Planning Game:  Divides the requirements considering the ones which may be estimated: accurately;   reasonably and completely. For each group, cards are played, the letter on them indicates the value of the development time. Effective when the specifications of requirements are very clear and there is an experienced staff on the requirements to be developed 8. Matrix de Wiegers:  uses an array with the benefits, risks, losses, costs and priorities of requirements in a systematic way. Produces better priori-tization when the requirements are clearly specified and there is a low degree of change. 9. Intelligent techniques (VIRP):  Prioritization technique and multilevel classification. Generates similar results is the Theory W. It presents the best performance in almost all situations. The quality of your priority is unsatisfactory when the specifications of the requirements are not very clear. 10. Binary Search Tree:  Organi-zes the requirements tree so that the requirements where children left node have less priority than the node, and requirements right have higher priority than the knot. Suitable for less or equal than 15 requi-rements, the comple-xity of comparing each node of the tree. The complexity of this is: O (n log n). 11. Hundred Dolar ($100):  Each stakeholder distributes $ 100 between the requirements to be prioritized; the result indicates how much a requirement is more less important than another in proportional terms Suitable for very detailed requirements and generate little disagreement. It works great for low quantity requirements. 12. Quality Function Deploy-ment (QFD):  Uses the "voice of the customer" for identify-ing "what" the customer wants and "how" it will be realized or improved in the process at the lowest possible cost. The product planning matrix reflects both the needs of stakeholders and how the desired quality attributes. 13. Pair comparison:  compares all the requirements, the ones with more points have higher priority. Adequate when preci-sion is required; but, generates a lot of comparisons if the number of require-ments is large 14. Genetic Algorithms:  Calculates the priority of the requirements through the intersection between: interest of stakeholders in each requirement, dependence on You can handle large number of require-ments. Minimizing disagreements between stakeholderes. It dependencies between requirements and stakeholder profile weight in the project. requirements. 15. Collaborative Algorithms Prioritize requirements by indicating other interested stakeholders, ie prevents erroneous prioritizing stakeholders not interested in the requirement. Suitable for large-scale projects, helps to iden-tify all the stakeholders and the appropriate requirements for them. Provides stakeholder needs more accurately. Complementarily, in the state of the art on requirements prioritizing, there is a work that makes comparisons between existing techniques, fusion techniques and intelligent prioritization techniques [6]. A systematic review of the best known techniques is presented in [10]. The same work proposes a framework in which the priority should be implemented through a combination of techniques in three phases: the first phase the authors suggest the use $ 100 technique to reduce the amount of subjectivity; in the second phase suggests the process of division into 2 parts: the first is an iterative process with the various stakeholders in the project, using the WinWin technique to solve conflicts of interest; in the second part of the technical Ranking is used to sort the result obtained in the first step; Finally, in the third stage, it is suggested the use of AHP technique to perform the ranking comparisons from stage 2 between the various stakeholders. A comparison about time consumption, between prioritization techniques, is presented in [7]; the author considers the technical Ranking, Binay Search Tree and Wiegers Matrix techniques. The results indicate that, for the Ranking technique, that despite this being considered the simplest to be executed, the result depends on the ones involved in the process; if the team is experienced, the times’ prioritization will be relatively low. On the other hand, Wiegers Matrix showed a great performance, even when the involved team has low experience in the technique; in some cases, it as shown that a reduction of 30% in time as Proceedings of the International Conference on Software Engineering, Mobile Computing and Media Informatics (SEMCMI2015), Kuala Lumpur, Malaysia, 2015 ISBN: 978-1-941968-18-5 ©2015 SDIWC77   achieved in the prioritization of certain requirements. Finally, Binay Serch Tree technique proved to have the worst performance, requiring many comparisons. However, at the end of the document they concluded that the Binay Tree Search technique as a good technique for a large number of requirements. 3 SURVEY CONDUCTED  In order to understand the practice of requirements ’ prioritization, a survey was conducted from February to March 2015 in a group of companies, of different sizes, in a northeastern Brazilian capital. The questionnaire was available for two months, and 39 companies responded it. The questionnaire is presented in Table 2. Table 2  Questions applied in the Survey SURVEY QUESTIONS   1) How do you prioritize requirements? 2) What time is reserved for the requirements’ prioritization in a project? 3) Do you make requirements’ prioritizing throughout the project? 4) Who are the professionals who usually participate in the prioritizing? 5) What are the criteria used to prioritize? 6)What technique is used for prioritize? 7) What is the average number of requirements for each project? 8) How do you treat dependent requirements? 9) Is there a specific activity associated with prioritizing or not? 10) What is the average number of employees who work per project? 11) What is your professional position in the company? (12) How the requirements are   shared inside the company? (13) What are the tools used to prioritize requirements.  From the answers some issues can be observed:    40% of the companies do not use prioritization techniques, they only apply intuition;    Most companies (over 60%) spend less than 10% of their project ’s  development time to prioritize.    Above 70% of the companies, hold reprioritization of requirements throughout the project.    Prioritizing mostly involves project managers, followed by other stakeholders and ultimately developers.    Considering the criteria used to prioritize requirements, 38.54% of respondents mentions that the requirements’ level of importance is used.    Only 55% of the respondents use prioritization techniques, the Ranking technique represents 40% of the total.    Most companies (over 69%) do not treat dependent requirements.    33% of the companies do not conduct any activity related to prioritizing requirements in their designs.    64.10% of the companies use up to 10 employees in their projects, while 17.95% employ between 11 and 20 employees, 10.26% above 41 employees and 7.69% use between 21-40 employees. So, it can be observed from the results that many companies do not use prioritization, and the ones that use, apply it in a very simplified way, not exploring its potential to improve the process development and delivery. 4 A GUIDE TO SUPPORT REQUIREMENTS’ PRIORITIZATION  The proposed guide is called G-4REPrioritization; its purpose is to analyze the users’ need and project profile guid ing the selection of prioritization techniques. An Proceedings of the International Conference on Software Engineering, Mobile Computing and Media Informatics (SEMCMI2015), Kuala Lumpur, Malaysia, 2015 ISBN: 978-1-941968-18-5 ©2015 SDIWC78   overview of the guide inputs and outputs can be seen in Figure 1. The inputs include a set of information related to the project profile, or part of it, which will be analyzed. They include:    A set of requirements,    The criteria to be used in the requirements prioritization (costs, time, importance, risk, etc),    Involved stakeholders (that will help in prioritization), Figure 1 Overview of G-4REPrioritization (Input/Output)   There is also an optionally input - the user of the guide can respond a questionnaire for filtering techniques; he/she choose some specific features from them, such as: the level of involved complexity, popularity, etc (see Table 5, detailed in next subsection). Observe that the guide considers that the requirements elicitation and negotiation phases, of Requirements Engineering process, have already been done, previously to its application. The intelligence of the G-4REPriritization is based on a set of knowledge, called Prioritization Techniques characterization (see Table 4), about 14 selected techniques. It provides information for analyzing the appropriate mechanism that will be proposed in the Final Output Report. Depending on the input, it could suggest one or more priority techniques as appropriate for prioritization the requirements of the project in hand. 4.1 Methodology Applied to Develop the Guide As a strategy for creating the guide, 5 steps were followed by the authors: 1.   Selection of techniques to be considered in the guide. The result is the 14 techniques presented in Table 1. The criterion used for selection was the number of occurrences found in books and articles [3], cited in the technical survey carried out in IT companies and newly created techniques that have a promising future [6]. 2.   Extraction of 9 features from the literature that can characterize a prioritization technique (see Table 3); Table 3 Features used for characterizing techniques FEATURES F-1 Level of complexity: low (L), medium (M), high (H) F-2 Criteria used for prioritization: Multi-Objective level of importance, Business Value, Cost, Financial Value, Quality, Benefits, or Prejudice F- 3 Generates high number of comparisons’: Yes/No F-4 Is a popular technique: Yes/No F-5 Is a autonomic Technique: Yes/No F-6 Considers requirem ents’ reprioritization? Yes/No F-7 Considers stakeholder ’s influence : Yes/No F-8 Is adequate for high number of requirements: Yes/No F-9 Considers requirements ’  dependency: Yes/No 3.   Classification of each of the 14 techniques, according to the features defined in step 2. See the classification in Table 4. G-4RE-Prioritization Requirements Criteria Stakeholders Questionnaire Responses (Table 5)  Final Report - Name of the suggested technique - Complexity level - Popularity level - Comparisons’ number   - Automatic or not - Include Requirements Reprioritization -   Includes dependency between requirements Techniques’ characterization (Table 3)  Project Profile Input Consultin Data Guide Legend: Outut Proceedings of the International Conference on Software Engineering, Mobile Computing and Media Informatics (SEMCMI2015), Kuala Lumpur, Malaysia, 2015 ISBN: 978-1-941968-18-5 ©2015 SDIWC79
Search
Tags
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x