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

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy