Prinsip Fundamental dalam Desain Perangkat Lunak
Introduksi Prinsip Desain
SEN-261 : Rekayasa Perangkat Lunak a!een "u!ammil
De%inisi umum desain
Desain Perangkat Lunak
&' suatu proses menerapkan (er(agai teknik dan prinsip dengan tu#uan menentukan suatu perangkat) proses atau sistem dalam tingkat ke#elasan yang *ukup untuk dapat meng$asilkan produk ak$ir+,
u#uan:
-ntuk meng$asilkan suatu model atau representasi yang nantinya akan di(angun
Disiplin ilmu terkait:
Desain data Desain arsitektur Desain antar muka Desain komponen
.ualitas desain dan perangkat lunak
.ualitas
Dalam RPL) desain adala$ titik pengem(angan kualitas+ Desain mem(erikan suatu representasi perangkat lunak yang dapat ditentukan kualitasnya+ Desain adala$ satu-satunya *ara untuk mener#ema$kan ke(utu$an pelanggan men#adi suatu perangkat lunak atau sistem+ Desain perangkat lunak merupakan %ondasi untuk setiap ta$ap pada rekayasa perangkat lunak+
.arakteristik suatu desain yang (aik
Desain yang dikem(angkan men*akup semua ke(utu$an eksplisit $asil analisis) dan mengakomodir semua ke(utu$an implisit pelanggan+ Desain $arus dapat di(a*a dengan muda$) se$ingga men#adi suatu panduan (agi pem(uat kode maupun pengu#i dan pendukung aplikasi+ Desain mem(erikan gam(aran utu$ mengenai perangkat lunak yang diran*ang) ter*akup dalamnya adala$ data) %ungsi maupun perilaku perangkat lunak dili$at dari sudut pandang implementasi+
Panduan umum desain
Suatu desain sepatutnya menggunakan suatu struktur arsitektur yang 1/ tela$ dikem(angkan dengan pola desain yang dikenal se*ara umum) 2/ terdiri atas komponen yang sesuai dengan karakteristik suatu desain yang (aik 0/ dan dapat diterapkan dalam 1aktu yang *epat+ Di(agi se*ara #elas ke dalam komponen-komponen yang $anya men#alankan suatu tugas atau su(-tugas tertentu+ "eng$asilkan suatu antar muka yang mengurangi kompleksitas antar modul dan lingkungan eksternal+ Di$asilkan dengan suatu metode yang dapat diu#i kem(ali) dan didorong ole$ in%ormasi yang tela$ terkumpul pada ta$ap analisa ke(utu$an+ "eng$asilkan struktur data yang sesuai untuk diterapkan+
Prinsip Desain
1+ Proses desain $arus dilakukan untuk mengakomodir semua 2+ 0+ 2+ 3+ 6+ 4+
tu#uan) (ukan terpaku atas suatu tu#uan sempit Desain dapat ditelusuri kem(ali ole$ analisis model Desain tidak mengulang proses yang tela$ dilakukan Desain menun#ukkan keseragaman dan integritas Desain diran*ang untuk mengakomodir peru(a$an Desain (ukanla$ pemrograman dan pemrograman (ukanla$ desain Desain $arus diulas agar meminimalisir kesala$an logika
"odel Desain Perangkat Lunak
Model fungsional Model informasi Desain data Model perilaku Desain arsitektural Desain
Kebutu an lainn!a
Desain antar "emrograman muka
Modul program
"erangkat lunak terintegrasi "engu#ian $ ter%alidasi
Desain tingkat "rosedur/Komponen
Desain data
Aktivitas utama pada tahap desain data ialah menentukan representasi logis entitas data (tipe data) yang telah teridentifikasi pada tahap analisis kebutuhan dan spesifikasi. Pemilihan representasi dapat berlandaskan atas analisis algoritma untuk mendapatkan perilaku yang paling efisien, atau berdasarkan operasi yang dilakukan pada entitas tersebut.
Desain data mengu(a$ model in%ormasi yang di*iptakan pada ta$ap analisis men#adi suatu struktur data yang men#adi ke(utu$an perangkat lunak+ Entitas dan $u(ungan data dide%inisikan se*ara umum dengan ERD) dan se*ara spesi%ik dengan .amus Data) yang selan#utnya men#adi landasan dalam akti5itas desain selan#utnya
Desain arsitektural
6ertu#uan untuk mengem(angkan suatu struktur program modular yang merepresentasikan $u(ungan antar tiap modul Diperole$ dari spesi%ikasi sistem) analisis model) dan interaksi su(-sistem yang tela$ dide%inisikan pada ta$ap analisis model+
Desain 7ntar "uka
"engga(ungkan program dan struktur data dengan menentukan suatu antar muka yang memungkinkan ter#adi perpinda$an data pada program Desain antar muka men#elaskan (agaimana perangka lunak (erkomunikasi dengan dirinya) antar sistem maupun dengan manusia yang menggunakannya+ Data dan diagram alur data mem(erikan in%ormasi yang di(utu$kan untuk melakukan desain antar muka
Desain prosedur
"eru(a$ elemen dasar pada arsitektur perangkat lunak men#adi deskripsi prosedural komponen aplikasi Setela$ data dan struktur program ditentukan) menentukan deskripsi dan detail prosedur tanpa am(igu men#adi suatu ke$arusan In%ormasi yang diperole$ dari spesi%ikasi proses) spesi%ikasi kendali dan desain perangkat lunak men#adi landasan untuk desain komponen+
Prinsip Fundamental Desain Perangkat Lunak
*+,al dari pengeta uan seorang pemrogram komputer iala mengenali perbedaan antara mendapatkan suatu program !ang ber#alan dengan program !ang benar-. /0a1kson2
7(straksi Penyempurnaan "odularitas 7rsitektur Perangkat Lunak 7r*$ite*ture 8ierarki kendali Struktur Data Prosedur perangkat lunak Penyamaran in%ormasi
Prinsip Fundamental Desain
7(straksi
"erupakan satu *ara %undamental yang dapat digunakan untuk mengatasi kompleksitas+ ingkatan ke#elasan9(a$asa yang digunakan untuk mendeskripsikan suatu permasala$an
ingkat tertinggi ingkat (a1a$ ingkat ter-renda$
:enis-#enis:
7(straksi prosedural 7(straksi data 7(straksi kendali
Konsep abstraksi secara psikologis memungkinkan seseorang memusatkan perhatian pada suatu permasalahan secara umum tanpa memedulikan penjelasan dan permasalahan tingkat bawah yang tidak terkait salah satu fungsi abstraksi adalah memungkinkan seseorang menggunakan konsep dan terminologi yang biasa digunakan pada cakupan permasalahan yang dibahas! "#asserman$
Prinsip Fundamental Desain ;lan#ut/
Penyempurnaan
Strategi op-do1n 7(straksi dan penyempurnaan merupakan pelengkap
Pada tiap tahap, satu atau beberapa instruksi pada program dipecah menjadi instruksi yang lebih detail. Proses ini terus dilakukan secara berulang hingga semua instruksi merupakan suatu instruksi yang dapat diekspresikan ke dalam bahasa pemrograman. "#irth$
Prinsip Fundamental Desain ;lan#ut/
"odularitas
"eme*a$ aplikasi men#adi (e(erapa komponen) yang sering dise(ut se(agai modul) yang pada ak$irnya diintegrasikan untuk menyelesaikan permasala$an
.riteria untuk menge5aluasi metoda desain
ingkat keteruraian suatu modul ingkat ketersusunan suatu modul ingkat keter-pema$aman suatu modul ingkat kontinuitas suatu modul ingkat proteksi suatu modul
Prinsip Fundamental Desain ;lan#ut/
7rsitektur perangkat lunak
Struktur $ierarkis dari komponen program) *ara interaksi komponen dan struktur data yang digunakan tiap komponen+
Si%at suatu desain arsitektur
Sifat struktural
"ende%inisikan komponen sistem) *ara pem(ungkusan komponen terse(ut) dan interaksi dengan komponen lainnya+
Sifat fungsional lainnya
"en#elaskan (agaimana desain arsitektur terse(ut memenu$i persyaratan pada per%orma) kapasitas) ketersediaan) keandalan) keamanan) kemampuan adaptasi) dan karakteristik sistem lainnya+
Himpunan sifat yang terkait
.enali pola yang (erulang) yang sering di#umpai pada desain sistem yang serupa+ Desain yang ada se$arusnya mampu digunakan kem(ali pada desain sistem serupa+
Prinsip Fundamental Desain ;lan#ut/
8ierarki kendali 9Struktur Program
Pengaturan modul sedemikian rupa se$ingga mengimplikasikan $ierarki kendali ingkat kedalaman) tingkat kele(aran) tingkat keter$u(ungan eksternal) tingkat keter$u(ungan "anager internal - Diagram kontrol (er(entuk po$on
"odule D "odule E "odule . "odule 7 "odule 6 "odule ? "odule L "odule "
"odule F
"odule <
"odule 8
"odule N
"odule =
"odule P
"odule >
"odule I
"odule :
"odule R
Prinsip Fundamental Desain ;lan#ut/
Struktur Data
Representasi logis tentang keterkaitan antar tiap elemen data Skalar) 5ektor) array) linked list) sta*ks) ds(
Prosedur perangkat lunak
Detail pemrosesan tiap modul Spesi%ikasi men*akup ta$apan ke#adian) titik kondisi) perulangan dan organisasi data
Prinsip Fundamental Desain ;lan#ut/
Penyamaran In%ormasi
iap modul se$arusnya memiliki karakter yang se*ara sadar didesain agar menyamarkan in%ormasi yang digunakan ter$adap modul lainnya, "odul didesain sedemikian rupa agar in%ormasi yang tidak di(utu$kan tidak dapat diakses ole$ modul lain "ende%inisikan dan melaksankan (atasan pengaksesan in%ormasi
Desain "odular
.euntungan
"engurangi kompleksitas "em%asilitasi peru(a$an Le(i$ muda$ untuk dikem(angkan Le(i$ muda$ untuk dira1at dan diu#i Le(i$ muda$ diimplementasikan dalam lingkungan paralel
Ran*angla$ perangkat lunak agar tiap modul menyelesaikan satu permasala$an spesi%ik dan memiliki antar muka yang seder$ana #ika dili$at dari keter$u(ungan dengan (agian program yang lain
.emandirian %ungsional
.euntungan
Le(i$ muda$ untuk dikem(angkan Le(i$ muda$ untuk dira1at dan diu#i
ingkat kemandirian
.epaduan
-kuran se*ara relati% ter$adap tingkat kepentingan %ungsional se*ara modul Suatu modul terpadu ;se*ara ideal/ $anya menyelesaikan satu masala$9melakukan satu tugas
.eter$u(ungan
ingkat relati% ketergantungan antar modul