KONSEP PERANCANGAN
MODEL PERANCANGAN
- Perancangan data/kelas
- Mengubah model kelas menjadi realisasi kelas
perancangan dan struktur data yang diperlukan untuk mengimplementasikan
Perangkat Lunak.
- Objek, hubungan dan konten data rinci yang
digambarkan oleh atribut kelas dan notasi lainnya memberikan dasar untuk
aktivitas perancangan data.
- Bagian dari perancangan kelas dapat terjadi
bersamaan dengan perancangan arsitektur Perangkat Lunak.
- Perancangan kelas yang lebih rinci terjadi
karena setiap komponen Perangkat Lunak dirancang
- Perancangan arsitektur
- Mendefinisikan hubungan antara elemen
struktural utama dari Perangkat Lunak, gaya dan pola arsitektur yang
dapat digunakan untuk mencapai kebutuhan yang ditentukan untuk sistem,
dan kendala yang mempengaruhi cara dimana arsitektur dapat
diimplementasikan.
- Mewakili perancangan kerangka kerja
arsitektur sistem berbasis komputer berasal dari model kebutuhan.
- Perancangan antarmuka
- Menggambarkan bagaimana Perangkat Lunak
berkomunikasi dengan sistem, dan dengan manusia yang menggunakannya.
- Antarmuka menyiratkan aliran informasi
(misalnya: data atau kontrol) dan jenis perilaku tertentu.
- Perancangan antarmuka pada tingkat komponen
mengubah elemen struktural dari arsitektur Perangkat Lunak menjadi
deskripsi prosedural komponen Perangkat Lunak
- Informasi yang diperoleh dari model berbasis
kelas dan model perilaku berfungsi sebagai dasar untuk perancangan
komponen.
PROSES PERANCANGAN
- Perancangan Perangkat Lunak adalah proses yang
bersifat iteratif dimana spesifikasi kebutuhan Perangkat Lunak
diterjemahkan menjadi “blue print" untuk membangun Perangkat Lunak.
- Blue print menggambarkan pandangan holistik
Perangkat Lunak. Yaitu, perancangan diwakili pada tingkat abstraksi yang
tinggi pada tingkat yang dapat langsung ditelusuri ke tujuan sistem dan
data yang lebih rinci, fungsional, dan kebutuhan perilaku
- Saat iterasi perancangan Perangkat Lunak
berlangsung, penghalusan lebih lanjut akan menggerakkan abstraksi yang
lebih rendah.
Atribut-Atribut Kualitas Perangkat Lunak
- Tiga karakteristik umum yang berfungsi sebagai
panduan untuk evaluasi perancangan yang baik:
- Perancangan Perangkat Lunak harus menerapkan
semua spesifikasi kebutuhan yang secara eksplisit ada dalam model
kebutuhan, dan mengakomodasi semua spesifikasi kebutuhan implisit yang
diinginkan oleh stakeholder.
- Perancangan Perangkat Lunak harus
menghasilkan produk kerja yang mudah dibaca dan dimengerti bagi mereka
yang membuat kode-kode program dan yang akan melakukan mengujian untuk
kemudian mendukung Perangkat Lunak.
- Perancangan Perangkat Lunak seharusnya
menyediakan gambaran lengkap tentang Perangkat Lunak, menangani
permasalahan data, fungsional, dan perilaku dari perspektif implementasi.
Panduan Kualitas Perangkat Lunak
- Tujuannya untuk mengevaluasi kualitas
representasi perancangan
- Rancangan Perangkat Lunak harus menunjukkan
arsitektur yang :
- Telah dibuat menggunakan gaya atau pola
arsitektur yang dapat dikenali
- Tersusun atas komponen-komponen yang
menunjukkan karakteristik perancangan yang baik
- Dapat diimplementasikan secara evolusioner,
dan memfasilitasi implementasi dan pengujian.
- Rancangan Perangkat Lunak harus bersifat
modular, artinya Perangkat Lunak harus secara logis menjadi bagian dalam
elemen-elemen atau subsistem
- Rancangan Perangkat Lunak harus berisi
representasi data, arsitektur, objek-objek, antarmuka, dan komponen yang
berbeda.
- Rancangan Perangkat Lunak harus memuat
struktur data yang sesuai untuk kelas yang akan diimplementasikan dan
digambarkan dari pola-pola data yang dapat dikenali.
- Rancangan Perangkat Lunak harus mengarah pada
komponen yang menunjukkan karakteristik fungsional yang bersifat
independen.
- Rancangan Perangkat Lunak harus memuat
antarmuka yang mengurangi kompleksitas hubungan antar komponen dan dengan
lingkungan eksternal.
- Rancangan Perangkat Lunak harus diturunkan
dari metode perulangan yang dikendalikan oleh informasi yang diperoleh
selama analisis kebutuhan Perangkat Lunak.
- Sebuah perancangan harus direpresentasikan
menggunakan notasi yang secara efektif mengkomunikasikan maknanya.
Atribut-Atribut Kualitas
- Fungsionalitas
- Dinilai dengan mengevaluasi sejumlah fitur
dan kemampuan program, fungsi-fungsi umum yang disampaikan, dan keamanan
sistem secara keseluruhan.
- Peggunaan
- Dinilai dengan mempertimbangkan faktor manusia,
estetika, konsistensi, dan dokumentasi.
- Keandalan
- Dievaluasi dengan mengukur frekuensi dan
tingkat keparahan kegagalan, akurasi hasil keluaran, waktu antar
kegagalan, recovery, dan prediktabilitas program.
- Kinerja
- Diukur menggunakan kecepatan pemrosesan,
waktu tanggap, konsumsi sumber daya, throughput, dan efisiensi.
- Daya dukung
- Menggabungkan kemampuan program untuk
dikembangkan, kemampuan beradaptasi, dan kemampuan melayani kebutuhan
pengguna, kemampuan uji, kompatibilitas, konfigurabilitas (kemampuan
untuk mengatur dan mengontrol elemen-elemen konfigurasi Perangkat Lunak).
KONSEP-KONSEP PERANCANGAN
- Konsep perancangan pada dasarnya akan
menyediakan kebutuhan:
- Kriteria yang digunakan untuk membagi
Perangkat Lunak menjadi komponen yang bersifat mandiri
- Rincian fungsi/struktur data yang dapat
dipisahkan dari representasi konseptual
- Kriteria yang digunakan untuk mendefinisikan
kualitas teknis perancangan Perangkat Lunak
Abstraksi
- Pada tingkat abstraksi tertinggi, penyelesaian
masalah dinyatakan dalam istilah luas menggunakan bahasa pada lingkungan
permasalahan.
- Pada tingkat abstraksi lebih rendah,
deskripsi yang lebih rinci dari penyelesaian masalah harus diberikan.
- Terminologi berorientasi masalah digabungkan
dengan terminologi berorientasi implementasi dengan tujuan untuk lebih
dapat menyelesaikan permasalahan
- Pada tingkat abstraksi yang paling rendah,
penyelesaian masalah dapat langsung diimplementasikan menggunakan bahasa
pemrograman yang dipilih.
Arsitektur
- Arsitektur sistem/Perangkat Lunak merupakan
struktur keseluruhan Perangkat Lunak dan cara bagaimana struktur tersebut
memberikan integritas konseptual untuk suatu sistem/Perangkat Lunak.
- Arsitektur sistem/Perangkat Lunak juga
merupakan struktur/organisasi dari komponen program (modul) yang
menjelaskan bagaimana komponen-komponen tersebut berinteraksi, dan
struktur data yang digunakan oleh komponen.
Pola (Pattern)
- Pola adalah suatu wawasan yang di dalamnya
memuat esensi dari solusi yang terbukti untuk permasalahan perancangan
Perangkat Lunak dalam konteks tertentu.
- Tujuan dari setiap pola perancangan adalah
untuk memberikan deskripsi yang memungkinkan perancang untuk menentukan:
- Apakah pola berlaku untuk pekerjaan saat ini
- Apakah pola dapat digunakan kembali
- Apakah pola dapat berfungsi sebagai panduan
untuk mengembangkan pola yang serupa, tetapi berbeda secara fungsional
atau struktural
Pemisahan Perhatian
- Pemisahan perhatian adalah konsep perancangan
yang menunjukkan bahwa masalah yang kompleks dapat diselesaikan jika
permasalahan itu dibagi menjadi bagian-bagian yang lebih kecil yang lebih
mudah diselesaikan dan/atau dioptimalkan secara independen.
- Pemisahan perhatian dapat diimplementasikan
menggunakan konsep perancangan Perangkat Lunak yang saling berhubungan
seperti: modularitas, aspek-aspek, kemandirian fungsional, dan
penghalusan.
Modularitas
- Modularitas adalah atribut tunggal dari
Perangkat Lunak yang memungkinkan suatu program untuk dapat dikelola
secara cerdas.
- Perangkat Lunak monolitik adalah program besar
yang terdiri dari satu modul.
- Perangkat Lunak monolitik tidak dapat dengan
mudah dipahami oleh rekayasawan Perangkat Lunak. Jumlah lintasan kendali,
rentang referensi, jumlah variabel, dan kompleksitas keseluruhan hampir
tidak mungkin dimengerti.
Penyembunyian Informasi
- Maksudnya bahwa Modul Perangkat Lunak harus
dispesifikasikan dan dirancang sedemikian rupa sehingga informasi
(algoritma dan data) yang terdapat dalam modul tidak dapat diakses oleh
modul lain yang tidak memerlukan informasi tersebut.
- Penyembunyian informasi (Information hiding)
menyiratkan bahwa modularitas yang efektif dapat dicapai dengan
mendefinisikan sejumlah modul independen yang berkomunikasi satu sama lain
dalam hal informasi yang diperlukan untuk mencapai fungsi Perangkat Lunak.
- Manfaatnya ketika modifikasi tertentu perlu
dilakukan selama pengujian Perangkat Lunak dan selama pemeliharaan
Perangkat Lunak.
Independensi Fungsional
- Konsep independensi fungsional adalah hasil
langsung dari pemisahan masalah, modularitas, dan konsep abstraksi dan
penyembunyian informasi.
- Independensi fungsional dicapai dengan cara
mengembangkan modul yang memiliki fungsi tunggal (single-minded) dan
memiliki interaksi yang bersifat tertutup dengan modul lain.
- Modul independen lebih mudah dikembangkan
karena fungsi-fungsi di dalamnya dapat dilokalisasi dan antarmuka
disederhanakan.
- Modul independen lebih mudah dipelihara dan
diuji
Penghalusan
- Penghalusan merupakan proses elaborasi yang
dimulai dengan pernyataan fungsi (atau deskripsi informasi) yang
didefinisikan pada tingkat abstraksi yang tinggi.
- Penghalusan langkah demi langkah menggunakan
strategi perancangan top-down.
- Hirarki Perangkat Lunak dikembangkan dengan
melakukan dekomposisi pernyataan fungsi yang bersifat makro (abstraksi
prosedural) secara bertahap hingga pernyataan dalam bahasa pemrograman
dapat tercapai.
- Penghalusan membantu untuk mendapatkan rincian
pada tingkat rendah saat perancangan berlangsung.
Refaktorisasi
- Refaktorisasi adalah teknik reorganisasi
perancangan Perangkat Lunak yang bertujuan untuk menyederhanakan
perancangan (atau kode) dari komponen tanpa harus mengubah fungsi atau
perilakunya.
- Refaktorisasi Perangkat Lunak, diperiksa
kembali untuk:
- Menemukan redundansi
- Menemukan elemen perancangan yang tidak
digunakan
- Menemukan algoritma yang tidak efisien (tidak
perlu)
- Menemukan struktur data yang konstruksinya
buruk
- Menemukan kegagalan perancangan lainnya yang
dapat diperbaiki untuk menghasilkan perancangan yang lebih baik.
Komentar
Posting Komentar