Lecture Notes

advertisement
CTIS 359 Principles of
Software Engineering
System Models
Cüneyt Sevgi CTIS 359 Fall 07-08
Today’s objectives
 To
explain DFDs for
requirements capturing and
modeling.
 To explain Use-Cases for
requirements capturing and
modeling.
Cüneyt Sevgi CTIS 359 Fall 07-08
Data Flow Diagrams (DFDs)

Notation for writing semi-formal operational
specifications
◦ Graphical notation
◦ Well-suited for analyzing/specifying traditional
◦ information-systems problems

System modeled as collection of data, which are
manipulated by “functions”
◦ Data can be persistent (stored in data repositories)
◦ Data can flow between/among functions
◦ Each function can be systematically decomposed into
a more refined DFD
Cüneyt Sevgi CTIS 359 Fall 07-08
DFDs Created by Top-Down Analysis

Create a narrative: description of
system

Create a Context Diagram that
contains a single process (“the
system”) and all entities which
share data with the system

Explode the “parent” context
diagram to produce a Diagram 0
(“child”) DFD

Create Diagram 1, 2, …, n DFDs
that represent “explosions” of
Diagram 0, 1, …, n-1 DFDs until a
diagram has only “primitive”
processes

Create process descriptions to be
implemented by application
programs: queries, macros, reports,
programming languages
Narrative
Context Diagram
Diagram 0 DFD
Diagram 1 DFDs
Diagram n DFDs
E-R Diagram
Process Descriptions
Cüneyt Sevgi CTIS 359 Fall 07-08
DFDs Created by Top-Down Analysis
(Cont.)
CONTEXT DIAGRAM
Level 1.2 DFD
2.2
2.1
2.3
Process
Specification
for Data Flow
Diagram 2.3
Process Spec for Level 2.3
kahgdkljhckldsajcaljscaljljakdclnh
kljclkjcl;kjcl;asjca;sjcjc;kkdj;jsa;k
ckjal;kjcalkjcal;jcaljcal;kjckljcakj
Level 0
DFD
1
2
3
4
if kjc = mjclakj
then
do
ldclscknlskld
else
jhalkscjl
lnhclsncdslnc
end - specification
Cüneyt Sevgi CTIS 359 Fall 07-08
External Agents (Entity)
External agent – an outside person,
organization unit, system, or organization that
interacts with a system. Also called an external
entity.
◦ External agents define the “boundary” or scope of
a system being modeled.
◦ As scope changes, external agents can become
processes, and vice versa.
◦ Almost always one of the following:




Office, department, division.
An external organization or agency.
Another business or another information system.
One of your system’s end-users or managers
◦ Named with descriptive, singular noun
Cüneyt Sevgi CTIS 359 Fall 07-08
Data Stores (Sink)
Data store – stored data intended for later
use. Synonyms are file and database.
◦ Frequently implemented as a file or database.
◦ A data store is “data at rest” compared to a data
flow that is “data in motion.”
◦ Almost always one of the following:





Persons (or groups of persons)
Places
Objects
Events (about which data is captured)
Concepts (about which data is important)
◦ Data stores depicted on a DFD store
all instances of data entities
(depicted on an ERD)
◦ Named with plural noun
Cüneyt Sevgi CTIS 359 Fall 07-08
Data Flows
◦ Data flow – A data flow is data in motion.
◦ A data flow may also be used to represent the
creation, reading, deletion, or updating of data
in a file or database.
• Represent the transfer of data over time
from one “place” (entity, process, data
store) to another
• Examples: New Student Information
New Student
Information
Cüneyt Sevgi CTIS 359 Fall 07-08
Process Concepts
Process –
work
performed by a
system in
response to
incoming data
flows or
conditions. A
synonym is
transform.
Cüneyt Sevgi CTIS 359 Fall 07-08
Common Process Errors on DFDs
Cüneyt Sevgi CTIS 359 Fall 07-08
Data Flow Packet Concept
Cüneyt Sevgi CTIS 359 Fall 07-08
Composite and Elementary Data
Flows
Cüneyt Sevgi CTIS 359 Fall 07-08
Data Flows to and from Data Stores
Cüneyt Sevgi CTIS 359 Fall 07-08
Illegal Data Flows
Cüneyt Sevgi CTIS 359 Fall 07-08
Diverging and Converging Data
Flows
Diverging data flow – a data flow that
splits into multiple data flows.
◦ Indicates data that starts out naturally as one
flow, but is routed to different destinations.
◦ Also useful to indicate multiple copies of the
same output going to different destinations.
Converging data flow – the merger of
multiple data flows into a single packet.
◦ Indicates data from multiple sources that can
(must) come together as a single packet for
subsequent processing.
Cüneyt Sevgi CTIS 359 Fall 07-08
Diverging and Converging Data
Flows
Cüneyt Sevgi CTIS 359 Fall 07-08
CASE for DFDs (Sample Screen)
from System Architect 2001
Cüneyt Sevgi CTIS 359 Fall 07-08
Sample Data to Process CRUD
Matrix
Cüneyt Sevgi CTIS 359 Fall 07-08
Sample Process to Location
Association Matrix
Cüneyt Sevgi CTIS 359 Fall 07-08

