Vol.03, Issue 04, April 2018, Available Online: www.ajeee.co.in/index.php/AJEEE
A SIMPLIFIED FRAMEWORK FOR AGILE REQUIREMENT ENGINEERING FOR SOFTWARE PROJECT
1SWATI DEWANGAN, M.Tech Scholar ,
2SNEHAL VAIRAGADE, Assistant Prof.
1,2Department of Computer Science Engineering, Kalinga University, Raipur, C.G.
1[email protected], 2[email protected]
Abstract - Many software projects are failed due to the delivery decisions that were made without adequate requirements information. In addition, the project management process including agile-oriented requirement management process has been identified as one of the four success factors in the agile software projects. Having the clear rules for requirements engineering is, therefore, an important thing for agile software projects from their success point of view. In this study, the objective is to analyze agile requirements engineering and to find out practices that are used in it. The goal is to define a continuous process to identify customer needs and translate them into software requirements in the agile software development. This goal is going to be achieved by a systematic literature review on the agile requirements engineering. For the agile software development and the traditional requirements engineering, the theory has been gathered from some basic books of the theme. Results of this study can generally be applied and the model created can be utilized as a guideline when doing requirements engineering in the agile software projects.
Keywords - Agile Requirement Engineering, Project Management Process, agile software projects
I. INTRODUCTION
Business is presently operated in parallel with global and rapidly changing environment. Organizations have to respond to new opportunities and markets, dynamic economic conditions and the emergence of competing products and services. Nowadays, software systems have become the backbone of most business operations. They influence the structure and operation of organizations more profoundly than any other technology ever has. To fulfill the current business trends, new and improved software systems are expected to be available instantly in order to allow organizations to optimize the arriving opportunities and to respond to competitive pressure. This implies that the traditional plan-driven software development approach, which requires comprehensive process flow and milestones, may become no longer appropriate. Rather, a development methodology is highly needed for delivering software systems quickly without jeopardizing their quality. In general, a software system is considered as having high quality if it satisfies the needs of its users.
Agile methods have been proposed in 1990s with an aim to minimize process bureaucracy by avoiding unnecessary milestones due to the extensive documentation. The methods are
intended to deliver a software system quickly to users, who can then propose and change new business requirements into the system. The philosophy behind agile methods is reflected in the agile manifesto, which values individuals and interactions, working software, customer collaboration and responding to change.
To fulfill those principles, the methods address small, co-located, dedicated and highly collaborative teams. Some examples of agile methods are Feature Driven Development, Scrum, Extreme Programming, crystal, Dynamic System Development Method and Adaptive Software Development.
Agile methods are categorized as an iterative and incremental development approach that promotes constant ui8hdelivery of product features. The methods aim to deliver features iteratively in the form of several releases or iterations. The features to be implemented and delivered as releases are prioritized based on customer requirements and changes [ ]. The continuous requirements prioritization is thus the core activity of agile methods [ ]. Despite its importance, it is unclear how the requirements prioritization process in agile methods is conducted. The process is not considered as similar to the ones conducted in conventional approaches due to the unique principles that the methods
Vol.03, Issue 04, April 2018, Available Online: www.ajeee.co.in/index.php/AJEEE employ. Since the process determines the
quality of the requirements produced, it is essential to explore the contributing factors of an effective requirements prioritization process in agile development.
The aim of this paper is to generate the requirements during prioritization Process in agile requirement framework. The paper is organized as follows: Section 2 investigates the related work regarding requirements prioritization process in agile development. Section 3 explains the proposed conceptual framework and discusses how it can be applied. Finally, Section 4 concludes the paper with a summary of the main findings and future work.
II. RELATED WORK
Customers’ willingness of buying a software system depends on the extent of which the product meets their needs.
Establishing priorities offer opportunities for getting good results and customer satisfaction. Requirements prioritization is defined as an action during which the significant system requirements are identified and ordered based on their importance. The requirements are then developed iteratively as releases or iterations. The idea is that the highest priority requirement has to be implemented first before the others.
During the requirements prioritization process, a number of stakeholders determine which requirement should be implemented as releases. Being skillful people, the developers are considered as the most influential stakeholders in requirements prioritization process. However, the requirements priorities are best determined by customers who have the authority towards the system. Both developers and customers have to decide which requirements should be prioritized.
This process is complicated particularly when it involves multiple stakeholders who have to reach consensus under hectic and often disoriented situations.
Irum Inayat et al. [4] presented requirements engineering practices adopted and challenges faced by agile teams in order to understand how traditional requirements engineering issues are resolved using agile
requirements engineering. They conducted a systematic review of literature published between 2002 and June 2013 and identified 21 papers, that discuss agile requirements engineering.
Georgios Papadopoulos [9] studied the benefits from “Moving from traditional to agile software development methodologies also on large, distributed projects”. They provided evidence by the analysis of a case study that agile software development methodologies perform better than traditional methodologies in large, distributed projects. Improvements are observed on the quality and on the customer perception of the end product, while agile methodologies allow for requirement changes even late in the project. At the same time, they also build better communication and collaboration in the team which results in enhanced relations between team members and improved employee satisfaction metrics.
Mario Spundak [8] presented “Mixed agile/traditional project management methodology – reality or illusion?” They studied both the traditional and agile project management approach, and explored whether there exists a need to combine both approaches on a single project. Their paper covers thorough literature review and starts with the definition of the project management approach and of the project management methodology. The literature review shows what is considered as part of project management methodology in a wider or narrower sense, and what the main characteristics of a methodology are. The need for combining project management approaches is shown on the case of software development project. Amadeu Silveira Campanelli and Fernando Silva Parreiras [7] presented “Agile methods tailoring–A systematic literature review”.
Their study seeks to evaluate, synthesize, and present aspects of research on agile methods tailoring including the method tailoring approaches adopted and the criteria used for agile practice selection.
The method adopted was a Systematic Literature Review (SLR) on studies published from 2002 to 2014.
III. THE PROPOSED FRAMEWORK The Requirement Engineering framework attempts to structure the agile RE process with minimal impact on agility. It reflects
Vol.03, Issue 04, April 2018, Available Online: www.ajeee.co.in/index.php/AJEEE the agile principles such as direct
stakeholder involvement, evolutionary requirements, refactoring, no BRUF, just- in-time gathering of details and minimal documentation. Verification and validation activities in the existing agile methods are predominantly validation efforts carried out implicitly.
The Agile RGM consists of five phases.
They are
Preparation Phase – The objective of this phase is to establish rapport among the various project stakeholders. The development team learns the business process of the customers. Also, a high level mission statement for the project is created which serves as the input to the next phase in the model.
Requirements elicitation and analysis - In this activity, the software engineers work with the customers and end-users to find out the application domain, services that system should provide, the required performance of the system, and so on.
There are some identified problems that make the requirements elicitation difficult. To overcome these problems, the requirements gathering activity should be approached in an organized manner. The overall process would ideally be following:
Elicit the overall goals for the system, elicit the information about present work and present problems, elicit the detailed issues that the system shall deal with, look at the possible solutions, and transform the issues and possibilities into requirements.
Requirement Prioritization Phase - Large software systems have a few hundred to thousands of requirements.
Neither are all requirements equal nor do the implementation teams have resources to implement all the documented requirements. There are several constraints such as limited resources, budgetary constraints, time crunch, feasibility, etc., which brings in the need to prioritize requirements. Most customers on their part have a reasonable idea of what they need and what they want. But during requirements elicitation the customer provides the Business Analyst (BA) with all the requirements that he feels will make his work easier.
The customer is not wrong on his part;
the BA needs to understand the needs of the business to prioritize the requirements.
Requirement Documentation Phase:
Each identified requirement is decomposed into stories. The stories are brief descriptions of user- or customer- valued functionality. The stories are validated and the developers estimate the time required for their completion. The stories are implemented during the iterations. Hence, the developers estimate the time required to implement each story in this phase. The stories are then prioritized and stored in a prioritized story stack. A subset of the prioritized stories is chosen for development during an iteration which lasts for about 2 to 4 weeks.
The importance of a well understood, prioritized and agreed set of requirements is self-evident. However, the attempt to define a full and detailed set of requirements too early in a project often proves to be counterproductive, restrictive and wasteful. It is not possible to define all of the detailed requirements at the outset of a long project. The business environment changes as time progresses;
new requirements and opportunities present themselves. As the project progresses, the team understand more about the business need. Defining detailed requirements too early means either needing to change the specification later, which wastes the original work, or delivering to the originally-specified requirements and subsequently failing to adequately satisfy the business need.
Prototype Modeling & validation: This prototype is developed based on the currently known requirements.
Development of the prototype obviously undergoes design, coding, and testing, but each of these phases is not done very formally or thoroughly. By using this prototype, the client can get an actual feel of the system, because the interactions with the prototype can enable the client to better understand the requirements of the desired system. The focus of the previous steps is to provide a soft-structured approach to gathering requirements in the form of features, stories and tasks. However for completeness, we have included a component for implementation of these requirements which is the prototype modeling & validation phase. Also, the model has been designed for small scale, non- mission and life critical systems.
Vol.03, Issue 04, April 2018, Available Online: www.ajeee.co.in/index.php/AJEEE This assumption requires viewing the
model not only from a requirements engineering perspective but also from a development perspective. Hence, describing the development process is justified. The tasks created during the previous Phase are developed in this phase.
Review Meeting (feedback) & RE- prioritization: Acceptance tests ensure that the system developed meets the expectations of the customer. The customers create acceptance criteria for the stories and test the stories against the criteria. Developers create additional tests which augment those written by the customers. It is possible that code produced during a previous iteration be broken during subsequent iterations.
Hence, acceptance tests from all the previous iterations should be run in order to ensure that all pieces of code show expected behavior.
Fig 1: Conceptual framework for agile requirement Engineering IV. CONCLUSION
This study aimed to find and define a continuous process where the customer needs are identified and translated into system requirements in the context of agile software development. The continuous process was tried to be defined based on the information from basic books of agile software development and previous researches on the topic.
Agile methods take the changes in consideration by being iterative, incremental, and cooperative. After that, we looked at the requirements engineering and discussed about the practices that are used in the agile requirements engineering. The agile requirements engineering practices were identified by studying previous researches on the topic.
As a result, four major practices were found. First, the high-level interaction between the development team and the customer was stated as the most important thing. In addition, requirements engineering should be iterative and the requirements should be prioritized based on their business value for the customer. Finally, the non- functional requirements should be considered when eliciting the requirements. Also, the documentation of requirements was founded to be minimalistic in agile approaches. The Process outlines the activities involved in the requirements prioritization process, which are executed based on the identified factors. The Product shows the ultimate outcome of the Process. The proposed conceptual framework emphasizes the significant elements that are worthwhile for further exploration. For example, future research may investigate the methods or techniques that can help in selecting stakeholders and prioritization techniques as well as conducting systematic requirements prioritizing and reprioritizing process in agile development.
REFERENCES
[1]. Nosrati, M., Karimi, R., Mohammadi, M., &
Malekian, K. (2013). Internet Marketing or Modern Advertising! How? Why.
International Journal of Economy, Management and Social Sciences, 2(3), 56- 63.
[2]. Khoshnampour, M., & Nosrati, M. (2011).
An overview of E-commerce. World Applied Programming, 1(2), 94-99.
[3]. B. Nuseibeh and S. Easterbrook,
“Requirements engineering: a roadmap,” in Proceedings of the conference on the future of Software engineering (ICSE'00), pp. 35- 46, 2000.
[4]. Irum Inayat , Siti Salwah Salim , Sabrina Marczak , Maya Daneva , Shahaboddin Shamshirband, “A systematic literature review on agile requirements engineering practices and challenges”, Computers in Human Behavior, Vol. 51, pp. 915-929, 2015.
[5]. Agile Manifesto: Manifesto for Agile Software Development. 17 February 2001.
Vol.03, Issue 04, April 2018, Available Online: www.ajeee.co.in/index.php/AJEEE Available:
<http://www.agilemanifesto.org/>. Visited in: 26/05/2014 (2001).
[6]. Zainab Sultan, Rabiya Abbas, Shahid Nazir Bhatti and S. Asim Ali Shah, “Analytical Review on Test Cases Prioritization Techniques: An Empirical Study”
International Journal of Advanced
Computer Science and
Applications(IJACSA), 8(2), 2017.
[7]. Amadeu Silveira Campanelli,,Fernando Silva Parreiras, “Agile methods tailoring–A systematic literature review”, The Journal of Systems and Software, Vol. 110, pp. 85- 100, 2015.
[8]. Mario Špundaka, “Mixed agile/traditional project management methodology – reality
or illusion?”, Procedia - Social and Behavioral Sciences , Vol. 119 pp. 939 – 948, 2014.
[9]. Georgios Papadopoulosa,, “Moving from traditional to agile software development methodologies also on large, distributed projects”, Procedia - Social and Behavioral Sciences, Vol. 175, pp. 455 – 463, 2015.
[10]. Aneesa Rida Asghar, Shahid Nazir Bhatti, Atika Tabassum, “Role of Requirements Elicitation & Prioritization to Optimize Quality in Scrum Agile Development”
International Journal of Advanced
Computer Science and
Applications(IJACSA), 7(12), 2016.