Software Engineering Chapter 6 Software requirements

Download Report

Transcript Software Engineering Chapter 6 Software requirements

Software Engineering
Chapter 6
Software requirements
Ku-Yaw Chang
[email protected]
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
2
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
3
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 system’s 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
4
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
5
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
6
Readers of
different types of specification
Ku-Yaw Chang
User
requirements
Client managers
System end-users
Client engineers
Contractor managers
System architects
System
requirements
System end-users
Client engineers
System architects
Software developers
Software Requirements
7
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
8
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
9
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 account’s permanent storage area.
Ku-Yaw Chang
Software Requirements
10
6.1.2 Non-functional requirements
Non-functi ona l
requir ements
Produc t
requir ements
E ffi cie ncy
requir ements
Rel iabi lity
requir ements
Usa bi lity
requir ements
Perfor manc e
requir ements
Ku-Yaw Chang
Orga nisationa l
requir ements
Porta bi lity
requir ements
Deli very
requir ements
E xte rna l
requir ements
Inter oper a bi lity
requir ements
Impl ement a ti on
requir ements
Spac e
requir ements
E thic al
requir ements
St andar ds
requir ements
Pri vac y
requir ements
Software Requirements
L egislative
requir ements
Sa fet y
requir ements
11
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
Ku-Yaw Chang
Property
Measure
Speed
Processed transactions/second
User/Event response time
Screen refresh time
Size
M Bytes
Numb er of ROM chips
Ease of use
Training time
Numb er of h elp 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
Numb er of target systems
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
Interface Specification
Three types
Procedural interfaces

Application Programming Interfaces (APIs)
Data structures
Representation of data

Such as the ordering of bits
Ku-Yaw Chang
Software Requirements
21
PDL interface description
interface PrintServer {
// defines an abstract printer server
// requires:
interface Printer, interface PrintDoc
// provides: initialize, print, displayPrintQueue, cancelPrintJob, switchPrinter
void initialize ( Printer p ) ;
void print ( Printer p, PrintDoc d ) ;
void displayPrintQueue ( Printer p ) ;
void cancelPrintJob (Printer p , PrintDoc d) ;
void switchPrinter (Printer p1, Printer p2, PrintDoc d) ;
} //PrintServer
Ku-Yaw Chang
Software Requirements
22
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
23
Software Requirements Specification
(SRS)
The official statement of what is required of the
system developers
Include both


a definition of user requirements
a specification of the system requirements
It is NOT a design document.

It should set of WHAT the system should do rather
than HOW it should do it
Ku-Yaw Chang
Software Requirements
24
Users of a Requirements
Document
Ku-Yaw Chang
Software Requirements
25
IEEE Requirements Standard
IEEE/ANSI 830-1998 (IEEE, 1998)

Defines a generic structure for a requirements
document that must be instantiated for each
specific system
Introduction
General description
Specific requirements
Appendices
Index
Ku-Yaw Chang
Software Requirements
26
Requirements Document Structure
Preface
Introduction
Glossary
User requirements definition
System architecture
System requirements specification
System models
System evolution
Appendices
Index
Ku-Yaw Chang
Software Requirements
27
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
28