Our consulting firm has just been hired by Knights Pies to
develop a system to record orders for pizza and buffalo
wings. When regular customers call Knights Pies on the
phone, they are asked their phone number. When the
number is typed into a computer, the name, address, and last
order date is automatically brought up on the screen. If the
customer is new, then they are added to the system. Once
the order is taken, the total, including tax and delivery, is
calculated. Then the order is given to the cook. A receipt is
printed. Occasionally, special offers (coupons) are printed so
the customer can get a discount. Drivers who make
deliveries give customers a copy of the receipt and a coupon
(if any). Weekly totals are kept for comparison with last
year’s performance. You have the following tasks:
1. Draw the logical context level (Level 0) DFD for Knights
Pies.
2. Explode the logical context level DFD for Knights Pies,
creating the Level 1 DFD.
Cüneyt Sevgi CTIS 359 Fall 07-08
Context Diagram
Cüneyt Sevgi CTIS 359 Fall 07-08
Level-1 DFD
Cüneyt Sevgi CTIS 359 Fall 07-08
OBJECT-ORIENTED (OO)
SYSTEM
Object-Oriented
System is composed of
objects.
An Object is any person, thing, or event
about which we wish to store data or whose
behavior we wish to capture.
An Object has certain attributes and
behaviours.
Cüneyt Sevgi CTIS 359 Fall 07-08
OBJECT-ORIENTED (OO)
SYSTEM
•Object-Oriented Analysis
(OOA) –
Consider the problem domain from the
perspective of objects.
•Object-Oriented Design (OOD) – Define
the solution as a collection of software
objects.
•Object-Oriented Programming (OOP) –
Implement the objects using OO
languages.
Cüneyt Sevgi CTIS 359 Fall 07-08
What is UML?
The Unified Modeling Language (UML) is a
general-purpose visual modeling language
that is used to specify, visualize, and document
the artifacts of a software system.
 It captures decisions and understanding about
systems that must be constructed.


Source: UML Reference Manual, By James Rumbaugh, Ivar Jacobson, Grady
Booch.
Cüneyt Sevgi CTIS 359 Fall 07-08
UML Diagrams









