Software Requirement / Specification
LECTURE 2
Software Engineering
Software Specification or Requirements
The Descriptions of the services and
constraints are the requirements for
the system and the process of
finding out, analyzing, documenting
and checking these services and
constraints is called requirements
engineering.
Ambiguous requirements
Levels of Requirements
Some of the problems that arise during the requirement
engineering process are a result of failing to make a clear
separation between the different levels of description.
User Requirements
High level abstract requirements
System Requirements
Detailed description of what the system should do
A software design specification
Is an abstract description of design specification
Advantage of Requirement Levels
Client mangers
Communicate User requirement
System end-users
Client engineers
information Contractor managers
System architects
about the System end-users
System
system to requirements
Client engineers
System architects
Software developers
different types
of readers Software design System architects
specification Software developers
Classification of Requirements
Software System requirements are often classified as following
Functional requirements
It describe the functionality/services which system should provide.
How the system should react to particular input.
What type of output system should produce.
How the system behave in particular situation or exception.
Use cases are used to captured functional requirements
Non-functional requirements
It describe the constraints on the service/functions offered by system.
They relate to system properties such as reliability, response time, storage
occupancy, security etc.
User Requirements
Should simply focus on the key facilities to be provided.
Should describe the functional and non-functional requirements.
User don’t have detailed technical knowledge.
Should specify the external behavior of the system.
Avoid as far as possible, system design characteristics.
Must be written using natural language forms and simple
intuitive diagrams.
System Requirements
More detailed descriptions of the user requirements.
Serve as contract between contractor and client.
Should be complete and consistent specification of the whole
system.
Requirement specification may include data-flow model.
They are the starting point of system design for software engineer
Should state what the system should do and not how it should be
implemented.
REA(Requirement Engineering activity)
RE is a process that involves all of the activities required to create and maintain a
system requirements document. There are four generic high level RE process
activities.
Requirements
Feasibility
elicitation and
study
analysis
Requirements
specification
Requirements
Feasibility validation
report
System
Model
User and system
requirements Requirements
document
Feasibility Studies
10
Is a focused study which aims to answer a number of questions
Does the system contribute to the overall
objectives of the organization?
Can the system be implemented using
current technology and within given cost
and schedule constraints?
Can the system be integrated with other
systems which are already in place?
Requirements elicitation and analysis
11
In this activity, technical Requirements
software development staff Requirements
specification
checking
work with stakeholders to find
out about the application Domain
understanding
Prioritisation
domain, what services the
system should provide, the Requirements Conflict
required performance of the collection resolution
system, hardware constraints, Requirements
Classification
and so on. document
Next Lecture
Requirement Specification
Requirement Validation