Anda di halaman 1dari 35

PRINSIP DAN KONSEP

DESAIN
Prinsip DAN Konsep Desain

 Desain : Proses aplikasi berbagai teknik dan prinsip bagi tujuan


pendefinisian suatu perangkat, suatu proses atau sistem dalam
detail uang memadai untuk memungkinkan realisasi fisiknya.
 Desain merupakan langkah pertama dalam fase
pengembangan bagi setiap produk atau sistem yang
direkayasa.
 Tujuan Desainer : untuk menghasilkan suatu model atau
representasi dari entitas yang kemudian akan dibangun.
DESAIN PERANGKAT LUNAK DAN
REKAYASA PERANGKAT LUNAK
 Desain perangkat lunak berada pada inti teknik rekayasa
perangka lunak.
 Begitu persyaratan perangkat lunak mulai dianalisis dan
ditentukan, maka desian PL menjadi yang pertama dari tiga
aktivitas teknik – desain, implementasi, testing – dalam proses
pembuatan perangkat lunak.
 Masing-masing elemen model analisis memberikan informasi
yang diperlukan untuk menciptakan suatu model
 Aliran informasi selama desain PL ditunjukkan pada gambar
berikut.
ALIRAN INFORMASI DESAIN
PERANGKAT LUNAK
DESAIN PERANGKAT LUNAK DAN
REKAYASA PERANGKAT LUNAK
 Desain perangkat lunak berada pada posisi teknik inti
dari suatu proses rekayasa perangkat lunak yang
digunakan. pada dasarnya desain perangkat lunak
memiliki prinsip atau aktivitas sebagai berikut :
1. Desain Data
2. Desain Arsitektur
3. Desain Interface
4. Desain Prosedural
AKTIVITAS DESAIN PERANGKAT
LUNAK
1. Desain Data : Suatu aktivitas pertama dan juga yang terpentig dari empat
aktivitas desain yang dilakukan selama rekayasa perangkat lunak. Proses dalam
pemilihan struktur didalam menentukan desain yang paling efisien dan juga
yang sesuai kebutuhan. Desain data mentransformasikan model domain suatu
informasi yang dibuat selama analisis ke dalam struktur data yang akan
diperlukan untuk dapat menngimplementasikan perangkat lunak .
2. Desain Arsitektur : Menentukan suatu hubungan diantara elemen-elemen struktur
utama dan program.
3. Desain Interface : Menggambarkan bagaimana PL berinteraksi dengan sistem
yang berinteroperasi dengan desain interface tersebut serta pengguna yang
menggunakannya.
4. Desain Prosedural : Mentransformasikan elemen-elemen struktural dari desain
arsitektur program ke dalam sebuah deskripsi prosedural dari komponen-
komponen Perangkat lunak.
Prinsip Desain Perangkat Lunak

 Desain perangkat lunak berupa Model dan Proses.


 Proses Desain merupakan serangkaian langkah / tahap / step
iteratif yang memungkinkan desainer menggambarkan semua
aspek perangkat lunak yang dibangun.
 Model Desain merupakan ekivalen rencana arsitek untuk
membangun suatu sistem interface. Model desain memulai
dengan menyajikan totalitas dari hal-hal yang akan dibangun.
 Prinsip-prinsip desain dasar untuk mengendalikan proses
desain
Prinsip Desain Perangkat Lunak

Davis [DAV95] mengusulkan serangkaian prinsip bagi desain


perangkat lunak , antara lain sebagai berikut :
1. Proses desain tidak boleh menderita karena "tunnel vision”. Desainer
harus memperhatikan pendekatan-pendekatan alternatif,
menilainya berdasarkan permasalahan, sumber daya yang ada
untuk melakukan pekerjaan, dan konsep desain.
2. Desain harus dapat ditelusuri sampai pada model analisis.
3. Desain tidak boleh "berulang"
4. Desain harus " Meminimalkan kesenjangan intelektual"
5. Desain harus mengungkapkan keseragaman dan integritasi.
Prinsip Desain Perangkat Lunak
6. Desain harus terstruktur untuk mengakomodasi perubahan.
7. Desain harus terstruktur untuk berdegradasi dengan baik, bahkan
pada saat data dan event-event menyimpang, atau sedang
menghadapi kondisi operasional.
8. Desain bukanlah pengkodean
9. Desain harus dinilai kualitasnya pada saat desain dibuat , bukan
setelah jadi
10.Desain harus dikaji untuk meminimalkan kesalahan-kesalahan
konseptual (semantik).
Jika prinsip diatas sudah diterapkan dengan benar , maka RPL
mampu menciptakan suatu desain yang mengungkapkan baik itu
faktor kualitas internal dan juga eksternal [MEY88].
Konsep - konsep Desain

