Software Requirements and Its Types

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 37

Software Requirements

Engineering

1
Introduction

• Requirements form the basis for all


software products

• Requirements engineering is the


process, which enables us to
systematically determine the
requirements for a software product

2
Software Requirements

Lecture # 1

3
Requirement

• Something required, something wanted


or needed
– Webster’s dictionary
• There is a huge difference between
wanted and needed and it should be
kept in mind all the time

4
Ripple
effect
Why do we need
RE?
Software Requirements - 1

• A complete description of what the


software system will do without
describing how it will do it is
represented by the software
requirements

7
Software Requirements - 2

• Software requirements are complete


specification of the desired external
behavior of the software system to be
built

• They also represent External behavior


of the system

8
Software Requirements - 3

• Software requirements may be:


– Abstract statements of services and/or
constraints
– Detailed mathematical functions

9
Software Requirements - 4

• Software requirements may be:


– Part of the bid of contract
– The contract itself
– Part of the technical document, which
describes a product

10
IEEE Definition

• A condition or capability that must be


met or possessed by a system...to
satisfy a contract, standard,
specification, or other formally
imposed document
– IEEE Std 729

11
Sources of Requirements

• Stakeholders
– People affected in some way by
the system
• Documents
• Existing system
• Domain/business area

12
Levels of Software
Requirements
• Stakeholders describe requirements at
different levels of detail
– “What versus How”
– “One person’s floor is another person’s
ceiling”

13
Importance of
Software
Requirements
• The hardest single part of building a
software system is deciding what to
build...No other part of the work so
cripples the resulting system if
done wrong. No other part is
difficult to rectify later
– Fred Brooks
14
Examples of Requirements - 1

• The system shall maintain records of


all payments made to employees on
accounts of salaries, bonuses,
travel/daily allowances, medical
allowances, etc.

15
Examples of Requirements - 2

• The system shall interface with the


central computer to send daily sales
and inventory data from every
retail store

16
Examples of Requirements - 3

• The system shall maintain records of


all library materials including
books, serials, newspapers and
magazines, video and audio tapes,
reports, collections of
transparencies,
CD-ROMs, DVDs, etc.
17
Examples of Requirements - 4

• The system shall allow users to search


for an item by title, author, or by
International Standard Book Number

• The system’s user interface shall be


implemented using a web browser

18
Examples of Requirements - 5

• The system shall support at least


twenty transactions per second

• The system facilities which are


available to public users shall be
demonstrable in ten minutes or less

19
Kinds of Software Requirements

20
Kinds of Software Requirements

• Functional requirements
• Non-functional requirements
• Domain requirements
• Inverse requirements
• Design and implementation constraints

21
Functional Requirements

22
Functional Requirements - 1

• Statements describing what the system


does

• Functionality of the system

23
Functional Requirements - 2

• Statements of services the system


should provide
– Reaction to particular inputs
– Behavior in particular situations

24
Functional Requirements - 3

• Sequencing and parallelism are also


captured by functional
requirements

• Abnormal behavior is also documented


as functional requirements in the form
of exception handling
25
Functional Requirements - 4

• Functional requirements should be


complete and consistent

• Customers and developers usually


focus all their attention on functional
requirements

26
Functional Requirements Example
#1

• The system shall solve a quadratic


equation using the following formula

x = (-b+sqrt(b2 – 4*a*c))/2*a

27
Functional Requirements Example # 2

• The user shall be able to search either


the entire database of patients or select
a subset from it (admitted patients, or
patients with asthma, etc.)

28
Functional Requirements Example # 3

• The system shall provide appropriate


viewers for the user to read documents
in the document store

29
Functional Requirements Example # 4

• Every order shall be allocated a unique


identifier (ORDER_ID) which the
user shall use to access that order

30
Functional Requirements Example # 5

• The system shall allow customers to


return non-perishable items within
fifteen days of the purchase. A
customer must present the original sale
receipt to return an item

31
Comments on Examples

• Notice the level of detail in different


requirements described above.
Some are very detailed compared to
others

32
Comments on Examples

• Notice the ambiguity in the


requirement, which uses the term
‘appropriate viewers’

• This requirement does not mention the


formats of documents and types of
viewers, which can be used

33
Comments on Examples

• Notice the ambiguity in the


requirement for solving the quadratic
equation. The requirement does
not speak about the possibility when
the value of ‘a’ is zero

x = (-b+sqrt(b – 2

4*a*c))/2*a 34
Comments on Examples

• Incomplete and ambiguous


requirements are open to multiple
interpretations and assumptions

• This can lead to the development of


poor quality, or faulty, software
products

35
Summary

• Requirements form the basis of all


software engineering projects
• Functional requirements capture the
behavioral aspects/functions of the
proposed automated system
• Functional requirements are the
backbone of all software products

36
References

• ‘Requirements Engineering: Processes and


Techniques’ by G. Kotonya and I.
Sommerville, John Wiley & Sons, 1998
• Software Requirements: Objects, Functions,
and States by A. Davis, PH, 1993
• Software Engineering 6th Edition, by I.
Sommerville, 2000
• Software Engineering 5th Edition, by R.
Pressman
37

You might also like