An Investigation On Requirements Engineering

Print   

02 Nov 2017

Disclaimer:
This essay has been written and submitted by students and is not an example of our work. Please click this link to view samples of our professional work witten by our professional essay writers. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of EssayCompany.

Introduction

It is a complicated and difficult job to make new software [1], and one of the most important part of this procedure is specify the requirements [2]. If the errors and mistakes at this stage of process remain unsolved it will cause heavy costs in subsequent phase of developing software [2, 3]. To evaluate the success of an application it should be measured how much of the user’s expectations are covered. Well developed software should fulfill the purpose it was created for [4].

Software Requirements Engineering is the procedure of recognizing the necessities and what should be implemented in the application, analyze and define the specifications. At the end of the job the users demands should be identified and then generate the basic structure of the procedure of developing software [5]. By specifying the needs and requirements of the software the goal and objectives of the project will be determined [6].

Requirements Engineering is based on efficient user-developer communication and it is more of an interaction and administration work than a technical job and it is consider as a backbone part of software developing process [1]. Each one of social or individual company factors has its effects on RE activities [7]. The result of errors in RE stage of programming is poor quality software and delayed delivery.

In "No silver bullet" reloaded: retrospective on "essence and accidents of software engineering" [8], a convincing declaration about the importance of this stage has been quoted from Frederick Brooks [9]:

"The hardest single part of building a software system is deciding what to build. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later." [9]

Background

There are many definitions for requirements engineering, one of the most famous definition for requirements engineering is provided by Zave [10] as follow:

"Requirements engineering is the branch of software engineering concerned with the real-world goals for, functions of, and constraints on software systems. It is also concerned with the relationship of these factors to precise specifications of software behavior, and to their evolution over time and across software families." [10]

Many researched referred to the given definition; however, the author also found Nuseibeh and Easterbrook [4] description on requirement engineering suitable for this research. In Nuseibeh and Easterbrook [4] description, requirements engineering is the process of determining if the purpose for which software system was intended is meet, by identifying stakeholders and their needs, and documenting these in a form which is agreeable to analysis, communication, and subsequent implementation. Requirements engineering is often considered as a front-end activity in the software systems development process. However, it is usually a subject to change during development and operation phases. Therefore, requirements engineering plays an essential part in change management during software development.

Requirement engineering always have to be early in the SDLC, that is why it is very critical process; and because it is human-centered in nature, any misunderstanding or error during requirements engineering can cause very expensive difficulties for the project later. Stakeholders might have several dispersed needs, their objectives could be different, uncertain, and sometimes conflict each other. Therefore, satisfying all these objectives and goals could occasionally not be feasible. The concern in requirements engineering is, how to find an engineering solution to control stakeholders’ requirements in and appropriate and cost-effective way which can then be analyzed later.

Furthermore, defects in software applications are increasing and surveys show that the users are not satisfied by most of the software and they are far away from their expectations. Investigates in the reasons of this problems indicate the majority of this user’s dissatisfaction and the reason of project failure are errors in defining requirements [11]. One Software System develops base on the customer requirements and needs.

The future stage of software developing process defines by requirements specifications in the special form which designed for customer to explain needs and necessities for the software and how the software expected to work. Accordingly any contradictoriness and indefiniteness the system requirements lead to develop an unsuccessful software product.

Moreover, investigations on requirement engineering are still being performed by researchers on specific fields of software engineering [12, 13]. However, despite of all research have been done on this area and investigation different strategies which address the requirements engineering process, even nowadays software engineers face this kind of problems. The issue, "most of the software product failures are attributed to unsatisfactory requirements engineering process" has being stated many times in numerous text books, articles, and papers for more than decades now [1, 11, 12].

Research Aim

In this research, we aim to investigate the scope of theoretical requirement engineering practices which are applied and used in practical software environments in the industries. Furthermore, the extent of theoretical requirement engineering principles and practices which are converted to practical requirement engineering in industries will be investigated. The scope of this research is to investigate the existing requirement engineering practices in Iranian software industries.

Research Objectives

In this research, we shall accomplish the following objectives to reach our research aims:

To inspect the current practical requirement engineering principles used by Iranian industries.

To assess the effects of implemented requirement engineering practices on them.

To identify the constraints which software engineers will encounter during implementation of requirement engineering practices.

Significant Contribution

The most significant contribution of this research is the empirically investigation of the gap among the theoretical requirement engineering and the modern practical requirement engineering in the software industries. Our work in this research will also contribute to the Software Requirement Engineering by identifying a set of constrains for implementing the requirement engineering practices in the industries. Furthermore, in this study, we are identifying which requirement engineering methods and practices are mostly practical and are applicable in the industries. Accordingly, the results of this study could be used as reference for deciding the next potential software requirement engineering research problems.

Research Methodology

Empirical study is one of well-known research methods for software engineering [14]. Hasselbring and Giesecke [14] described empirical research as an observation of software development tasks in an experimental notion. An empirical study may consist of several research activities such as questioners, surveys, data analysis, case studies, experiments, quantitative studies, and qualitative studies [15]. An empirical research goal is to recognize the unknown information based on the existing hypothesizes, which always includes information gathering and systematic analysis on the gathered data.

Accordingly, we have found survey as an appropriate data gathering method in our empirical study. The survey will be used to investigate and gather the data from the extent of usage of the core requirement engineering practices. Moreover, we anticipate that a questionnaire based survey will help us to gather all the required information from the industry experts and professionals. A number of well-defined questions on the requirement engineering topic which considers the flexibility on analysis should be included in the questionnaire [16]. For our empirical research purposes, we need to define a standardized questionnaire and choose a sample of respondents from the selected population group [16]. Additionally, the sample of respondents will be chosen according to their position in software industry. Moreover, our empirical research used in this research includes four steps as follows:

Questionnaire design: designing a set of question that is able to capture our goals.

Survey distribution: distributing the questionnaires to the respondents.

Data analysis: analyzing the gathered data from survey.

Reporting: preparing the results of the analysis and reports.

These four steps shall be performed sequentially as they are shown in Figure 1. The procedures of these steps will be defined and described in the next phases of this research.

Figure : Survey research method

Expected Deliverables

The report prepared from our analysis on the gathered data from the industries is our final deliverable. This report is the result of our research; it will be validated and then delivered in our final thesis.

Expected Resources

Throughout this research, we will need to have access to various online databases such as IEEE eXplore digital library, Association for Computing Machinery Digital Library, Scopus, ScienceDirect, SpringerLink, and Web of Science. Furthermore, we need to travel to Iran at least for three months for the purpose of data gathering. We will contact the selected respondents and ask them, explain our research, and ask them to help us in our research.



rev

Our Service Portfolio

jb

Want To Place An Order Quickly?

Then shoot us a message on Whatsapp, WeChat or Gmail. We are available 24/7 to assist you.

whatsapp

Do not panic, you are at the right place

jb

Visit Our essay writting help page to get all the details and guidence on availing our assiatance service.

Get 20% Discount, Now
£19 £14/ Per Page
14 days delivery time

Our writting assistance service is undoubtedly one of the most affordable writting assistance services and we have highly qualified professionls to help you with your work. So what are you waiting for, click below to order now.

Get An Instant Quote

ORDER TODAY!

Our experts are ready to assist you, call us to get a free quote or order now to get succeed in your academics writing.

Get a Free Quote Order Now