CpSc 372: Introduction to Software Development

Analysis Modeling (cont’d)
CpSc 372:
Introduction to
Software Engineering
Jason O. Hallstrom
[email protected]
Authorship Disclaimer. These slides are intended to serve as teaching instruments for an undergraduate course in Software
Engineering. While the slides were formatted by Dr. Hallstrom, the content is compiled from other sources, including the readings
listed on the course website, Dr. Pressman’s Software Engineering textbook, and various internet materials. In almost every case,
the ideas belong to someone other than Dr. Hallstrom. Indeed, text is often quoted verbatim without an explicit citation (to improve
the readability of the slides). The original authors retain all copyrights. If you are interested in citing any of the material in these
slides, please contact Dr. Hallstrom for the original source(s). DO NOT CITE THIS PRESENTATION. THE CONTENT SHOULD NOT BE
ATTRIBUTED TO DR. HALLSTROM. SEE DR. HALLSTROM IF YOU HAVE ANY QUESTIONS.
CpSc 372
A Roadmap
We are going to examine some of
the key tools used for creating an
analysis model.
General




Use-cases
Use-case diagrams
Activity diagrams
Swimlane diagrams
Structured Analysis




Data object diagrams
ERD diagrams
Data flow diagrams
Process specifications
These tools are not specific
to either structured analysis
or OO analysis.
OO Analysis




Class diagrams
Packages
CRC cards
Sequence Diagrams
CpSc 372
Data Flow Diagrams
Structured Analysis:

Modeling Tools:
Models data elements


Attributes
 Relationships

Models processes that
transform data
modeled
using


modeled
using

Data object diagrams
ERD diagrams
Data flow diagram
Process narrative
A data flow diagram describes information flow among a
set of processes and actors.
1
*
A process narrative describes how a single process
transforms input data to output data.
CpSc 372
Data Objects
A data object is a domain element that will be manipulated
by the system.
Characteristics:



Examples:
Plays a necessary role
Characterized by attributes
Uniquely identifiable (?)



Roles
Events
Places



Object: car
Modeling
Attributes:
• VIN #
• Make
• Model
• Price
External entities
Structures
Other things
CpSc 372
Relationships, Cardinality, Modality

Relationships

Define connections between
objects
Person
1
1
insured

Cardinality

Defines the number of items
on either end of a connection
owns
*
*
Car
1

Modality

Defines the necessity of a
connection
attached
1
Trailer
Entity-Relationship Diagram (ERD)
CpSc 372
DFD: A Basic Example
(See Pressman Chapter 8, Section 8.6.1, pg. 195)
display
information
Control
panel
commands
and data
SafeHome
software
Sensors
alarm
type
sensor
status
telephone
tones
External entities
(squares)
Data flows
(directed edges)
Panel
display
Alarm
Telephone
line
Processes
(circles)
Notice that the system is represented as a single bubble.
This is known as a level 0 DFD, or a context diagram.
CpSc 372
DFDs and Progressive Refinement
(See Pressman Chapter 8, Section 8.6.1, pg. 196)
Each DFD reveals progressively more detail than
the DFD that preceded it.
Level 1 DFD:
Control
panel
commands
and data
Interact
with user
Configure
request
…
Activate /
deactivate
system
…
Process
password
…
Start/stop
request
password
Refinement continues until
each bubble can be (easily)
implemented as a program
module.
Configure
system
CpSc 372
Process Narrative
(See Pressman Chapter 8, Section 8.6.4, pg. 200)
…
password
Process
password
…
A process specification describes
all of the flow processes in the
final (most detailed) DFD.
“The process password transform performs password validation
at the control panel for the SafeHome security function. Process
password receives a four-digit password from the interact with
user function. The password is first compared to the master
password stored within the system …”
A process specification can be represented as a collection
of process narratives.
CpSc 372
How are DFDs Constructed?
(See Pressman Chapter 8, Section 8.6.1, pg. 195)
Scope
document
Grammatical
parse
Level 0
DFD
Develop
process
narratives
Grammatical
parse
Next level
DFD
(nouns = external entities, data/control objects, data stores)
(verbs = processes)
Note that nouns and verbs are associated with one another.
CpSc 372
Some Guidelines

Level 0 DFD should contain only a single
bubble

All arrows and bubbles should be
meaningfully labeled

Refinement begins by isolating next level
processes, data objects, and data stores

Refine only one bubble at a time

Data flow continuity must be maintained
between levels
CpSc 372
Let’s Try it Out!
The Video Library Management System
An excerpt from the scope document:
The video library management system will interact with the
user through a web-based browser interface. When the user
logs into the system, the system will determine the user’s
access privileges based on the user configuration database. If
the user is an administrator, the system will allow the user to
enter new movie titles, new actor information, etc. If the user is
not an administrator, the system will allow the user to query the
system based on movie title, actor, director, etc.
What might the level 0 DFD look like? Level 1?
CpSc 372
And a Bit of Review
Another excerpt from the scope document:
The system will allow the user to store a number of information
elements with each video, director, and actor. Each video will
be characterized by a title, a genre descriptor, a short synopsis,
a list of directors, a list of actors, a rating, and a UPC code.
Each actor and director will be characterized by a first and last
name, a year of birth, and a brief biography. When the user is
viewing a video entry, they will be able to retrieve the full actor
(or director) information by clicking the actor’s (or director’s)
name.
What would be an appropriate
ERD diagram for this excerpt?