halaman : 1
Rekayasa Perangkat Lunak
BAB IV PEMODELAN ANALISIS
Pada tingkat teknik, rekayasa perangkat lunak dimulai dengan serangkaian tugas pemodelan yang membawa kepada suatu spesifikasi lengkap dari persyaratan representasi dan representasi desain yang komprehensip bagi perangkat lunak yang dibangun.
4.1. Elemen Model Analisis Model analisis harus dapat mencapai tiga sasaran utama yakni untuk : •
Menggambarkan apa yang dibutuhkan untuk pelanggan
•
Membangun dasar bagi pembuatan desain perangkat lunak
•
Membatasi serangkaian persyaratan yang dapat divalidasi begitu perangkat lunak dibangun.
Brahmantyo- Pemodelan Analisis
halaman : 2
Rekayasa Perangkat Lunak
Untuk mencapai sasaran tersebut dibuatlah model analisis yang berisi: •
Data Dictionary Penyimpanan yang berisi deskripsi dari semua obyek data yang dikonsumsi atau diproduksi oleh perangkat lunak.
•
Entity Relationship Diagram (ERD) Menggambarkan hubungan antara obyek data.
•
Data Flow Diagram (DFD) o Memberikan indikasi mengenai bagaiman data ditransformasi pada saat data bergerak melalui sistem o Menggambarkan fungsi-fungsi (dan sub fungsi) yang mentransformasikan aliran data.
•
State Transition Diagram Menunjukkan bagaimana sistem bertingkah laku sebagai akibat dari kejadian eksternal.
•
Control Specification (CSPEC) Informasi tambahan mengenai aspek kontrol dari perangkat lunak
4.2. Pemodelan Data Untuk dapat menjawab sebagai berikut : •
Bagaimana komposisi dari masing-masing obyek data dan atribut apa yang menggambarkab obyek tersebut?
•
Dimana obyek saat ini berada?
•
Bagaimana hubungan antara masing-masing obyek data dan obyek lainnya?
•
Bagaimana hubungan antara obyek dengan proses yang mentransformasikannya?
Digunakan Entity Relational Diagram (ERD)
4.2.1. Obyek Data, Atribut dan Hubungan •
Obyek Data Adalah representasi dari hamper semua informasi gabungan yang harus dipahami oleh perangkat lunak
Brahmantyo- Pemodelan Analisis
halaman : 3
Rekayasa Perangkat Lunak
•
Atribut Menentukan property suatu obyek data dan mengambil salah satu dari tiga karakteristik yang berbeda. o Menamai sebuah contoh dari obyek data o Menggambarkan contoh o Membujat referensi ke contoh yang lain pada tabel yang lain.
•
Hubungan Obyek data disambungkan satu dengan lainnya dengan berbagai macam cara.
4.2.2. Kardinalitas dan Modalitas Kardinalitas Model data harus dapat merepresentasikan jumlah peristiwa dari obyek di dalam hubungan yang diberikan o Satu ke satu (1:1) Misalnya: seorang suami hanya dapat memiliki satu istri, dan seorang istri hanya mempunyai satu suami. o Satu ke banyak (1:N) Misalnya: seorang ibu dapat memiliki banyak anak, tetapi seorang anak hanya dapat memiliki satu ibu. o Banyak ke banyak (M:N) Misalnya: seorang paman dapat memiliki banyak keponakan, sementara itu seorang keponakan dapat memiliki banyak paman.
Modalitas Modalitas dari suatu hubungan adalah nol bila tidak ada kebutuhan eksplisit untuk hubungan yang terjadi atau hubungan itu bersifat opsional. Modalitas bernilai satu jika suatu kejadian dari hubungan merupakan perintah.
Brahmantyo- Pemodelan Analisis
halaman : 4
Rekayasa Perangkat Lunak
4.2.3. Entity Relational Diagram Pada mulanya digunakan untuk desain sistem database relational dan telah dikembangkan oleh yang lainnya. Serangkaian komponen utama diidentifikasikan untuk ERD: obyek data, atribut, hubungan dan berbagai tipe indicator. Tujuan utama dari ERD adalah untuk mewakili obyek data dan hubungan mereka.
4.3. Pemodelan Fungsional dan Aliran Informasi. Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer. Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output. Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya.
4.3.1. Diagram Aliran Data/ Data Flow Diagram (DFD) Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output. Dikenal juga dengan sebutan grafik aliran data atau buble chart.
Brahmantyo- Pemodelan Analisis
halaman : 5
Rekayasa Perangkat Lunak
Komponen-komponen DFD : o Proses o External entity o Data Flow o Data Store Proses
o Simbol proses adalah : o
Proses menunjukkan apa yang dikerjakan oleh sistem
o
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol.
File atau Data Store
o Simbol : o File atau Data Store adalah tempat penyimpanan data o Proses dapat menempatkan data ke dalam data store atau mengambil / mendapatkan data store o Setiap data store mempunyai nama yang unik
External Entity CUSTOMERS
Simbol :
External entity adalah di luar sistem, tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem Source : External entity yang memberikan input data ke dalam sistem Sinks : External entity yang menggunakan data sistem Data Flow Simbol :
Ö
anak manah menunjukkan arah aliran
Aliran data pada sistem :
antara dua proses Brahmantyo- Pemodelan Analisis
halaman : 6
Rekayasa Perangkat Lunak
dari sebuah data store ke sebuah proses
dari sebuah proses ke sebuah data store
dari sebuah source ke sebuah proses
dari sebuah proses ke sebuah sink
Menggambarkan Sistem Dengan Dataflow Diagram Langkah awal adalah membuat “DIAGRAM KONTEKS” Diagram konteks : DFD di mana sistem terdiri dari satu proses Pada tahap ini terlihat semua external entity yang berinteraksi dengan sistem dan data flow, antara external entity dan sistem Contoh : BUDGET ALLOCATION DEPARTEMENTS
REQUEST
REJECTED
NG DI T S EN SP QUE RE
REQUEST FOR SPECIAL APPROVAL
BUDGET MONITORING SYSTEM
MANAGEMENT
TO AL E OV S N PR PO AP S RE IAL EC SP SPENDING SUMMARIES
DELIVERY ADVICE
PART ORDER
SUPPLIER DELIVERY ADVICE
SUPPLIER
Diagram Konteks Budget monitoring system System berinteraksi dengan 3 external entity, yaitu : DEPARTEMENTS MANAGEMENTS SUPPLIERS Aliran data utama dari Departements adalah “Spending Request”. Sebagai tanggapan dari sistem, Departemen menerima “Rejected Request” atau aliran data “Delivery Advice” Management menerima data flow “Request For Special Approval”, yang kemudian memberikan respons Brahmantyo- Pemodelan Analisis
halaman : 7
Rekayasa Perangkat Lunak
Management juga mengirim data flow “Budget Allocation” ke sistem dan mendapatkan data flow “Spending Summaries” Supplier menerima data flow “Part Order” dan mengembalikan data flow “Supplier Delivery Advice” Setelah mendapatkan “Diagram Konteks”, langkah selanjutnya adalah membuat DFD yang memperlihatkan proses dari sistem utama, yang dinamakan dengan TOP LEVEL DFD 2 SETUP BUDGET
DEPARTEMENTS
BUDGET ALLOCATION
NG DI T EN ES SP QU RE ED CT T JE ES RE QU RE
ALLOCATED BUDGET RE
1 CHECK FUNDING
IAL EC P S OR AL T FROV S E P QU AP
4 PROVIDE SPENDING SUMMARIES
RESPONSE TO SPECIAL APPROVAL DEPARTEMENT ACCOUNTS
D VE O ST PR UE AP EQ R
SUSPENDED REQUEST
SPENDING SUMMARIES
MANAGEMENT
3 CLASSIFY EXPENDITUR
TYPE ACCOUNTS
R ED D T R O ES EC QU E R
DELIVERY ADVICE
PART ORDER SUPPLIERS
5 ORGANIZE SUPPLIER
SUPPLIER DELIVERY ADVICE
Top Level DFD dari Diagram Konteks Top level DFD memperlihatkan berbagai proses yang membentuk sistem Setiap proses mempunyai sebuah nama unik dan nomor proses Dari DFD di atas kita lihat bahwa data flow “Spending Request” dari Departements menuju ke proses “Check Funding”. Proses “Check Funding” melihat “Allocated Budget” dan menetapkan apakah izin khusus diperlukan dari management untuk diteruskan ke permintaan. Data flow “Approved Request” menuju ke proses “Classify Expenditure”, dan kemudian dimasukkan pada data store “Departemental-Accounts” dan “Type-Accounts”. Brahmantyo- Pemodelan Analisis
halaman : 8
Rekayasa Perangkat Lunak
Akhirnya, jika diperlukan, “Part Order” untuk menetapkan bagian ( part ) semula dalam “Spending Request” diurus oleh supplier. Dua proses lainnya : “Setup Budget” dan “Provide Spending Summaries”
Kita dapat memperluas setiap proses pada Top Level DFD. Sebagai contoh diambil proses “Classify Expenditure” AP PR OV RE ED QU ES T
3.1 CLASSIFY EXPENSE BY TYPE
TYPE ACCOUNTS CL AS RE SIFIE QU D ES T
3.2 UPDATE TYPE ACCOUNT TE DA T UP ES QU E R
DEPARTEMENTAL ACCOUNTS
ED RD T O C S RE QUE RE
3.4 UPDATE DEPARTEMENTAL RECORD
3.3 SUM TOTAL T ES QU RE TAL TO
Brahmantyo- Pemodelan Analisis
halaman : 9
Rekayasa Perangkat Lunak D VE O ST PR UE AP EQ R
= Dept_no + Request_no + (Amount + Descrip.)
3.1 CLASSIFY EXPENSE BY TYPE
= Dept_no + Request_no + (Amount + Type)
D IE IF T SS ES U LA C EQ R
Amend the expense docket reading the description for each request item and classifying it by type
For each request item irv request docket * get ACCOUNT for TYPE from store TYPE_ACCOUNTS * sum TOTAL_AMOUNT = TOTAL_AMOUNT + AMOUNT * write TYPE_ACOUNT back to store TYPE_ACOUNTS
3.2 UPDATE TYPE ACCOUNT
KETERANGAN
TYPE ACCOUNTS = Type + Total - Amount
U R PD EQ A U TE ES T
DESKIPSI DATA STORE DESKRIPSI PROSES DESKRIPSI DATA FLOW
= DEPT_NO request + REQUEST_NO + (AMOUNT)
3.3 SUM TOTAL For each requesition REQUEST_SUM = REQUEST_SUM + AMOUNT = DEPT_NO + TOTAL_EXP
R EQ TO UE TA ST L
DEPARTEMENTAL ACCOUNTS
R
R EC EQ OR U DE ES D T
3.4 UPDATE DEPARTEMENTAL RECORD
= DEPT_NO + REQUEST_NO + REQUEST_SUM
Get departement accounts for DEPT_NO from data store DEPARTEMENTAL-ACCOUNTS TOTAL_EXP = TOTAL_EXP + REQUEST_TOTAL write departemental accounts back to data store
= DEPT_NO + REQUEST_NO + REQUEST_SUM
Data Flow Diagram yang baik : Ketiadaan dari struktur flowchart Penyimpanan data Penamaan yang baik Perbedaan antara Flowchart dan Data Flow Diagram : Flowchart terdiri dari box-box yang mendeskripsikan : Komputasi Decision / Keputusan Iterasi Loop Brahmantyo- Pemodelan Analisis
halaman : 10
Rekayasa Perangkat Lunak
Data Flow Diagram bukan Flowchart program dan tidak mempunyai elemen kontrol DFD yang baik harus : Tidak mempunyai aliran data yang split up ke dalam sejumlah aliran data lain PROFIT
SALES DATA
COMPUTE INCOME
LOSS
Tidak mempunyai garis yang berpotongan Tidak terdapat iterasi antara 2 proses ; 1 proses dengan dirinya sendiri
GET NEXT DOCKET
SALES DOCKET
ADD TO DAILY SALES
TOTAL SALES AMOUNT
ASK FOR MORE
Tidak mengandung aliran data yang berfungsi sebagai signal untuk mengaktifkan suatu proses END OF MONTH
PREPARE MONTHLY INVOICE TRANSACTIONS INVOICE
Brahmantyo- Pemodelan Analisis
halaman : 11
Rekayasa Perangkat Lunak
Bagaimana membuat : Decisions dan Interactive Control Decisions dalan DFD INVENTORY-RECORD = ITEM_NO + QTY_HELD
UNMET-REQUEST = REQ_NO + ITEM_NO + QTY_NEEDED
CHECK ITEM AVAILABILITY
UNVAILABLE NOTE DELIVERY NOTE
EM IT
ST UE Q RE
= REQ_NO + ITEM_NO + QTY_NEEDED find INVENTORY_RECORD with ITEM_NO in INVENTORY_RECORD = ITEM_NO in ITEM-REQUEST if QTY_HELD in INVENTORY_RECORD < QTY_NEEDED in ITEM-REQUEST then write UNMET_REQUEST send UNAVAILABLE NOTE else send DELIVERY NOTE
Perulangan dalam DFD
SALES DOCKET
COMPUTE DAILY SALES
= ITEM_NO + QTY_SOLD + PRICE
TOTAL SALES
= DAILY_SALES_TOTAL
REPEAT FOR ALL SALESDOCKET BEGIN SALES_AMOUNT = QTY_SOLD * PRICE DAILY_SALES_TOTAL = DAILY_SALES_TOTAL + SALES_AMOUNT END SEND 'TOTAL SALES'
Penyimpanan Data Data store tidak boleh membuat “elemen data” baru Proses juga tidak dapat membuat data baru ; hanya mengambil data dan mengeluarkannya ke dalam sebuah bentuk data baru Beberapa contoh kesalahan penggunaan prinsip penyimpanan data :
Brahmantyo- Pemodelan Analisis
halaman : 12
Rekayasa Perangkat Lunak
1. PU RC H
= ITEM_NAME + QTY AS ED _IT E
PRICE_LIST M
RETRIEVE ITEM PRICE RE = ITEM_NAME + ITEM_PRICE TR IEV E_ ITE M
COMPUTE DISCOUNT
CUSTOMERS
Item data QTY hilang setelah melalui proses “Retrieve-Item Price” 2. AVERAGE DISK TRANSFER TIME DISK ACCESS SPECIFICATION
COMPUTE DISK UTILIZATION CHANNEL USE PER DAY
“Channel Use Per Day” Ö output Tetapi tidak ada informasi masukkan tentang jumlah disk yang masuk setiap hari 3.
memerlukan data
KERJA / OPERASI DEPARTEMEN
informasi
Gunakanlah nama-nama yang berarti, baik untuk data flow, maupun proses. Pada contoh tersebut penamaan untuk data flow dan proses tidak jelas.
Beberapa petunjuk dalam pemakaian nama ( penamaan ) 1. Penamaan “Proses” Nama proses harus frase tunggal dan dapat mendeskripsikan suatu proses dalam sebuah kalimat Nama proses harus mendefinisikan kegiatan / aksi yang spesifik Contoh : Mengedit Menghitung gaji mingguan Brahmantyo- Pemodelan Analisis
halaman : 13
Rekayasa Perangkat Lunak
Menghitung diskon pada pesanan dan lain-lain Jika suatu proses menangani beberapa proses, maka harus dipecah menjadi beberapa proses 2. Penamaan Data Store Gunakan nama yang khas / spesifik Ingat bahwa setiap data store hanya berisi satu set struktur data Contoh Machine_Schedules and Parts_Used Æ pisahkan ke dalam 2 data store 3. Penamaan Data Flows antara Proses Gunakan 1 kata / frase. Contoh : “Kuitansi” , “Cek” , dan sebagainya Jangan menggunakan nama yang sama untuk setiap data flow Lihat gambar : Pada ( a ) data flow “Invoice” yang masuk ke “Edit Invoice” , keluar “Invoice” Ö Jangan pakai nama yang sama. Output dari “Make Payment” adalah “Cheque”. “Cheque” juga dipakai untuk data flow yang menghubungkan external entity “Customer” dan proses “Receive Payment”. Bedakan nama kedua data flow tersebut !!!! DFD ( b ) memperbaiki beberapa kesalahan pada DFD ( a )
Brahmantyo- Pemodelan Analisis
halaman : 14
Rekayasa Perangkat Lunak
SUPPLIER
CHEQUE
MAKE
RECEIVE
PAYMENT
PAYMENT
ER _N O UN AM E T
+
APPROVED
ACCOUNT
INVOICES
= ACCOUNT_NO + AMOUNT + SUPPLIER_NAME
APP
RO V
E IC VO IN VERIFY
ED
INV
CUSTOMER
ACCOUNT_NO +
PL I
AM
AMOUNT
INVOICE
SUPPLIER +
AMOUNT
INVOICE EDIT
SU P
CHEQUE
OIC E
INVOICE
APPROVE
INVOICE
PAYMENT
gambar ( a ) Æ
SUPPLIER
SUPPLIER
MAKE
RECEIVE
CUSTOMER
CHEQUE
PAYMENT
PAYMENT
CHEQUE
ER _N O UN AM E T
+
ACCOUNT_NO +
PL I
AM
AMOUNT
SUPPLIER +
AMOUNT
INVOICE EDIT INVOICE
SU P
APPROVED
ACCOUNT
INVOICES
= ACCOUNT_NO + AMOUNT + SUPPLIER_NAME
ED
APP
ED IT
RO V
ED
INV
CUSTOMER
IN
OIC E
E IC VO VERIFY
VERIFIED
APPROVE
INVOICE
INVOICE
PAYMENT
gambar ( b ) Pembuatan Aliran Material DFD digunakan untuk aliran informasi, bukan aliran material. Tetapi kadang-kadang aliran material diperlukan. Caranya ????
Brahmantyo- Pemodelan Analisis
halaman : 15
Rekayasa Perangkat Lunak MEMPERSIAPKAN
CATATAN PENGIRIMAN
PENGIRIMAN
TOKO
MENCATAT PENGIRIMAN
TEMPAT
RUANG MESIN
ALIRAN FISIKAL LOKASI FISIKAL DARI AKTIFITAS
Brahmantyo- Pemodelan Analisis