The document discusses software requirement analysis and specification. It describes determining user and stakeholder needs, defining functional and non-functional requirements, and requirement types like performance and quality attributes. Requirements must be testable and related to business needs. The analysis process involves defining user and stakeholder profiles, environments, and use cases. Common techniques for organizing requirements include functional hierarchies, data flow diagrams, and use case diagrams. The software requirements specification fully defines system behavior.
1 of 20
Download to read offline
More Related Content
Soft requirement
1. Software Requirement Analysis
Determining the needs or conditions to meet for a new or
altered product,
In other words, process of studying and analyzing the
customer and the user/stakaholder needs to arrive at a
definition of software reqiurements.
Requirements must be actionable, measurable, testable,
related to identified business needs or opportunities, and
defined to a level of detail sufficient for system design.
Requirements can be functional and non- functional
2. Types of Requirements
Functional requirements
Performance requirements
Speed, accuracy, frequency, throughput
External interface requirements
Design constraints
Requirements are usually about what, this is a
how.
Quality attributes
i.e. reliability, portability, maintainability,
supportability
3. Requirements vs. Design
Requirements Design
Describe what will be
delivered
Describe how it will be done3
Primary goal of analysis:
UNDERSTANDING
Primary goal of design:
OPTIMIZATION
There is more than one
solution
There is only one (final)
solution
Customer interested Customer not interested (Most
of the time) except for external
4. Software Quality Attributes
Correctness
Reliability
Rating = 1 (Num Errors/ Num LOC)
Can be allocated to subsystems
Efficiency
Integrity
Usability
Survivability
Maintainability
Verifiability
Flexibility
Portability
Reusability
Interoperability
Expandability
5. Requirements Analysis
Defining Stakeholder profiles
Description - brief description of the stakeholder type
Type - Qualify s-hs expertise, technical background, degree of
sophistication
Responsibilities - List s-hs key responsibilities with regard to
the system being developed - why a stakeholder?
Success Criteria - How does the stakeholder define success?
How rewarded?
Involvement - involved in the project in what way?
Requirements reviewer, system tester, ...
Deliverables* - required by the stakeholder
Comments/Issues - Problems that interfere w/ success, etc.
6. Requirements Analysis
Defining User Profiles
Description - of the user type
Type - qualify expertise, technical background, degree of
sophistication
Responsibilities - users key resp.s w.r.t. system being
developed
Success Criteria - how this user defines success? rewarded?
Involvement - How user involved in this project? what role?
Deliverables - Are there any deliverables the user produces?
For whom?
Comments/Issues - Problems that interfere w/ success, etc.
This includes trends that make the users job easier or harder
7. Requirements Analysis
Defining User Work Environment
Number of people involved in doing this now?
Changing?
How long is a task cycle now? Changing?
Any unique environmental constraints: mobile,
outdoors, in-flight, etc.
Which system platforms are in use today? future?
What other applications are in use? Need to
integrate?
8. Requirements Analysis
Product Overview
Put the product in perspective to other related
products and the users environment.
Independent?
Component of a larger system?
How do the subsystems interact with this?
Known interfaces between them and this
component?
Block diagram
10. Software Requirement Specification
A software requirements specification (SRS) is a complete
description of the behavior of the system to be developed
A document that clearly and precisely describes, each of the
essential requirements of the software and the external
interfaces.
(functions, performance, design constraint, and quality attributes)
Each requirement is defined in such a way that its
achievement is capable of being objectively verified by a
prescribed method; for example inspection, demonstration,
analysis, or test.2
11. Requirements Analysis
Fundamental Techniques (Views)
functional view
hierarchy - function tree
process use cases
information ow data flow diagram (DFD)
data oriented view
data structures data dictionary (DD), syntax diagram,
Jackson diagram
relations between entities entity relationship diagram
(ER)
object-oriented view
class structure class diagram
12. Requirements Analysis
algorithmic view
control structures
pseudo code, structogram, flow diagram, Jackson diagram
conditions rules, decision table
state-oriented view
state machines
Petri nets
sequence charts
13. Use Case
use case is a description of a systems
behavior as it responds to a request that
originates from outside of that system.
it describes "who" can do "what" with the
system in question
14. Use Case Diagram
A use case diagram
in the Unified Modeling Language (UML)
a type of behavioral diagram defined by and created from
a Use-case analysis.
Its purpose is to present a graphical overview of the
functionality provided by a system in terms of actors, their
goals (represented as use cases), and any dependencies
between those use cases.
The main purpose
to show what system functions are performed for which
actor.
Roles of the actors in the system can be depicted.
16. Data Flow Diagram (DFD)
graphical representation of data ow (classical
technique)
nodes:
function labeled circle
store name between two horizontal lines
interface to environment labeled rectangle
directed edges: represent data flow
properties of DFDs
easy to create
easy to read and understand
17. Data Dictionary
A data dictionary is a collection of data about
data.
It maintains information about the definition,
structure, and use of each data element that
an organization uses.
19. IEEE Std 830-1998 IEEE Recommended Practice
for Software Requirements Specifications -
Description
Abstract: The content and qualities of a good software
requirementsspecification (SRS) are described and several
sample SRS outlines are presented. This recommended
practice is aimed at specifying requirements of software to be
developed but also can be applied to assist in the selection of
in-house and commercial software products. Guidelines for
compliance with 12207.1-1997 are also provided.
Keywords: contract, customer, prototyping, software
requirements specification, supplier, system requirements
specifications