1 / 44

Functional Modeling

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.

vidar
Télécharger la présentation

Functional Modeling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Review: Modeling Functional: what happens Dynamic: when it happens Static: what it happens to 3

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

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

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

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

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

  9. 3. Describe Each Function • 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

  10. 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.”

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

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

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

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

  15. Outline Definition and construction of functional models Documenting functional models---Data flow diagram (DFD) Structuring and organizing DFDs 15

  16. Documenting Functional Models • Uses diagrams • Data Flow Diagram (DFD) • UML Activity Diagram

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

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

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

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

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

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

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

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

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

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

  27. DD Example

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

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

  30. Problems with This DFD?

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

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

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

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

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

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

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

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

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

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

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

  42. 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?

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

  44. 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)

More Related