Title: Chapter 6: Software Requirements
1Chapter 6 Software Requirements
- Yonsei University
- 2nd Semester, 2009
- Sanghyun Park
2Contents
- Functional and non-functional requirements
- User requirements
- System requirements
- Software requirement document
3What Is A Requirement?
- The descriptions of the _______ and _________ of
the system to be developed - The process of finding out, analyzing,
documenting, and checking these services and
constraints is called __________ engineering
4Types Of Requirements (1/2)
- User requirements
- High-level abstract description of system
services and constraints - Written for _________
- System requirements
- Detailed description of what the system should do
- Written for senior technical staff and project
________ - Software specification
- Detailed software description which can serve as
a basis for a design and implementation - Written for _________
5Types Of Requirements (2/2)
- Functional requirements
- Statements of ________ the system should
provide,how the system should react to
particular inputs, andhow the system should
behave in particular situations - Non-functional requirements
- _________ on the services or functions offered by
the system such as timing constraints,
constraints on the development process,
standards, etc. - Domain requirements
- Requirements that come from the application
_______ of the system and that reflect
characteristics of that domain
6Functional Requirements
- Describe the functionality or services that the
system is expected to provide - Depend on the type of software, expected users,
and type of system where the software is used - Functional user requirements may be ____-level
statements of what the system should do - Functional system requirements should describe
the system services in _____
7Examples Of Functional Requirements
- University library system
- The user shall be able to search either ___ of
the initial set of databases or select a ______
from it - The system shall provide appropriate ______ for
the user to read documents in the document store - Every order shall be allocated a unique
identifier (ORDER_ID) which the user shall be
able to copy to the accounts permanent storage
area
8Requirement Imprecision
- Problems arise when requirements are not _______
stated - __________ requirements may be interpreted in
different ways by developers and users - Consider the term appropriate viewers
- User intention special purpose viewer for each
different document type - Developer interpretation provide a text viewer
that shows the contents of the document
9Completeness And Consistency
- In principle, the functional requirements should
be both complete and consistent - Completeness means that ___ services required by
the user should be defined - Consistency means that requirements should not
have _____________ definitions - For large and complex systems, it is _________
impossible to achieve requirement consistency and
completeness
10Non-Functional Requirements
- Define system _________ and __________
- Process requirements may also be specified
__________ a particular CASE system, programming
language, or development method - Non-functional requirements may be more ________
than functional requirementsif these are not
met, the system is useless
11Non-Functional Requirement Types
Non-functionalrequirements
Organizationalrequirements
Productrequirements
Externalrequirements
Efficiencyrequirements
Reliabilityrequirements
Portabilityrequirements
Interoperabilityrequirements
Ethicalrequirements
Usabilityrequirements
Deliveryrequirements
Implementationrequirements
Standardsrequirements
Legislativerequirements
Performancerequirements
Spacerequirements
Privacyrequirements
Safetyrequirements
12Metric For SpecifyingNon-Functional Requirements
- Non-functional requirements are sometimes
difficult to ______ - Ideally, non-functional requirements should be
expressed ___________ using metrics
13Domain Requirements
- Derived from the application _______ and describe
system characteristics and features that reflect
the domain - May be new functional requirements, constrain
existing requirements, or define how particular
computations must be carried out - If domain requirements are not satisfied, the
system may be ___________
14Domain Requirement Problems
- Understandability
- Requirements are expressed in the language of the
___________ domain - This is often not understood by software
engineers developing the system - Implicitness
- Domain specialists understand the area so well
that they do not think of making the domain
requirements _______
15User Requirements
- High-level abstract description of system
services and constraints written for customers - Defined using ________ language, tables and
diagrams
16Problems With Natural Language
- Lack of clarity
- _________ is difficult without making the
document difficult to read - Requirement confusion
- Functional and non-functional requirements tend
to be _______ - Requirement amalgamation
- Several different requirements may be expressed
________
17Editor Grid Requirement
- 2.6 Grid facilities
- To assist in the positioning of entities on a
diagram,the user may turn on a grid in either
centimeters or inches, via an option on the
control panel.Initially, the grid is off. The
grid may be turned on and off at any time during
an editing session and can be toggled between
inches and centimeters at any time.A grid
option will be provided on the reduce-to-fit view
but the number of grid lines shown will be
reduced to avoid filling the smaller diagram with
grid lines.
18Requirement Problems
- The first sentence of editor grid requirement
mixes three different kinds of requirements - _________ functional requirement (the need for a
grid) - Non-functional requirement (detailed information
on grid _____, centimeters or inches) - Non-functional UI requirement(how the grid is
switched on and off by the user) - The user requirement should simply focus on the
____ facilities to be provided - The _______ associated with the requirements is
also important
19Editor Grid Requirement (Revised)
- 2.6 Grid facilitiesThe editor shall provide a
grid facility where a matrix of horizontal and
vertical lines provide a background to the editor
window. This grid shall be a passive grid where
the alignment of entities is the users
responsibility.Rationale A grid helps the user
to create a tidy diagram with well-spaced
entities. Although an active grid, where entities
snap-to grid lines can be useful, the
positioning is imprecise. The user is the best
person to decide where entities should be
positioned.
20Guidelines ForWriting User Requirements
- Invent a _________ format and ensure that all
requirement definitions adhere to that format - Use language in a _________ wayuse shall for
mandatory requirementsuse should for
desirable requirements - Use text __________ to identify key parts of the
requirements - Avoid use of _________ jargon
21System Requirements
- More ______ specifications of user requirements
- Serve as a basis for ________ the system
- In principle, the system requirements should
state _____ the system should do and not ___ it
should be implemented - Natural language is often used to write system
requirements however further ________ with
natural language can arise
22Problems With NL Specification
- Ambiguity
- The readers and writers of the requirement must
interpret the ____ words in the ____ wayNL is
naturally ambiguous so this is very difficult - Over-flexibility
- The ____ thing may be said in a number of
________ ways in the specification - Lack of modularization
- NL structures are __________ to structure system
requirements
23Alternatives To NL Specification
- Structured natural language
- Design description language
- Graphical notations
- Mathematical specifications
24Structured Natural Language
- The freedom of the requirement writer is limited
by a predefined _________ for requirements - The advantage is that the most of the
____________ of natural language is maintained
but a degree of _________ is imposed on the
specification - Often best supported using a form-based approach
25Form-Based Specification
- Definition of the ______ or entity being
specified - Description of ______ and where they come from
- Description of ______ and where they go
- Indication of other entities required
- Pre and Post __________ (if appropriate)
- The _____ effects (if any) of the function
26Form-Based Specification Example
27Tabular Specification
- Used to supplement natural language
- Particularly useful when there are a number of
possible _________ situations and we need to
describe the ______ to be taken for each of these
28Tabular Specification Example
Action
Condition
Sugar level falling (r2 lt r1)Sugar level stable
(r2 r1) Sugar level increasing and rate
ofincrease decreasing ((r2-r1) lt (r1-r0)) Sugar
level increasing and rate ofincrease stable or
increasing ((r2-r1) (r1-r0))
CompDose 0CompDose 0 CompDose
0 CompDose round ((r2-r1)/4)If rounded
result 0 thenCompDose MinimumDose
29Graphical Models
- Most useful when we need to show how _____
changes or where we need to describe a ________
of actions - Different graphical models are explained in
Chapter 8
30Sequence Diagram Of ATM Withdrawal
ATM
Database
Card
Card number
Card OK
PIN request
PIN
Validate card
Option menu
ltltexceptiongtgt
invalid card
Withdraw request
Balance request
Balance
Amount request
Handle request
Amount
Debit (amount)
Debit response
ltltexceptiongtgt
insufficient cash
Card
Card removed
Completetransaction
Cash
Cash removed
Receipt
31Software Requirement Document
- The software requirement document is the official
statement of what the system developers should
implement - It should include both the user requirements for
a system and a detailed specification of the
_______ requirements - It is NOT a ______ document. As far as possible,
it should set out WHAT the system should do
rather than HOW it should do it
32Users Of A Requirement Document
Specify the requirements andread them to check
that theymeet their needs. Customersspecify
changes to therequirements.
Systemcustomers
Use the requirementdocuments to plan a bid
forthe system and to plan thesystem development
process.
Managers
Systemengineers
Use the requirements tounderstand what system
isto be developed.
System testengineers
Use the requirements todevelop validation tests
forthe system.
Systemmaintenanceengineers
Use the requirements tounderstand the system
andthe relationships between itsparts.
33IEEE Requirement Standard
- IEEE standard suggests the following structure
for requirement documents - Introduction
- General description
- Specific requirements
- Appendices
- Index
34Requirement Document Structure
- Preface
- Introduction
- Glossary
- User requirement definition
- System architecture
- System requirement specification
- System models
- System evolution
- Appendices
- Index