Konsep Desain : memberikan kerangka kerja untuk


mendapatkan program yang berfungsi dengan benar
Dalam konsep -konsep desain perangkat lunak terdapat :
 Abstraksi  Hirarki Kontrol
 Penyaringan  Partisi Struktural
 Modularitas  Struktural Data
 Arsitektur Perangkat  Prosedur Perangkat Lunak
Lunak  Penyembunyian Informasi
Abstraksi

Mengijinkan desainer berfokus pada pemecahan masalah tanpa


mengkhawatirkan tentang detail level rendah yang tidak relevan
 Abstraksi Prosedural – menjalankan urutan dari langkah-langkah
prosedural dengan fungsi terbatas. Diimpelemntasikan sebagai
struktur data
 Abstraksi Data – kumpulan data yang menggambarkan objek
data. Diimplementasikan sebagai pengetahuan terkait objek
Abstraksi Prosedural Dan Abstraksi
Data
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.
Modularitas

 Derajat dimana 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
Arsitektur perangkat lunak

 Arsitektur merupakan struktur hirarki dari komponen program


(modul), cara bagaimana komponen tersebut berinteraksi,
dan struktur data yang digunakan oleh komponen.

 Arsitektur PL mencakup struktur keseluruhan dari perangkat


lunak dan cara ketika struktur memberikan integrasi
konseptual bagi suatu sistem
Hirarki Kontrol

 Hirarki kontrol disebut juga struktur program,


merepresentasikan organisasi (secara hirarki) komponen
program (modul) serta mengimplikasikan suatu hirarki kontrol.

 Tidak mengimplikasikan aspek prosedural perangkat lunak,


seperti urutan proses, kejadian/urutan dari keputusan, atau
pengulangan operasi.
Hirarki Kontrol
 Depth mengindikasikan tingkat
kontrol
 Width mengindikasikan rentang
keseluruhan kontrol
 Fan-Out : mengukur jumlah modul
yang dikontrol secara langsung oleh
modul lain
 Fan-In : mengukur banyaknya moduk
yang secara langsung mengontrol
modul yang diberikan
 Superordinat : modul yang
mengontrol modul lain, misal M
adalah superordinat untuk a,b,c
 Subordinat : modul yang dikontrol
oleh modul lain
Partisi 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
Partisi Struktural

 Partisi Horizontal
 Menentukan cabang-cabang
terpisah dari hirarki modular
untuk setiap fungsi program
mayor
 Menggunakan modul kontrol
untuk mengkoordinasikan
komunikasi antara fungsi-fungsi
Partisi struktural
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)
Partisi Struktural

Partisi Vertikal
• Desain, sedemikian sehingga pembuatan keputusan dan kerja
dibuat bertingkat-tingkat
• Modul pembuatan keputusan sebaiknya terletak pada puncak
arsitektur
Partisi Struktural
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 elemen-elemen 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
Desain Modular Afektif

 Semua konsep data fundamental yang telah dijelaskan


berfungsi untuk mempercepat desain modular.
 Modularitas menjadi suatu pendekatan yang memfasilitasi
perubahan dan membuat implementasi menjadi lebih mudah
dengan pengembangan paralel dari masing-masing bagian
dari suatu sistem.
 Terdapat konsep mengenai Independensi Fungsional
Desain Modular Afektif
Independensi Fungsional
 Merupakan hasil pengembangan dari modularitas dan konsep abstraksi
dan penyembunyian informasi.
 Independensi fungsional dicapai dengan mengembangkan modul
dengan fungsi “single-minded” dan suatu “aversi” ke interaksi eksesif
dengan modul yang lain. Sehingga masing2 modul menekankan pada
satu subfungsi spesifik dan memiliki interface yang sederhana dilihat dari
struktur program.
 Perangkat lunak dengan modularitas efektif (modul independen), lebih
mudah untuk dikembangkan karena fungsi dapat dibagi-bagi dan
interface disederhanakan serta lebih mudah dalam pengujian dan
pemeliharaan
 Independensi diukur menggunakan kriteria kualitatif yaitu Kohesi dan
Perangkaian (Coupling)
Kohesi
Modul kohesif melakukan tugas tunggal pada prosedur perangkat lunak yang
memerlukan interaksin dengan prosedur yang sedang dilakukan bagian lain
dalam suatu program.
 Kohesif koinsidental terjadi ketika modul melakukan serangkaian tugas yang
