IF 2036 Software Engineering Analysis Modeling DFD Program

  • Slides: 93
Download presentation
IF 2036 Software Engineering Analysis Modeling - DFD Program Studi Teknik Informatika STEI ITB

IF 2036 Software Engineering Analysis Modeling - DFD Program Studi Teknik Informatika STEI ITB IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling --DFD IF 2036 DFD Page 1

The Elements The four main elements of DFDs notation · Data Flows, with a

The Elements The four main elements of DFDs notation · Data Flows, with a label to indicate what data is flowing · Processes, that handle the data · Data stores, within the system (diary, filing cabinet or computer file) · External/Outside entities/Terminator, outside sources of data IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 2

Symbols • Terminator/External Entities – Person or organization that lies outside the system and

Symbols • Terminator/External Entities – Person or organization that lies outside the system and that is a net originator or receiver of data. n EMPLOYEE Key - outside the area of our concern and control. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 3

Symbols – Source (originator of data) or sink (receiver of data). – Prime sources

Symbols – Source (originator of data) or sink (receiver of data). – Prime sources on the left side of the DFD, prime sinks to right. – Name inside box. – Also called an external entity. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 4

Symbols EMPLOYEE • Data store (file) – Same as the data store in the

Symbols EMPLOYEE • Data store (file) – Same as the data store in the data dictionary. – Could be a computer file, card file, file cabinet, etc. – Note that EMPLOYEES here is the data store that contains the employee information, while EMPLOYEE (the terminator) is the actual person. – Size: about 1 inch by 1/2 inch. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 5

Symbols • Process (bubble, transform) 1 PRODUCEEMPLOYEEPAYCHECK – An activity, task, function, etc. –

Symbols • Process (bubble, transform) 1 PRODUCEEMPLOYEEPAYCHECK – An activity, task, function, etc. – Shows work being done against the data. • Transforms incoming data into outgoing data. • Changes status (logical) or content, format, or medium (physical). IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 6

Symbols – Each bubble has a unique number and name. • The name must

Symbols – Each bubble has a unique number and name. • The name must be an active verb followed by object clause: » EDIT-CUSTOMER-PAYMENT » WRITE-PAYMENT-REPORT • If no active verb, it’s not a process! IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 7

Symbols DATA-FLOW-NAME • Data flow – The data interface between bubbles, terminators, and data

Symbols DATA-FLOW-NAME • Data flow – The data interface between bubbles, terminators, and data stores. – Should be a packet of logically related data items. • good--CUSTOMER-PAYMENT-TRANSACTION • bad--MISCELLANEOUS-STUFF – No excess data passed around. • Tramp data is not acceptable. • Data flows should be lean and mean. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 8

Symbols – Arrows show direction of data movement. – Into and out of a

Symbols – Arrows show direction of data movement. – Into and out of a data store. . . Write to data store Read from data store EMPLOYEE The access to a data store (request or key) is not shown, only the net result. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 9

