Desain Perangkat Lunak
Desain Perangkat Lunak
Desain Perangkat Lunak
Tujuan :
Indikator :
Materi :
Desain perangkat lunak adalah proses untuk mengubah data/informasi yang terdapat
dalam dokumen persyaratan pengguna menjadi beberapa pola yang relevan, yang
membantu programmer dalam melakukan pengkodean dan implementasi perangkat
lunak. Selama proses desain, model persyaratan perangkat lunak (data, fungsi,
perilaku) diubah menjadi model desain yang mendeskripsikan detail struktur data,
arsitektur sistem, antarmuka, dan komponen yang diperlukan untuk
mengimplementasikan sistem. Prinsip dasar yang tersirat dalam defenisi di atas
adalah adanya kegiatan memindahkan konsentrasi dari domain masalah ke domain
solusi. Hal ini adalah tindakan yang dilakukan untuk mencoba menentukan
bagaimana memenuhi persyaratan yang disebutkan dalam SKPL (Spesifikasi
Kebutuhan Perangkat Lunak).
Prinsip dalam desain perangkat lunak
10. Prototyping.
1. Desain Arsitektur
2. Desain Tingkat Tinggi
3. Rancangan Terperinci
B. Konkurensi
Konkurensi berarti kumpulan teknik dan mekanismenya yang memungkinkan perangkat
lunak untuk melakukan beberapa tugas yang berbeda secara bersamaan, atau tampilnya yang
bersamaan.
C. Kopling dan Kohesi
Kohesi adalah ukuran yang menentukan tingkat keandalan dalam elemen modul. Semakin
besar Kohesi, semakin baik programnya. Sedangkan Kopling merupakan ukuran yang
menentukan tingkat keterkaitan antar modul program.
Konsep Desain Perangkat Lunak
Setiap proses perangkat lunak ditandai oleh konsep dasar bersama dengan praktik
atau metode tertentu. Metode mewakili cara di mana konsep diterapkan. Sebagai
teknologi baru menggantikan teknologi yang lebih tua, banyak perubahan terjadi
dalam metode yang digunakan untuk menerapkan konsep-konsep untuk
pengembangan perangkat lunak. Namun, konsep dasar yang menggarisbawahi
proses desain perangkat lunak tetap sama, beberapa di antaranya dijelaskan di sini.
A. Abstraksi
Abstraksi mengacu pada alat desain yang kuat, yang memungkinkan perancang
perangkat lunak untuk mempertimbangkan komponen pada tingkat abstrak,
sambil mengabaikan detail implementasi komponen. IEEE mendefinisikan
abstraksi sebagai pandangan tentang masalah yang mengekstraksi informasi
penting yang relevan dengan tujuan tertentu dan mengabaikan sisa informasi
tersebut.
B. Arsitektur
Arsitektur perangkat lunak mengacu pada struktur sistem, yang terdiri dari
berbagai komponen program / sistem, atribut (properti) dari komponen-
komponen tersebut dan hubungan di antara mereka. Arsitektur perangkat lunak
memungkinkan para ahli perangkat lunak untuk menganalisis desain perangkat
lunak secara efisien. Selain itu, ini juga membantu mereka dalam pengambilan
keputusan dan penanganan risiko.
C. Pola
Pola memberikan deskripsi solusi untuk masalah desain berulang
dari beberapa domain tertentu sedemikian rupa sehingga solusi
dapat digunakan berulang kali. Tujuan dari masing-masing pola
adalah untuk memberikan wawasan kepada desainer yang dapat
menentukan hal-hal berikut:
a. Apakah polanya dapat digunakan kembali
b. Apakah polanya berlaku untuk proyek saat ini
c. Apakah polanya dapat digunakan untuk mengembangkan pola desain
yang serupa tetapi secara fungsional atau struktural berbeda.
D. Modularitas
Modularitas dicapai dengan membagi perangkat lunak menjadi komponen-
komponen yang unik bernama dan dialamatkan, yang juga dikenal sebagai modul.
Sistem yang kompleks (program besar) dipartisi ke dalam satu set modul diskrit
sedemikian rupa sehingga setiap modul dapat dikembangkan secara independen
dari modul lain.
E. Menyembunyikan Informasi (Information Hiding)
Modul seharusnya ditentukan dan dirancang sedemikian rupa sehingga
struktur data dan detail pemrosesan dari satu modul tidak dapat
diakses oleh modul lain. Mereka hanya menyampaikaninformasi sebanyak itu
satu sama lain, yang diperlukan untuk menyelesaikan fungsi perangkat lunak.
Beberapa keuntungan yang terkait dengan penyembunyian
informasi tercantum di bawah ini:
a. Menghasilkan kopling yang rendah
b. Menekankan komunikasi melalui antar muka yang terkendali
c. Mengurangi kemungkinan efek samping
d. Membatasi efek perubahan pada satu komponen pada
komponenlainnya
e. Menghasilkan perangkat lunak berkualitas lebih tinggi.
F. Penyempurnaan bertahap
Penyempurnaan bertahap adalah strategi desain top-down yang digunakan untuk
mendekomposisi sistem dari abstraksi tingkat tinggi ke tingkat abstraksi yang
lebih rinci (level bawah). Pada tingkat abstraksi tertinggi, fungsi atau informasi
didefinisikan secara konseptual tanpa memberikan informasi apa pun tentang
cara kerja fungsi atau struktur internal data. Ketika kita melanjutkan ke tingkat
abstraksi yang lebih rendah, semakin banyak detail tersedia.
G. Refactoring
Refactoring adalah kegiatan desain penting yang mengurangi kompleksitas
desain modul untuk menjaga perilaku atau fungsinya agar tidak berubah.
Refactoring dapat didefinisikan sebagai proses memodifikasi sistem perangkat
lunak untuk meningkatkan struktur internal desain tanpa mengubah perilaku
eksternalnya. Selama proses refactoring, desain yang ada diperiksa untuk
semua jenis cacat seperti redundansi, algoritma yang dibangun dengan buruk
dan struktur data, dll. Tujuannya adalah untuk meningkatkan kualitas desain.
H. Partisi Struktural
Ketika gaya arsitektur suatu desain mengikuti sifat hirarkis, struktur program
dapat dipartisi baik secara horizontal maupun vertikal. Dalam partisi horisontal,
modul kontrol digunakan untuk berkomunikasi antar fungsi dan menjalankan
fungsi. Partisi struktural memberikan manfaat berikut:
a. Pengujian dan pemeliharaan perangkat lunakmudah.
b. Dampak negatifnya menyebar secara perlahan.
c. Perangkat lunak ini dapat diperluas dengan mudah.
I. Konkurensi
Komputer memiliki sumber daya yang terbatas dan harus digunakan seefisien
mungkin. Untuk memanfaatkan sumber daya ini secara efisien, banyak tugas
harus dijalankan bersamaan. Persyaratan ini menjadikan konkurensi sebagai
salah satu konsep utama desain perangkat lunak. Setiap sistem harus
dirancang untuk memungkinkan beberapa proses dijalankan secara
bersamaan, kapan pun memungkinkan. Misalnya, jika proses saat ini
menunggu beberapa peristiwa terjadi, sistem harus menjalankan beberapa
proses lain dalam waktu yang bersamaan.
Metode Desain
Kenapa Arsitektur ?
Arsitektur bukanlah operasional perangkat lunak, namun merupakan representasi yang
memungkinkan pengembang PL untuk :
a. Menganalisa efektivitas desain dalam memenuhi kebutuhan,
b. Mengetahui alternatif2x arsitektur pada keadaan dimana membuat
perubahan desainmasih relatif lebih mudah, dan
c. Mengurangi resiko terkait dengan konstruksi PL.
Desain Data
Dilihat dari desain data untuk level arsitektur dan level komponen dapat diurakan di
bawahini :
Pada level arsitektur
• Desain satu atau lebihd atabase untuk mendukung arsitektur aplikasi.
• Desain method untuk„mining‟ isi dari berbagai database.
• Navigasi melalui database-database yang ada dalam usaha untuk mengambilin
formasi level bisnis yang sesuai.
Desain sebuah data warehouse—sebuah database besar, independen yang mempunyai akses
pada data yang disipan dalam database yang melayani sekelompok aplikasi yang dibutuhkan
bisnis
Gaya Arsitektur
Masing-masing menggambarkan kategori sistem yang menunjukkan:
1. Sekumpulan komponen(mis database, modul komputasi) yang menunjukkan fungsi
yang dibutuhkan sistem,
2. Sekumpulan connector yang memungkinkan komunikasi, koordinasi dan kerjasama
antar komponen,
3. Batasan yang menentukan bagaimana komponen dapat diintegrasikan untuk
membentuk sistem,
4. Model semantikyang memungkinkan desainer untuk memahami properti
keseluruhandari sistem dengan menganlisa properti dalam bagian2x
didalamnya.
Arsitektur Terpartisi
Ada 2 partisi Arsitektur, yaitu partisi vertical dan partisi horizontal.
Mengapa dipartisi ??
⚫ Hasilnya adalah PL yang mudah diuji
⚫ Membawa kepada PL yang lebih mudah dikelola
⚫ Hasilnya efek samping yang semakin sedikit
⚫ Hasilnya adalah PL yang lebih mudah dikembangkan
Desain Terstruktur
Tujuan desain terstruktur adalah untuk mendapatkan arsitektur program yang terpartisi
dengan pendekatan : DFD dipetakan ke arsitektur program, PSPEC dan STD digunakan untuk
mengindikasikan setiap modul serta notasi (diagram struktur).