Vous êtes sur la page 1sur 22

Software Engineering

Chapter 6
Software requirements
Ku-Yaw Chang
canseco@mail.dyu.edu.tw
Assistant Professor
Department of Computer Science and Information Engineering
Da-Yeh University

Objectives
Understand the concepts of user requirements
and system requirements and why these
requirements should be written in different ways
Understand the differences between functional
and non-functional software requirements
Understand how requirements may be organized
in a software requirements document

Ku-Yaw Chang

Software Requirements

Preamble
Requirements

Descriptions of the services provided by the system


and its operational constraints

Requirements engineering (RE)

The process of finding out, analyzing, documenting


and checking these services and constraints

Ku-Yaw Chang

Software Requirements

Preamble
Different level of descriptions

User requirements
Statements of what services the system is expected to
provide and the constraints under which it must operate
In a natural language plus diagrams

System requirements
Set out the systems functions, services and operational
constraints in detail
Should be precise, also called functional specification
Define exactly what is to be implemented

Ku-Yaw Chang

Software Requirements

Preamble
User requirement definition
1. LIBSYS shall keep track of all data required
by copyright licensing agencies in the UK and
elsewhere

Ku-Yaw Chang

Software Requirements

Preamble
System requirement definition
1.1 On making a request for a document from LIBSYS, the
requestor shall be presented with a form that records details of
the user and the request made.
1.2 LIBSYS request forms shall be stored on the system for five
years from the date of the request.
1.3 All LIBSYS request forms must be indexed by user, by the
name of the material requested and by the supplier of the
request.
1.4 LIBSYS shall maintain a log of all requests that have been
made to the system.
1.5 For material where authors lending rights apply, loan details
shall be sent monthly to copyright licensing agencies that have
registered with LIBSYS.
Ku-Yaw Chang

Software Requirements

Readers of
different types of specification
User
requirements

Client managers
System end-users
Client engineers
Contractor managers
System architects

System
requirements

System end-users
Client engineers
System architects
Software developers

Ku-Yaw Chang

Software Requirements

Contents
6.1 Functional and non-functional requirements
6.2 User requirements
6.3 System requirements
6.4 Interface specification
6.5 The software requirements document
6.6 Exercises

Ku-Yaw Chang

Software Requirements

6.1 Functional and non-functional


requirements
Functional requirements

Statements of services
the system should provide
how the system should react to particular inputs
how the system should behave in particular situations

Non-functional requirements

Constraints on the services or functions offered by the


system
timing constraints
constraints on the development process, standards, etc.

Domain requirements

From the application domain of the system and that


reflect characteristics of that domain

Ku-Yaw Chang

Software Requirements

6.1.1 Functional requirements


Examples for a university library system called
LIBSYS
1. The user shall be able to search either all of the initial
set of databases or select a subset from it.
2. The system shall provide appropriate viewers for the
user to read documents in the document store.
3. Every order shall be allocated a unique identifier
(ORDER_ID), which the user shall be able to copy to
the accounts permanent storage area.

Ku-Yaw Chang

Software Requirements

10

6.1.2 Non-functional requirements


Non-functional
requirements

Product
requirements

Efficiency
requirements

Reliability
requirements

Usability
requirements

Performance
requirements

Ku-Yaw Chang

Organisational
requirements

Portability
requirements

Delivery
requirements

External
requirements

Interoperability
requirements

Implementation
requirements

Space
requirements

Ethical
requirements

Standards
requirements

Pri vacy
requirements

Software Requirements

11

Legislative
requirements

Safety
requirements

Examples of
non-functional requirements
Product requirement

8.1 The user interface for LIBSYS shall be


implemented as simple HTML without frames or java
applets

Organizational requirement

9.3.2 The system development process and


deliverable documents shall conform to the process
and deliverables defined in XYZCo-SP-STAN-95.

External requirement

10.6 The system shall not disclose any personal


information about system users apart from their name
and library reference number to the library staff who
use the system.

Ku-Yaw Chang

Software Requirements

12

Metrics for specifying


non-functional requirements
Property

Measure

Speed

Processed transactions/second
User/Event response time
Screen refresh time

Size

M Bytes
Number of ROM chips

Ease of use

Training time
Number of help frames

Reliability

Mean time to failure


Probability of unavailability
Rate of failure occurrence
Availability

Robustness

Time to restart after failure


Percentage of events causing failure
Probability of data corruption on failure

Portability

Percentage of target dependent statements


Number of target systems

Ku-Yaw Chang

Software Requirements

13

6.1.3 Domain requirements


Be derived from the application domain

Not from the specific needs of system users

Reflect fundamentals of the application domain


Examples

There shall be a standard user interface to all


databases that shall be based on the Z39.50 standard.
Because of copyright restrictions, some documents
must be deleted immediately on arrival. Depending on
the user requirements, these documents will either be
printed locally on the system server for manual
forwarding to the user or routed to a network printer.

Ku-Yaw Chang

Software Requirements

14

Contents
6.1 Functional and non-functional requirements
6.2 User requirements
6.3 System requirements
6.4 Interface specification
6.5 The software requirements document
6.6 Exercises

Ku-Yaw Chang

Software Requirements

15

User requirements
Describe the functional and non-functional
requirements

Be understandable by system users without detailed


technical knowledge

Should

Simple language, simple tables and forms and


intuitive diagrams

Should not

Software jargon, structured notations or formal


notations, system implementation

Ku-Yaw Chang

Software Requirements

16

User requirements
Various problems

Lack of clarity
Requirements confusion
Requirements amalgamation

Ku-Yaw Chang

Software Requirements

17

A user requirement for


an accounting system in LIBSYS
4.5
LIBSYS shall provide a financial accounting
system that maintains records of all payments
made by users of the system. System managers
may configure this system so that regular users
may receive discounted rates.

Ku-Yaw Chang

Software Requirements

18

Contents
6.1 Functional and non-functional requirements
6.2 User requirements
6.3 System requirements
6.4 Interface specification
6.5 The software requirements document
6.6 Exercises

Ku-Yaw Chang

Software Requirements

19

Contents
6.1 Functional and non-functional requirements
6.2 User requirements
6.3 System requirements
6.4 Interface specification
6.5 The software requirements document
6.6 Exercises

Ku-Yaw Chang

Software Requirements

20

Contents
6.1 Functional and non-functional requirements
6.2 User requirements
6.3 System requirements
6.4 Interface specification
6.5 The software requirements document
6.6 Exercises

Ku-Yaw Chang

Software Requirements

21

Contents
6.1 Functional and non-functional requirements
6.2 User requirements
6.3 System requirements
6.4 Interface specification
6.5 The software requirements document
6.6 Exercises

Ku-Yaw Chang

Software Requirements

22