Anda di halaman 1dari 43

Materi 6 dan 7 :

Prinsip & Konsep Desain

Terjemahan model analisis menjadi desain software

procedural
design
EntityRelationship
Diagram

Data Flow
Diagram

interface design

Data
Dictionary

architectural design
State-Transition
Diagram

data design

Terjemahan Model Analisis (cont.)


Data design
mengubah model informasi (entity relationship
diagram
dan data dictionary) menjadi struktur data
Architectural design
berisi hubungan antar elemen dalam program
Interface design
menjelaskan bagaimana bagaimana komunikasi di
dalam perangkat lunak, dengan sistem, dan dengan
manusia yang menggunakannya.
Sebuah interface mengandung maksud sebuah aliran
informasi.

Terjemahan Model Analisis (cont.)


Procedural design
mengubah elemen struktural dari arsitektur
program menjadi deskripsi prosedural dari
komponen perangkat lunak

Prinsip Desain
Prinsip Desain memungkinkan perekayasa
Perangkat lunak untuk mengendalikan proses desain
Proses desain tidak boleh mengalami tunnel vision
Desainer harus memperhatikan pendekatan-pendekatan
alternatif, menilainya berdasarkan persyaratan masalah, sumber
daya yang ada untuk melakukan pekerjaan, dan konsep desain

Desain harus dapat dilacak ke model analisis


Tidak melakukan desain pada hal yang sama berulangulang
Desain harus merepresentasikan masalah pada keadaan
nyata
Desain harus memperlihatkan keseragaman dan integrasi

Prinsip Desain (cont.)


Desain harus terstruktur untuk mengatisipasi
adanya perubahan
Desain bukan coding, coding bukan desain
Penilaian kualitas desain harus dilaksanakan
pada saat desain tersebut dibuat
Desain harus di-review untuk meminimasi
kesalahan konseptual

Konsep Desain
Konsep desain : memberikan kerangka kerja
untuk mendapatkan program yang berfungsi
dengan benar
Abstraksi
Mengijinkan desainer berfokus pada pemecahan
masalah tanpa risau tentang detail level rendah
yang tidak relevan
Procedural abstraction sequence dari event
Data abstraction kumpulan objek data

Data abstraction

Procedural Abstraction

Konsep desain-penyaringan
Pada setiap langkah(penyaringan), satu atau
beberapa instruksi dari program yang diberikan
didekomposisi ke dalam instruksi-instruksi yang
lebih detail.
Penyaringan spesifikasi berhenti bila semua
instruksi diekspresikan dalam bentuk bahasa
pemrograman yang mendasar

Procedural Abstraction

Konsep Desain
Modularitas
Derajat di mana software dapat dimengerti dengan
memeriksa komponen-komponennya secara
independent
C(p1)>C(p2) maka E(p1)>E(p2)
C(p1+p2)>C(p1)+C(p2) maka E(p1+p2)>E(p1)+E(p2)
Keterangan :
C(x) : fungsi untuk mengukur kompleksitas
permasalahan x
E(x) : fungsi untuk menentukan usaha (dalam
waktu) yang diperlukan untuk memecahkan
masalah x

Modularitas
Lebih mudah dibangun, lebih mudah diubah, lebih
mudah diperbaiki

Konsep Desain
Arsitektur software
Arsitektur merupakan struktur hirarki dari
komponen program(modul), cara bagaimana
komponen tersebut berinteraksi, dan struktur
data yang digunakan oleh komponen

Hirarki kontrol
Disebut juga struktur program,
merepresentasikan organisasi (secara hirarkis)
komponen program(modul) serta
mengimplikasikan suatu hirarki kontrol
Tidak merepresentasikan aspek prosedural
SW(misalnya urutan proses, pengulangan operasi)

Hirarki kontrol
M
Fan out
a

c
kedalaman

r
Lebar

q
Fan in

Hirarki kontrol
Depth mengindikasikan tingkat kontrol
Width mengindikasikan rentang keseluruhan
kontrol
Fan-out : pengukuran jumlah modul yang dikontrol
secara langsung oleh modul yang lain
Fan-in : berapa banyak modul yang secara langsung
mengontrol sebuah modul yang diberikan
Superordinat : modul yang mengontrol modul lain,
misalnya M adalah super ordinat untuk modul a, b,
c
Subordinat : modul yang dikontrol modul lain

Konsep Desain
Pembagian struktural
Partisi horizontal mendefinisikan tiga
partisi(input, transformasi data, dan output)
Partisi vertikal(factoring) menyatakan bahwa
kontrol(pembuatan keputusan) dan kerja harus
didistribusikan secara top down dalam arsitektur
program
Keputusan kontrol dalam modul level atas dan
pemrosesan kerja dalam modul yang lebih rendah