Symbols – Naming • Unique, descriptive. • Data dictionary naming conventions (because all of

Symbols – Naming • Unique, descriptive. • Data dictionary naming conventions (because all of these names need to be in the DD, too). • No loops, so never GET-NEXT-CUST. • No flags. • Avoid vague names like -INFO, -DATA. – Can usually (but not always) be more specific. – Real test--can you write a DD entry? IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 10

Context Level DFD • Upper-most level, most abstract view of system. • The “outside”

Context Level DFD • Upper-most level, most abstract view of system. • The “outside” view of the system. • Shows a single process bubble, the net inputs and outputs of entire system, and the terminators with which they communicate. • Purpose is to delineate the domain (scope) of the system. • Sometimes called level 0 diagram IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 11

Context Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-MAINTENANCEAUDIT-TRAIL MANAGEMENT EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION 0 EMPLOYEE-PAY-RATETRANSACTION EMPLOYEE PAYROLL EMPLOYEE-PAYCHECK GENERAL-LEDGERACCOUNT-NUMBER GENERALLEDGER

Context Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-MAINTENANCEAUDIT-TRAIL MANAGEMENT EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION 0 EMPLOYEE-PAY-RATETRANSACTION EMPLOYEE PAYROLL EMPLOYEE-PAYCHECK GENERAL-LEDGERACCOUNT-NUMBER GENERALLEDGER PAYROLL-VOUCHER PAYROLL-AUDIT-TRAIL IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 12

Clearly labeled “Context Diagram” Context Diagram Terminator Process bubble PAYROLL-AUDIT-TRAIL Terminator EMPLOYEE-MAINTENANCEAUDIT-TRAIL MANAGEMENT EMPLOYEE-MAINTENANCETRANSACTION

Clearly labeled “Context Diagram” Context Diagram Terminator Process bubble PAYROLL-AUDIT-TRAIL Terminator EMPLOYEE-MAINTENANCEAUDIT-TRAIL MANAGEMENT EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION 0 EMPLOYEE-PAY-RATE TRANSACTION Terminator EMPLOYEE PAYROLL EMPLOYEE-PAYCHECK Data flows. . . GENERAL-LEDGERACCOUNT-NUMBER GENERALLEDGER PAYROLL-VOUCHER PAYROLL-AUDIT-TRAIL IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 13 13

Context Level DFD • We will go through each of the four components (bubble,

Context Level DFD • We will go through each of the four components (bubble, data flow, data store, terminator) with each diagram. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 14

 • Process bubbles • Here, just one, which represents the entire system. •

• Process bubbles • Here, just one, which represents the entire system. • Numbered 0, or number is omitted. PAYROLL-AUDIT-TRAIL • Anything wrong here? EMPLOYEE-MAINTENANCE- Context Diagram AUDIT-TRAIL MANAGEMENT EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION 0 EMPLOYEE-PAY-RATETRANSACTION EMPLOYEE PAYROLL EMPLOYEE-PAYCHECK GENERAL-LEDGERACCOUNT-NUMBER GENERALLEDGER PAYROLL-VOUCHER PAYROLL-AUDIT-TRAIL IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 15 15

Context Diagram • Terminators • Remember, they are outside of our control. • In

Context Diagram • Terminators • Remember, they are outside of our control. • In this case, each terminator is both a source and a sink. • Prime sources on the left and prime. PAYROLL-AUDIT-TRAIL sinks on the EMPLOYEE-MAINTENANCEright. AUDIT-TRAIL • Can also show above and below. MANAGEMENT EMPLOYEE-MAINTENANCE • Shown here, then never again on lower levels. TRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION EMPLOYEE-PAY-RATETRANSACTION 0 PAYROLL EMPLOYEE-PAYCHECK GENERAL-LEDGERACCOUNT-NUMBER GENERALLEDGER PAYROLL-VOUCHER PAYROLL-AUDIT-TRAIL IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 16 16

 • Data stores • Internal to our system, so none on this level

• Data stores • Internal to our system, so none on this level ever. Context Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-MAINTENANCEAUDIT-TRAIL MANAGEMENT EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION EMPLOYEE-PAY-RATETRANSACTION 0 PAYROLL EMPLOYEE-PAYCHECK GENERAL-LEDGERACCOUNT-NUMBER GENERALLEDGER PAYROLL-VOUCHER PAYROLL-AUDIT-TRAIL IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 17 17

Context Diagram • Data flows • Long, descriptive, singular names. • A "packet" of

Context Diagram • Data flows • Long, descriptive, singular names. • A "packet" of logically related data. PAYROLL-AUDIT-TRAIL EMPLOYEE-MAINTENANCEAUDIT-TRAIL MANAGEMENT EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION EMPLOYEE-PAY-RATETRANSACTION 0 PAYROLL EMPLOYEE-PAYCHECK GENERAL-LEDGERACCOUNT-NUMBER GENERALLEDGER PAYROLL-VOUCHER PAYROLL-AUDIT-TRAIL IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 18 18

Context Diagram • Anything wrong? PAYROLL-AUDIT-TRAIL EMPLOYEE-MAINTENANCEAUDIT-TRAIL MANAGEMENT EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION EMPLOYEE-PAY-RATETRANSACTION 0 PAYROLL EMPLOYEE-PAYCHECK

Context Diagram • Anything wrong? PAYROLL-AUDIT-TRAIL EMPLOYEE-MAINTENANCEAUDIT-TRAIL MANAGEMENT EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION EMPLOYEE-PAY-RATETRANSACTION 0 PAYROLL EMPLOYEE-PAYCHECK GENERAL-LEDGERACCOUNT-NUMBER GENERALLEDGER PAYROLL-VOUCHER PAYROLL-AUDIT-TRAIL IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 19 19

Context Level DFD • Duplicate data flow names acceptable if two or more identical

Context Level DFD • Duplicate data flow names acceptable if two or more identical copies of the same item going to two or more destinations. – To show the system relates to the world, we must show each copy. – On level below, treat as a single data flow. • Whether one or multiple copies is irrelevant except to outside world; we process the same regardless. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 20

Leveling • If a system is too large to be shown on a single

Leveling • If a system is too large to be shown on a single diagram (aren't they all!), break into subsystems and sub-subsystems. • Called leveling or top-down partitioning. • Each partitioning (breaking up) of a bubble to a lower level is done to show more detail. – Called an explosion in engineering terminology. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 21

Leveling • Parent/child relationship – A parent bubble can have a child diagram. •

Leveling • Parent/child relationship – A parent bubble can have a child diagram. • How do we decide upon partitioning boundaries? – Use the same techniques as when partitioning programs into subroutines. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 22

Overview/Level 1 Diagram • Child of the single bubble on the Context Diagram. •

Overview/Level 1 Diagram • Child of the single bubble on the Context Diagram. • Shows major functions, major data stores and major data flows. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 23

Overview / Level 1 Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-HOURS-WORKED-TRANSACTION 1 PRODUCEEMPLOYEEPAYCHECK GENERAL-LEDGER-ACCOUNT-NUMBER PAYROLL-VOUCHER EMPLOYEE-PAYCHECK EMPLOYEE-MAINTENANCE-TRANSACTION EMPLOYEE-PAY-RATE-TRANSACTION

Overview / Level 1 Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-HOURS-WORKED-TRANSACTION 1 PRODUCEEMPLOYEEPAYCHECK GENERAL-LEDGER-ACCOUNT-NUMBER PAYROLL-VOUCHER EMPLOYEE-PAYCHECK EMPLOYEE-MAINTENANCE-TRANSACTION EMPLOYEE-PAY-RATE-TRANSACTION 2 MAINTAINEMPLOYEERECORD EMPLOYEE-MAINTENANCE-AUDIT-TRAIL IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 24 24

Overview Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-HOURS-WORKED-TRANSACTION GENERAL-LEDGER-ACCOUNT-NUMBER 1 PRODUCEEMPLOYEEPAYCHECK PAYROLL-VOUCHER EMPLOYEE-PAYCHECK • Process bubbles • Here,

Overview Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-HOURS-WORKED-TRANSACTION GENERAL-LEDGER-ACCOUNT-NUMBER 1 PRODUCEEMPLOYEEPAYCHECK PAYROLL-VOUCHER EMPLOYEE-PAYCHECK • Process bubbles • Here, two major functions (bubbles). EMPLOYEE • May have up to seven bubbles on a diagram. • What about 1 bubble? • Numbered 1, 2, 3, etc. EMPLOYEE-MAINTENANCE-TRANSACTION 2 EMPLOYEE-MAINTENANCE-AUDIT-TRAIL • Names have an active MAINTAINEMPLOYEE-PAY-RATE-TRANSACTION EMPLOYEEverb & object clause. RECORD • Avoid vague verbs like PROCESS. Page 25 IF-ITB/DS/Revisi: September 2008 25 IF 2036 Analysis Modeling - DFD

Overview Diagram • Partition the Overview Diagram based on: – Different major functions. •

Overview Diagram • Partition the Overview Diagram based on: – Different major functions. • Don’t put trivial functions (like EDIT, FORMAT, WRITE, etc. ) on Overview. – Different major inputs. – Different time frames. – Different equipment. – Note: know all four of these criteria for tests. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 26

Overview Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-HOURS-WORKED-TRANSACTION 1 PRODUCEEMPLOYEEPAYCHECK GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE PAYROLL-VOUCHER EMPLOYEE-PAYCHECK • Terminators • Shown

Overview Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-HOURS-WORKED-TRANSACTION 1 PRODUCEEMPLOYEEPAYCHECK GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE PAYROLL-VOUCHER EMPLOYEE-PAYCHECK • Terminators • Shown only on Context, so not here. EMPLOYEE-MAINTENANCE-TRANSACTION EMPLOYEE-PAY-RATE-TRANSACTION 2 MAINTAINEMPLOYEERECORD EMPLOYEE-MAINTENANCE-AUDIT-TRAIL IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 27 27

Overview Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-HOURS-WORKED-TRANSACTION GENERAL-LEDGER-ACCOUNT-NUMBER 1 PRODUCEEMPLOYEEPAYCHECK PAYROLL-VOUCHER EMPLOYEE-PAYCHECK Read EMPLOYEES • Data flows

Overview Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-HOURS-WORKED-TRANSACTION GENERAL-LEDGER-ACCOUNT-NUMBER 1 PRODUCEEMPLOYEEPAYCHECK PAYROLL-VOUCHER EMPLOYEE-PAYCHECK Read EMPLOYEES • Data flows • Unique, descriptive Write names, generally long. • No reiteration, flags, or EMPLOYEE-MAINTENANCE-TRANSACTION 2 decisions. EMPLOYEE-MAINTENANCE-AUDIT-TRAIL MAINTAINEMPLOYEE-PAY-RATE-TRANSACTION EMPLOYEE • Show direction of data RECORD flow into/out of data stores. Page 28 IF-ITB/DS/Revisi: September 2008 28 IF 2036 Analysis Modeling - DFD

Overview Diagram • No labels on data flows into and out of data stores

Overview Diagram • No labels on data flows into and out of data stores when using the entire record. – Always need to use the entire record on a write, so writes are never labeled. – On reads, if using just one or two fields, then label as such. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 29

Overview Diagram • Placement of data flows – Try to move left to right,

Overview Diagram • Placement of data flows – Try to move left to right, top to bottom if possible. – Inputs and outputs to edge of page. – Avoid line crossings by rearranging. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 30

Balancing • A child diagram is balanced with a parent bubble if there are

Balancing • A child diagram is balanced with a parent bubble if there are the same net inputs and outputs to the entire child diagram that there are to the parent bubble. • Balancing is the foundation for the entire DFD system. • Let’s check the balancing between the Context Diagram and the Overview Diagram. . . IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 31

Context Diagram PAYROLL-AUDIT-TRAIL EMPLOYEEMAINTENANCE-AUDITTRAIL EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION EMPLOYEE MANAGEMENT EMPLOYEE-PAY-RATE -TRANSACTION PAYROLL EMPLOYEEPAYCHECK GENERAL-LEDGER -ACCOUNTNUMBER

Context Diagram PAYROLL-AUDIT-TRAIL EMPLOYEEMAINTENANCE-AUDITTRAIL EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION EMPLOYEE MANAGEMENT EMPLOYEE-PAY-RATE -TRANSACTION PAYROLL EMPLOYEEPAYCHECK GENERAL-LEDGER -ACCOUNTNUMBER GENERALLEDGER PAYROLL-VOUCHER Overview Diagram PAYROLL-AUDITTRAIL EMPLOYEE-HOURS-WORKEDTRANSACTION GENERAL-LEDGER-ACCOUNT-NUMBER 1 PRODUCEEMPLOYEEPAYCHECK PAYROLL-AUDIT-TRAIL PAYROLL-VOUCHER EMPLOYEE-PAYCHECK EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-PAY-RATE-TRANSACTION IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD 2 MAINTAINEMPLOYEERECORD EMPLOYEE-MAINTENANCE-AUDIT-TRAIL Page 32 32

Balancing • 1 st exception to balancing rule: multiple copies of same data flow

Balancing • 1 st exception to balancing rule: multiple copies of same data flow don't violate balancing; they are logically the same data. – On context, there were two PAYROLL-AUDIT-TRAILs. – On lower level, treat logically and show just one copy. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 33

Data Stores • Data stores – Tricky rules governing where and when we create

Data Stores • Data stores – Tricky rules governing where and when we create and show files. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 34

Data Stores • At what level do we show an existing file? – Show

Data Stores • At what level do we show an existing file? – Show it for the first time at the highest level at which it is used by two or more bubbles. – Then show all references to it. – From then on, show it where it only when accessed. – 2 nd exception to the balancing rule: data stores that are shown at lower levels but not on the higher levels. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 35

Data Stores – Never show a data store on the context diagram. – What

Data Stores – Never show a data store on the context diagram. – What if used by only one bubble in entire system? • Show at the very lowest level only. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 36

Data Stores • When should you create a data store from scratch? – When

Data Stores • When should you create a data store from scratch? – When data must be delayed for some period of time. • Example: collect transactions all day, then apply at night. – When data must be used in a different order. • Example: Data validation input files. • A data store may be only interface between two or more bubbles. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 37

Summary of the Overview Diagram • If we draw a big circle around the

Summary of the Overview Diagram • If we draw a big circle around the Overview Diagram, bisecting the inputs and outputs, then collapse the circle. . . IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 38

Overview Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-HOURS-WORKED-TRANSACTION 1 PRODUCEEMPLOYEEPAYCHECK GENERAL-LEDGER-ACCOUNT-NUMBER PAYROLL-VOUCHER EMPLOYEE-PAYCHECK EMPLOYEES EMPLOYEE-MAINTENANCE-TRANSACTION EMPLOYEE-PAY-RATE-TRANSACTION 2 MAINTAINEMPLOYEERECORD

Overview Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-HOURS-WORKED-TRANSACTION 1 PRODUCEEMPLOYEEPAYCHECK GENERAL-LEDGER-ACCOUNT-NUMBER PAYROLL-VOUCHER EMPLOYEE-PAYCHECK EMPLOYEES EMPLOYEE-MAINTENANCE-TRANSACTION EMPLOYEE-PAY-RATE-TRANSACTION 2 MAINTAINEMPLOYEERECORD EMPLOYEE-MAINTENANCE-AUDIT-TRAIL IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 39 39

Context Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-MAINTENANCEAUDIT-TRAIL MANAGEMENT EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION EMPLOYEE-PAY-RATETRANSACTION 0 PAYROLL EMPLOYEE-PAYCHECK GENERAL-LEDGERACCOUNT-NUMBER GENERALLEDGER PAYROLL-VOUCHER

Context Diagram PAYROLL-AUDIT-TRAIL EMPLOYEE-MAINTENANCEAUDIT-TRAIL MANAGEMENT EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-HOURS-WORKEDTRANSACTION EMPLOYEE-PAY-RATETRANSACTION 0 PAYROLL EMPLOYEE-PAYCHECK GENERAL-LEDGERACCOUNT-NUMBER GENERALLEDGER PAYROLL-VOUCHER PAYROLL-AUDIT-TRAIL IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 40 40

Diagram 1 • Child of bubble 1 on Overview. • Diagram numbering: bubble 1

Diagram 1 • Child of bubble 1 on Overview. • Diagram numbering: bubble 1 explodes to Diagram 1. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 41

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD PAY-RATE 1. 4 PRODUCEEMPLOYEEPAYCHECKDETAIL GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-PAYCHECKAMOUNT PAYROLL-AUDIT-TRAIL 1. 5 PRODUCEREPORTING IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD PAYROLL-VOUCHER Page 42 42

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD PAY-RATE • Process bubbles 1. 4 • Numbering: each bubble PRODUCEEMPLOYEEnumber consists of the PAYCHECK diagram number, a EMPLOYEEPAYCHECKAMOUNT decimal, and a local DETAIL number. 1. 5 PRODUCE • Look at bubble REPORTING GENERAL-LEDGER-ACCOUNT-NUMBER functions… IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD EMPLOYEE-PAYCHECK PAYROLL-AUDIT-TRAIL PAYROLL-VOUCHER Page 43 43

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD PAY-RATE 1. 4 PRODUCEEMPLOYEEPAYCHECKDETAIL GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-PAYCHECKAMOUNT PAYROLL-AUDIT-TRAIL 1. 5 PRODUCEREPORTING IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD PAYROLL-VOUCHER Page 44 44

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD PAY-RATE • Process bubbles • There can be multiple ways of partitioning. EMPLOYEEPAYCHECK- 1. 4 and • Example: Combine DETAIL 1. 5 into one bubble on this level. GENERAL-LEDGER-ACCOUNT-NUMBER 1. 4 PRODUCEEMPLOYEEPAYCHECK EMPLOYEE-PAYCHECKAMOUNT PAYROLL-AUDIT-TRAIL 1. 5 PRODUCEREPORTING IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD PAYROLL-VOUCHER Page 45 45

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD • Data stores PAYCHECK • EMPLOYEES shown VALID-HOURSAMOUNT WORKED again because accessed PAY-RATE again. • Need 1. 4 the entire. EMPLOYEE-PAYCHECK record to PRODUCEupdate the file. EMPLOYEEPAYCHECK • Just like COBOL. EMPLOYEEPAYCHECKAMOUNT • Show a single read to a DETAIL PAYROLL-AUDIT-TRAIL file within a diagram, 1. 5 PAYROLL-VOUCHER PRODUCEthen pass the data to REPORTING GENERAL-LEDGER-ACCOUNT-NUMBER everywhere it is needed. Page 46 IF-ITB/DS/Revisi: September 2008 46 IF 2036 Analysis Modeling - DFD

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD PAY-RATE Look at data flows… EMPLOYEEPAYCHECKDETAIL GENERAL-LEDGER-ACCOUNT-NUMBER 1. 4 PRODUCEEMPLOYEEPAYCHECK EMPLOYEE-PAYCHECKAMOUNT PAYROLL-AUDIT-TRAIL 1. 5 PRODUCEREPORTING IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD PAYROLL-VOUCHER Page 47 47

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED • Data flows 1. 2

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED • Data flows 1. 2 • Convergence, 1. 3 divergence CALCULATEUPDATEEMPLOYEE(shown here) versus multiple EMPLOYEEPAYCHECKRECORD PAYCHECKAMOUNT copies. AMOUNT PAY-RATE 1. 4 PRODUCEEMPLOYEEPAYCHECKDETAIL GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-PAYCHECKAMOUNT PAYROLL-AUDIT-TRAIL 1. 5 PRODUCEREPORTING IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD PAYROLL-VOUCHER Page 48 48

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD • Data flows PAYCHECKVALID-HOURS • Avoid tramp data--data AMOUNT WORKED that is shuffled around PAY-RATE unnecessarily. • Never 1. 4 send data. EMPLOYEE-PAYCHECK through PRODUCEone. EMPLOYEEbubble on its way to PAYCHECK another. EMPLOYEEPAYCHECKAMOUNT • Data should never go DETAIL PAYROLL-AUDIT-TRAIL anywhere that it isn’t 1. 5 PAYROLL-VOUCHER PRODUCEactually used. REPORTING GENERAL-LEDGER-ACCOUNT-NUMBER • Why not? Page 49 IF-ITB/DS/Revisi: September 2008 49 IF 2036 Analysis Modeling - DFD

Diagram 1 EMPLOYEES Bad Example EMPLOYEERECORD • Data flows • Tramp data -- shuffling

Diagram 1 EMPLOYEES Bad Example EMPLOYEERECORD • Data flows • Tramp data -- shuffling through bubble 1. 4 unnecessarily. EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD PAYCHECKAMOUNT PAY-RATE EMPLOYEEPAYCHECKDETAIL Original 1. 4 PRODUCEEMPLOYEEPAYCHECK EMPLOYEE-PAYCHECK EMPLOYEEPAYCHECK-DETAIL PAYCHECKAMOUNT PAYROLL-AUDIT-TRAIL GENERAL-LEDGER-ACCOUNT-NUMBER 1. 5 PRODUCEREPORTING IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD PAYROLL-VOUCHER Page 50 50

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD PAY-RATE Check balancing. . . 1. 4 PRODUCEEMPLOYEEPAYCHECKDETAIL GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-PAYCHECKAMOUNT PAYROLL-AUDIT-TRAIL 1. 5 PRODUCEREPORTING IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD PAYROLL-VOUCHER Page 51 51

Overview Diagram EMPLOYEE-HOURS-WORKEDTRANSACTION GENERAL-LEDGER-ACCOUNT-NUMBER 1 PRODUCEEMPLOYEEPAYCHECK PAYROLL-AUDIT-TRAIL PAYROLL-VOUCHER EMPLOYEE-PAYCHECK EMPLOYEE S EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-PAY-RATE-TRANSACTION 2

Overview Diagram EMPLOYEE-HOURS-WORKEDTRANSACTION GENERAL-LEDGER-ACCOUNT-NUMBER 1 PRODUCEEMPLOYEEPAYCHECK PAYROLL-AUDIT-TRAIL PAYROLL-VOUCHER EMPLOYEE-PAYCHECK EMPLOYEE S EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-PAY-RATE-TRANSACTION 2 MAINTAINEMPLOYEERECORD EMPLOYEE-MAINTENANCE-AUDIT-TRAIL Diagram 1 EMPLOYE ES EMPLOYEE-RECORD EMPLOYEEHOURS-WORKED -TRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION 1. 2 CALCULATEEMPLOYEEPAYCHECKVALID-HOURS- AMOUNT WORKED PAY-RATE EMPLOYEEPAYCHECKDETAIL GENERAL-LEDGER-ACCOUNT-NUMBER IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD PAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD 1. 4 PRODUCE- EMPLOYEE-PAYCHECK EMPLOYEEPAYCHECKAMOUNT 1. 5 PRODUCEREPORTING PAYROLL-AUDIT-TRAIL PAYROLL-VOUCHER Page 52 52

Diagram 1 • Data flows – An edit transforms data, so the name must

Diagram 1 • Data flows – An edit transforms data, so the name must change to reflect that. – Name by the last transformation. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 53

Diagram 1. 1 • Child of bubble 1. 1 on Diagram 1. IF-ITB/DS/Revisi: September

Diagram 1. 1 • Child of bubble 1. 1 on Diagram 1. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 54

Diagram 1. 1 EMPLOYEES EMPLOYEE-HOURSWORKEDTRANSACTION INVALIDEMPLOYEENUMBER EMPLOYEE-RECORD 1. 1. 1 VERIFYEMPLOYEENUMBER PAY-RATE EMPLOYEE-NAME-AND-NUMBER REGULAR-HOURS

Diagram 1. 1 EMPLOYEES EMPLOYEE-HOURSWORKEDTRANSACTION INVALIDEMPLOYEENUMBER EMPLOYEE-RECORD 1. 1. 1 VERIFYEMPLOYEENUMBER PAY-RATE EMPLOYEE-NAME-AND-NUMBER REGULAR-HOURS -WORKED INVALIDREGULARHOURSWORKED OVERTIMEHOURS-WORKED 1. 1. 2 EDITREGULARHOURSWORKED 1. 1. 3 EDITOVERTIMEHOURSWORKED INVALIDOVERTIMEHOURSIF-ITB/DS/Revisi: WORKED September 2008 IF 2036 Analysis Modeling - DFD VALID-REGULAR-HOURS-WORKED VALID-OVERTIME-HOURS-WORKED Page 55 55

Diagram 1. 1 • Functional primitive – A process that is not further decomposed

Diagram 1. 1 • Functional primitive – A process that is not further decomposed into a lower level diagram. It performs only a single task. • Bubbles 1. 1. 2, and 1. 1. 3 are functional primitives. – Choosing what should be a functional primitive is rather arbitrary and uses circular reasoning. • How do you know when you have a functional primitive? When you stop partitioning. • When do you stop partitioning? When you have a functional primitive. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 56

Diagram 1. 1 EMPLOYEES EMPLOYEE-HOURSWORKEDTRANSACTION INVALIDEMPLOYEENUMBER EMPLOYEE-RECORD 1. 1. 1 VERIFYEMPLOYEENUMBER PAY-RATE EMPLOYEE-NAME-AND-NUMBER VALID-REGULARHOURS-WORKED

Diagram 1. 1 EMPLOYEES EMPLOYEE-HOURSWORKEDTRANSACTION INVALIDEMPLOYEENUMBER EMPLOYEE-RECORD 1. 1. 1 VERIFYEMPLOYEENUMBER PAY-RATE EMPLOYEE-NAME-AND-NUMBER VALID-REGULARHOURS-WORKED INVALIDREGULARHOURSWORKED VALIDOVERTIIMEHOURS-WORKED 1. 1. 2 EDITREGULARHOURSWORKED 1. 1. 3 EDITOVERTIMEHOURSWORKED INVALIDOVERTIMEHOURSIF-ITB/DS/Revisi: WORKED September 2008 IF 2036 Analysis Modeling - DFD VALID-REGULAR-HOURS-WORKED VALID-OVERTIME-HOURS-WORKED Page 57 57

Diagram 1. 1 EMPLOYEES EMPLOYEE-HOURSWORKEDTRANSACTION INVALIDEMPLOYEENUMBER EMPLOYEE-RECORD 1. 1. 1 VERIFYEMPLOYEENUMBER Error stubs PAY-RATE

Diagram 1. 1 EMPLOYEES EMPLOYEE-HOURSWORKEDTRANSACTION INVALIDEMPLOYEENUMBER EMPLOYEE-RECORD 1. 1. 1 VERIFYEMPLOYEENUMBER Error stubs PAY-RATE EMPLOYEE-NAME-AND-NUMBER REGULAR-HOURS -WORKED INVALIDREGULARHOURSWORKED OVERTIIMEHOURS-WORKED 1. 1. 2 EDITREGULARHOURSWORKED 1. 1. 3 EDITOVERTIMEHOURSWORKED INVALIDOVERTIMEHOURSIF-ITB/DS/Revisi: WORKED September 2008 IF 2036 Analysis Modeling - DFD VALID-REGULAR-HOURS-WORKED VALID-OVERTIME-HOURS-WORKED Page 58 58

Diagram 1. 1 • Error stub--a note that an error condition must be handled,

Diagram 1. 1 • Error stub--a note that an error condition must be handled, with no details on how to handle. • Used only for trivial errors, errors that haven’t yet made it into a file so they don't need undoing. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 59

Diagram 1. 1 • Error stubs shown only on functional primitives. – Don't want

Diagram 1. 1 • Error stubs shown only on functional primitives. – Don't want to clutter higher level diagrams with such trivial details. • Name the error stub by the field in error. • 3 rd balancing exception, since they are shown on lower levels but not on the higher ones. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 60

Diagram 1. 1 EMPLOYEES Check balancing. . . EMPLOYEE-HOURSWORKEDTRANSACTION INVALIDEMPLOYEENUMBER EMPLOYEE-RECORD 1. 1. 1

Diagram 1. 1 EMPLOYEES Check balancing. . . EMPLOYEE-HOURSWORKEDTRANSACTION INVALIDEMPLOYEENUMBER EMPLOYEE-RECORD 1. 1. 1 VERIFYEMPLOYEENUMBER PAY-RATE EMPLOYEE-NAME-AND-NUMBER VALID-REGULARHOURS-WORKED INVALIDREGULARHOURSWORKED VALIDOVERTIIMEHOURS-WORKED 1. 1. 2 EDITREGULARHOURSWORKED 1. 1. 3 EDITOVERTIMEHOURSWORKED INVALIDOVERTIMEHOURSIF-ITB/DS/Revisi: WORKED September 2008 IF 2036 Analysis Modeling - DFD VALID-REGULAR-HOURS-WORKED VALID-OVERTIME-HOURS-WORKED Page 61 61

Diagram 1 EMPLOYE ES EMPLOYEE-RECORD EMPLOYEEHOURS-WORKED -TRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION 1. 2 CALCULATEEMPLOYEEPAYCHECKVALID-HOURS- AMOUNT

Diagram 1 EMPLOYE ES EMPLOYEE-RECORD EMPLOYEEHOURS-WORKED -TRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION 1. 2 CALCULATEEMPLOYEEPAYCHECKVALID-HOURS- AMOUNT WORKED PAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD PAYRATE EMPLOYEEPAYCHECKDETAIL GENERAL-LEDGER-ACCOUNT-NUMBER 1. 4 PRODUCE- EMPLOYEE-PAYCHECK EMPLOYEEPAYCHECKAMOUNT 1. 5 PRODUCEREPORTING PAYROLL-AUDIT-TRAIL PAYROLL-VOUCHER Diagram 1. 1 EMPLOYEES EMPLOYEE-HOURSWORKED 1. 1. 1 TRANSACTION VERIFYINVALIDEMPLOYEENUMBER EMPLOYEE-RECORD PAY-RATE EMPLOYEENUMBER VALID-REGULARHOURS-WORKED 1. 1. 2 EDITREGULARINVALIDHOURSREGULARHOURS-WORKED VALID-OVERTIIMEHOURS-WORKED INVALID- OVERTIME-HOURS IF-ITB/DS/Revisi: September 2008 -WORKED IF 2036 Analysis Modeling - DFD 1. 1. 3 EDITOVERTIMEHOURSWORKED EMPLOYEE-NAME-AND-NUMBER ? VALID-REGULAR-HOURS-WORKED VALID-OVERTIME-HOURS-WORKED Page 62 62

Diagram 1. 1 • VALID-HOURS-WORKED doesn’t match. . . • Parallel decomposition--one arrow on

Diagram 1. 1 • VALID-HOURS-WORKED doesn’t match. . . • Parallel decomposition--one arrow on parent may become several arrows on the child diagram. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 63

Diagram 1. 1 • The group data flow is broken into its pieces or

Diagram 1. 1 • The group data flow is broken into its pieces or choices. – Example: PAYMENT-TRANSACTION is broken into its pieces of CUSTOMER-NUMBER and PAYMENTAMOUNT, each going a different direction. – Example: UPDATE-TRANSACTION is broken into its choices of ADD-TRANSACTION, ALTERTRANSACTION, DELETE-TRANSACTION, each one going a different direction. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 64

Diagram 1. 1 • The multiple arrows on the child are equivalent to the

Diagram 1. 1 • The multiple arrows on the child are equivalent to the single data flow on the parent. • Disadvantage--Makes the diagram harder to read. Any alternatives? • Evaluate each situation and use only when necessary. • 4 th balancing exception. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 65

Diagram 1. 1 • So here, VALID-HOURS-WORKED-TRANSACTION breaks down into its pieces of VALID-REGULARHOURS-WORKED

Diagram 1. 1 • So here, VALID-HOURS-WORKED-TRANSACTION breaks down into its pieces of VALID-REGULARHOURS-WORKED and VALID-OVERTIME-HOURSWORKED. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 66

Diagram 1 EMPLOYEES EMPLOYEE-RECORD EMPLOYEEHOURS-WORKED -TRANSACTION 1. 1 1. 2 EDIT-HOURSCALCULATEWORKEDEMPLOYEETRANSACTION VALID-HOURS-PAYCHECKAMOUNT WORKED PAYCHECKAMOUNT

Diagram 1 EMPLOYEES EMPLOYEE-RECORD EMPLOYEEHOURS-WORKED -TRANSACTION 1. 1 1. 2 EDIT-HOURSCALCULATEWORKEDEMPLOYEETRANSACTION VALID-HOURS-PAYCHECKAMOUNT WORKED PAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD PAY-RATE EMPLOYEEPAYCHECKDETAIL GENERAL-LEDGER-ACCOUNT-NUMBER 1. 4 PRODUCE- EMPLOYEE-PAYCHECK EMPLOYEEPAYCHECKAMOUNT 1. 5 PAYROLL-AUDIT-TRAIL MAINTAINPAYROLL-VOUCHER EMPLOYEERECORD Diagram 1. 1 EMPLOYEES EMPLOYEE-HOURSWORKED 1. 1. 1 TRANSACTION VERIFYINVALIDEMPLOYEENUMBER EMPLOYEE-RECORD PAY-RATE EMPLOYEENUMBER VALID-REGULARHOURS-WORKED 1. 1. 2 EDITREGULARINVALIDHOURSREGULARHOURS-WORKED VALID-OVERTIIMEHOURS-WORKED INVALID- OVERTIME-HOURS IF-ITB/DS/Revisi: September 2008 -WORKED IF 2036 Analysis Modeling - DFD 1. 1. 3 EDITOVERTIMEHOURSWORKED EMPLOYEE-NAME-AND-NUMBER VALID-REGULAR-HOURS-WORKED VALID-OVERTIME-HOURS-WORKED Page 67 67

Summary of Balancing Exceptions • • Multiple copies of same item. Data stores not

Summary of Balancing Exceptions • • Multiple copies of same item. Data stores not shown on higher levels. Error stubs. Parallel decomposition. • Note: Convergence and divergence are not balancing exceptions, because they are internal to the diagram. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 68

Data Conservation • Data that goes into a bubble should be used. A “black

Data Conservation • Data that goes into a bubble should be used. A “black hole” Data can't be created from scratch. n Exception: current date and time. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD A “miracle” Page 69

Remaining Diagrams. . . IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page

Remaining Diagrams. . . IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 70

Diagram 1. 3 EMPLOYEES YEAR-TO-DATE-TOTAL 1. 3. 1 CALCULATEYEAR-TODATEPAYCHECK-AMOUNT TOTAL NEW-YEAR-TODATE-TOTAL EMPLOYEE-RECORD 1. 3.

Diagram 1. 3 EMPLOYEES YEAR-TO-DATE-TOTAL 1. 3. 1 CALCULATEYEAR-TODATEPAYCHECK-AMOUNT TOTAL NEW-YEAR-TODATE-TOTAL EMPLOYEE-RECORD 1. 3. 2 FORMATEMPLOYEERECORD IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Always need a FORMAT when writing to files. Page 71 71

Diagram 1. 4 Secondary alias for EMPLOYEE-PAYCHECKDETAIL PAYCHECK-AMOUNT 1. 4. 1 FORMATEMPLOYEEPAYCHECK FORMATTEDEMPLOYEEPAYCHECK 1.

Diagram 1. 4 Secondary alias for EMPLOYEE-PAYCHECKDETAIL PAYCHECK-AMOUNT 1. 4. 1 FORMATEMPLOYEEPAYCHECK FORMATTEDEMPLOYEEPAYCHECK 1. 4. 2 WRITEEMPLOYEEPAYCHECK EMPLOYEE-PAYCHECK Always need a FORMAT and a WRITE when writing to a printer. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 72 72

Diagram 1. 4 • Avoid diagrams with only two bubbles. – Haven’t really partitioned

Diagram 1. 4 • Avoid diagrams with only two bubbles. – Haven’t really partitioned much. – Makes set of DFDs bulkier and harder to read. • How would we avoid here? IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 73

Diagram 1. 4 EMPLOYEE-PAYCHECKDETAIL PAYCHECK-AMOUNT 1. 4. 1 FORMATEMPLOYEEPAYCHECK FORMATTEDEMPLOYEEPAYCHECK 1. 4. 2 WRITEEMPLOYEEPAYCHECK

Diagram 1. 4 EMPLOYEE-PAYCHECKDETAIL PAYCHECK-AMOUNT 1. 4. 1 FORMATEMPLOYEEPAYCHECK FORMATTEDEMPLOYEEPAYCHECK 1. 4. 2 WRITEEMPLOYEEPAYCHECK IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD EMPLOYEE-PAYCHECK Page 74 74

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3

Diagram 1 EMPLOYEES EMPLOYEERECORD EMPLOYEE-HOURSWORKEDTRANSACTION 1. 1 EDIT-HOURSWORKEDTRANSACTION VALID-HOURSWORKED 1. 2 CALCULATEEMPLOYEEPAYCHECKAMOUNT 1. 3 UPDATEEMPLOYEERECORD PAY-RATE 1. 4 PRODUCEFORMATEMPLOYEEPAYCHECKDETAIL GENERAL-LEDGER-ACCOUNT-NUMBER 1. 6 EMPLOYEE-PAYCHECK WRITEEMPLOYEEPAYCHECKAMOUNT PAYROLL-AUDIT-TRAIL 1. 5 PRODUCEREPORTING IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD PAYROLL-VOUCHER Page 75 75

Diagram 1. 5 EMPLOYEE-PAYCHECKDETAIL 1. 5. 1 FORMATPAYROLLAUDITTRAIL FORMATTEDPAYROLL-AUDIT-TRAIL 1. 5. 2 WRITEPAYROLLAUDITTRAIL PAYROLL-AUDIT-TRAIL

Diagram 1. 5 EMPLOYEE-PAYCHECKDETAIL 1. 5. 1 FORMATPAYROLLAUDITTRAIL FORMATTEDPAYROLL-AUDIT-TRAIL 1. 5. 2 WRITEPAYROLLAUDITTRAIL PAYROLL-AUDIT-TRAIL PAYCHECK-AMOUNT 1. 5. 3 TOTALPAYCHECKAMOUNTS EMPLOYEE-PAYCHECKS -TOTAL 1. 5. 5 FORMATPAYROLLVOUCHER FORMATTEDPAYROLLVOUCHER 1. 5. 6 WRITEPAYROLLVOUCHER PAYROLL-VOUCHER VALID-GENERAL-LEDGERACCOUNT-NUMBER INVALID-GENERALLEDGER-ACOUNTNUMBER 1. 5. 4 EDITGENERALLEDGERACCOUNTNUMBER IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 76 76

Trying to diverge on EMPLOYEE-RECORD would create crossed lines. Diagram 2 EMPLOYEES EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-PAY-RATETRANSACTION

Trying to diverge on EMPLOYEE-RECORD would create crossed lines. Diagram 2 EMPLOYEES EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-PAY-RATETRANSACTION 2. 1 EDITMAINTENANCETRANSACTION EMPLOYEERECORD EMPLOYEE-RECORD 2. 2 FORMATEMPLOYEERECORD VALID-EMPLOYEE-MAINTENANCETRANSACTION 2. 3 FORMATEMPLOYEEMAINTENANCEAUDITTRAIL FORMATTED-EMPLOYEEMAINTENANCEAUDIT-TRAIL 2. 4 WRITE EMPLOYEEMAINTENANCEAUDITTRAIL IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD EMPLOYEEMAINTENANCEAUDIT-TRAIL Page 77 77

Diagram 2. 1 EMPLOYEES EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-PAY-RATETRANSACTION INVALIDEMPLOYEENUMBER EMPLOYEE-RECORD 2. 1. 1 VERIFYEMPLOYEENUMBER VALID-EMPLOYEE-NUMBER VALID-DELETE-TRANSACTION

Diagram 2. 1 EMPLOYEES EMPLOYEE-MAINTENANCETRANSACTION EMPLOYEE-PAY-RATETRANSACTION INVALIDEMPLOYEENUMBER EMPLOYEE-RECORD 2. 1. 1 VERIFYEMPLOYEENUMBER VALID-EMPLOYEE-NUMBER VALID-DELETE-TRANSACTION CHANGEDEMPLOYEEFIELD ADD-TRANSACTION-WITHVALID-EMPLOYEE-NUMBER 2. 1. 2 EDITCHANGEDEMPLOYEEFIELD 2. 1. 3 EDIT-ALLEMPLOYEEFIELDS VALID-CHANGED-EMPLOYEE-FIELD VALID-ADD-TRANSACTION These would break down to lower-level diagrams. PAY-RATE INVALIDPAY-RATE 2. 1. 4 EDITEMPLOYEEPAY-RATE IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD VALID-PAY-RATE Page 78 78

How do we know when to stop exploding? • Partition to tiny. • Each

How do we know when to stop exploding? • Partition to tiny. • Each bubble documented by 1/2 page or less (usually). • Each bubble performs a single, indivisible function. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 79

Clues that we haven't partitioned far enough • A process difficult to name. •

Clues that we haven't partitioned far enough • A process difficult to name. • A single process has many inputs and/or many outputs. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 80

Creating a DFD • Identify terminators and their data flows, and use them to

Creating a DFD • Identify terminators and their data flows, and use them to create a Context Diagram. • Repeat until system completely partitioned to functional primitives: – Do first draft of a single diagram, with processes and data flows. – Do several more drafts of the diagram. – Draw last version neatly. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 81

Creating a DFD • Redraw all diagrams for clarity, incorporating any changes. • Walk

Creating a DFD • Redraw all diagrams for clarity, incorporating any changes. • Walk through the diagrams with the project team. Return to prior steps if problems are encountered. • Walk through with the users. Return to prior steps if problems are encountered. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 82

Miscellaneous • Show data movement, not physical movement of goods. • Use a CASE

Miscellaneous • Show data movement, not physical movement of goods. • Use a CASE tool, a graphics package, or, if handdrawn, use pencil, not ink. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 83

Miscellaneous • Minimize crossed lines. When necessary, show as follows: Don't connect data flows

Miscellaneous • Minimize crossed lines. When necessary, show as follows: Don't connect data flows to right side of a data store: EMPLOYEES IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 84

Miscellaneous • Always write horizontally: DATAFLOW-1 DATAFLOW-2 Two copies on the diagram copies Indicate

Miscellaneous • Always write horizontally: DATAFLOW-1 DATAFLOW-2 Two copies on the diagram copies Indicate multiple of a data store by placing extra lines in the symbol: IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD DATAFLOW-3 EMPLOYEES Page 85

Editing Patterns • Different ways to edit potentially dirty data from the outside world.

Editing Patterns • Different ways to edit potentially dirty data from the outside world. . . IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 86

Editing Patterns EDITCUSTOMERNUMBER INVALID-CUSTOMER- NEW-CUSTOMERNAME NUMBER INVALIDCUSTOMERNAME EDITCUSTOMERNAME CUSTOMER-ADDRESS EDITCUSTOMERADDRESS INVALID-CUSTOMERADDRESS CUSTOMERPHONE INVALIDCUSTOMERPHONE IF-ITB/DS/Revisi:

Editing Patterns EDITCUSTOMERNUMBER INVALID-CUSTOMER- NEW-CUSTOMERNAME NUMBER INVALIDCUSTOMERNAME EDITCUSTOMERNAME CUSTOMER-ADDRESS EDITCUSTOMERADDRESS INVALID-CUSTOMERADDRESS CUSTOMERPHONE INVALIDCUSTOMERPHONE IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD EDITCUSTOMERPHONE VALID-NEW-CUSTOMER Page 87 87

Editing Patterns EDITCUSTOMERNUMBER INVALID-CUSTOMER- NEW-CUSTOMER NUMBER INVALIDCUSTOMERNAME EDITCUSTOMERNAME NEW-CUSTOMER EDITCUSTOMERADDRESS INVALID-CUSTOMERADDRESS NEWCUSTOMER INVALIDCUSTOMERPHONE IF-ITB/DS/Revisi:

Editing Patterns EDITCUSTOMERNUMBER INVALID-CUSTOMER- NEW-CUSTOMER NUMBER INVALIDCUSTOMERNAME EDITCUSTOMERNAME NEW-CUSTOMER EDITCUSTOMERADDRESS INVALID-CUSTOMERADDRESS NEWCUSTOMER INVALIDCUSTOMERPHONE IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD EDITCUSTOMERPHONE VALID-NEW-CUSTOMER Page 88 88

Editing Patterns Acceptable editing pattern: Showing upper level bubble. . . NEW-CUSTOMER EDITNEWCUSTOMER IF-ITB/DS/Revisi:

Editing Patterns Acceptable editing pattern: Showing upper level bubble. . . NEW-CUSTOMER EDITNEWCUSTOMER IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD VALID-NEW-CUSTOMER Page 89 89

Parallel decomposition: Parallel decomposition Acceptable editing pattern. Editing Patterns NEW-CUSTOMERNUMBER VALID-CUSTOMER-NUMBER EDITCUSTOMERNUMBER INVALID-CUSTOMERNUMBER NEW-CUSTOMER-NAME

Parallel decomposition: Parallel decomposition Acceptable editing pattern. Editing Patterns NEW-CUSTOMERNUMBER VALID-CUSTOMER-NUMBER EDITCUSTOMERNUMBER INVALID-CUSTOMERNUMBER NEW-CUSTOMER-NAME INVALIDCUSTOMERNAME NEW-CUSTOMER-ADDRESS EDITCUSTOMERNAME VALID-CUSTOMER-NAME EDITCUSTOMERADDRESS INVALID-CUSTOMERADDRESS NEW-CUSTOMER-PHONE INVALIDCUSTOMERPHONE IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD VALID-CUSTOMER-ADDRESS EDITVALID-CUSTOMER-PHONE CUSTOMERPHONE Page 90 90

 • Some tramp data. • Acceptable for first bubble only. Editing Patterns EDITCUSTOMERNUMBER

• Some tramp data. • Acceptable for first bubble only. Editing Patterns EDITCUSTOMERNUMBER INVALID-CUSTOMER- NEW-CUSTOMER Parallel decomposition VALID-CUSTOMER-NUMBER VALIDNEW-CUSTOMER-NAME INVALIDCUSTOMERNAME NEW-CUSTOMER-ADDRESS EDITCUSTOMERNAME VALID- EDITCUSTOMERADDRESS INVALID-CUSTOMERADDRESS NEW-CUSTOMER-PHONE INVALIDCUSTOMERPHONE IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD CUSTOMER-NAME CUSTOMER-ADDRESS EDITVALID-CUSTOMER-PHONE CUSTOMERPHONE Page 91 91

Possible Signs of Errors • The diagram is entwined, choked with data flows. •

Possible Signs of Errors • The diagram is entwined, choked with data flows. • Some place cries out for a flag. • Flows or processes don't lend themselves to good names. • There is a wide discrepancy in leveling. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 92

Possible Signs of Errors • The diagram shows: – data composition, access methods to

Possible Signs of Errors • The diagram shows: – data composition, access methods to data (data dictionary). – decisions, loops, insides of bubbles (process descriptions). • The diagram makes you uneasy. IF-ITB/DS/Revisi: September 2008 IF 2036 Analysis Modeling - DFD Page 93