System Modeling
System Modeling
TIM RPL
Program Studi Teknik Informatika
1
Kenapa Analisis Kebutuhan
Definisi Analisis Kebutuhan
1. Identifikasi
2. Pemahaman
1. Identifikasi
Kegiatan yang bertujuan untuk memilih masalah mana yang akan
dipecahkan dari kebutuhan yang didapat
2. Pemahaman
Mempelajari prosedur manual yang akan digunakan sebagai
dasar dalam pemodelan sistem
Langkah-Langkah Analisis Kebutuhan
• Data dictionary
– Memuat deskripsi dari seluruh data objek yang
digunakan atau dihasilkan oleh perangkat lunak
• Terminator/External Entities
– Orang atau organisasi yang terletak di luar EMPLOYEE
EMPLOYEE
• Data store (file)
– Sama seperti data store di kamus data.
– Bisa berbentuk file computer, berkas kartu, lemari arsip, dll.
– Perhatikan bahwa EMPLOYEE di sini menyimpan data yang
berisi informasi karyawan, sedangkan EMPLOYEE
(terminator) adalah orang yang sebenarnya.
Symbols
1
• Process (bubble, transform) PRODUCE-
EMPLOYEE-
– Sebuah aktifitas, tugas, fungsi. PAYCHECK
• Data flow
– Antarmuka data antara bubbles, terminators, dan data stores.
– Berupa paket data yang terkait secara logis
• Baik--CUSTOMER-PAYMENT-TRANSACTION
• Buruk--MISCELLANEOUS-STUFF
– Tidak ada data berlebih yang dipakai
• Tramp data tidak dapat diterima
• Data flow harus ramping dan punya arti.
Symbols
EMPLOYEE
PAYROLL-AUDIT-TRAIL
EMPLOYEE-MAINTENANCE-
AUDIT-TRAIL
MANAGEMENT
EMPLOYEE-MAINTENANCE-
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION EMPLOYEE-PAY-RATE-
0 TRANSACTION
EMPLOYEE
PAYROLL
EMPLOYEE-PAYCHECK GENERAL-LEDGER-
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
Clearly labeled
“Context Diagram” Context Diagram
Terminator
Process bubble
PAYROLL-AUDIT-TRAIL
Terminator EMPLOYEE-MAINTENANCE-
AUDIT-TRAIL
MANAGEMENT
EMPLOYEE-MAINTENANCE-
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION
EMPLOYEE-PAY-RATE-
EMPLOYEE-PAY-RATE
TRANSACTION
EMPLOYEE
0
Terminator
PAYROLL
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
33
Context Level DFD
• Process bubbles
• Di sini, hanya satu, yang mewakili
seluruh sistem.
• Bernomor 0, atau nomor dihilangkan.
PAYROLL-AUDIT-TRAIL
• Ada sesuatu yang salah di sini?
EMPLOYEE-MAINTENANCE-
AUDIT-TRAIL
MANAGEMENT
EMPLOYEE-MAINTENANCE-
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION
EMPLOYEE-PAY-RATE-
TRANSACTION
0
EMPLOYEE
PAYROLL
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
35
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 primePAYROLL-AUDIT-TRAIL
sinks on the
right. EMPLOYEE-MAINTENANCE-
AUDIT-TRAIL
• Can also show above and below.
MANAGEMENT
EMPLOYEE-MAINTENANCE-
• Shown here, then never again on lower levels.
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION
EMPLOYEE-PAY-RATE-
TRANSACTION
0
EMPLOYEE
PAYROLL
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
36
Context Diagram
• Data stores
• Bersifat internal untuk sistem, tidak ada
PAYROLL-AUDIT-TRAIL
EMPLOYEE-MAINTENANCE-
level untuk ini AUDIT-TRAIL
MANAGEMENT
EMPLOYEE-MAINTENANCE-
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION
EMPLOYEE-PAY-RATE-
TRANSACTION
0
EMPLOYEE
PAYROLL
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
37
Context Diagram
• Data flows
• Panjang, deskriptif, nama tunggal.
PAYROLL-AUDIT-TRAIL
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
38
Context Diagram
PAYROLL-AUDIT-TRAIL
EMPLOYEE-MAINTENANCE-
AUDIT-TRAIL
MANAGEMENT
EMPLOYEE-MAINTENANCE-
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION
EMPLOYEE-PAY-RATE-
TRANSACTION
0
EMPLOYEE
PAYROLL
GENERAL-LEDGER-
EMPLOYEE-PAYCHECK
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
39
Context Level DFD
• Parent/child relationship
– A parent bubble can have a child diagram.
• How do we decide upon partitioning boundaries?
PAYROLL-AUDIT-TRAIL
EMPLOYEE-HOURS-WORKED-TRANSACTION
1
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-
PAYCHECK EMPLOYEE-PAYCHECK
EMPLOYEE
EMPLOYEE-MAINTENANCE-TRANSACTION
2
EMPLOYEE-MAINTENANCE-AUDIT-TRAIL
MAINTAIN-
EMPLOYEE-PAY-RATE-TRANSACTION EMPLOYEE-
RECORD
44
Overview Diagram
PAYROLL-AUDIT-TRAIL
EMPLOYEE-HOURS-WORKED-TRANSACTION
1
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-
PAYCHECK EMPLOYEE-PAYCHECK
EMPLOYEE
• Process bubbles
• Here, two major functions (bubbles).
EMPLOYEE-MAINTENANCE-TRANSACTION
• May have up2 to seven bubbles on a diagram.
EMPLOYEE-MAINTENANCE-AUDIT-TRAIL
MAINTAIN-
EMPLOYEE-PAY-RATE-TRANSACTIONWhat about
• 1 bubble?
EMPLOYEE-
• NumberedRECORD
1, 2, 3, etc.
• Names have an active verb & object clause.
• Avoid vague verbs like PROCESS. 45
Overview Diagram
PAYROLL-AUDIT-TRAIL
EMPLOYEE-HOURS-WORKED-TRANSACTION
1
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-
PAYCHECK EMPLOYEE-PAYCHECK
• Terminators
EMPLOYEE
• Shown only on Context,
so not here.
EMPLOYEE-MAINTENANCE-TRANSACTION
2
EMPLOYEE-MAINTENANCE-AUDIT-TRAIL
MAINTAIN-
EMPLOYEE-PAY-RATE-TRANSACTION EMPLOYEE-
RECORD
47
Overview Diagram
PAYROLL-AUDIT-TRAIL
EMPLOYEE-HOURS-WORKED-TRANSACTION
1
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-
PAYCHECK EMPLOYEE-PAYCHECK
48
Overview Diagram
EMPLOYEE-
PAYCHECK GENERAL-LEDGER-
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-
TRAIL Overview Diagram
EMPLOYEE-HOURS-WORKED-
TRANSACTION PAYROLL-AUDIT-TRAIL
1
GENERAL-LEDGER-ACCOUNT-NUMBER PRODUCE- PAYROLL-VOUCHER
EMPLOYEE-
PAYCHECK
EMPLOYEE-PAYCHECK
EMPLOYEE
EMPLOYEE-MAINTENANCE-
TRANSACTION
2
EMPLOYEE-MAINTENANCE-AUDIT-TRAIL
EMPLOYEE-PAY-RATE-TRANSACTION MAINTAIN-
EMPLOYEE-
RECORD
52
Balancing
• Data stores
– Aturan rumit yang mengatur dimana dan kapan kita membuat dan
menunjukkan file-file
Data Stores
PAYROLL-AUDIT-TRAIL
EMPLOYEE-HOURS-WORKED-TRANSACTION
1
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER EMPLOYEE-
PAYCHECK EMPLOYEE-PAYCHECK
EMPLOYEES
EMPLOYEE-MAINTENANCE-TRANSACTION
2
EMPLOYEE-MAINTENANCE-AUDIT-TRAIL
MAINTAIN-
EMPLOYEE-PAY-RATE-TRANSACTION EMPLOYEE-
RECORD
59
Context Diagram
PAYROLL-AUDIT-TRAIL
EMPLOYEE-MAINTENANCE-
AUDIT-TRAIL
MANAGEMENT
EMPLOYEE-MAINTENANCE-
TRANSACTION
EMPLOYEE-HOURS-WORKED-
TRANSACTION
EMPLOYEE-PAY-RATE-
TRANSACTION
0
EMPLOYEE
PAYROLL
EMPLOYEE-PAYCHECK GENERAL-LEDGER-
ACCOUNT-NUMBER
GENERAL-
LEDGER
PAYROLL-VOUCHER
PAYROLL-AUDIT-TRAIL
60
Diagram 1
EMPLOYEE-
RECORD
EMPLOYEE-HOURS-
WORKED-
TRANSACTION 1.1 1.2 1.3
EDIT-HOURS- CALCULATE- UPDATE-
WORKED- EMPLOYEE- EMPLOYEE-
TRANSACTION PAYCHECK- PAYCHECK- RECORD
VALID-HOURS- AMOUNT AMOUNT
WORKED
PAY-RATE
1.4 EMPLOYEE-PAYCHECK
PRODUCE-
EMPLOYEE-
PAYCHECK
EMPLOYEE- PAYCHECK-
PAYCHECK- AMOUNT
DETAIL PAYROLL-AUDIT-TRAIL
1.5
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER REPORTING
62
EMPLOYEES Diagram 1
EMPLOYEE-
RECORD
EMPLOYEE-HOURS-
WORKED-
TRANSACTION 1.1 1.2 1.3
EDIT-HOURS- CALCULATE- UPDATE-
WORKED- EMPLOYEE- EMPLOYEE-
TRANSACTION PAYCHECK- PAYCHECK- RECORD
VALID-HOURS- AMOUNT AMOUNT
WORKED
PAY-RATE
• Process bubbles
• Numbering: each bubble 1.4 EMPLOYEE-PAYCHECK
PRODUCE-
number consists of the EMPLOYEE-
PAYCHECK
diagram number,EMPLOYEE-
a PAYCHECK-
decimal, and a local
PAYCHECK-
DETAIL
AMOUNT
PAYROLL-AUDIT-TRAIL
number. 1.5
PRODUCE- PAYROLL-VOUCHER
• Look at bubble
GENERAL-LEDGER-ACCOUNT-NUMBER REPORTING
functions…
63
EMPLOYEES Diagram 1
EMPLOYEE-
RECORD
EMPLOYEE-HOURS-
WORKED-
TRANSACTION 1.1 1.2 1.3
EDIT-HOURS- CALCULATE- UPDATE-
WORKED- EMPLOYEE- EMPLOYEE-
TRANSACTION PAYCHECK- PAYCHECK- RECORD
VALID-HOURS- AMOUNT AMOUNT
WORKED
PAY-RATE
1.4 EMPLOYEE-PAYCHECK
PRODUCE-
EMPLOYEE-
PAYCHECK
EMPLOYEE- PAYCHECK-
PAYCHECK- AMOUNT
DETAIL PAYROLL-AUDIT-TRAIL
1.5
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER REPORTING
64
EMPLOYEES Diagram 1
EMPLOYEE-
RECORD
EMPLOYEE-HOURS-
WORKED-
TRANSACTION 1.1 1.2 1.3
EDIT-HOURS- CALCULATE- UPDATE-
WORKED- EMPLOYEE- EMPLOYEE-
TRANSACTION PAYCHECK- PAYCHECK- RECORD
VALID-HOURS- AMOUNT AMOUNT
WORKED
PAY-RATE
65
EMPLOYEES Diagram 1
EMPLOYEE-
RECORD
EMPLOYEE-HOURS-
WORKED-
TRANSACTION 1.1 1.2 1.3
EDIT-HOURS- CALCULATE-
WORKED- EMPLOYEE-
• Data stores UPDATE-
EMPLOYEE-
TRANSACTION PAYCHECK-
VALID-HOURS- AMOUNT
• EMPLOYEES shown
PAYCHECK- RECORD
AMOUNT
WORKED
again because accessed
PAY-RATE
again.
• Need1.4the entireEMPLOYEE-PAYCHECK
record to
update the file.
PRODUCE-
EMPLOYEE-
Just like COBOL.
•PAYCHECK
EMPLOYEE-
PAYCHECK-
• Show a single read to a
PAYCHECK-
AMOUNT
DETAIL
file within
1.5
a diagram,
PAYROLL-AUDIT-TRAIL
EMPLOYEE-
RECORD
EMPLOYEE-HOURS-
WORKED-
TRANSACTION 1.1 1.2 1.3
EDIT-HOURS- CALCULATE- UPDATE-
WORKED- EMPLOYEE- EMPLOYEE-
TRANSACTION PAYCHECK- PAYCHECK- RECORD
VALID-HOURS- AMOUNT AMOUNT
WORKED
PAY-RATE
EMPLOYEE- PAYCHECK-
PAYCHECK- AMOUNT
DETAIL PAYROLL-AUDIT-TRAIL
1.5
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER REPORTING
67
EMPLOYEES Diagram 1
EMPLOYEE-
RECORD
PAY-RATE
1.4 EMPLOYEE-PAYCHECK
PRODUCE-
EMPLOYEE-
PAYCHECK
EMPLOYEE- PAYCHECK-
PAYCHECK- AMOUNT
DETAIL PAYROLL-AUDIT-TRAIL
1.5
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER REPORTING
68
EMPLOYEES Diagram 1
EMPLOYEE-
RECORD
EMPLOYEE-HOURS-
WORKED-
TRANSACTION 1.1 1.2 1.3
EDIT-HOURS- CALCULATE- UPDATE-
WORKED- EMPLOYEE- • Data flows EMPLOYEE-
TRANSACTION PAYCHECK- RECORD
VALID-HOURS- AMOUNT • Avoid tramp data--data
PAYCHECK-
AMOUNT
WORKED
PAY-RATE that is shuffled around
unnecessarily.
• Never1.4send dataEMPLOYEE-PAYCHECK
through
PRODUCE-
oneEMPLOYEE-
bubble on its way to
PAYCHECK
another.
EMPLOYEE- PAYCHECK-
PAYCHECK- AMOUNT• Data should never go
DETAIL
anywhere
1.5
that it isn’t
PAYROLL-AUDIT-TRAIL
GENERAL-LEDGER-ACCOUNT-NUMBER
actually
PRODUCE-
used. PAYROLL-VOUCHER
REPORTING
• Why not?
69
EMPLOYEES Diagram 1
Bad Example
EMPLOYEE-
RECORD
• Data flows
EMPLOYEE-HOURS-
• Tramp data -- shuffling through bubble 1.4 unnecessarily.
WORKED-
TRANSACTION 1.1 1.2 1.3
EDIT-HOURS- CALCULATE- UPDATE-
WORKED- EMPLOYEE- EMPLOYEE-
TRANSACTION PAYCHECK- PAYCHECK- RECORD
VALID-HOURS- AMOUNT AMOUNT
WORKED
PAY-RATE
EMPLOYEE-
PAYCHECK- 1.4 EMPLOYEE-PAYCHECK
DETAIL PRODUCE-
EMPLOYEE-
PAYCHECK
PAYCHECK- EMPLOYEE-
Original AMOUNT
PAYCHECK-DETAIL
PAYROLL-AUDIT-TRAIL
1.5
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER REPORTING
70
EMPLOYEES Diagram 1
EMPLOYEE-
RECORD
EMPLOYEE-HOURS-
WORKED-
TRANSACTION 1.1 1.2 1.3
EDIT-HOURS- CALCULATE- UPDATE-
WORKED- EMPLOYEE- EMPLOYEE-
TRANSACTION PAYCHECK- PAYCHECK- RECORD
VALID-HOURS- AMOUNT AMOUNT
WORKED
PAY-RATE
Check balancing...
1.4 EMPLOYEE-PAYCHECK
PRODUCE-
EMPLOYEE-
PAYCHECK
EMPLOYEE- PAYCHECK-
PAYCHECK- AMOUNT
DETAIL PAYROLL-AUDIT-TRAIL
1.5
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER REPORTING
71
Overview Diagram
EMPLOYEE-HOURS-WORKED-
TRANSACTION PAYROLL-AUDIT-TRAIL
1
GENERAL-LEDGER-ACCOUNT-NUMBER PRODUCE- PAYROLL-VOUCHER
EMPLOYEE-
PAYCHECK EMPLOYEE-PAYCHECK
EMPLOYEE
S
EMPLOYEE-MAINTENANCE-
TRANSACTION
2
EMPLOYEE-PAY-RATE-TRANSACTION MAINTAIN- EMPLOYEE-MAINTENANCE-AUDIT-TRAIL
EMPLOYEE-
RECORD
EMPLOYE
ES Diagram 1
EMPLOYEE-RECORD
EMPLOYEE-
HOURS-
WORKED- 1.1 1.2 1.3
TRANSACTION EDIT-HOURS- CALCULATE- UPDATE-
WORKED- EMPLOYEE- EMPLOYEE-
TRANSACTION PAYCHECK- PAYCHECK- RECORD
VALID-HOURS- AMOUNT AMOUNT
WORKED
PAY-RATE
1.4
PRODUCE-EMPLOYEE-PAYCHECK
EMPLOYEE-
PAYCHECK
EMPLOYEE-
PAYCHECK- PAYCHECK-
DETAIL AMOUNT
PAYROLL-AUDIT-TRAIL
1.5
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER REPORTING
72
Diagram 1
• Data flows
– An edit transforms data, so the name must change
to reflect that.
– Name by the last transformation.
Diagram 1.1
EMPLOYEE-HOURS-
WORKED- EMPLOYEE-RECORD
TRANSACTION
1.1.1 PAY-RATE
VERIFY-
EMPLOYEE- EMPLOYEE-NAME-AND-NUMBER
INVALID- NUMBER
EMPLOYEE-
NUMBER
REGULAR-
HOURS-WORKED 1.1.2
EDIT- VALID-REGULAR-HOURS-WORKED
REGULAR-
INVALID- HOURS-
REGULAR- WORKED
HOURS-
WORKED
OVERTIME-
1.1.3
HOURS-WORKED
EDIT- VALID-OVERTIME-HOURS-WORKED
OVERTIME-
INVALID- HOURS-
OVERTIME- WORKED
HOURS-
WORKED
75
Functional Primitive
• Functional primitive
– Sebuah proses yang tidak jauh didekomposisi menjadi
diagram tingkat yang lebih rendah. Ia melakukan hanya
satu tugas.
• Bubbles 1.1.2, 1.1.2, and 1.1.3 are functional primitives.
EMPLOYEES
Diagram 1.1
EMPLOYEE-HOURS-
WORKED- EMPLOYEE-RECORD
TRANSACTION
1.1.1 PAY-RATE
VERIFY-
EMPLOYEE- EMPLOYEE-NAME-AND-NUMBER
INVALID- NUMBER
EMPLOYEE-
NUMBER
VALID-REGULAR-
HOURS-WORKED
1.1.2
EDIT- VALID-REGULAR-HOURS-WORKED
REGULAR-
INVALID- HOURS-
REGULAR- WORKED
HOURS-
WORKED
VALID-
OVERTIIME-
HOURS-WORKED 1.1.3
EDIT- VALID-OVERTIME-HOURS-WORKED
OVERTIME-
INVALID- HOURS-
OVERTIME- WORKED
HOURS-
WORKED
77
EMPLOYEES
Diagram 1.1
EMPLOYEE-HOURS-
WORKED- EMPLOYEE-RECORD
TRANSACTION
1.1.1 PAY-RATE
VERIFY-
EMPLOYEE- EMPLOYEE-NAME-AND-NUMBER
INVALID- NUMBER
EMPLOYEE-
NUMBER
REGULAR-
HOURS-WORKED
1.1.2
EDIT- VALID-REGULAR-HOURS-WORKED
REGULAR-
INVALID- HOURS-
REGULAR- WORKED
HOURS-
Error stubs OVERTIIME-
WORKED
HOURS-WORKED
1.1.3
EDIT- VALID-OVERTIME-HOURS-WORKED
OVERTIME-
INVALID- HOURS-
OVERTIME- WORKED
HOURS-
WORKED
78
Error Stub (1)
Check balancing...
EMPLOYEE-HOURS-
WORKED- EMPLOYEE-RECORD
TRANSACTION
1.1.1 PAY-RATE
VERIFY-
EMPLOYEE- EMPLOYEE-NAME-AND-NUMBER
INVALID- NUMBER
EMPLOYEE-
NUMBER
VALID-REGULAR-
HOURS-WORKED
1.1.2
EDIT- VALID-REGULAR-HOURS-WORKED
REGULAR-
INVALID- HOURS-
REGULAR- WORKED
HOURS-
WORKED
VALID-
OVERTIIME-
HOURS-WORKED 1.1.3
EDIT- VALID-OVERTIME-HOURS-WORKED
OVERTIME-
INVALID- HOURS-
OVERTIME- WORKED
HOURS-
WORKED
81
EMPLOYE
ES Diagram 1
EMPLOYEE-RECORD
EMPLOYEE-
HOURS-
WORKED- 1.1 1.2 1.3
TRANSACTION EDIT-HOURS- CALCULATE- UPDATE-
WORKED- EMPLOYEE- EMPLOYEE-
TRANSACTION PAYCHECK- PAYCHECK- RECORD
VALID-HOURS- AMOUNT AMOUNT
WORKED
PAY-
RATE
1.4
PRODUCE-EMPLOYEE-PAYCHECK
EMPLOYEE-
PAYCHECK
EMPLOYEE-
PAYCHECK- PAYCHECK-
DETAIL AMOUNT
PAYROLL-AUDIT-TRAIL
1.5
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER REPORTING
EMPLOYEES
Diagram 1.1
EMPLOYEE-HOURS- EMPLOYEE-RECORD
WORKED- 1.1.1 PAY-RATE
TRANSACTION VERIFY- EMPLOYEE-NAME-AND-NUMBER
INVALID- EMPLOYEE-
NUMBER
EMPLOYEE- VALID-REGULAR-
NUMBER HOURS-WORKED
?
1.1.2
EDIT- VALID-REGULAR-HOURS-WORKED
INVALID- REGULAR-
REGULAR- HOURS-
HOURS- WORKED
WORKED
VALID-OVERTIIME- 1.1.3
HOURS-WORKED EDIT- VALID-OVERTIME-HOURS-WORKED
OVERTIME-
INVALID- HOURS-
OVERTIME- WORKED
HOURS-WORKED
82
Diagram 1.1
• So here, VALID-HOURS-WORKED-
TRANSACTION breaks down into its pieces of
VALID-REGULAR-HOURS-WORKED and VALID-
OVERTIME-HOURS-WORKED.
EMPLOYEES
Diagram 1
EMPLOYEE-RECORD
EMPLOYEE-
HOURS-
WORKED- 1.1 1.2 1.3
TRANSACTION EDIT-HOURS- CALCULATE- UPDATE-
WORKED- EMPLOYEE- EMPLOYEE-
TRANSACTION PAYCHECK- PAYCHECK- RECORD
VALID-HOURS-
AMOUNT AMOUNT
WORKED
PAY-RATE
1.4
PRODUCE-EMPLOYEE-PAYCHECK
EMPLOYEE-
PAYCHECK
EMPLOYEE-
PAYCHECK- PAYCHECK-
DETAIL AMOUNT
1.5 PAYROLL-AUDIT-TRAIL
MAINTAIN-
EMPLOYEE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER
RECORD
EMPLOYEES
Diagram 1.1
EMPLOYEE-HOURS- EMPLOYEE-RECORD
WORKED- 1.1.1 PAY-RATE
TRANSACTION VERIFY- EMPLOYEE-NAME-AND-NUMBER
INVALID- EMPLOYEE-
NUMBER
EMPLOYEE- VALID-REGULAR-
NUMBER HOURS-WORKED
1.1.2
EDIT- VALID-REGULAR-HOURS-WORKED
INVALID- REGULAR-
REGULAR- HOURS-
HOURS- WORKED
WORKED
VALID-OVERTIIME- 1.1.3
HOURS-WORKED EDIT- VALID-OVERTIME-HOURS-WORKED
OVERTIME-
INVALID- HOURS-
OVERTIME- WORKED
HOURS-WORKED
87
Summary of
Balancing Exceptions
• Multiple copies of same item.
• Data stores not shown on higher levels.
• Error stubs.
• Parallel decomposition.
A “black hole”
A “miracle”
Remaining Diagrams...
Diagram 1.3
EMPLOYEES
YEAR-TO-DATE-TOTAL 1.3.1
CALCULATE-
YEAR-TO-
DATE- Always need a
PAYCHECK-AMOUNT TOTAL
FORMAT
NEW-YEAR-TO-
DATE-TOTAL
when writing
1.3.2
FORMAT-
to files.
EMPLOYEE-
RECORD
EMPLOYEE-RECORD
91
Diagram 1.4
Secondary alias for
EMPLOYEE-PAYCHECK
EMPLOYEE-PAYCHECK- FORMATTED-
DETAIL EMPLOYEE-
1.4.1 1.4.2 EMPLOYEE-PAYCHECK
FORMAT- PAYCHECK WRITE-
PAYCHECK-AMOUNT EMPLOYEE- EMPLOYEE-
PAYCHECK PAYCHECK
92
Diagram 1.4
EMPLOYEE-PAYCHECK- FORMATTED-
DETAIL EMPLOYEE-
1.4.1 1.4.2 EMPLOYEE-PAYCHECK
FORMAT- PAYCHECK WRITE-
PAYCHECK-AMOUNT EMPLOYEE- EMPLOYEE-
PAYCHECK PAYCHECK
94
EMPLOYEES Diagram 1
EMPLOYEE-
RECORD
EMPLOYEE-HOURS-
WORKED-
TRANSACTION 1.1 1.2 1.3
EDIT-HOURS- CALCULATE- UPDATE-
WORKED- EMPLOYEE- EMPLOYEE-
TRANSACTION PAYCHECK- PAYCHECK- RECORD
VALID-HOURS- AMOUNT AMOUNT
WORKED
PAY-RATE
1.4 1.6
EMPLOYEE-PAYCHECK
PRODUCE-
FORMAT- WRITE-
EMPLOYEE- EMPLOYEE-
PAYCHECK PAYCHECK
EMPLOYEE- PAYCHECK-
PAYCHECK- AMOUNT
DETAIL PAYROLL-AUDIT-TRAIL
1.5
PRODUCE- PAYROLL-VOUCHER
GENERAL-LEDGER-ACCOUNT-NUMBER REPORTING
95
Diagram 1.5
EMPLOYEE-PAYCHECK- 1.5.1 FORMATTED- 1.5.2
DETAIL FORMAT- PAYROLL-AUDIT-TRAIL WRITE- PAYROLL-AUDIT-TRAIL
PAYROLL- PAYROLL-
AUDIT- AUDIT-
TRAIL TRAIL
PAYCHECK-AMOUNT
1.5.3
TOTAL-
PAYCHECK-
AMOUNTS
EMPLOYEE-
PAYCHECKS-TOTAL
FORMATTED-
1.5.5 PAYROLL- 1.5.6
VOUCHER PAYROLL-VOUCHER
FORMAT- WRITE-
PAYROLL- PAYROLL-
VOUCHER VOUCHER
VALID-GENERAL-LEDGER-
ACCOUNT-NUMBER
1.5.4
GENERAL-LEDGER-
EDIT-
ACCOUNT-NUMBER
GENERAL-
LEDGER-
ACCOUNT-
INVALID-GENERAL-
NUMBER
LEDGER-ACOUNT-
NUMBER
96
Diagram 2
Trying to diverge EMPLOYEES
on EMPLOYEE-RECORD
would create crossed lines.
EMPLOYEE-MAINTENANCE-
TRANSACTION
2.1
2.2
EDIT- EMPLOYEE-RECORD
FORMAT-
MAINTENANCE-
EMPLOYEE-
TRANSACTION
EMPLOYEE-PAY-RATE- RECORD
TRANSACTION
EMPLOYEE- VALID-EMPLOYEE-MAINTENANCE-
RECORD TRANSACTION
97
EMPLOYEES Diagram 2.1
EMPLOYEE-MAINTENANCE-
TRANSACTION EMPLOYEE-RECORD
2.1.1
VERIFY- VALID-EMPLOYEE-NUMBER
EMPLOYEE-PAY-RATE- EMPLOYEE-
TRANSACTION NUMBER VALID-DELETE-TRANSACTION
INVALID- CHANGED-
EMPLOYEE- 2.1.2
EMPLOYEE-
NUMBER EDIT- VALID-CHANGED-EMPLOYEE-FIELD
FIELD
CHANGED-
EMPLOYEE-
FIELD
ADD-TRANSACTION-WITH-
VALID-EMPLOYEE-NUMBER
2.1.3
EDIT-ALL- VALID-ADD-TRANSACTION
EMPLOYEE-
FIELDS
These would break down
to lower-level diagrams.
2.1.4
PAY-RATE VALID-PAY-RATE
EDIT-
EMPLOYEE-
PAY-RATE
INVALID-
PAY-RATE
98
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.
Clues that we
haven't partitioned far enough
DATA-
• Always write FLOW-1
horizontally: DATA-
DATA-
FLOW-3
FLOW-2
Two copies
Indicate multiple copies
on the diagram
EMPLOYEES
of a data store by
placing extra lines in
the symbol: EMPLOYEES
Editing Patterns
EDIT-
CUSTOMER-
NAME CUSTOMER-ADDRESS
INVALID-
CUSTOMER-
NAME
EDIT-
CUSTOMER-
ADDRESS
INVALID-CUSTOMER- CUSTOMER-
ADDRESS PHONE
EDIT- VALID-NEW-CUSTOMER
CUSTOMER-
INVALID- PHONE
CUSTOMER-
PHONE
107
Editing Patterns
NEW-CUSTOMER EDIT-
CUSTOMER-
NUMBER
INVALID-CUSTOMER-
NEW-
NUMBER
CUSTOMER
EDIT-
CUSTOMER-
NAME NEW-CUSTOMER
INVALID-
CUSTOMER-
NAME
EDIT-
CUSTOMER-
ADDRESS
INVALID-CUSTOMER- NEW-
ADDRESS CUSTOMER
EDIT- VALID-NEW-CUSTOMER
CUSTOMER-
INVALID- PHONE
CUSTOMER-
PHONE
108
Editing Patterns
NEW-CUSTOMER VALID-NEW-CUSTOMER
EDIT-
NEW-
CUSTOMER
109
Editing Patterns
Parallel decomposition:
Parallel decomposition
Acceptable editing pattern.
NEW-CUSTOMER-
VALID-CUSTOMER-NUMBER
NUMBER EDIT-
CUSTOMER-
NUMBER
INVALID-CUSTOMER-
NUMBER
EDIT- VALID-CUSTOMER-PHONE
NEW-CUSTOMER-PHONE
CUSTOMER-
INVALID- PHONE
CUSTOMER-
PHONE
110
• Some tramp data.
Editing Patterns
• Acceptable for first bubble only.
VALID-CUSTOMER-NUMBER
NEW-CUSTOMER EDIT-
CUSTOMER- Parallel decomposition
NUMBER
INVALID-CUSTOMER-
NUMBER
VALID-
NEW-CUSTOMER-NAME EDIT- CUSTOMER-NAME
CUSTOMER-
NAME
INVALID-
CUSTOMER-
NAME VALID-
NEW-CUSTOMER-ADDRESS EDIT- CUSTOMER-ADDRESS
CUSTOMER-
ADDRESS
INVALID-CUSTOMER-
ADDRESS
111
Data Modeling (ERD)
• Elements:
– Data object – setiap orang, organisasi, peralatan, atau produk
perangkat lunak yang menghasilkan atau menggunakan informasi
– Attributes – nama suatu contoh objek data, menggambarkan
karakteristik atau membuat refrensi untuk objek data lainnya
– Relationships – menunjukkan cara dimana objek data terhubung
ke objek data lainnya
• Suatu kondisi (state) adalah setiap mode yang dapat diamati dari
perilaku
• Hatley and Pirbhai control flow diagrams (CFD) and UML sequence
diagrams dapat juga digunakan untuk memodelkan perilaku
(behavioural modelling)
115
State Transition Diagram
Mengeluarkan minuman
116
State Transition Diagram
• State: Action:
• Menunggu koin •Menerima koin baru
• Menunggu masukan pilihan minuman • Menerima permintaan
• Mengeluarkan minuman minuman
• Mengembalikan pembayaran • Mengeluarkan minuman
• Event: • Mengembalikan
• Inisialisasi pembayaran
• Koin sah terdeteksi
• Pembayaran dianggap cukup
• Minuman dikeluarkan
• Permintaan pengembalian koin
• Minuman habis
• Pembayaran dikembalikan
117
Data Dictionary (1)
118
Data Dictionary (2)
• Berisi:
– Name
• nama utama yang muncul pada objek data, data store, atau external entity
– Alias
• nama lain yang digunakan
– Where-used/how-used
• daftar proses yang menggunakan data dan bagaimana menggunakannya
– Content description
• notasi untuk merepresentasikan isi data
– Supplementary information
119
Data Dictionary (3)
• Notasi:
Jenis Notasi Arti
======================================
= Terdiri atas
urutan + dan
pilihan [ | ] atau
pengulangan { }n Pengulangan sebanyak n kali
( ) Data optional
* * pembatas komentar
120
Data Dictionary (4)
• Contoh:
– nama mahasiswa = nama depan + nama belakang
– jenis kelamin = [perempuan | laki-laki]
121
Terimakasih
122