Slide 3 Requirements Engineering
Slide 3 Requirements 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.
• 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.