saling berhubungan secara lepas.
 Kohesif Logis terjadi ketika modul melakukan tugas-tugas yang berhubungan
secara logis (misalnya modul yang menghasilkan semua output tanpa
melihat tipenya).
 Kohesif temporal terjadi ketika modul berisi tugas yang berhubungan
dengan kenyataan bahwa semua harus dieksekusi dalam jangka waktu
yang sama.
 Kohesi prosedural terjadi bila elemen pemrosesan dari suatu modul
dihubungkan dan harus dieksekusi dalam suatu urutan yang spesifik.
 Kohesi komunikasional terjadi bila semua elemen pemrosesan berkonsentrasi
pada satu area dari suatu struktur data
Perangkaian
(coupling)
 Perangkaian :
pengukuran
interkoneksi di antara
modul-modul pada
sebuah struktur
program.
 Dalam desain
perangkat lunak, kita
mengusahakan
perangkaian yang
sesederhana mungkin
Heuristik Desain Bagi Modularitas Yang
Efektif
Dalam pengembangan perangkat lunak, modularitas efektif dapat dicapai
dengan mengaplikasikan konsep desain dan mengikuti heuristik (panduan)
berikut :
1. Evaluasi “iterasi pertama” dari struktur program untuk mengurangi
perangkaian dan meningkatkan kohesi.
2. Usahakan meminimalkan strukturs dengan fan-out yang tinggi; Usahakan
untuk melakukan fan-in pada saat kedalaman tingkat kontrol
bertambah.
3. Jagalah agar lingkup efek dari suatu modul ada dalam lingkup kontrol
dari modul itu.
Heuristik Desain Bagi Modularitas
Yang Efektif

4. Evaluasi interface modul untuk mengurangi kompleksitas dan


redundansi serta meningkatkan konsistensi.
5. Tetapkan modul-modul yang fungsinya dapat diprediksi, tetapi
hindari modul yang terlalu restriktif.
6. Usahakan modul-modul “entri terkontrol” dengan menghindari
“hubungan patologis”
7. Kemaslah perangkat lunak berdasarkan batasan desain dan
persyaratan probabilitas.
Model Desain

 Pembuatan model desain ini mencakup representasi data,


arsitektur, interface, dan prosedur.
 Model desain dibuat dalam bentuk piramid (lihat slide 4)
dengan maksud ingin menciptakan sebuah desain perangkat
lunak yang stabil.
 Menggunakan Desain data, Desain Arsitektur, Desain Interface,
dan Desain Prosedural sebagai komponennya.
D
O I
K
U D
M E
E S
N A
T I
A N
S
Dokumentasi Desain

Penjelasan Aspek Spesifikasi Desain


Bagian I : Mencakup keseluruhan ruang lingkup dari kerja desain

Bagian II : Menyajikan desain data, menggambarkan struktur file


eksternal, dan sebuah referensi silang yang
menghubungkan objek data dengan file tertentu.

Bagian III : Desain arsitektur, mengindikasikan bagaimana


arsitektur program didapat dari model analisis. Bagan
struktur digunakan untuk menunjukkan hirarki modul
tersebut
Dokumentasi Desain

 Bagian IV & V : Interface program eksternal dan internal


direpresentasikan dan sebuah detail mengenai gambaran
interface manusia dan mesin. Modul-modul, elemen-elemen
PL dapat dijelaskan secara terpisah

 Bagian VI : Tujuan matriks referensi silang adalah (1)


menetapkan bahwa semua persyaratan dipenuhi oleh
desain PL, dan (2) menunjukkan modul mana yang kritis
terhadap Implementasi persyaratan spesifik.
Dokumentasi Desain
 Bagian VII : sekali struktur PL dan interface dibangun, kita
dapat mengembangkan pedoman untuk pengujian modul
individual dan integrasi keseluruhan. Bagian ini juga
menggambarkan pendekatan yang akan digunakan untuk
mentransfer PL ke pelanggan

 Bagian IX : Berisi data tambahan. Deskripsi algoritmaa,


prosedur alternatif, data dalam bentuk tabel, kutipan dari
dokumen lain, dan informasi relevan lainnya sbg catatan
khusus atau sbg lampiran terpisah. Dianjurkan untuk
mengembangkan operasi permulaan/manual instalasi dan
memasukkannya sbg lampiran dalam dokumen desain
Prinsip Dan Konsep
Desain

Anda mungkin juga menyukai