APL-124 Rekayasa Perangkat Lunak I (Software Engineering)

advertisement
Minggu 8
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 instruksiinstruksi 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
b
c
kedalaman
d
f
e
g
i
k
h
j
l
m
n
o
p
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


Software procedure


Representasi dari hubungan logis antara elemenelemen data individual
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.
II.
III.
IV.
V.
VI.
VII.
Lingkup Sistem
Desain Data
Desain Arsitektur
Desain Antarmuka
Desain Prosedural
Catatan Khusus
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
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
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
Download