MATERI TM 10
DESAIN PERANGKAT LUNAK DAN REKAYASA PERANGKAT LUNAK
( PRINSIP DAN KONSEP DESAIN)
Desain adalah langkah pertama dalam fase pengembangan bagi setiap produk atau
sistem yang direkayasa. Desain dapat didefinisikan berbagai “proses aplikasi
berbagai teknik dan prinsip bagi tujuan pendefinisian suatu perangkat, suatu proses
atau sistem dalam detail yang memadai untuk memungkinkan realisasi
fisiknya”[TAY59]. Tujuan desainer adalah untuk menghasilkan suatu model atau
representasi dari entitas yang kemudian akan dibangun.
Desain perangkat lunak berada pada inti teknik dari proses rekayasa perangkat
lunak dan diaplikasikan tanpa memperhatikan model proses perangkat lunak yang
digunakan. Begitu persyaratan perangkat lunak telah mulai dianalisis dan ditentukan,
maka desain perangkat lunak menjadi yang pertama dari tiga aktivitas teknik –
desain, pembuatan kode dan pengujian – yang diperlukan untuk membangun dan
menguji perangkat lunak. Persyaratan perangkat lunak, yang dimanifestasi oleh
data, fungsional, dan model-model perilaku, mengisi langkah desain. Dengan
menggunakan satu dari sejumlah metode desain, langkah desain menghasilkan
a. desain data
b. desain arsitektur
c. desain interface
d. desain prosedural
Proses Desain
Desain perangkat lunak adalah suatu proses interaktif yang melaluinya persyaratan
diterjemahkan ke dalam suatu “cetak biru” untuk membangun perangkat lunak.
Cetak biru menggambarkan suatu pandangan menyeluruh perangkat lunak, yaitu
bahwa desain dihadirkan pada tingkat abstraksi yang tinggi (dapat secara lanngsung
ditelusuri sampai data spesifik, fungsional, dan persyaratan behavioral)
Merupakan suatu proses kontinu yang terus berlangsung selama tiga dekade. Kerja
desain awal dikonsentrasikan pada kriteria untuk pengembangan program moduler
dan metode-metode untuk menyaring arsitektur perangkat lunak dengan cara top-
down. Aspek-aspek prosedural dari definisi desain yang tercakup dalam suatu
filosofi disebut pemrograman terstruktur. Usaha selanjutnya mengusulkan metode-
metode translasi aliran data atau struktur data ke dalam definisi desain. Pendekatan
desain yang lebih baru mengusulkan suatu pendekatan orientasi obyek ke derivasi
desain.
Banyak metode desain yang tumbuh dari kerja tersebut, sedang diaplikasi pada
industri. Setiap metode tersebut mempunyai sejumlah karakteristik umum :
1. Mekanisme penerjemahan suatu model analisis ke dalam representasi
desain.
Prinsip desain
Desain perangkat lunak berupa model dan proses. Proses desain adalah
serangkaian langkah iteratif yang memungkinkan desainer menggambarkan semua
aspek perangkat lunak yang dibangun. Model desain adalah ekivalen rencana
arsitek untuk sebuah “rumah”, yang dimulai dengan menyajikan totalitas dari hal
yang akan dibangun. Prinsip desain dasar memungkinkan perekayasa perangkat
lunak untuk mengendalikan proses desain.
1. Abstraksi
2. Penyaringan.
3. Modularitas
5. Hirarki Kontrol
Hirarki kontrol, disebut juga struktur program merepresentasikan organisasi
komponen program serta mengimplikasikan suatu hirarki kontrol. Hirarki kontrol tidak
mengimplikasikan aspek prosedural dari perangkat lunak, seperti urutan proses,
kejadian/urutan dari keputusan, atau pengulangan operasi.
6. Partisi structural
Struktur progam harus dipartisi baik secara horizontal maupun vertikal. Partisi
horizontal menentukan cabang-cabang terpisah dari hirarki modular untuk setiap
fungsi program mayor. Keuntungannya :
menghasilkan perangkat lunak yang lebih mudah diuji.
b. Membawa kepada perangkat lunak yang lebih mudah dipelihara.
c. Menghasilkan penyebaran efek samping yang lebih sedikit.
d. Menghasilkan suatu perangkat lunak yang lebih mudah untuk diperluas.
7. Struktur data
Struktur data adalah representasi dari hubungan logis antara elemen-elemen data
individual.
9. Penyembunyian informasi
Prinsip penyembunyian informasi menyatakan bahwa bahwa modul ditandai dengan
keputusan desain tersembunyi dari semua desain lain.
Desain Modular Afektif
1. Independensi fungsional
Merupakan hasil pertumbuhan langsung 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.
2. Kohesi
Kohesi adalah suatu ekstensi natural dari konsep penyembunyian informasi.
Modul kohesi melakukan suatu tugas tunggal pada suatu prosedur perangkat lunak
yang memerlukan sedikit interaksi dengan prosedur yang sedang dilakukan di
bagian lain dari suatu program.
3. Perangkaian
Perangkaian adalah pengukuran interkoneksi diantara modul-modul pada
sebuah struktur progam. Perangkaian tergantung pada kompleksitas interface
diantara modul-modul, titik dimana entri atau referensi dibuat untuk sebuah modul
dan data yang dilewatkan pada interface tersebut.