Topik 4 : Perancangan 2.1 Definisi Perancangan Perancangan adalah proses penerapan berbagai teknik dan prinsip dengan tujuan untuk mentransformasikan hasil analisis ke dalam bentuk yang memudahkan pengimplementasian. Proses transformasi ini dapat dilihat pada gambar 2.16 .
Process Specification (PSPEC)
Data Object Description EntityRelationship Diagram
procedural design
Data Flow Diagram
Data Dictionary
State-Transition Diagram
Control Specification (CSPEC)
THE ANALYSIS MODEL
interface design architectural design data design
THE DESIGN MODEL
Gambar 2.16 Transformasi model analisis ke model perancangan [PRE01] 2.2 2.3
Prinsip Perancangan Hasil perancangan harus dapat dirunut dari model analisisnya (perancangan harus konsiten dengan hasil analisis) Perancangan harus memperkecil perbedaan antara perangkat lunak yang dihasilkan dengan problem nyatanya Perancangan harus dapat mengakomodasi perubahan. Perancangan bukan coding dan coding bukan perancangan Perancangan harus memperkecil kesalahan konseptual (semantik) Konsep Perancangan Abstraksi Refinement Modularitas Arsitektur perangkat lunak Hirarki Kontrol Pemartisian struktur Struktur data Penyembunyian informasi Ketidakbergantungan Fungsional
Abstraksi, adalah cara pendeskripsian suatu masalah. Pada pemecahan masalah secara modular terdapat tingkat abstraksi. Abstraksi tingkat tinggi menjabarkan masalah yang ada secara umum. Sedangkan abstraksi tingkat rendah menjabarkan rincian dari pemecahan masalah untuk dapat diimplementasikan dengan menggunakan bahasa pemrograman tertentu. Refinement merupakan proses untuk mengelaborasi atau melakukan perincian secara iteratif berdasarkan kebutuhan fungsional yang telah didefinisikan hingga diperoleh pernyataan yang memudahkan pengimplementasian dengan bahasa pemrograman tertentu Modularitas perangkat lunak dipartisi ke dalam elemen-elemen yang masing-masing merepresentasikan fungsi tertentu, atau sering disebut modul, dan diintegrasikan untuk memenuhi kebutuhan yang telah didefinsikan pada tahap analisis. Arsitektur Perangkat Lunak menggambarkan struktur keseluruhan dari perangkat lunak. Hirarki Kontrol disebut juga struktur program, merepresentasikan organisasi (seringkali secara hirarki) komponen program (modul) Pemartisian Struktur menggambarkan bagaimana program disusun secara berhirarki Struktur Data mendeskripsikan pengorganisasian, metode akses, derajat asosiasi dari informasi. Penyembunyian Informasi berfungsi untuk membentuk tingkat modularitas yang tinggi Ketidakbergantungan Fungsional diukur dengan dua kriteria, yaitu cohesion dan coupling. Cohesion adalah suatu atribut yang menunjukkan ukuran bahwa suatu komponen (modul) mewakili entitas lojik tunggal atau memwakili satu fungsi. Coupling adalah suatu atribut yang menunjukkan ukuran tingkat konektivitas antar komponen (modul). Kriteria perancangan modular yang baik adalah jika cohesion tinggi dan coupling rendah. 2.4
Lingkup Perancangan
Perancangan perangkat lunak meliputi : Perancangan data fokusnya pada pendefinisian struktur data Perancangan Arsitektur mendefinisikan hubungan antara elemen utama dari struktur program Perancangan antarmuka mendefinisikan rancangan tampilan dan media interaksi antara perangkat lunak dengan entitas luar Perancangan prosedural merupakan transformasi elemen dari struktur program ke dalam deskripsi prosedural dari perangkat lunak 2.5 Perancangan Data Tahap perancangan data :
Mendeskripsikan lebih rinci objek data dan menyusun abstraksi datanya Mendeskripsikan struktur data dari masing-masing atribut objek data
Pada tahap ini ERD yang dihasilkan pada tahap analisis ditransformasikan ke dalam model lojik, dalam hal ini kebanyakan diimplementasikan ke dalam model relasional. Model relasional direpresentasikan dalam bentuk tabel. Pada tahap ini diperlihatkan keterhubungan antar tabel dan stuktur data dari masing-masing tabel. 2.6 Perancangan Aritektur Tahap perancangan arsitektur dengan metode perancangan terstruktur : Melakukan pemetaan dari DFD ke arsitektur program (structured chart) Memperbaiki structured chart Pemetaan DFD ke Structured Chart Pemetaan DFD ke structured chart untuk jenis aliran transform flow diperlihatkan pada gambar 2.17.
a
b d
e
h
g
f
i
c
j
data flow model
x1 x2 b
x4
x3 c
a
"Transform" mapp
d
e
f
g
i
h
j
Gambar 2.17 Pemetaan DFD ke Structured Chart untuk Transform Flow [PRE01] Pada jenis aliran transform flow DFD dibagi menjadi tiga bagian, yaitu : bagian input, proses dan output.
Pemetaan DFD ke structured chart untuk jenis aliran transaction flow diperlihatkan pada gambar 2.18.
e
a
f
d
b
i
t g
h
k
l
data flow model
j m n
x1
Mapping
t
b a
x3
x2 d
e
f
g
x4
h
l
x3.1 i
m
n
j k
Gambar 2.18 Pemetaan DFD ke Structured Chart untuk Transaction Flow [PRE01] Pada jenis aliran transaction flow terlebih dulu ditentukan transaction center , pada gambar 2.18 ditunjukkan dengan proses berinisial t. 2.7 Perancangan Antarmuka Hal yang diperlukan untuk peracangan antarmuka pengguna : Model perancangan Æ data, aritektur, repreentasi prosedural perangkat lunak Model pengguna Æ profil seluruh pengguna akhir (end user) sistem Persepsi sistem Æ gambaran mental pengguna tentang antarmuka Gambaran sistem Æ diperlukan untuk merancang antar muka sehingga gambaran sistem secara umum terwakili oleh antarmuka tersebut Hal penting yang harus diperhatikan pada perancangan antarmuka : Waktu respon sistem Fasilitas bantuan untuk pengguna Penanganan kesalahan Penamaan command 2.8 Perancangan Prosedural Pada tahap ini dilakukan penyusunan algoritma untuk tiap-tiap modul. Informasi yang dibutuhkan untuk menyusun algoritma ini adalah spesifikasi proses (PSPEC) dan STD yang diperoleh pada tahap analisis. Gambar 2.19 menunjukkan pendefinisian algoritma dari modul open .
open walk to door; reach for knob; open door; walk through; close door.
PSPEC
repeat until door opens turn knob clockwise; if knob doesn't turn, then take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat
algoritma
Gambar 2.19 Algoritma Modul open [PRE01]
Notasi lain yang dapat digunakan untuk mendeskripsikan isi modul selain notasi algoritmik adalah flow chart. Gambar 2.20 menunjukkan notasi flow chart.
add a condition Z, if true, exit the program
a x1 b
x2
x3
d f
c
e x4 g x5
Gambar 2.20 flow chart