An Effective Requirement Engineering Process Model for Software Development and Requirements Management
Total Page:16
File Type:pdf, Size:1020Kb
2010 International Conference on Advances in Recent Technologies in Communication and Computing An Effective Requirement Engineering Process Model for Software Development and Requirements Management Dhirendra Pandey U. Suman Department of Information Technology School for Information Science & IT Baba Saheb Bhimrao Ambedkar University Devi AhilyaVishwavidyalaya Lucknow (UP), India Indore (MP), India e-mail: [email protected] e-mail: [email protected] A. K. Ramani School for Information Science & IT Devi AhilyaVishwavidyalaya Indore (MP), India e.mail: [email protected] Abstract- Requirement engineering is the most effective phase constraints, performance, platform dependencies, of software development process. It aims to collect good maintainability, extensibility, reliability etc. [1]. requirements from stakeholders in the right way. It is important for every organization to develop quality software products that Requirement engineering is generally accepted to be the can satisfy user’s needs. Requirements engineering for software most critical and complex process within the development of development process is a complex exercise that considers product socio-technical systems [3, 4, 5]. In this way, it helps to demands from a vast number of viewpoints, roles, describe a multidisciplinary role of requirements engineering responsibilities, and objectives. Therefore, it becomes necessary process as well as the patterns for social interaction. The main to apply requirement engineering practices in every phase of reason is that the requirements engineering process has the software development process. In this paper, we propose an most dominant impact on the capabilities of the resulting effective requirements engineering process model to produce product. Furthermore, requirements engineering is a process in quality requirements for software development. Requirement which most diverse set of product demands from the most management and planning phase is executed independently for an effective management of requirements. It is iterative in nature diverse set of stakeholders, which is already being considered for better requirement engineering and later maintenance. The by the practitioners. These two reasons make requirements successful implementation of proposed requirement engineering engineering complex as well as critical. process can have a good impact on the production of quality Requirement engineering is a systematic approach through software product. which the software engineer collects requirements from different sources and implements them into the software Keywords: Requirement engineering, requirement analysis, development processes. Requirement engineering activities requirement elicitation, requirement development, requirement management. cover the entire system and software development life cycle. Requirements engineering process is an iterative process I. INTRODUCTION which also indicates that the requirements management is understood as an aspect of requirements engineering process Requirements are attributes or something, which we [9, 10, 11]. Traditionally, requirements engineering is discover before building products. It is a condition or performed in the beginning of the system development capability that must be met or possessed by a system or system lifecycle [13]. However, in large and complex systems component to satisfy a contract, standard, specification, or development, developing an accurate set of requirements that other formally imposed documents [1]. A well-formed would remain stable throughout the months or years of requirement is a statement of system functionality that satisfies development has been realised to be impossible in practice customer needs. There exists a reciprocal interrelationship [14]. Therefore, requirements engineering is an incremental between human beings and machines for requirement and iterative process, performed in parallel with other system gathering that can assist to produce quality products [2]. development activities such as design, coding etc. Requirements are commonly classified as functional and non- functional [1]. A functional requirement is a requirement that Requirements engineering contains a set of activities for specifies an action performed by a system without considering discovering, analysing, documenting, validating and physical constraints. Non-functional requirement specifies maintaining a set of requirements for a system [6]. system properties such as environmental and implementation Requirements engineering is divided into two main groups of 978-0-7695-4201-0/10 $26.00 © 2010 Crown Copyright 287 DOI 10.1109/ARTCom.2010.24 activities; namely, requirements development and requirement The requirement management and planning phase controls management. Requirement development covers activities the continuously changing requirements. Each of these related to discovering, analysing, documenting and validating activities is further detailed in the following sub sections. The requirements where as requirement management includes proposed process describes requirements engineering for activities related to traceability and change management of software development systems in which requirement requirements. Requirements verification consists of those engineering must be a part of the software development activities that confirm that the product of a system process. development process meets its technical specifications. Requirements validation consists of activities that confirm that A. Requirements Elicitation and Development the behaviour of a developed system meets its user needs [7]. Requirement elicitation and development phase mainly focuses on examining and gathering desired requirements and Requirement engineering is a very important activity, objectives for the system from different viewpoints (e.g., which can affect the entire activity of software development customer, users, constraints, system's operating environment, project. Requirement engineering is one of the most important trade, marketing and standard etc.). Requirements elicitation tools for gathering requirements, which is concerned with phase begins with identifying stakeholders of the system and analysing and documenting the requirements [8]. We propose collecting raw requirements from various viewpoints. Raw an effective model of requirement engineering process for requirements are requirements that have not been analysed and software development, which is discussed in detail with have not yet been written down in a well-formed requirement various phases in Section 2. The comparative discussion of notation. The elicitation phase aims to collect different proposed requirement engineering process model with existing viewpoints such as business requirements, customer models is presented in Section 3. Finally, Section 4 describes requirements, user requirements, constraints, security the concluding remarks and future research work. requirements, information requirements, standards etc. Typically, the specification of system requirements starts with II. REQUIREMENT ENGINEERING PROCESS observing and interviewing people [15]. The main objective of requirement engineering is to Raw requirements discover quality requirements that can be implemented into Customer/User software development. The identified requirements must be clear, consistent, modifiable and traceable to produce a quality Customer Technical Feed back product. In this paper, we have proposed an effective Development of software Customer requirement engineering process model, which is shown in requirements collection figure 1. It consists of mainly four phases, namely; requirement elicitation and development, documentation of Technical Environment Technicality requirements, validation and verification of requirements, and Constraints Representation requirement management and planning. Requirement elicitation and development phase includes requirement Figure. 2: Development of Requirements analysis and allocation and flow down of requirements. Furthermore, user requirements are often misunderstood Documentation of requirements includes identification of because the system analyst may misinterpret the user’s needs. requirements and software and system requirement In addition to requirements gathering, standards and specification. Validation and verification of requirements constraints play an important role in systems development. phase is concerned with conforming the documented The development of requirements may be contextual, which is requirements. shown in figure 2. It is observed that requirement engineering Customer Business requirement Information requirements is a process of collecting requirements from customer and Requirements Security requirements environment in a systematic manner. The system analyst User requirements Constraints Standard collects raw requirements and then performs detailed analysis and receives feedbacks. Thereafter, these outcomes are compared with the technicality of the system and produce the Requirement Elicitation and Documentation Validation and development of Verification of good and necessary requirements for software development [3, Requirements Requirements 35]. Requirement analysis Identification Validation 1) Requirements Analysis: The development and Allocation and flow down gathering of good quality requirements is the basic activity of Software Requirement Requirement change Specification any organisation to develop quality software products. These Software requirements