REQUIREMENTS ENGINEERING IN SOFTWARE DEVELOPMENT PROJECTS. 2
1.0 Introduction
According to (Ghaoui, 2006), requirements engineering is an engineering discipline
that establishes requirements of the users and then specifies the software system. A similar
view is held by (Carrillo de Gea et al., 2012) , that requirements engineering first mission is
to find out what the day to day user needs are of the people that interact with a computer
system, their expectations of the systems and the incorporation of the user needs and
expectations into the proposed design. Requirements engineering has some similarities with
software engineering however the major difference is that software engineering main purpose
is the development of a system that those that interact with the system want. (Boehm, 1981)
describes requirements engineering as the design of the right system and software
engineering as designing the system right. A more detailed definition by (Holt, Perry and
Brownsword, 2012) describes requirements engineering as a processed that is used to
identify the purpose, through the identification of stakeholders involved, their user needs, and
documenting this in a way that is possible to be analysed, communicated and implemented.
2.0 Analysis
Requirements engineering has critical aspects such as the engineering activities and
process, scenario based design, models and design representations, design advice and
knowledge reuse. Requirements activities and process include scoping, fact gathering,
analysis, modelling, and validation, trade off analysis, negotiation and processing a map of
requirements. According to (Bokhari and Siddiqui, 2015) , there exist non functional
requirements that are different from procedural requirements such as being portable, easy to
maintain, security, ability to be re-used and being reliable. Additionally, there are other
requirements that are not quantifiable by an existing metric system to specify their objectives
or function.