Understanding Requirements
Slide Set to accompany
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
Requirements Engineering-I
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
Requirements Engineering-II
A written document
A set of models
A formal mathematical
A collection of user scenarios (use-cases)
A prototype
Requirements management
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
Inception
Identify stakeholders
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
Eliciting Requirements
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
Eliciting Requirements
Conduct FAST
meetings
Make lists of
functions, classes
Make lists of
constraints, etc.
formal prioritization?
Elic it requirements
no
yes
Use QFD to
prioritize
requirements
define actors
informally
prioritize
requirements
draw use-case
diagram
write scenario
Create Use-cases
complete template
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
Scenario-based elements
Functionalprocessing narratives for software functions
Use-casedescriptions of the interaction between an
actor and the system
Class-based elements
Implied by scenarios
Behavioral elements
State diagram
Flow-oriented elements
Data flow diagram
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
Use-Cases
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
Use-Case Diagram
Arms/ disarms
system
Accesses system
via Internet
sensors
homeowner
Responds to
alarm event
Encounters an
error condition
system
administrator
Reconfigures sensors
and related
system features
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
10
Class Diagram
From the SafeHome system
Sensor
name/id
type
location
area
characteristics
identify()
enable()
disable()
reconfigure ()
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
11
State Diagram
Reading
Commands
System status = ready
Display msg = enter cmd
Display status = steady
Entry/subsystems ready
Do: poll user input panel
Do: read user input
Do: interpret user input
State name
State variables
State activities
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
12
Negotiating Requirements
Negotiate
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
13
Validating Requirements - I
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
14
Validating Requirements - II
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
15
Chapter 6
Requirements Modeling:
Scenarios, Information, and
Analysis Classes
copyright 1996, 2001, 2005, 2010
16
Requirements Analysis
Requirements analysis
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
17
18
19
A Bridge
system
description
analysis
model
design
model
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
20
Rules of Thumb
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
21
22
Domain Analysis
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
23
Structured Analysis
Data and the Process that transforms the data are separate entities.
Data Objects are modeled by defining their attribute and relationships.
Process are modeled in a manner in which they transform data as
data objects flow through the system.
Object-Oriented Analysis
Focuses on the definition of Classes
& the manner in which they collaborate with one another
to effect customer requirement
24
Scenario-Based Modeling
[Use-cases] are simply an aid to defining what exists
outside the system (actors) and what should be
performed by the system (use-cases). Ivar Jacobson
(1) What should we write about?
(2) How much should we write about it?
(3) How detailed should we make our description?
(4) How should we organize the description?
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
25
identify stakeholders
define the scope of the problem
specify overall operational goals
establish priorities
outline all known functional requirements, and
describe the things (objects) that will be manipulated by the
system.
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
26
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
27
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
28
Developing a Use-Case
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
29
Use-Case Diagram
SafeHome
Access camera
surveillance via the
Internet
cameras
Configure SafeHome
system parameters
homeowner
Set alarm
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
30
enter password
and user ID
valid passwords/ ID
invalid passwords/ ID
other f unctions
may also be
selected
input tries remain
select surveillance
thumbnail views
no input
tries remain
select specific
camera - thumbnails
prompt for
another view
exit this f unction
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
31
c a m e ra
i n t e rf a c e
enter password
and user ID
inpu t t ries
remain
select surveillance
n o input
t ries remain
select specific
camera - thumbnails
generate video
output
view camera output
in labelled window
prompt for
another view
exit t his
f unct io n
see
an o t her
camera
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
32
Data Modeling
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
33
What is an Object?
34
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
35
36
What is a Relationship?
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
37
Car
Data Objects
Person
Car
A basic connection
Car
A Relationship
owns
Person
Has
License
Relationship
direction
38
Cardinality
One to One
One to Many
Many to Many
39
ERD Notation
One common form:
object1
(0, m)
relationship
(1, 1)
object 2
attribute
object1
(0, m)
(1, 1)
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
object 2
40
ERD Notation
41
Examples
Person
DNA
Pattern
Member
42
Examples
Person
Employer
Source: http://www.datamodel.org/DataModelCardinality.html
These courseware materials are to be used in conjunction with Software Engineering: A
Practitioners Approach, 6/e and are provided with permission by R.S. Pressman & Associates,
Inc., copyright 1996, 2001, 2005
43
Building an ERD
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
44
(1,1)
places
(1,m)
request
for service
(1,1)
standard
task table
generates
(1,1)
selected
from
work
(1,w) tasks
materials
(1,w)
(1,i)
(1,n)
work
order
(1,1)
(1,1)
consists
of
lists
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
45
Class-Based Modeling
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
46
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
47
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
48
Defining Attributes
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
49
Defining Operations
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
50
CRC Models
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
51
CRC Modeling
Class:
Class:
Description:
Class:
Description:
Class:FloorPlan
Description:
Responsibility:
Description:
Responsibility:
Responsibility:
Responsibility:
Collaborator:
Collaborator:
Collaborator:
Collaborator:
Wall
Camera
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
52
Class Types
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
53
Responsibilities
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
54
Collaborations
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
55
In such cases, a client-class depends on the serverclass in some way and a dependency relationship is
established
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
56
Multiplicity
Wall
1
is used to build
1
is used to build
1..*
WallSegment
Window
0..*
Door
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
57
Dependencies
Camera
DisplayWindow
<<access>>
{password}
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
58