12
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: Introduction to Software Development

Embed Size (px)

Citation preview

Page 1: CpSc 372: Introduction to Software Development

Analysis Modeling (cont’d)

CpSc 372:Introduction to Software Engineering

Jason O. [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.

Page 2: CpSc 372: Introduction to Software Development

CpSc 372

A Roadmap

Use-cases Use-case diagrams Activity diagrams Swimlane diagrams

Data object diagrams ERD diagrams Data flow diagrams Process specifications

We are going to examine some of the key tools used for creating an analysis model.

General

Structured Analysis OO Analysis Class diagrams Packages CRC cards Sequence Diagrams

These tools are not specific to either structured analysis or OO analysis.

Page 3: CpSc 372: Introduction to Software Development

CpSc 372

Data Flow Diagrams

Models data elements Attributes Relationships

Models processes that transform data

Structured Analysis:

Data object diagrams ERD diagrams

modeled using

Data flow diagram Process narrative

modeled using

A data flow diagram describes information flow among a set of processes and actors.

A process narrative describes how a single process transforms input data to output data.

Modeling Tools:

1

*

Page 4: CpSc 372: Introduction to Software Development

CpSc 372

Data Objects

Plays a necessary role Characterized by attributes Uniquely identifiable (?)

Roles Events Places

A data object is a domain element that will be manipulated by the system.

Characteristics: Examples: External entities Structures Other things

Object: car

Attributes:• VIN #• Make• Model• Price

Modeling

Page 5: CpSc 372: Introduction to Software Development

CpSc 372

Relationships, Cardinality, Modality

Cardinality Defines the number of items

on either end of a connection

Relationships Define connections between

objects

Modality Defines the necessity of a

connection

Person

Car

ownsinsured

11

**

Trailer

attached

1

1

Entity-Relationship Diagram (ERD)

Page 6: CpSc 372: Introduction to Software Development

CpSc 372

DFD: A Basic Example

SafeHomesoftware

Controlpanel

Sensors

Paneldisplay

Alarm

Telephoneline

commandsand data

sensorstatus

displayinformation

telephonetones

alarmtype

External entities(squares)

Data flows(directed edges)

Processes(circles)

Notice that the system is represented as a single bubble.This is known as a level 0 DFD, or a context diagram.

(See Pressman Chapter 8, Section 8.6.1, pg. 195)

Page 7: CpSc 372: Introduction to Software Development

CpSc 372

DFDs and Progressive Refinement

Each DFD reveals progressively more detail than the DFD that preceded it.

Level 1 DFD:

(See Pressman Chapter 8, Section 8.6.1, pg. 196)

Interactwith user

Controlpanel

commandsand data Configure

system

Configurerequest

Activate /deactivate

system

Start/stoprequest

Processpassword

password …

Refinement continues until each bubble can be (easily) implemented as a program module.

Page 8: CpSc 372: Introduction to Software Development

CpSc 372

Process Narrative

Processpassword

password

A process specification describes all of the flow processes in the final (most detailed) DFD.

A process specification can be represented as a collection of process narratives.

“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 …”

(See Pressman Chapter 8, Section 8.6.4, pg. 200)

Page 9: CpSc 372: Introduction to Software Development

CpSc 372

How are DFDs Constructed?

Grammaticalparse

Developprocess

narratives

Level 0 DFD

Scopedocument

Grammaticalparse

Next level DFD

(See Pressman Chapter 8, Section 8.6.1, pg. 195)

(nouns = external entities, data/control objects, data stores)(verbs = processes)

Note that nouns and verbs are associated with one another.

Page 10: CpSc 372: Introduction to Software Development

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

Page 11: CpSc 372: Introduction to Software Development

CpSc 372

Let’s Try it Out!

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.

The Video Library Management System

What might the level 0 DFD look like? Level 1?

An excerpt from the scope document:

Page 12: CpSc 372: Introduction to Software Development

CpSc 372

And a Bit of Review

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.

Another excerpt from the scope document:

What would be an appropriate ERD diagram for this excerpt?