Requirements Engineering in Software Development Projects

Requirements Engineering in Software Development Projects.
By Author’s Name
Course Name:
Instructor’s Name:
Institution
Department
Date
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.
REQUIREMENTS ENGINEERING IN SOFTWARE DEVELOPMENT PROJECTS. 3
3.0 Literature Review
3.1 Activities in Requirements Engineering
There are several activities that are involved in requirements engineering such as
scoping, fact gathering, analysis, modelling, validation and prototype analysis, trade of
analysis and negotiations. The objective of the activities is to ensure that there is a user and
stakeholder engagement from the start that ensures that the developed software eventually
subscribes to user requirements and is adoptable to the user and stakeholder environment
(Awasthi, Dr. R.N. Raizada and Dubey, 2012).
3.1.1Scoping
This is the first step in requirements engineering as it is critical in establishing the
boundaries of the intended system. Most of the clients may not necessarily have a definite
knowledge of what they want the system to do (Bokhari and Siddiqui, 2015), therefore the
expert has to take time to understand their current working environment and what the ideal
system is supposed to achieve so as to document the user requirements accurately. This will
then help to determine the scope of the system. Scoping can therefore not be objectively
achieved without the engagement of stakeholders and appropriate documentation.
3.2 Fact Gathering
In system analysis, the engagement done with stakeholders involve activities such as
questionnaires, interviews, observation, analysis of documents that describe the functions of
the organisation or department among other tools (slideshare.net, 2015). In fact gathering, the
same tools are used to collect important information on the existing system, its flaws, what
the right system is supposed to achieve so as to design an appropriate solution.
3.3 Analysis
Analysis is concerned in the investigation of the 5 ‘W’ questions. These are:
-What goals of the system are?
REQUIREMENTS ENGINEERING IN SOFTWARE DEVELOPMENT PROJECTS. 4
-What objects are involved?
- Where the system is located
-When different activities should happen
-Why the system is necessary
Sometimes as illustrated by (Gilb and Brodie, 2005) , goal related analysis provides
an environment that helps to discover obstacles or risks to the new system that is caused by
other factors that are outside the expected range of probable factors. This then provides an
opportunity for the review of the external factors that affect the system and the creation of an
environment where the stakeholders discuss further how these risks could be minimised.
3.4Modelling
After analysis, the results from the analysis are then represented in graphical
structures that show input, processes and output. This requires the use of data flow diagrams,
entity relationship diagrams and other forms of modelling. Most of the formal approaches
used in modelling have been borrowed from software engineering (Bokhari and Siddiqui,
2015) . This is however not been proven to be the best way in industrial practise (Ghaoui,
2006).
3.5 Validation
Validation is a key activity in requirements engineering as it involves having users
review the requirements specification and understand their implications. This allows for the
users to complain or raise issues with the system if it suits their requirements. This is done
through the use of a prototype of the desired system. The users are taken through a structured
walkthrough that so as to understand the proposed system as well as to positively critic the
system with the view of improving the system. Prototypes are not cheap to build, they are
expensive and may also may not be the right fit. They are however very effective especially
when combined with techniques for information gathering (Bokhari and Siddiqui, 2015).
REQUIREMENTS ENGINEERING IN SOFTWARE DEVELOPMENT PROJECTS. 5
According to (Caroll et al), sometimes it is important during validation to incorporate
animated simulations as well as scenario-based representations in helping the users and
stakeholders understand the proposed system thereby improving on their understanding of the
system and subsequent positive criticism of the system that will lead to an improved system
that suits the user requirements.
3.6 Trade-off analysis
Not all requirements can be sufficiently met in the building of a system. Some of the
requirements may be in conflict with some of the stakeholders that use the system and
therefore conflicting of views is common. This therefore requires that there be a trade-off
analysis that compares, prioritises and decides what is mission critical to the system and what
is not that high on the priority requirement list (Awasthi, Dr. R.N. Raizada and Dubey, 2012).
Sometimes, matrix based techniques and decision tables are helpful in making this
comparison.
When decision tables, decision trees, flowcharts and other representations are used, it
becomes easier to identify the core functions and non core functions of the system thereby
making it easier to facilitate negotiations as well as trade-off analysis therefore making it
easier for the stakeholders to understand the priorities of the proposed system and therefore
letting go of noncore expectations of the system.
3.7 Negotiation
After the trade off analysis, sometimes there may be need to further discuss what
functions that may be forfeited in favour of others. There may be two functions that a system
is required to perform but due to technical, internal or external factors, the system may not be
able to sufficiently perform both functions. This therefore requires a further negotiation of
what function to let go off and what function to retain. (Carrillo de Gea et al., 2012), suggests
the creation of an artefact through which issues of design alternatives can be conclusively
REQUIREMENTS ENGINEERING IN SOFTWARE DEVELOPMENT PROJECTS. 6
discussed and determined. The artefact must have a strategic dependency model that maps
out relationships between goals, tasks, actors and other issues specific to the project. The
model is then followed by a rationale that describes or gives out probable system solutions to
requirements with reason for the different choices.
4.0 Discussion
According to the (IEEE standard 610.12-1990), all requirements engineers are
supposed to subscribe to the followings standards, functionality, performance, attributes,
external interface and design constraints (Awasthi, Dr. R.N. Raizada and Dubey, 2012). In
essence, these are the main benefits of requirements engineering in software development.
4.1 Benefits of Requirement Engineering
Functionality
Functionality is the yardstick used to determine if the software was able to achieve its
prescribed functions. The purpose for which the software was created to do must be clear. In
requirements engineering, the stages of the engagement of the stake holders are clear
therefore giving clarity to the overall objective of what the software is supposed to do.
Performance
In performance, the software is said to perform or not based on the execution or
implementation of user requirements. Due to the clear stages of engagement with
stakeholders from the onset of software development, it is almost impossible not to have
software that does not conform to the user needs.
Attributes
The clear engagement with stakeholders from the inception of software development
to the end provides for the incorporations of characteristics such as portability, correctness of
the system, security and ability to maintain and debug errors even after the system has gone
live.
REQUIREMENTS ENGINEERING IN SOFTWARE DEVELOPMENT PROJECTS. 7
External Interface
During validation, requirements engineering provides an opportunity for the
stakeholders to interact with the prototype, give suggestions, thereby giving the software an
opportunity to interact with the environment while at validation and prototype stage. This
ensures that the system already developed will have considerations for outsiders that interact
with the system.
Design Constraints
Requirements engineering affords a software development system to conform to
required standards in areas such as policies that involve a shared database, the limiting of
resources to different stakeholders and operating environment.
5.0 Conclusion
Requirements engineering refers to efforts involved in the identification,
communication and the purpose of software development and the function in which the
specified software will be used for. Requirements engineering is therefore the connection
between the day to day user needs, clients as well as other people and functions affected by
the software and the opportunities offered in the course of implementing the software.
Sometimes there have been challenges in software development where the design constraints
or external interfaces may not conform to the environment that the software is eventually
used in or even conforming to acceptable standards. The requirements engineering model of
engagement with stakeholders and the users of the system attempts to minimize the
anomalies brought about by other systems.
REQUIREMENTS ENGINEERING IN SOFTWARE DEVELOPMENT PROJECTS. 8
References
Awasthi, A., Dr. R.N. Raizada, D. and Dubey, R. (2012). Metrics For Requirement
Engineering And Reuirement Tools A Comparative Study. GRA, 3(3), pp.8-8.
Bokhari, M. and Siddiqui, S. (2015). A Comparative Study of Software Requirements Tools
For Secure Software Development. [online] Academia.edu. Available at:
http://www.academia.edu/1297946/A_Comparative_Study_of_Software_Requirements
_Tools_For_Secure_Software_Development [Accessed 8 Aug. 2015].
Carrillo de Gea, J., Nicolás, J., Fernández Alemán, J., Toval, A., Ebert, C. and
VizcaÃ-no, A. (2012). Requirements engineering tools: Capabilities, survey and
assessment. Information and Software Technology, 54(10), pp.1142-1157.
Ghaoui, C. (2006). Encyclopedia of human computer interaction. Hershey PA: Idea Group
Reference.
Gilb, T. and Brodie, L. (2005). Competitive engineering. Oxford: Butterworth-Heinemann.
Holt, J., Perry, S. and Brownsword, M. (2012). Model-based requirements engineering.
Stevenage: Institution of Engineering and Technology.
slideshare.net, (2015). Survey on Requirements Engineering Tools. [online] Slideshare.net.
Available at: http://www.slideshare.net/jnicolasros/refsq2011-v4-def [Accessed 8 Aug.
2015].

