Session 1
Session 1
ENGINEERING
REQUIREMENTS ANALYSIS AND
SPECIFICATION
Topics to be covered Today
● Software Requirements: Functional and Non-Functional
● User requirements, System requirements
● Software Requirements Document
● Requirement Engineering Process: Feasibility Studies
● Requirements elicitation and analysis, requirements validation
● Requirements management
● Classical analysis: Structured system Analysis
● Petri Nets
● Data Dictionary.
Requirements engineering
● Requirements Engineering consist of 2 main functions : Understanding
the Requirements + Documenting the Requirements.
● What is Requirement ?
○ It is a feature of the system or a description of something the system
is capable of doing in order to fulfill the system purpose.
○ WHAT to do and not HOW to do it?
● Work Product : RE produces large document written in natural Language
containing a description of WHAT a system will do. - SRS Document
● INPUT to RE: Problem statement prepared by customer - Overview of
the existing system + New or additional functionality to be added.
Cont..
● Importance : Without well written Requirements
○ Developers will not know what to do?
○ Customers may not be consistent about Requirements.
○ It becomes difficult for the customer to validate/ accept the software
● Types of Requirements
○ Functional and Nonfunctional Requirements.
○ User and System Requirements
○ Interface Specifications
Cont..
● Stakeholders : It refers to anyone who may have direct or indirect
influence on System Requirements.
○ End-Users who will interact with the system.
○ Any one except the user who will be affected by the software that is
developed.
● Examples of Stakeholders
○ Investors ,Creditors,Employees ,Customers
○ Suppliers ,Government and Taxation Department
○ Community
Functional and non-
functional requirements
● Software system requirements are often classified as functional requirements or
non-functional requirements:
○ Functional requirements These are statements of services the system
should provide, how the system should react to particular inputs, and how
the system should behave in particular situations.
■ In some cases, the functional requirements may also explicitly state
what the system should not do
○ Non-functional requirements These are constraints on the services or
functions offered by the system.
■ They include timing constraints, constraints on the development
process, and constraints imposed by standards.
■ Non-functional requirements often apply to the system as a whole,
rather than individual system features or services
Functional requirements
● The functional requirements for a system describe what the system should
do.
● These requirements depend on the type of software being developed, the
expected users of the software, and the general approach taken by the
organization when writing requirements.
● When expressed as user requirements, functional requirements are usually
described in an abstract way that can be understood by system users.
● However, more specific functional system requirements describe the system
functions, its inputs and outputs, exceptions in detail.
● Functional system requirements vary from general requirements covering
what the system should do to very specific requirements reflecting local
ways of working or an organization’s existing systems.
Cont..
● Examples of functional requirements for the Mentcare system, used to maintain
information about patients receiving treatment for mental health problems:
■ A user shall be able to search the appointments lists for all clinics.
■ The system shall generate each day, for each clinic, a list of patients
who are expected to attend appointments that day.
■ Each staff member using the system shall be uniquely identified by his
or her eight-digit employee number.
● These functional user requirements define specific facilities to be provided by the
system.
● These have been taken from the user requirements document and they show
that functional requirements may be written at different levels of detail
Cont..
● Imprecision in the requirements specification is the cause of many software
engineering problems.
● It is natural for a system developer to interpret an ambiguous requirement in
a way that simplifies its implementation.
● Often, however, this is not what the customer wants.
● New requirements have to be established and changes made to the system.
● Of course, this delays system delivery and increases costs.
● In principle, the functional requirements specification of a system should be
both complete and consistent.
● Completeness means that all services required by the user should be defined.
● Consistency means that requirements should not have contradictory
definitions.
Cont..
● In practice, for large, complex systems, it is practically impossible to achieve
requirements consistency and completeness.
● One reason for this is that it is easy to make mistakes and omissions when
writing specifications for complex systems.
● These inconsistencies may not be obvious when the requirements are first
specified, so inconsistent requirements are included in the specification.
Cont..
● A functional requirement for an everyday object like a cup would be: “ability
to contain tea or coffee without leaking”.
System
Input Output
Behaviour
Game Scene
●The user shall be able to use the arrow keys to move the player up, down, left, or right.
●The user shall be able to type CTRL or press left mouse-click to attack enemies.
●The user shall be able to advance to the next generated map if they make contact
with the staircase sprite.
●The user shall be transferred to the start screen again if their character dies.