0% found this document useful (0 votes)
19 views19 pages

Slide 3 Requirements Engineering

Uploaded by

Nathanel Rupondo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views19 pages

Slide 3 Requirements Engineering

Uploaded by

Nathanel Rupondo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 19

SOFTWARE ENGINEERING

FUNDAMENTALS

REQUIREMENTS ENGINEERING
• Requirements describe What not How
• The Req Eng. phase produces a document written in
natural language which contains a description of
what the system will do without describing how it
will do it.
• Without a well written document
i. Developers do not know what to build
ii. Customers do not know what to expect
iii. What to validate
What is requirements engineering?
• The process of gathering, defining, documenting and
maintaining the requirements or services provided by
the system.
• It provides the opportunity to;
• understand what the customer desires,
• analyze the need,
• assess feasibility,
• negotiate a reasonable solution,
• specify the solution clearly,
 validate the specifications and
 manage the requirements as they are transformed
into a working system.
 Thus, requirement engineering is the disciplined
application of proven, methods, tools, and notation to
describe a proposed system's intended behavior and
its associated constraints.
Requirement Engineering Process
Made up of the
following steps;
1.Feasibility Study
2.Requirement
Elicitation and
Analysis
3.Software Requirement
Specification
4.Software Requirement
Validation
5.Software Requirement
Management
1. Feasibility Study:
• The objective behind the feasibility study is to create
the reasons for developing the software that is:
• acceptable to users,
• flexible to change and
• conforming to standards.
Types of Feasibility:
1.Technical Feasibility –
• Technical feasibility evaluates the current
technologies, which are needed to accomplish
customer requirements within the time and budget.
2.Operational Feasibility –
• Operational feasibility assesses the range in which
the required software performs a series of levels to
solve business problems and customer requirements.

3.Economic Feasibility –
• Economic feasibility decides whether the necessary
software can generate financial profits for an
organization.
2. Requirement Elicitation and Analysis:
• This is also known as the gathering of
requirements.
• Here, requirements are identified with the help of
customers and existing systems, if available.

• The requirements are analyzed to identify


inconsistencies, omission, etc.
Elicitation Techniques:

• Interviews
• Questionnaires
• Brain storming
• Use case
diagrams
• Etc.
Types of Requirements
• Requirements are largely classified as user
requirements and system requirements.

• User Requirements
• Written for the customers/clients or stakeholders
• Often in natural language i.e. no technical jargon or
details (to allow customers to check if what the system
will do is actually what they want from the system)
• In short, they are a way for the analysts/ developers to
communicate with the customers/stakeholders with
regards to what is required of the system.
• System Requirements
• Written for the developers
• Contains detailed functional and non functional
requirements
• Are specified more clearly to tell developers what to
build.
• The developers can then take them and use them to
design the system.
Functional Requirements:
• Functional requirements define a function that a
system or system element must perform.
• The functional requirements are describing the
behavior of the system as it correlates to the
system's functionality.
Non-functional Requirements:
• Non-functional requirements are divided into two
main categories:
• Execution qualities like security and usability,
which are observable at run time.
• Evolution qualities like testability,
maintainability, scalability etc. that are embodied
in the static structure of the software system.
User Requirement example:
• The software must provide means of representing and
accessing external files created by other tools.

System Requirements example:


1.1 The user should be provided with a platform to
specify the type of external files to be imported into the
system.
1.2 Each file type may have an associated tool which
may be applied to the file.
1.3 There should be an icon representing an external file
type specified by the user.
1.4 When the user selects an icon representing an
external file,
the effect of that selection is to apply the tool
associated with the type of the external file,
to the file represented by the selected icon.
3. Software Requirement Specification:
• Software Requirement Specification (SRS) is a
document created by a software analyst after the
requirements collection/gathering.
• It is the job of the analyst to write the requirement in
technical language so that they can be understood by
the development team.
• The models used at this stage include ER diagrams,
data flow diagrams (DFDs), etc.
4. Software Requirement Validation:
• After requirement specifications are developed, the
requirements are validated.
• The user might demand illegal, impossible solution
or experts may misinterpret the needs.

Requirements Validation Techniques


• Requirements reviews/inspections
• A systematic manual analysis of the requirements.
How to Analyze Requirements
• Consider example of an educational software system where a
student can register for different courses.
Requirem
Example of bad
ent Example of good requirement
requirement
Quality
•Students will be able to enroll
•Students will be able to
to undergraduate courses
Atomic enroll to undergraduate and
•Students will be able to enroll
post graduate courses
to post-graduate courses
A professor user will log
A professor user will log into the
into the system by
system by providing his
Complete providing his username,
username, password and
password, and other
department code
relevant information
Each page of the system Register student and enroll
Testable will load in an acceptable courses, pages of the system will
time-frame load within 5 seconds
Software Requirement Management:
• New requirements emerge during the process as business
needs change, and a better understanding of the system is
developed.
• The priority of requirements from different viewpoints
changes during development process.
• The business and technical environment of the system
changes during the development.
• So the requirements need to be managed accordingly.

You might also like