Use-Case diagram
Class diagram
Object diagram
State diagram
Sequence diagram
Collaboration diagram
Activity diagram
Component diagram
Deployment diagram
Cüneyt Sevgi CTIS 359 Fall 07-08
UNIFIED MODELING
LANGUAGE (UML)
•UML
is the industry standard language for
specifiying, visualizing, constructing, and
documenting the artifacts of OO systems.
•UML embodies a set of 9 unique object
modeling and diagramming tools to define and
model an OO System.
•UML is NOT a development methodolgy.
•UML replaces older techniques such as
DFDs and ERDs.
Cüneyt Sevgi CTIS 359 Fall 07-08
UML DYNAMIC DIAGRAMS
•Use-Case
Diagram – Shows what a system does
from an external observer
•Sequence Diagram – Shows interactions that details
how operations are carried out
•Collaboration Diagram – Shows interactions also,
but focuses on object roles instead of times that
messages are sent
•Activity Diagram – Shows flow of activities in a
single process
•Statechart Diagram – Shows the possible states of
the object and the transition that causes a change in
state
Cüneyt Sevgi CTIS 359 Fall 07-08
UML STATIC DIAGRAMS
•Class
Diagram – Shows system’s classes and
relationships
•Object Diagram – Shows instances of
classes
•Component Diagram – Shows code
module
•Deployment Diagram – Shows the physical
deployments.
Cüneyt Sevgi CTIS 359 Fall 07-08
USE CASE DIAGRAM
•Although
each of the nine diagramming techniques in
the UML is important, the central building block of
the UML is the Use-Case diagram.
•It provides a high-level description of what the
system must do.
•A Use-Case diagram is created for each major
function of the system during the requirements
gathering process.
•A Use-Case diagram is concerned with interactions
between a user (human or another system) and the
system.
Cüneyt Sevgi CTIS 359 Fall 07-08
USE CASE DIAGRAM BENEFITS
•They
are regarded as an excellent technique for
capturing the functional requirements.
•They serve as a basis for identifiying the relevant
objects.
•They do not use special language.
•They allow to tell stories.
•Test cases can be directly drived from them.
•They can be used for estimating and scheduling
effort.
Cüneyt Sevgi CTIS 359 Fall 07-08
USE CASE DIAGRAM
LIMITATIONS
•They
cannot capture non-functional
requirements.
•They are not well-suited for safetycritical and real-time systems where
greater degree of precision is required.
•Some customers find it hard to
understand.
Cüneyt Sevgi CTIS 359 Fall 07-08
USE CASE DIAGRAM
COMPONENTS
•Use-Case
diagrams consists of 3 components.
•Actors - Any person, organization, or computer
system that is external but interacting with it.
•An actor does not represent a specific end
user, but rather represents a role that an end
user can play while interacting with the system.
•Illustrated as stick figures.
•Use-Cases – They are “scenarios” and
•A use-case represents a sequence of steps
that define the completion of a single business
task.
•Illustrated as ovals.
•Relationships – Associations between an actor
and use-case.
Cüneyt Sevgi CTIS 359 Fall 07-08
BUILDING A USE CASE
DIAGRAM PROCESS
•Identify
system boundry with actors.
•Identify each actor’s goals when
interacting with the system.
•Express these goals with use-cases.
Cüneyt Sevgi CTIS 359 Fall 07-08
IDENTIFY ACTORS
•Human Actors
•Who uses system?
•Who provides events and data to the system?
•Who gets information from the system?
•Non-Human
Interface Points
•What other systems use this system?
•What other devices use this system?
•What other external event trigger system
response?
Cüneyt Sevgi CTIS 359 Fall 07-08
Example Application - ATM

Software will be developed for a bank’s
ATM. ATM will allow withdrawing money
from accounts, depositing money to
accounts, and transfering money between
accounts of customers who have a bank
card. ATM will get information about the
customer or customer accounts from the
central bank system when required. The
central bank system will get a summary of
the operations performed in a day from the
ATM at the end of that day.
Cüneyt Sevgi CTIS 359 Fall 07-08
ATM Application - Actors

Question:
◦ Who/what are the users of ATM application?
Bank
Customer
Central Bank
System
Cüneyt Sevgi CTIS 359 Fall 07-08
Example - Small Changes

If the application to be developed is a branch
application with the following requirement:
◦ “The bank customer tells the bank clerk the operation
that s/he wants to perform.”
◦ Who are the actors of that system?
Actor, because Bank Clerk directly intracts with the system
Bank
Customer
Bank Clerk
Branch
Application
Cüneyt Sevgi CTIS 359 Fall 07-08
Example - Small Changes

If the application to be developed is an
Internet banking application:
◦ Who is the actor of that system?
Bank
Customer
Internet Application
Actor, because Bank Customer
directly intracts with the system
Cüneyt Sevgi CTIS 359 Fall 07-08
ATM Application – Use Cases

Question: What do the actors identified
want to accomplish by using the ATM?
◦ Actor: Bank customer
 Withdraw money
 Deposit money
 Transfer between accounts
◦ Actor: Central bank system
 Taking daily summary
 In addition, it will take roles in all of the use cases
above
Cüneyt Sevgi CTIS 359 Fall 07-08
ATM Application –
Short Descriptions

Actor: Bank customer
◦ Is the person who has a bank card and who is
allowed to perform operations on ATM with
his/her card

Use Case:Withdraw money
◦ Defines how a bank customer withdraws
money from his/her account. The bank
customer should select the amount to
withdraw and the customer’s funds should
meet the stated amount.
Cüneyt Sevgi CTIS 359 Fall 07-08
ATM Application –
Use Case Model
Withdraw money
Central Bank System
Deposit money
Bank Customer
Taking daily summary
Transfer between accounts
Cüneyt Sevgi CTIS 359 Fall 07-08
Use Case Model

