Скачать презентацию Functional Modeling Joseph Valacich Joey George and Jeff Скачать презентацию Functional Modeling Joseph Valacich Joey George and Jeff

2c83f8a5406725c050587283b74b7796.ppt

  • Количество слайдов: 44

Functional Modeling Joseph Valacich, Joey George and Jeff Hoffer, Essentials of System Analysis and 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 Outline • Definition and construction of functional models • Documenting functional models---Data flow diagram (DFD) • Structuring and organizing DFDs 2

Review: Modeling • Functional: what happens • Dynamic: when it happens • Static: what 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 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 input x program y = f(x) output y 4

Functional Models (Cont. ) • Does not describe timing – Has no regard for 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 5

Steps in Constructing Functional Model 1. Identify input and output values 2. Build data Steps in Constructing Functional Model 1. Identify input and output values 2. Build data flow diagrams (DFD) showing functional dependencies. 3. Describe the functions. 4. Identify the constraints. 6

1. Identify Input/Output • At the highest level of abstraction, these are the system 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. input x program output y 7

2. Build Diagrams • Start with each output and determine what function computes it. 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 higherlevel diagram by constructing a lower-level diagram. f 11 f 13 f 12 8

3. Describe Each Function • Write a description of each function (using any of 3. Describe Each Function • Write a description of each function (using any of the specification techniques discussed earlier). Function, f: Integer, such that f(x) = -1 if x < 0 f(x) = 0 if x == 0 f(x) = 1 otherwise 9

4. Identify Constraints • Constraints are functional dependencies between objects that are not related 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. ” 10

Specifying Functions • Need a signature (syntactic or interface) • Need transformations (semantics or Specifying Functions • Need a signature (syntactic or interface) • Need transformations (semantics or meaning) 11

Specifying Functions (Cont. ) • Need a signature (syntactic or interface) – Name – Specifying Functions (Cont. ) • Need a signature (syntactic or interface) – Name – Arguments (number, order, types) – Values returned (number, order, types) • Need transformations (semantics or meaning) 12

Specifying Functions (Cont. ) • Need a signature (syntactic or interface) • Need transformations 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 13

Functions • Trivial – Access: read or write attributes. May not be necessary to 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 14

Outline ü Definition and construction of functional models • Documenting functional models---Data flow diagram 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 Documenting Functional Models • Uses diagrams – Data Flow Diagram (DFD) – UML Activity Diagram 16

Data Flow Diagram (DFD) • Semi-formal notation for specifying – Functions of an information 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, Items Customer • Flow in data flows, and • Be transferred to or from the environment. Price List Find Cost Customer 17

DFDs Are Not For Specifying • Order of operations (functions) • Control information • DFDs Are Not For Specifying • Order of operations (functions) • Control information • Flow charts 18

DFD Notation • Four components – Processes – Data flows – Data stores (or DFD Notation • Four components – Processes – Data flows – Data stores (or ) – Sources/sinks 19

Processes • Transform data values • Drawn as ellipses with fixed number of in-arrows Processes • Transform data values • Drawn as ellipses with fixed number of in-arrows and out-arrows dividend quotient Divide Integer divisor remainder 20

Data Flows • • Connect processes Represent intermediate data Values are not changed by Data Flows • • Connect processes Represent intermediate data Values are not changed by data flow Arrow with name or type of data city integer a copy street city address zip aggregation address split 21

Data Store • Stores persistent data for later use • Has exactly two operations: Data Store • Stores persistent data for later use • Has exactly two operations: – Store – Retrieve • Drawn as: data store (or data store ) 22

Sources/Sinks • Producers or consumers of data • Also called terminators and actors Customer Sources/Sinks • Producers or consumers of data • Also called terminators and actors Customer Producer (source) Printer Consumer (sink) 23

DFD Example 1 Price Lists Price List Item Name Find Cost 24 DFD Example 1 Price Lists Price List Item Name Find Cost 24

DFD Example 2 Grade Book Names Scores Teaching Assistant Names Scores Enter scores Scores DFD Example 2 Grade Book Names Scores Teaching Assistant Names Scores Enter scores Scores Compute statistics Average Median Create report Names Scores Average Grades Calculate grades Names Scores Grade report Printer 25

Data Dictionary • Repositories to store information about all data items defined in the 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. 26

DD Example 27 DD Example 27

In Class: Candy Machine Pairs (5 minutes): Model the function of a candy machine 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 28

Outline ü Definition and construction of functional models ü Documenting functional models---Data flow diagram Outline ü Definition and construction of functional models ü Documenting functional models---Data flow diagram (DFD) • Structuring and organizing DFDs 29

Problems with This DFD? Problems with This DFD?

Organizing DFDs • Apply levels of abstraction (leveling) • The initial DFD is: input Organizing DFDs • 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

Context Diagram (Level 0) • Describes the system at the highest, most abstract level. 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 32

Level 0: Payroll System Pay info Employee Printer Timecard info Printer Process Payroll Acct Level 0: Payroll System Pay info Employee Printer Timecard info Printer Process Payroll Acct info Accountant Printer 33

Concept of Leveling: Rules of Decomposition I 1 1. A I 2 I 1 Concept of Leveling: Rules of Decomposition I 1 1. A I 2 I 1 I 2 O Level n dx 1. 1 J dx 1. 2 K O 1. 3 L dy dz dy Data storage Level n+1 34

Concept of Leveling: Rules of Decomposition (Cont. ) I 1. B O Level n Concept of Leveling: Rules of Decomposition (Cont. ) I 1. B O Level n dx 1. 1 J I I 1 I 2 dy O 1 1. 3 L O O 2 dy 1. 2 K Level n+1 35

Level 1: Payroll Process Inputs and outputs to level n+1 match level n Employee Level 1: Payroll Process Inputs and outputs to level n+1 match level n Employee info Pay info 4: Format paycheck 3: Calculate withholding Acct. Info Timecard info 1: Validate timecard Valid timecard info Pay info (formatted) Gross pay 2: Calculate gross pay 5: Format accounting Acct. Info (formatted)

Level 2: Calculate Withholding Emp. info 3. 1: Compute withholding rate Rate Pay info Level 2: Calculate Withholding Emp. info 3. 1: Compute withholding rate Rate Pay info Gross pay 3. 2: Compute net pay Acct. info 37

Notes: • Show all possible computation paths for values. • Do not show what 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. 38

Guidelines for Designing DFDs 1. Describe the system at the highest, most abstract level Guidelines for Designing DFDs 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

Identifying Data • At the highest level of abstraction, these are the system inputs 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. 40

Identifying Processes • Start with each output and determine what function computes it. • 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. 41

Things to Check in DFDs 1. Is each requirements function represented by a transform Things to Check in DFDs 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

Things to Check in DFDs 5. Are all labels of information flows in the Things to Check in DFDs 5. Are all labels of information flows in the data dictionary? 6. Do all data dictionary entries appear in the DFDs? 43

In Class: Groups of 3 • • • Draw the DFD for the gas In Class: Groups of 3 • • • Draw the DFD for the gas pump controller (see handout). Draw a Level 0, Level 1, and 2 Level 2 diagrams. (15 minutes) 44