Pembagian struktural
Partisi Horizontal
Menentukan cabang-cabang terpisah dari hirarki
modular untuk setiap fungsi program mayor
Menggunakan modul kontrol untuk
mengkoordinasikan komunikasi antara fungsifungsi

Keuntungan Partisi Horizontal


Menghasilkan software yang lebih mudah diuji
Membawa software yang lebih mudah dipelihara
Menghasilkan penyebaran efek samping yang
lebih sedikit
Menghasilkan software yang lebih mudah
diperluas

Kerugian Partisi Horizontal


Partisi horizontal menyebabkan lebih banyak
data yang dilewatkan melalui interface modul
dan dapat merumitkan keseluruhan kontrol dari
aliran program(bila pemrosesan membutuhkan
pergerakan yang cepat dari suatu fungsi ke
fungsi yang lain)

Pembagian struktural
Partisi vertikal
Desain, sedemikian sehingga pembuatan
keputusan dan kerja dibuat bertingkat-tingkat
Modul pembuatan keputusan sebaiknya terletak
pada puncak arsitektur

Keuntungan partisi vertikal


Sifat : perubahan pada modul kontrol memiliki
probabilitas penyebaran efek samping yang lebih
tinggi ke modul yang menjadi sub ordinatnya
Secara umum perubahan program berada di seputar
perubahan input, komputasi, dan output
Struktur kontrol keseluruhan program (perilaku
dasar) sangat kecil probabilitas untuk berubah,
sehingga kurang rentan terhadap efek samping pada saat
perubahan dibuat, sehingga menjadi lebih dapat dipelihara

Konsep Desain
Struktur data

Representasi dari hubungan logis antara elemenelemen data individual

Software procedure

Spesifikasi proses yang seksama(event sequences,


titik-titik keputusan, operasi pengulangan,
struktur data)

Penyembunyian informasi

Informasi (data dan procedur) yang terkandung


dalam modul tidak dapat diakses oleh modul lain,
yang tidak mempunyai kebutuhan terhadap
informasi tersebut

Dokumentasi Desain
I. Lingkup Sistem
II. Desain Data
III. Desain Arsitektur
IV. Desain Antarmuka
V. Desain Prosedural
VI. Catatan Khusus
VII.Appendix

Data Design
Mengubah objek data yang didefinisikan pada
model analisis menjadi struktur data yang ada
dalam perangkat lunak
Atribut yang dimiliki objek data, hubungan di
antara objek data, dan penggunaannya dalam
program, semuanya mempengaruhi pemilihan
struktur data

Architectural Design
Menggunakan karakteristik aliran informasi
dalam model analisis untuk menghasilkan
struktur program
Sebuah data flow diagram dipetakan menjadi
struktur program menggunakan dua pendekatan
:
Transform mapping
Transaction mapping

Architectural Design (cont.)


Transform mapping : diterapkan untuk sebuah
aliran data yang menunjukkan batas yang jelas
antara data yang masuk dan yang keluar
DFD dipetakan menjadi sebuah struktur yang
mengalokasikan kontrol menjadi input, pemrosesan, dan
output bersama dengan hirarki modul

Transaction mapping :
diterapkan jika sebuah item informasi menyebabkan
percabangan, yang disebut transaksi, yang memicu aliran
data lain sepanjang salah satu dari beberapa jalur
DFD dipetakan menjadi sebuah struktur yang
mengalokasikan kontrol menjadi sebuah sub struktur yang
mendapatkan dan mengevaluasi sebuah transaksi

Karakteristik Aliran

Contoh Kasus Transform Flow


Status sensor

Informasi
sensor

Informasi konfigurasi
Membuat
display

Membaca
sensor

Daftar
konfigurasi
Sensor id,
setting

Mendapatkan
info respon

Kode, kondisi
alarm, id sensor,
informasi timing

Format display

Id terformat,
tipe, lokasi

Tipe, lokasi
sensor, id

Data alarm
Metepakan
kondisi alarm

Tipe alarm
Membangkitka
n sinyal alarm

Daftar nomor
Memilih no
telepon

nomor

Mengatur
koneksi ke
jaringan
telepon
Nada
sambung
nomor
telepon

Menghasilkan
pulsa pada
sambungan
Nada
nomor
telepon

Contoh Kasus Transaction Flow


Parameter sistem
dan data

Perintah
pemakai

Membaca
perintah
pemakai

Membaca data
sistem

Membuat file
konfigurasi

Data
konfigurasi
kasar
Informasi
konfigurasi

Tipe perintah
konfigurasi

Data
konfigurasi

Meminta
pemrosesan
perintah
Start/
stop

Data
konfigurasi
Mengaktifkan/
tidak
mengaktifkan
sistem

Display pesan
dan status
Pass valid
Display
informasi

password
Membaca
password

Empat
digit

Membandingkan
password dengan
file

Invalid passw

Membuat
pesan invalid

Pesan try again

