Software Design (Perancangan Perangkat
Lunak) merupakan salah satu tahap dalam Software Life Cycle yang
berkonsentrasi pada Design dan Coding. Sebelumnya pada semester 4 telah
dipelajari Software Analysis (Analisis Perancangan Perangkat Lunak) yang
berkonsentrasi pada Requirement (kebutuhan user terhadap software yang
diinginkan). Yang perlu diingat adalah dokumentasi pada Software Design
difokuskan pada GL02 atau yang biasa disebut dengan DPPL (Deskripsi
Perancangan Perangkat Lunak)
Definisi Design
Design adalah proses translate/mapping dari hasil analisis requirement. Dapat dikatakan bahwa design merupakan proses merepresentasikan hasil analisis requirement ke dalam bentuk simbol/gambar yang lebih detil agar mudah dipahami oleh semua pihak (user dan programmer). Berikut ini skema yang dapat menjelaskan mengenai design secara lanjut :
Hubungan Sistem Analist, Software designer dan programmer |
Mungkin ada beberapa pertanyaan di
benak pembaca, apakah kita harus selalu menunjukkan design pada user
setiap saat? Sebab untuk efisiensi waktu ,terkadang designer menolak
untuk selalu memperlihatkan hasil design ke User. Jawabannya relatif,
memperlihatkan design ke user tergantung pada :
- Keinginan User (jika user benar-benar ingin melihat, kenapa tidak?)
- Metode perancangan yang dipilih, jika software dikembangkan dengan metode waterfall, maka perkembangan design harus selalu ditunjukkan ke user.
- Keinginan User (jika user benar-benar ingin melihat, kenapa tidak?)
- Metode perancangan yang dipilih, jika software dikembangkan dengan metode waterfall, maka perkembangan design harus selalu ditunjukkan ke user.
Design Engineering
Design yang dihasilkan harus berkualitas. Namun, jika kita berbicara mengenai kualitas, apa itu kualitas? Design yang bagaimana yang disebut dengan design yang berkualitas?Design dapat dikatakan berkualitas jika mampu memenuhi kebutuhan user, berikut syarat-syarat design berkualitas :
- Design mampu memenuhi semua kebutuhan User
- Design harus mudah dibaca dan dipahami
- Design harus meyediakan gambar-gambar yang lengkap dari software yang ingin direkayasa.
Keterhubungan antara Model Design dan Model Analisis
Gambar dibawah ini akan mwmbantu pembaca untuk memahami keterkaitan antara model design dan model analisis :
Keterkairan model analisis dan model design (by Roger Pressman) |
Tahapan Design
- Design data : mentransformasikan model domain informasi yang dibuat pada pada tahap analisis ke dalam struktur data yang akan diperlukan untuk pengimplementasian perangkat lunak. Objek dan hubungan data ditetapkan dalam ERD (Entity Relationship Diagram),sedangkan isi detil data digambarkan dalam kamus data.
- Design Arsitektural : menentukan hubungan di antara elemen-elemen struktural utama dari program. (Digambarkan di dalam Data Flow Diagram)
- Design Interface : menggambarkan bagaimana Perangkat lunak berkomunikasi dengan dirinya sendiri, dengan sistem yang berinteroperasi dengan dirinya dan dengan manusia yang menggunakannya.
- Design Prosedural : mentransformasikan elemen-lemen struktural dari arsitektural program ke dalam suatu deskripsi prosedural dari komponen-komponen perangkat lunak. (Informasi diperoleh dari PSPEC, CSPEC, STD)
Konsep design dapat memberikan kerangka kerja untuk mendapatkan software yang berfungsi dengan benar. Berikut ini delapan konsep design :
- Abstraksi : semakin tinggi tingkat abstraksi, solusi dinyatakan dalam bahasa yang luas, semakin rendah tingkat abstraksi terhadap design yaitu saat kode sumber dimunculkan.
- Arsitektur :merupakan struktur keseluruhan dari sistem (detil/rincian yang menjelaskan abstraksi)
- Pattern :Pola, merupakan solusi perancangan
- Modularity : pembagian dari perangkat lunak, dimana setiap modul yang diciptakan terdiri dari beberapa fungsi dan data yang mengerjakan tigas khusus, setiap modul dapat dipanggil secara terpisah.
- Hiding (Penyembunyian informasi) : peymbunyian informasi mengandung dua pandangan, pandangan pertama yaitu penyembunyian informasi dari user, pandangan kedua penyembunyian informasi antar modul.
- Kemandirian Fungsi : fungsi/ modul tidak bergantung pada fungsi/modul lainnya COUPLING (keterikatan antar modul) VS COHESION (kemandirian antar modul)
Low Coupling : readibility (naik) mengakibatkan performance (turun)
High Coupling : readibility (turun) mengakibatkan performance (naik) - Refactoring : proses re-organisasi code program sehingga menjadi lebih simple (menaikkan tingkat readibility)
- Refinement : mengelaborasikan detil dari keseluruhan abstraksi.
sumber: nabarian.blogspot.com
0 komentar:
Posting Komentar