440 likes | 723 Views
Functional Modeling. Joseph Valacich, Joey George and Jeff Hoffer, Essentials of System Analysis and Design , 4 th edition, Prentice Hall, 2009. Outline. Definition and construction of functional models Documenting functional models---Data flow diagram (DFD) Structuring and organizing DFDs.
E N D
Functional Modeling Joseph Valacich, Joey George and Jeff Hoffer, Essentials of System Analysis and Design, 4th edition, Prentice Hall, 2009.
Outline • Definition and construction of functional models • Documenting functional models---Data flow diagram (DFD) • Structuring and organizing DFDs
Review: Modeling Functional: what happens Dynamic: when it happens Static: what it happens to 3
Functional Models • Describes computations and transformation of data • How are outputs derived from inputs • Specifies results of computations, not how or when they are computed output y input x program y = f(x)
Functional Models (Cont.) • 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
Steps in Constructing Functional Model • Identify input and output values • Build data flow diagrams (DFD) showing functional dependencies. • Describe the functions. • Identify the constraints.
1. Identify Input/Output • 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. output y input x program
2. Build Diagrams • Start with each output and determine what function computes it. • (Or trace forward from inputs.) • Expand each non-trivial process in a higher-level diagram by constructing a lower-level diagram. f1 f11 f13 f12
3. Describe Each Function • Write a description of each function (using any of the specification techniques discussed earlier). • Function, f: IntegerInteger, such that • f(x) = -1 if x < 0 • f(x) = 0 if x == 0 • f(x) = 1 otherwise
4. Identify Constraints • 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.”
Specifying Functions • Need a signature (syntactic or interface) • Need transformations (semantics or meaning)
Specifying Functions (Cont.) • Need a signature (syntactic or interface) • Name • Arguments (number, order, types) • Values returned (number, order, types) • Need transformations (semantics or meaning)
Specifying Functions (Cont.) • 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
Functions • 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
Outline Definition and construction of functional models Documenting functional models---Data flow diagram (DFD) Structuring and organizing DFDs 15
Documenting Functional Models • Uses diagrams • Data Flow Diagram (DFD) • UML Activity Diagram
Price List Items Cost Find Cost Customer Customer Data Flow Diagram (DFD) • 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 • Be transferred to or from the environment.
DFDs Are Not For Specifying • Order of operations (functions) • Control information • Flow charts
(or ) DFD Notation • Four components • Processes • Data flows • Data stores • Sources/sinks
Processes • Transform data values • Drawn as ellipses with fixed number of in-arrows and out-arrows dividend quotient Divide Integer divisor remainder
street city city a integer address address zip zip copy aggregation split Data Flows • Connect processes • Represent intermediate data • Values are not changed by data flow • Arrow with name or type of data
(or ) data store data store Data Store • Stores persistent data for later use • Has exactly two operations: • Store • Retrieve • Drawn as:
Printer Printer Printer Sources/Sinks • Producers or consumers of data • Also called terminators and actors Customer Producer (source) Consumer (sink)
DFD Example 1 Price Lists Price List Item Name Cost Find Cost
Grade Book Calculate grades Compute statistics Create report Printer Printer DFD Example 2 Names Scores Grades Scores Names Scores Names Scores Enter scores Teaching Assistant Average Names Scores Grades Average Median Grade report
Data Dictionary • 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.
In Class: Candy Machine 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
Outline Definition and construction of functional models Documenting functional models---Data flow diagram (DFD) Structuring and organizing DFDs 29
output input program Organizing DFDs • Apply levels of abstraction (leveling) • The initial DFD is: • This can be expanded into lower levels. • Eventually, the process must stop. • When atomic processes can be described.
Context Diagram (Level 0) • 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
Printer Accountant Printer Printer Level 0: Payroll System Pay info Employee info Process Payroll Employee Printer Timecard info Acct info
Concept of Leveling: Rules of Decomposition I1 O 1. A I2 Level n O 1.3 L dx I1 1.1 J dx dy I2 dz 1.2 K dy Level n+1 Data storage
Concept of Leveling: Rules of Decomposition (Cont.) O I 1. B Level n O1 O 1.3 L dx 1.1 J O2 dy dy I I1 1.2 K I2 Level n+1
Level 1: Payroll Process 4: Format paycheck Inputs and outputs to level n+1 match level n Pay info (formatted) Pay info Employee info 3: Calculate withholding Acct. Info Acct. Info (formatted) 5: Format accounting Timecard info Gross pay 1: Validate timecard 2: Calculate gross pay Valid timecard info
Level 2: Calculate Withholding Emp. info 3.1: Compute withholding rate Rate Pay info Gross pay Acct. info 3.2: Compute net pay
Notes: • 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.
Guidelines for Designing DFDs • Describe the system at the highest, most abstract level (context diagram) • Decompose the system and represent it as a DFD with multiple bubbles. 2.1 Document the processes 2.2 Fill out the data dictionary • Decompose a process (following step 2) until the problem is understood
Identifying Data • 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.
Identifying Processes • 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.
Things to Check in DFDs • Is each requirements function represented by a transform in the DFDs? • Is each system input and output represented in the DFDs? • Is each I/O from a higher-level DFD reproduced correctly on the lower-level DFDs? • Is each transform in the lowest-level DFDs primitive?
Things to Check in DFDs • Are all labels of information flows in the data dictionary? • Do all data dictionary entries appear in the DFDs?
In Class: Groups of 3 • Draw the DFD for the gas pump controller (see handout). • Draw a Level 0, Level1, and 2 Level 2 diagrams. • (15 minutes)