Langkah-langkah Transform Mapping


Isolasi pusat transfromasi dengan mengkhususkan
batas aliran masuk dan keluar
Lakukan pemfaktoran tingkat pertama
Lakukan pemfaktoran tingkat kedua
Pemfaktoran menghasilkan struktur program di
mana modul tingkat puncak membuat keputusan
dan modul tingkat bawah melakukan sebagian besar
kerja input, komputasi, dan output
Saringlah struktur program iterasi pertama dengan
menggunakan heuristik desain bagi kualitas
perangkat lunak yang telah ditingkatkan
Modul diledakkan atau disatukan

Transform Mapping

Contoh Kasus Transform Flow


Status sensor

Informasi
sensor

Informasi konfigurasi
Membuat
display

Membaca
sensor

Daftar
konfigurasi
Sensor id,
setting

Mendapatkan
info respon

Kode, kondisi
alarm, id sensor,
informasi timing

Format display

Id terformat,
tipe, lokasi

Tipe, lokasi
sensor, id

Data alarm
Metepakan
kondisi alarm

Tipe alarm
Membangkitka
n sinyal alarm

Daftar nomor
Memilih no
telepon

nomor

Mengatur
koneksi ke
jaringan
telepon
Nada
sambung
nomor
telepon

Menghasilkan
pulsa pada
sambungan
Nada
nomor
telepon

Pemfaktoran tingkat pertama untuk


sensor monitor
Sensor monitor
eksekutif

Pengontro
input sensor

Pengontrol
kondisi alarm

Pengontrol
output alarm

Pemfaktoran tingkat kedua untuk sensor


monitor
Sensor monitor
eksekutif

Pengontro
input sensor

Pengontrol
kondisi alarm

Format display

Membuat
display

Pengontrol
output alarm

Membangkitkan
sinyal alarm

Mengatur koneksi
ke jaringan
telepon

Menghasilkan
pulsa ke
sambungan

Struktur program untuk sensor monitor


Sensor monitor
eksekutif

Pengontro
input sensor

Mendapat info
respon

Membaca
sensor

Pengontrol
kondisi alarm

Menentukan
kondisi alarm

Memilih nomor
telepon

Pengontrol
output alarm

Format display

Membuat
display

Membangkitkan
sinyal alarm

Mengatur koneksi
ke jaringan
telepon

Menghasilkan
pulsa ke
sambungan

Struktur program tersaring untuk sensor


monitor
Sensor monitor
eksekutif

Pengontro
input sensor

Membaca
sensor

Menetapkan
kondisi alarm

Pengontrol
output alarm

Membuat
display

Membangkitkan
sinyal alarm

Mengatur koneksi
ke jaringan
telepon

Menghasilkan
pulsa ke
sambungan

Transaction Mapping

Langkah-langkah Transaction Mapping


Petakan DFD pada sebuah struktur program
yang sesuai dengan pemrosesan transaksi
Faktorkan dan saringlah struktur transaksi dan
struktur masing-masing jalur aksi
Saringlah struktur program iterasi pertama
dengan menggunakan heuristik desain untuk
kualitas perangkat lunak yang dikembangkan

Contoh Kasus Transaction Flow


Parameter sistem
dan data

Perintah
pemakai

Membaca
perintah
pemakai

Membaca data
sistem

Membuat file
konfigurasi

Data
konfigurasi
kasar
Informasi
konfigurasi

Tipe perintah
konfigurasi

Data
konfigurasi

Meminta
pemrosesan
perintah
Start/
stop

Data
konfigurasi
Mengaktifkan/
tidak
mengaktifkan
sistem

Display pesan
dan status
Pass valid
Display
informasi

password
Membaca
password

Empat
digit

Membandingkan
password dengan
file

Invalid passw

Membuat
pesan invalid

Pesan try again

Pemfaktoran tingkat satu untuk sub


sistem user interaction
Interaksi
pemakai
eksekutif

Membaca
perintah
pemakai

Meminta
pemrosesan
perintah

Pengontrol
konfigurasi
sistem

Sistem
aktivasi/
deaktivasi

Pengontrol
pemrosesan
password

Potongan pertama struktur program untuk sub


sistem user interaction
Interaksi
pemakai
eksekutif
Membaca
perintah
pemakai

Meminta
pemrosesan
perintah

Pengontrol
konfigurasi
sistem

Membaca data
sistem

Sistem
aktivasi/
deaktivasi

Membangun
file konfigurasi

Pengontrol
pemrosesan
password

Membaca
passowrd

Display pesan
dan status

Membandingkan
pass dengan file

Mengontrol
output passw

Menghasilkan
pesan invalid

Interface Design
Meliputi antarmuka program internal dan
eksternal serta desain untuk antarmuka
pengguna
Desain antarmuka internal dan eksternal
diarahkan oleh informasi yang diperoleh dari
model analisis