Place new order. It's free, fast and safe

-+
550 words

Our customers say

Customer Avatar
Jeff Curtis
USA, Student

"I'm fully satisfied with the essay I've just received. When I read it, I felt like it was exactly what I wanted to say, but couldn’t find the necessary words. Thank you!"

Customer Avatar
Ian McGregor
UK, Student

"I don’t know what I would do without your assistance! With your help, I met my deadline just in time and the work was very professional. I will be back in several days with another assignment!"

Customer Avatar
Shannon Williams
Canada, Student

"It was the perfect experience! I enjoyed working with my writer, he delivered my work on time and followed all the guidelines about the referencing and contents."

  • 5-paragraph Essay
  • Admission Essay
  • Annotated Bibliography
  • Argumentative Essay
  • Article Review
  • Assignment
  • Biography
  • Book/Movie Review
  • Business Plan
  • Case Study
  • Cause and Effect Essay
  • Classification Essay
  • Comparison Essay
  • Coursework
  • Creative Writing
  • Critical Thinking/Review
  • Deductive Essay
  • Definition Essay
  • Essay (Any Type)
  • Exploratory Essay
  • Expository Essay
  • Informal Essay
  • Literature Essay
  • Multiple Choice Question
  • Narrative Essay
  • Personal Essay
  • Persuasive Essay
  • Powerpoint Presentation
  • Reflective Writing
  • Research Essay
  • Response Essay
  • Scholarship Essay
  • Term Paper
We use cookies to provide you with the best possible experience. By using this website you are accepting the use of cookies mentioned in our Privacy Policy.