Presentation is loading. Please wait.

Presentation is loading. Please wait.

Functional Modeling Joseph Valacich, Joey George and Jeff Hoffer, Essentials of System Analysis and Design, 4 th edition, Prentice Hall, 2009.

Similar presentations


Presentation on theme: "Functional Modeling Joseph Valacich, Joey George and Jeff Hoffer, Essentials of System Analysis and Design, 4 th edition, Prentice Hall, 2009."— Presentation transcript:

1 Functional Modeling Joseph Valacich, Joey George and Jeff Hoffer, Essentials of System Analysis and Design, 4 th edition, Prentice Hall, 2009.

2 Review: Modeling Functional: what happens Dynamic: when it happens Static: what it happens to 2

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 3 program y = f(x) input x output y

4 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 4

5 Steps in Constructing Functional Model Identify input and output values Build data flow diagrams showing functional dependencies. Describe the functions. Identify the constraints. 5

6 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. 6 program input x output y

7 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. 7 f1f1 f 11 f 12 f 13

8 3. Describe Each Function Write a description of each function (using any of the specification techniques discussed earlier). 8 Function, f: Integer  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 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.” 9

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

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

12 Specifying Functions (Cont.) Need a signature (syntactic or interface) Need transformations (semantics or meaning) –Functions and equations –Tables of values –Pre and post conditions –Decision tables –Pseudo code –Natural language 12

13 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 13

14 Documenting Functional Models Uses diagrams –Data Flow Diagram (DFD) –UML Activity Diagram 14

15 15 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.

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

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

18 Example DFD Compute average Compute grades names grades Output grades exam scores average score student names Grade book exam scores names grades 18

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

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

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

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

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

24 24 DFD Example 2 3. Compute statistics 2. Adjust grades Names Final grades 4. Create report Grades Average Median IDs Grade Book Grades Final grades Grade report Printer Average 1. Enter grades IDs Grades Names Grades Teaching Assistant

25 25 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 26 DD Example

27 27 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 28 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. program input output

29 29 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

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

31 31 Concept of Leveling: Rules of Decomposition 1. A I2 I1 O 1.1 J 1.3 L 1.2 K I1 I2 O Data storage dx dy dz dx Level n Level n+1

32 32 Concept of Leveling: Rules of Decomposition (Cont.) 1. B I O 1.1 J 1.3 L 1.2 K I O dx dy I1 I2 O1 O2 Level n Level n+1

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

34 Level 2: Calculate Withholding 3.1: Compute withholding rate Emp. info Acct. info Pay info Gross pay 3.2: Compute net pay Rate 34

35 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. 35

36 36 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

37 37 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.

38 38 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.

39 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? 39

40 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? 40

41 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) 41


Download ppt "Functional Modeling Joseph Valacich, Joey George and Jeff Hoffer, Essentials of System Analysis and Design, 4 th edition, Prentice Hall, 2009."

Similar presentations


Ads by Google