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
Selama desain,
kita dapat membuat keputusan yang akan mempengaruhi kesuksesan konstruksi
perangkat lunak dan kemudahan maintenance-nya. Desain sangat penting karena
dapat menentukan kualitas dari suatu perangkat lunak.
B. 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)
1. Desain dan kualitas perangkat lunak
McGlaughlin mengusulkan 3 karakteristik
yang berfungsi sebagai pedoman bagi evaluasi suatu desain yang baik :
- desain harus mengimplementasikan
keseluruhan persyaratan eksplisit yang dibebankan dalam model analisis,
dan harus mengakomodasikan semua persyaratan implisit yang diinginkan
pelanggan.
- Desain harus menjadi panduan yang
dapat dibaca, dapat dipahami bagi mereka yang menghasilkan kode dan yang
menguji serta memelihara perangkat lunak.
- Desain harus memberikan suatu
gambaran lengkap mengenai perangkat lunak, yang menekankan data, dan
domain perilaku dari perspektif implementasi.
Kriteria teknis untuk desain yang baik :
- Desain harus memperlihatkan suatu
organisasi yang dengan baik menggunakan kontrol di antara elemen-elemen
perangkat lunak.
- Desain harus modular : yaitu bahwa
perangkat lunak harus dipartisi secara logika ke dalam elemen-elemen yang
melakukan fungsi dan subfungsi khusus.
- Desain harus berisi data dan
abstraksi prosedural.
- Desain harus membawa ke arah modul
(misal subrutin atau prosedur) yang memperlihatkan karakteristik
fungsional independent.
- Desain harus mengarah kepada
interface yang mengurangi kompleksitas hubungan antara modul-modul dan
dengan lingkunga eksternal.
- Desain harus didapat dengan
menggunakan metode berulang yang dikendalikan oleh informasi yang
diperoleh selama analisis persyaratan perangkat lunak.
2. Evolusi desain perangkat lunak
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 :
- mekanisme penerjemahan suatu model
analisis ke dalam representasi desain.
- Notasi untuk merepresentasikan
komponen-komponen fungsional dan interface-nya.
- Heuristik bagi penyaringan dan
partisi
- Pedoman bagi penilaian
kualitas
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.
- Proses desain tidak boleh
menderita karena “tunnel vision”
- Desain harus dapat ditelusuri sampai
model analisis.
- Desain tidak boleh berulang.
- Desain harus “meminimalkan
kesenjangan intelektual” di antara perangkat lunak dan masalah yang ada di
dunia nyata.
- Desain harus mengungkap
keseragaman dan integrasi.
- Desain harus terstruktur untuk
mengakomodasi perubahan.
- Desain harus terstruktur untuk
berdegradasi dengan baik, bahkan pada saat data dan event-event
menyimpang, atau menghadapi kondisi operasi.
- Desain bukanlah pengkodean, dan
pengkodean bukanlah desain.
- Desain harus dinilai kualitasnya
pada saat desain dibuat, bukan setelah jadi.
Comments
Post a Comment