Software development, one frequent reason that leads to low-quality software is the lack of skill in identifying the most important requirements. Unfortunately, many software engineering students are unfamiliar with prioritizing techniques, and they are not skillful to use the techniques in a specific situation or circumstance. The purpose of this study is to identify effective ways to educate software engineering students on requirement prioritization. To enable students to have a deeper understanding of requirement prioritization and to improve their practical ability, a teaching framework has been proposed. The framework’s structure is based on three main components: first, the guidelines to provide students with a basic concept; second, the empirical and completed samples to help students familiarize themselves with the process of prioritization; and third, the exercises and simulated cases to improve the practical skills and abilities of students. The teaching framework has been implemented as a web-based teaching tool. Teaching tool evaluation results show that 86.6% of respondents believe that the proposed teaching framework helps them to have a better understanding of requirement prioritization. Keywords: software requirement prioritization, requirement prioritization teaching framework.
Everyone makes decisions to select one choice from many, at least once in their life. However, it would be very increasingly difficult if the number of choices increases. The prioritization process can improve decision-making. However, many factors have to be taken into consideration in the prioritization process. In the software development process, not all requirements which are elicited can be implemented due to time and budget limitations, thus, a decision should be made to select a candidate-set, which is proper to be implemented (Port et.al, 2008). Requirement prioritization is used by developers to solve such problems. The software requirement prioritization concept is defined by researchers base on their point of view. For instance, requirement prioritization is defined as activities to recognize the order of importance of requirements according to stakeholders. Some activities that are supported by requirement prioritization are
• Deciding which requirements can be considered as the main ones for a system.
• Choosing ordered requirements that should be implemented considering their importance for subsequent releases.
• Achieving settlement about the scope of a project, considering the limitations that exist. Some of these limits are schedule, budget, time, and quality.
• Providing equilibrium of the cost and benefit of a specific requirement to be accepted as a possible requirement to be implemented.
• Reducing the impact of one requirement on the architecture of the software and further releases, as well as the cost of the project.
• Developing software with minimum implemented requirements and maximum customer satisfaction.
• Finding factors which will satisfy the customer.
The usefulness of requirement prioritization, as mentioned by Karlsson, Wohlin, and Regnell (1998), is to prevent the blemishes of requirements, such as misunderstanding requirements and unclear requirements. Moreover, Berander and Andrews (2005) indicate that to prevent software failure and loss, an optimal set of requirements should be selected early, and this can be achieved by using prioritization techniques. Prioritization techniques are categorized according to various measurements of scale and type. Three main categories of prioritization techniques are ordinal scale, ratio scale, and nominal scale. These techniques can prioritize requirements by considering any aspect of prioritization. From the prioritization techniques, some have benefits and some have problems and complexities. Choosing a specific technique to prioritize requirements depends highly on the project. It is advisable to choose the simplest prioritization method and if a conflict exists between stakeholders and the making of precious decisions is required for more complicated projects, then a more sophisticated method will be used. In many cases, a variety of prioritization methods makes it hard for software developers to decide which prioritization technique is suitable to be used in specific circumstances (Perini et al., 2008). Moreover, software students are not familiar with the process of applying a prioritization technique in a specific context. Considering all matters to do with prioritization, indicates that applying techniques requires sufficient experience to meet the purpose of prioritization (Port et.al, 2008). In conclusion, it can be said that there is a lack of experience in applying requirement prioritization. Therefore, software students should be well-trained. This can be summarised as follows:
• There is a lack of software students well-trained in requirement prioritization.
• There is a lack of effective ways to teach software students the concept of requirement prioritization. This paper intends to propose a framework for teaching requirement prioritization, the framework is developed as a web-based teaching tool. This web-based teaching tool will assist software students in getting familiar with requirement prioritization. The rest of this paper is structured as follows: section 2 reviews of literature. Section 3 describes the proposed teaching frameworks and their layers. The usefulness of the proposed teaching framework is discussed in section
4. Finally suggestion for future work presented in section 5. II. Review of literatureDesign of a Teaching Framework for Software Requirement Prioritization
The Kavian Scientific Research Association (KSRA) is a non-profit research organization to provide research / educational services in December 2013. The members of the community had formed a virtual group on the Viber social network. The core of the Kavian Scientific Association was formed with these members as founders. These individuals, led by Professor Siavosh Kaviani, decided to launch a scientific / research association with an emphasis on education.
KSRA research association, as a non-profit research firm, is committed to providing research services in the field of knowledge. The main beneficiaries of this association are public or private knowledge-based companies, students, researchers, researchers, professors, universities, and industrial and semi-industrial centers around the world.
Our main services Based on Education for all spectrums people in the world. We want to make an integration between researches and educations. We believe education is the main right of Human beings. So our services should be concentrated on inclusive education.
The KSRA team partners with local under-served communities around the world to improve the access to and quality of knowledge based on education, amplify and augment learning programs where they exist, and create new opportunities for e-learning where traditional education systems are lacking or non-existent.