dasar-dasar perancangan sistem · web viewpada rancangan secara modular, beberapa tingkatan...
TRANSCRIPT
IF0554 - REKAYASA PERANGKAT LUNAK 113 -–MODUL 7
DASAR-DASAR PERANCANGAN SISTEM
Prinsip Dasar Perancangan Perangkat Lunak
PENGANTAR Perancangan Perangkat Lunak merupakan proses penerjemahan dari
kebutuhan menjadi perangkat lunak Hasil dari perancangan adalah :
Rancangan data yang memetakan model domain informasi pada saat analisis menjadi struktur data yang dibutuhkan untuk implementasi perangkat lunak.
Rancangan arsitektural yang mendefinisikan hubungan dari komponen-komponen struktural utama dari program.
Rancangan prosedural yang memetakan komponen-komponen struktural ke deskripsi prosedur perangkat lunak
ABSTRACTION ( Wasserman ) Pada rancangan secara modular, beberapa tingkatan abstraksi dapat
diperoleh, sehingga perancang dapat mengkonsen- trasikan pada setiap tingkatan abstraksi yang lebih terinci.
Pada level paling tinggi, solusi dinyatakan secara global dengan bahasa pada lingkungan masalah. Dan pada abstraksi paling bawah, solusi dinyatakan dalam bahasa yang dapat langsung diimplementasikan.
Contoh Abstraksi Program dan Abstraksi Data :
PROGRAM ABSTRACTION
Abstraksi tingkat pertama : CAD Software Task User interface Task 2-D Drawing Creation Task ……… end.
Abstraksi tingkat kedua : PROCEDURE User interface ……… …… end
DATA ABSTACTION
TYPE drawing IS STRUCTURE DEFINED Number IS INTEGER Icon IS ICON_STRUCTURE Notes IS STRING LENGTH (225) Versi IS STRING LENGTH ( 10 )
……………end
MODULARITY & SOFTWARE ARCHITECTURE
Versi 1.0 STIMIK PERBANAS Maret 2003
IF0554 - REKAYASA PERANGKAT LUNAK 213 -–MODUL 7
Perangkat lunak dibagi atas beberapa modul. Sebuah modul dapat dibagi lagi atas beberapa sub-modul Modul memiliki nama yang unik. Sebuah modul dapat memanggil modul lainya.
Gambar : Struktur Evolusi
Gambar : Struktur Berbeda
Versi 1.0 STIMIK PERBANAS Maret 2003
S1 S2
S4
S3
S5
Software “solution”“Problem” to be solved via software
PS5S4S1
S3
S2
S4
S1
S3
S5S2
S4S2 S3 S5S1
“Problem”
Structure 1 Structure 2 Structure 3
IF0554 - REKAYASA PERANGKAT LUNAK 313 -–MODUL 7
Struktur Terminologi
HIRARKI KONTROL ( STRUKTUR PROGRAM )
Menunjukkan organisasi dari modul-modul program dan menunjukan hirarki kontrolnya. Tidak merepresentasikan aspek prosedural dari perangkat lunak seperti urutan proses, keputusan, atau perulangan.
Kedalaman dan lebar menunjukkan jumlah tingkatan kontrol dan seluruh cakupan kontrol
Fan-out menunjukkan jumlah modul yang secara langsung dikontrol oleh modul lain
Fan-in menunjukkan jumlah modul yang mengontrol modul yang bersangkutan
Modul yang mengontrol modul yang lain disebut superordinate Modul yang dikontrol modul yang lain disebut subordinate
FAN-OUT Fan-out dari sebuah modul adalah banyaknya subordinate langsung dari
modul tersebut Perluasan kontrol dari sebuah modul sebaiknya tidak melebihi 7 + 2 ( kecuali
pada pusat-pusat transaksi ) Hindarkan Fan-out yang bersifat main-line (satu boss, dengan modul-modul
lain sebagai subordinate ) Sebuah modul dengan Fan-out yang banyak biasanya sukar dipelihara. Untuk memecahkan fan-out yang banyak gunakan modul-modul antara
Versi 1.0 STIMIK PERBANAS Maret 2003
Depth
Width
Fan-out
Fan-in
M
b ca
kd e l m
gf h on p q
i j r
IF0554 - REKAYASA PERANGKAT LUNAK 413 -–MODUL 7
FAN-IN Fan-in dari modul adalah banyaknya modul lain yang ( boss )
menggunakan/memanggil modul tersebut. Jika mungkin Fan-in harus dilakukan sebanyak-banyaknya. Fan-in yang banyak menghindari pengulangan pembuatan modul yang sama
atau serupa Fan-in yang banyak mempermudah pemeliharaan karena menempatkan suatu
fungsi yang sama dalam satu modul
STRUKTUR DATA Refresentasi lojikal dari hubungan antara elemen-elemen data.
Struktur Data Klasik
PROSEDUR PERANGKAT LUNAK Struktur program hanya mendefinisikan hirarki kontrol tanpa memperhatikan
urutan proses. Prosedur perangkat lunak berfokus pada rincian proses dari setiap modul.
INFORMATION HIDING ( by Pamas ) Prinsip dasar dalam pembentukan modul dimana hanya data yang benar-
benar perlu, yang dikenalkan dan dapat diakses oleh sebuah modul.
Versi 1.0 STIMIK PERBANAS Maret 2003
A linked list
A scalar item
A scalar item
…
An N-dimensional space
…
…
A hierarchical tree
IF0554 - REKAYASA PERANGKAT LUNAK 513 -–MODUL 7
Prosedur Berlapis
Versi 1.0 STIMIK PERBANAS Maret 2003
Module A
Module A
Prosedur di dalam suatu modul
IF0554 - REKAYASA PERANGKAT LUNAK 613 -–MODUL 7
PERANCANGAN YANG MODULAR Keuntungan :
menurunkan kompleksitas mempermudah pengubahan implementasi yang lebih mudah karena bagian-bagian yang berbeda dapat
dibuat dengan paralel Evaluasi dari hubungan antar modul dapat dinilai dengan melihat kohesi dan
koplingnya ( Steven, Myers, dan Constantine )
KOPLING Kopling adalah tingkat saling ketergantungan antara dua modul. Kita menghendaki modul dengan kopling rendah yaitu modul-modul yang
sedapat mungkin tidak saling bergantungan. Kopling yang rendah adalah tanda dari pembagian sistem yang baik, dimana
sesuatu yang tidak berhubungan dipisahkan. Jika sedikit atau tidak ada interaksi dua modul disebut loosely coupled
(kopling rendah) dan jika sebaliknya disebut tighty coupled (kopling tinggi) Makin tinggi kopling yang ada makin sulit sebuah program untuk dimengerti. Jika dua modul memiliki kopling yang rendah, maka sebuah modul dapat
diubah tanpa perlu mengubah modul yang lain. Mengapa kopling yang rendah diperlukan ?
Untuk menghilangkan ripple effect (perubahan pada sebuah modul dapat berpengaruh pada modul lain). Sehingga dapat memelihara atau mengubah suatu modul dengan resiko yang minimal untuk mengubah modul lainnya. Jika mungkin kita ingin dapat bekerja dengan modul A tanpa perlu mengetahui tentang apapun dalam modul B.
Faktor-faktor yang berpengaruh pada kopling antara dua modul adalah : Jumlah item data yang disalurkan diantara dua modul (makin banyak data
yg disalurkan makin tinggi kopling yang terjadi). Jumlah data kontrol yang disalurkan diantara dua modul (makin banyak
data kontrol yang disalurkan makin tinggi kopling yang terjadi) Jumlah elemen data global yang digunakan bersama-sama oleh beberapa
modul (makin banyak data global yang digunakan, makin tinggi kopling yang terjadi)
KOHESI Melekatkan hal-hal yang berkaitan didalam modul yang sama, akan
mengurangi lalu-lintas diantara modul-modul . Apa yang terjadi diantara modul-modul (kopling) dipengaruhi oleh apa yang
terjadi dalam modul-modul tersebut secara individual (kohesi) Kohesi adalah ukuran kekuatan asosiasi antar elemen didalam suatu modul. Elemen yang dimaksud adalah : sebuah instruksi, sekumpulan intruksi, atau
pemanggilan ke modul lain. Kohesi tinggi jika sebuah modul hanya bertanggung jawab terhadap satu
pekerjaan saja.
Versi 1.0 STIMIK PERBANAS Maret 2003
X
X
Y
Y
Lalu lintas jalan
Kopling rendah Kohesi tinggi
Y
X
X
Y
Lalu lintas jalan
Kopling tinggi Kohesi rendah
IF0554 - REKAYASA PERANGKAT LUNAK 713 -–MODUL 7
RANCANGAN DATA Rancangan data yang bagus dapat membuat struktur program lebih baik,
modularitas efektif dan menurunkan kompleksitas prosedural Beberapa petunjuk :
Semua struktur data dan operasi yang mengolahnya harus didefinisikasi Selalu gunakan kamus data Rancanagan data yang bersifat low-level harus ditunda sampai akhir dari
proses perancangan Bentuk keputusan dan struktur data dan operasi-operasi yang
mengolahnya Bahasa pemrograman harus mendukung spesifikasi dan realisasi dari tipe
data abstrak.
Versi 1.0 STIMIK PERBANAS Maret 2003
IF0554 - REKAYASA PERANGKAT LUNAK 813 -–MODUL 7
PERANCANGAN ARSITEKTURAL Tujuan dari perancangan arsitektural adalah untuk membangun struktur
program yang modular dan membentuk hubungan kontrol antar modul Rancangan arsitektural menggabungkan struktur program dan struktur data serta mendefinisikan
interface yang membuat data melalui program. Dan dinyatakan dalam bentuk Bagan Susunan atau diagram Wamier/Orr.
BAGAN SUSUNAN (Structured Chart) Bagan susunan merupakan susunan hirarki dari modul-modul Bagan susunan menunjukkan - pembagian sistem menjadi modul-modul- hirarki dan organisasi modul-modul- komunikasi antar modul ( masukan dan keluaran ) - nama modul, yang berarti juga fungsi modul.
Bagan Susunan tidak menunjukkan :- Mekanik didalam modul ( seperti ukuran pemanggilan modul lain, loops
dsb )- Data internal dari modul
Simbol-simbol yang digunakan :
KOPEL DATA ( DATA COUPLE ) adalah aliran data dari modul yang memanggil ke modul yang dipanggil.
KOPEL KONTROL ( CONTROL COUPLE ) adalah elemen yang dikirimkan oleh modul yang dipanggil kepada modul yang memanggil sebagai tanda bahwa proses pemanggilan selesai (biasanya untuk proses pengulangan)
Versi 1.0 STIMIK PERBANAS Maret 2003
Pengirim PenerimaInformasi Informasi
: hubungan2
: pengulangan3
: Seleksi / pemilihan4
: Kopel Kontrol5
: Kopel Data6
: Nama Modul / Proses1
IF0554 - REKAYASA PERANGKAT LUNAK 913 -–MODUL 7
Perbedaan Kopel Data dan Kopel Kontrol- Kopel Data biasanya berhubungan dengan permasalahan ( diproses ) - Kopel Kontrol adalah alat bantu untuk implementasi tidak diproses
Contoh :
Versi 1.0 STIMIK PERBANAS Maret 2003
Hitung Potongan : Suatu modul dengan nama “Hitung Potongan”
A
B
: Modul A memanggil modul B, setelah proses modul B selesai maka proses kembali ke modul A
: Modul A memanggil modul B dan elemen data P dikirimkan dari modul A ke modul B. Kemudian modul B mengirimkan hasil proses ( elemen data Q dan elemen kontrol Flag ) ke modul A .
A
B
P Q
Flag
: Modul A memanggil modul B atau C sesuai dengan nilai kondisi yang diseleksi di modul terpenuhi
A
B C
A
B C
: Modul A memanggil modul B dan C secara berulang
IF0554 - REKAYASA PERANGKAT LUNAK 1013 -–MODUL 7
RANCANGAN PROSEDURAL Rancangan prosedural dilakukan setelah struktur program dan data telah
dibentuk Beberapa bentuk pernyataan :
- pemrograman terstruktur- notasi grafis : flowchart, box diagram/N-S charts- bentuk tabel- PDL
Contoh Rancangan Prosedural :
Versi 1.0 STIMIK PERBANAS Maret 2003
3. Open files and get fisrt account record
2. Initialize accounts receivable accumulators1. Initiate Processing
1. Print acount headings
1. Initiate account record
2. Get first transaction
1. Update transaction accumulators
2. Calculate transaction service charge and new account balances
3. Print transaction detail line
4. Get next tansaction
2. CLOSE FILES
1. Print account summary totals
3. Get next account record
3. Terminate processing
2. Produce account transaction history
2. Main Processing
Produce Acounts Receivables Report
1. Print account general information
IF0554 - REKAYASA PERANGKAT LUNAK 1113 -–MODUL 7
atau :
Versi 1.0 STIMIK PERBANAS Maret 2003
Main Processing
Terminate processing
Print acount headings
Initiate account record
Print account general
information
Get first transaction
Produce account transaction history
Get next Record account
Print account summary totals
Update transaction accumulators
Calculate transaction service charge and new account balances
Print transaction detail line
Get next tansaction
CLOSE FILES
Initialize accounts receivable
accumulators
Initiate Processing
Produce Acounts Receivables Report
Open files and get fisrt account record
IF0554 - REKAYASA PERANGKAT LUNAK 1213 -–MODUL 7
BOX DIAGRAM (N/S CHART)
Versi 1.0 STIMIK PERBANAS Maret 2003
Loop condition
Do – while – part
Repeat – until – part
Loop condition
First task
Next task
N + 1 task
Sekuensial
Condition
Else - part
Then - part
If – then - else
Repetition
Case Condition
Value
Selection
Value Value
Case - part
Case - part
Case - part
Case - part
IF0554 - REKAYASA PERANGKAT LUNAK 1313 -–MODUL 7
Contoh :Dari Flow-chart berikut :
maka diagram-box-nya adalah :
Versi 1.0 STIMIK PERBANAS Maret 2003
A
x8
b
x1
Case xi, I = 2, 3, 4
x6x2 x4x3
g
hx7
ix5
ced
j
a
a
b
x1
x2
x3
x4 e
d
c
x5 f
h
g
x6
i
x7
x8
j
f
IF0554 - REKAYASA PERANGKAT LUNAK 1413 -–MODUL 7
KARAKTERISTIK NOTASI PERANCANGAN Mendukung modularistasSederhana Mudah diubahDapat dibaca oleh mesinDapat dipeliharaStructured enforcermentCode-to-abilityDapat diverifikasi
PERANCANGAN SISTEM INTERAKSI & PENULISAN PROGRAM
Beberapa Pedoman Pemakai sistem harus selalu mengetahui apa yang mesti dilakukan berikutnya
- beritahu pemakai apa yang diharapkan oleh sistem sekarang Contoh : SIAP, MASUKKAN PERINTAH, MASUKKAN PILIHAN atau MASUKKAN DATA.
- Beritahu pemakai bahwa data telah dimasukkan dengan benar, Bisa berupa perpindahan kursor ke data berikutnya atau pesan : MASUKKAN VALID
- Beritahu pemakai bahwa pemasukkan data salah. Pemberitahuan format yang benar lebih baik.
Bentuk pemakaian alasan adanya delay dalam pemrosesan.Contoh : SORTING, PLEASE STAND BY, INDEXING, PLEASE WAIT, THIS MAY TAKE A FEW MINUTES, TUNGGU SEBENTAR, Adanya pesan membuat pemakai mengetahui bahwa sistem tidak gagal.
Beritahu pemakai sebuah pekerjaan selesai atau tidak selesai dilakukan Contoh : PRINTING, COMPLETE, PRINTER NOT READY – PLEASE CHECK AND TRY AGAIN.
Versi 1.0 STIMIK PERBANAS Maret 2003
IF0554 - REKAYASA PERANGKAT LUNAK 1513 -–MODUL 7
Rancangan Layar : Layar sebaiknya diatur agar beberapa tipe informasi, intruksi dan pesan selalu
muncul di area yang konsisten. Ini akan membantu pemakai mencari informasi yang spesifik
Perancangan layar yang terlalu “ norak “ Berikan kesempatan pemakai menghemat pengetikan dengan function keys Jika memungkinkan, berikan harga baku Antisipasi kesalahan yang mungkin dibuat oleh pemakai.
Contoh : YAKIN DIHAPUS ? Selalu Konsisten Kurang jumlah informasi yang harus diingat diantaranya aksi
Penulisan Program Cobalah untuk langsung menggunakan keistimewaan yang ada pada bahasa
pemrograman Cobalah untuk menggunakan library dan fungsi-fungsi yang telah ada pada
bahasa pemrograman Jangan mengabaikan pesan-pesan peringatan ( warning message )
Beberapa pedoman Bahasa Sederhana, dan benar secara aturan bahasa.
- Bahasa percakapan lebih baik daripada bahasa tulisan Jangan berusaha melucu atau “ sok imut “.
- jika penggunaan harus memakainya 25x seharai. Akan tidak lucu lagi. Jangan menyinggung intelegensia pemakaiPenulisan Pemrograman Jumlah perintah dalam suatu subprogram sebaiknya 5 – 100 perintah Jumlah paremeter yang di-pass sebaiknya <= 5 Hindari penggunaan GO TO Gunakan identitasi Kedalaman pernyataan bersarang sebaiknya < 5. Pengecualian untuk
penggunaan fungsi rekursif. Kemampuan program untuk dibaca lebih penting dari pada efesiensi program Gunakan nama-nama yang punya arti
Komentar Berilah komentar pada program anda. Hindari komentar yang terlalu panjang Komentar merupakan jawaban dari pertanyaan pembaca program Berilah komentar setiap variabel Komentar bukan terjemahan dari program anda.
Perbaikan Program
Versi 1.0 STIMIK PERBANAS Maret 2003
IF0554 - REKAYASA PERANGKAT LUNAK 1613 -–MODUL 7
Lupakan semua tentang efisiensi sampai program anda dapat bekerja dengan benar.
Jangan mencoba untuk memperbaiki sampai anda mengerti benar programnya Jangan mengorbankan kemampuan untuk dibaca demi efisiensi
Pemilihan Bahasa Jika dibutuhkan struktur data yang kompleks : PASCAL, C Jika kinerja, kemampuan real-time : ADA Jika perlu efisiensi memori :C Banyak report & banyak manipulasi berkas : COBOL, 4GL, RPG Akan lebih mudah jika hanya satu bahasa tersedia atau sudah ditemukan oleh
pemakai. Pada banyak kasus mengikuti sistem yang sudah ada
Beberapa de-facto :- C untuk sistem software- Ada, C, Modula-2 untuk aplikasi real-time- COBOL, 4GL untuk aplikasi bisnis- FORTRAN untuk aplikasi sains dan teknik- PASCAL, C untuk program-program aplikasi di PC- LISP, PROLOG untuk kecerdasan buatan
Versi 1.0 STIMIK PERBANAS Maret 2003