Dynamics of a use case may be specified
by






statechart diagrams
sequence diagrams
collaboration diagrams
informal text
Use-Cases diagrams accompanied by a
textual documents.
The combination of two is called UseCase model.
Cüneyt Sevgi CTIS 359 Fall 07-08
ATM Application –
“Withdraw Money” Use Case
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
The bank customer inserts his card
The ATM reads the card and requests the password
The bank customer enters his password
The ATM shows the types of transactions
The bank customer selects “withdraw money”
transaction
The ATM displays cash amounts to withdraw
The bank customer selects the cash amount to withdraw
The central bank system checks for sufficient funds
The central bank system debits the account
The ATM dispenses the cash
The ATM ejects the card
Cüneyt Sevgi CTIS 359 Fall 07-08
Use Case No
1
Use Case Name
Withdraw Money
Defined By
Ali Veli
Last Updated
By
Ali Veli
Defined On
DD/MM/
YY
YY
Last Updated
On
DD/MM/YYYY
Actors:
Bank customer, Central Bank System
Descriptions
Defines how a bank customer withdraws money from his/her account
Pre-conditions
The central bank is online;
ATM holds the amount of money withdrawn
Post-conditions
The bank customer takes the cash dispensed and the card ejected by the ATM
Priority
1
Frequency of
Use
Very Frequent
ATM Application
“Withdraw Money”
Use Case Definition
Cüneyt Sevgi CTIS 359 Fall 07-08
Basic Flow
Alternative Flows
The bank customer inserts his card
1. The ATM reads the card and requests the password
2. The bank customer enters his password
3. The ATM shows the types of transactions
4. The bank customer selects “withdraw money” transaction
5. The ATM displays cash amounts to withdraw
6. The bank customer selects the cash amount to withdraw
7. The central bank system checks for sufficient funds
8. The central bank system debits the account
9. The ATM dispenses the cash
10. The ATM ejects the card
A1.1 The bank customer cannot insert his/her card right
A1.2 ATM returns the card
A1.3 Continue with Step 1 in the basic flow
A2.1 The customer enters wrong password
A2.2 ATM invokes the bank customer
A2.3 Continue with Step 3 in the basic flow
A9.1 The central bank determines the fund are not sufficient
A9.2 ATM invokes the bank customer
A9.3 Continue with Step 7 in the basic flow
Referenced Use Cases
Special Requirements
For “withdraw money” transaction type to be active, the ATM should hold
the minimum cash amount displayed by the ATM for witdrawal
Assumptions
Notes:
Cüneyt Sevgi CTIS 359 Fall 07-08
ATM
Application
“Withdraw
Money”
Use Case
Definition
Some other Features of Use Case
Models
Cüneyt Sevgi CTIS 359 Fall 07-08
<<include>>

An include relationship can be used to when
a particular use case is included in other use
cases because it encapsulates some
functionality that is used at several points
in the system. This avoids having to define
the same sequence of actions in multiple use
cases. The including use case will continue up
to the point where it includes the base use
case, the full sequence of activities in the
base use case will be carried out, and the
including use case will carry on at the point
where it left off.
Source: UML- Schaum’s Outline Series 2nd Edition P.29
Cüneyt Sevgi CTIS 359 Fall 07-08
<<include>>

Factor out subfuction use cases and use
the <<include>> relationship when
◦ They are duplicated in the other use cases
◦ A use case is very complex and long, and
separating it into subunits aids comprehension
◦ To describe the handling of an asynchronous
event such as when a user able to, at any time,
select a particular window, function, etc..
Source: Larman P. 497
Cüneyt Sevgi CTIS 359 Fall 07-08
<<extend>>

There are occasions where one use case
may OPTIONALLY be extended by the
functionality in another use case. This
relationship is called extend.
Cüneyt Sevgi CTIS 359 Fall 07-08
<<extend>>

Note that <<extend>> use case is
triggered by some condition.
Cüneyt Sevgi CTIS 359 Fall 07-08
LAB

You will create a use case model for a
given example.
Cüneyt Sevgi CTIS 359 Fall 07-08
End

Any questions/suggestions?
Cüneyt Sevgi CTIS 359 Fall 07-08
Download