Joseph Valacich, Joey George and Jeff Hoffer,
Essentials of System Analysis and Design , 4 th edition,
Prentice Hall, 2009.
• Definition and construction of functional models
• Documenting functional models---Data flow diagram (DFD)
• Structuring and organizing DFDs
2
• Functional: what happens
• Dynamic: when it happens
• Static: what it happens to
3
• Describes computations and transformation of data
– How are outputs derived from inputs
– Specifies results of computations, not how or when they are computed input x program y = f ( x ) output y
4
• Does not describe timing
– Has no regard for order of operations
– No control information
– Not a flow chart
• Uses diagrams
– Use cases
– Data flow diagram (DFD, not a UML diagram)
– Activity diagrams
5
1. Identify input and output values
2. Build data flow diagrams (DFD) showing functional dependencies.
3. Describe the functions.
4. Identify the constraints.
6
• At the highest level of abstraction, these are the system inputs and outputs.
• Each lower level has inputs and outputs defined by some higher level.
input x program output y
7
• Start with each output and determine what function computes it.
• (Or trace forward from inputs.)
• Expand each non-trivial process in a higherlevel diagram by constructing a lower-level diagram.
f
1 f
11 f
13 f
12
8
• Write a description of each function
(using any of the specification techniques discussed earlier).
Function, f : Integer
Integer, such that f(x) = -1 if x < 0 f(x) = 0 if x == 0 f(x) = 1 otherwise
9
• Constraints are functional dependencies between objects that are not related by an input-output dependency.
– Between two objects at the same time
– Between instances of the same object at different times
– Between different objects at different times.
• State the time the condition must hold.
• E.g. “no account balance may ever become negative.”
10
• Need a signature (syntactic or interface)
• Need transformations (semantics or meaning)
11
• Need a signature (syntactic or interface)
– Name
– Arguments (number, order, types)
– Values returned (number, order, types)
• Need transformations (semantics or meaning)
12
• Need a signature (syntactic or interface)
• Need transformations (semantics or meaning)
– Equations and formulae
– Tables of values
– Pre and post conditions
– Decision tables
– Pseudo code
– Natural language
13
• Trivial
– Access: read or write attributes. May not be necessary to show all of these.
• Non-trivial
– Queries: no side effects
– Actions: “instantaneous” (atomic)
– Activities: duration over time
14
Definition and construction of functional models
• Documenting functional models---Data flow diagram (DFD)
• Structuring and organizing DFDs
15
• Uses diagrams
– Data Flow Diagram (DFD)
– UML Activity Diagram
16
• Semi-formal notation for specifying
– Functions of an information system and
– How data flow from functions to functions
• Describes systems as
– Collections of functions that manipulate data
– Data can
• Be stored in data repository ,
• Flow in data flows , and Customer
Items
• Be transferred to or from the environment .
Price List
Find Cost
Cost
Customer
17
• Order of operations (functions)
• Control information
• Flow charts
18
• Four components
– Processes
– Data flows
– Data stores
– Sources/sinks
(or )
19
• Transform data values
• Drawn as ellipses with fixed number of in-arrows and out-arrows dividend divisor quotient
Divide
Integer remainder
20
• Connect processes
• Represent intermediate data
• Values are not changed by data flow
• Arrow with name or type of data integer a copy address city split zip city street address zip aggregation
21
• Stores persistent data for later use
• Has exactly two operations:
– Store
– Retrieve
• Drawn as: data store
22
• Producers or consumers of data
• Also called terminators and actors
Customer
Producer (source)
Printer
Consumer (sink)
23
Price Lists
Price List
Item Name
Find Cost
Cost
24
Teaching
Assistant
Names
Scores
Enter scores
Grade Book
Names
Scores
Scores
Names
Scores
Average
Compute statistics
Average
Median
Names
Scores
Grades
Create report
Grade report
Grades
Calculate grades
25
• Repositories to store information about all data items defined in the DFD
• DD may include:
– Name of data item
– Aliases (other names for item)
– Description and purpose
– Range of values
– Data flow (generated by, used by)
– Data structure definition and form
Alan Davis, Software Requirements , Prentice Hall, 1993.
26
27
Pairs (5 minutes): Model the function of a candy machine described below.
– Customer inserts coins
– Machine validates coins
– Customer selects a candy
– Machine validates candy selection
– Machine validates transaction
– Machine dispenses change
– Machine dispenses product
28
Definition and construction of functional models
Documenting functional models---Data flow diagram (DFD)
• Structuring and organizing DFDs
29
• Apply levels of abstraction (leveling)
• The initial DFD is: input program output
• This can be expanded into lower levels.
• Eventually, the process must stop.
– When atomic processes can be described.
31
• Describes the system at the highest, most abstract level.
• Determines the scope of the system
• Provides a general view of the system environment identifying external interfaces.
• Comprised of:
– One bubble (the name of the system)
– System terminators (sources and sinks)
– External inputs and outputs
32
Employee info
Timecard info
Pay info
Process
Payroll
Acct info
33
Rules of Decomposition
I1
I2
1. A
O
Level n
O
I1
I2
1.1 J dx dx
1.2 K
1.3 L dy dy dz
Data storage Level n+1
34
Rules of Decomposition (Cont.)
I
1. B
O
Level n
I dx
I1
I2
1.1 J dy
1.2 K
1.3 L
O1
O2 dy
O
Level n+1
35
Inputs and outputs to level n+1 match level n
Timecard info
4: Format paycheck
Pay info
(formatted)
Pay info
Employee info 3: Calculate withholding
1: Validate timecard
Gross pay
Valid timecard info
2: Calculate gross pay
Acct. Info
5: Format accounting
Acct. Info
(formatted)
Emp. info 3.1: Compute withholding rate
Gross pay
Rate
Pay info
3.2: Compute net pay
Acct. info
37
• Show all possible computation paths for values.
• Do not show what paths are executed in what order (that’s the job of the dynamic model).
• There may be many Level N+1 diagrams for each Level N diagram. Level N+1 expands a single node of a Level N diagram.
38
1. Describe the system at the highest, most abstract level (context diagram)
2. Decompose the system and represent it as a
DFD with multiple bubbles.
2.1 Document the processes
2.2 Fill out the data dictionary
3. Decompose a process (following step 2) until the problem is understood
39
• At the highest level of abstraction, these are the system inputs and outputs.
• Each lower level has inputs and outputs defined by some higher level.
40
• Start with each output and determine what function computes it.
• (Or trace forward from inputs.)
• Expand each non-trivial function
(process) by constructing a lower-level diagram.
41
1. Is each requirements function represented by a transform in the DFDs?
2. Is each system input and output represented in the DFDs?
3. Is each I/O from a higher-level DFD reproduced correctly on the lower-level
DFDs?
4. Is each transform in the lowest-level DFDs primitive?
42
5. Are all labels of information flows in the data dictionary?
6. Do all data dictionary entries appear in the
DFDs?
43
• Draw the DFD for the gas pump controller
(see handout).
• Draw a Level 0, Level1, and 2 Level 2 diagrams.
• (15 minutes)
44