6. 01
Perancangan data/kelas
Pada dasarnya melakukan transformasi model-model kelas menjadi rancangan
kelas-kelas realisasi dan juga menghasilkan struktur-struktur data yang
diperlukan untuk mengimplementasikan perangkat lunak.
02
Perancangan arsitektural
sistem/perangkat lunak
Mendefinisikan hubungan antara elemen-elemen structural utama dari suatu
perangkat lunak, mendefinisikan gaya arsitektural dan pola-pola perancangan
dapat digunakan untuk mencapai kebutuhan-kebutuhan yang sebelumnya telah
didefinisikan pada tahapan analisis sistem, dan memungkinkan batasan-batasan
yang memiliki imbas pada arsitektur dapat diimplementasikan.
03
Perancangan antarmuka
Mendeskripsikan bagaimana caranya kelak perangkat lunak berkomunikasi
dengan sistem-sistem yang bekerja bersamanya dan dengan orang-orang yang
akan menggunakannya.
7.
8. • Infographic Style
• Memuat rancangan komponen-
komponen yang memperlihatkan
karakteristik-karakteristik fungsional
yang bersifat mandiri.
• Memuat antarmuka-antarmuka yang
akan mengurangi kompleksitas
hubungan-hubungan antara komponen-
komponen dalam perangkat lunak
dengan lingkungan eksternalnya.
• Didapat dari metode perulangan yang
dikendalikan oleh informasi yang
diperoleh selama analisis kebutuhan
perangkat lunak dilakukan.
• Direpresentasikan menggunakan
notasi-notasi yang secara efektif
mengkomunikasikan maknanya.
• Mencerminkan arsitektur yang telah dibuat
menggunakan gaya yang telah dikenal
sebelumnya, tersusun oleh komponen yang
memiliki karakteristik perancangan perangkat
lunak yang baik, dan dapat diimplementasikan
dalam bentuk evolusioner.
• Bersifat modular.
• Memuat secara jelas representasi data,
arsitektur, antarmuka-antarmuka, dan
komponen-komponen.
• Memuat struktur-struktur data yang sesuai
untuk kelas-kelas sedemikian rupa
sehingga kelak dapat diimplementasikan
dan dapat digambarkan dari pola-pola
data yang dapat dikenali.
Panduan Kualitas
9. Atribut-Atribut Kualitas
01 02 0403 05
Melakukan evaluasi atas
sejumlah fitur, kemampuan
program, fungsi-fungsi
umum yang akan
diserahkan, serta keamanan
sistem secara keseluruhan
Fungsionalitas
Mempertimbangkan faktor-
faktor manusia, estetika
secara keseluruhan,
konsistensi, serta
dokumentasi
Penggunaan
Melakukan penilaian atas
sejumlah serta
keparahan kegagalan
sistem, akurasi dari
output sistem, selang
waktu antarkegagalan,
serta kemampuan
program untuk
diramalkan perilakunya.
Keandalan
Pertimbangan kecepatan
pemrosesan, response
time, penggunaan sumber
daya, serta efisiensinya.
Kinerja
Menggabungkan kemampuan
program untuk dikembangkan,
kemampuannya beradaptasi
terhadap perubahan
lingkungan komputasi,
kemampuannya untuk
melayani kebutuhan pengguna.
Daya Dukung
10. Evolusi Perancangan
Perangkat Lunak
Pekerjaan awal perancangan perangkat lunak berkonsentrasi pada
kriteria untuk pengembangan program yang bersifat modular dan
berkonsentrasi pada metode-metode yang digunakan untuk
melakukan penghalusan struktur perangkat lunak yang secara
umum bergerak dari atas ke bawah.
Pendekatan perangkat lunak yang lebih baru menggunakan
pendekatan berorientasi objek pada perancangan.
Penekanan yang terbaru pada perancangan perangkat lunak
adalah pada arsitektur sistem/perangkat lunak dan pda pola-pola
perancangan perangkat lunak pada peringkat-peringkat abstraksi
perancangan yang lebih rendah.
12. Abstraksi adalah satu dari cara yang
mendasar yang sering digunakan oleh
manusia untuk menanggapi
kompleksitas.
Saat kita mempertimbangkan solusi
modular untuk setiap permasalahan,
beberapa peringkat abstraksi dapat di
perlihatkan. Mulai dari paling tinggi, lebih
randah, dan paling rendah. Saat berbagai
peringkat abstraksi dikembangkan, kita
bekerja untuk membuat baik abstraksi
procedural maupun abstraksi data.
Suatu abstraksi procedural merujuk pada
urutan dari perintah-perintah yang
memiliki fungsi yang sifatnya spesifik dan
terbatas. Sementara itu, abstraksi data
merupakan kumpulan data yang
mendeskripsikan sebuah objek data.
1. Abstarksi
Arsitektur sistem/perangkat lunak
merupakan struktur atau organisasi dari
komponen-komponen program (modul-
modul) yang menjelaskan bagaimana
komponen-komponen itu berinteraksi
dan juga menjelaskan struktur data
yang digunakan oleh komponen-
komponen itu.
Salah satu sasaran perancangan
perangkat lunak adalah untuk
mendapatkan suatu arsitektur yang
membentuk sistem. Pembentukan
sistem ini bertindak sebagai kerangka
kerja darimana aktivitas-aktivitas
perancangan yang lebih rinci
dikerjakan. Sejumlah pola arsitektural
perangkat lunak memungkinkan
rekayasawan perangkat lunak
menyelesaikan permasalahan-
permasalahan perancangan bersifat
umum.
2. Arsitektur
13. 3. Patterns (Pola-pola)
Pola perancangan perangkat lunak mendeskripsikan suatu struktur
perancangan yang menyelesaikan suatu permasalahan perancangan yang ada
di dalam suatu konteks tertentu dan memiliki imbas yang serupa pada
perancangan saat ini seperti dengan diterapkannya pola yang bersangkutan di
masa-masa sebelumnya.
Tujuan dari masing-masing pola perancangan perangkat lunak adalah untuk
menyediakan sebuah deskripsi lengkap yang memungkinkan para perancang
perangkat lunak untuk menentukan: (1) apakah pola perancangan perangkat
lunak itu dapat diterapkan pada pekerjaan yang sekarang sedang
dilaksanakan. (2) apakah pola perancangan perangkat lunak itu dapat
digunakan ulang. (3) dan apakah pola perancangan perangkat lunak itu dapat
bertindak sebagai panduan untuk mengembangkan pola yang serupa,
meskipun fungsionalitas serta strukturnya berbeda.
14. Education
Plan
5. Modularitas
Perangkat lunak bisa dibagi menjadi
komponen-komponen yang dapat diselesaikan
secara mandiri (seringkali dinamakan sebagai
modul-modul), yang kemudian diintegrasikan
untuk menyelesaikan kebutuhan-kebutuhan
permasalahan yang telah didefinisikan
sebelumnya.
6. Information Hiding
(Penyembunyian Informasi)
Information hiding mengimplikasikan
bahwa modularitas perangkat lunak dapat
dicapai dengan mendefinisikan sejumlah
modul perangkat lunak mandiri yang
berkomunikasi dengan modul yang lainnya
dalam hal informasi yang diperlukan untuk
mencapai fungsi perangkat lunak tertentu
4. Separation of Concerns
(Pemisahan Perhatian)
Pemisahan perhatian merupakan
konsep perancangan yang
menyarankan bahwa setiap
permasalahan yang kompleks
dapat lebih mudah ditangani jika
permasalahan itu dibagi-bagi
menjadi bagian-bagian yang lebih
kecil dan lebih mudah diselesaikan
dan/atau dioptimasi.
Dengan memisahakan perhatian-
perhatian menjadi bentuk yang
lebih kecil, lebih mudah dipahami
dan dikelola, permasalahan-
permasalahan akan memerlukan
usaha dan waktu yang lebih sedikit
untuk dapat diselesaikan.
15. 7. Functional Independence
Kemandirian fungsional dapat dicapai dengan cara
mengembangkan modul-modul perangkat lunak yang masing-
masing memiliki fungsi tunggal dan masing-masing memiliki
interaksi yang bersifat tertutup dengan modul-modul perangkat lunak
lainnya.
kemandirian modul-modul perangkat lunak dapat dinilai
menggunakan 2 kriteria yang bersifat kualitatif :
1. Kohesivitas : suatu indikasi dari kemandirian relatif antarmodul.
Suatu modul bersifat kohesif seharusnya (idealnya) hanya
melakukan satu pekerjaan.
2. Keterhubungan : indikasi kesalingterhubungan antarmodul
dalam struktur suatu perangkat lunak. pada perancangan
perangkat lunak, kita harus berusaha agar tingkat
keterhubungan antarmodul menjadi serendah mungkin.
16. Education
Plan
8. Refinement
Penghalusan (refinement)
merupakan proses elaborasi.
Kita mulai dengan pernyataan
fungsi yang didefinisikan pada
peringkat abstraksi perangkat
lunak yang tinggi, yaitu
pernyataan yang
mendeskripsikan fungsi atau
informasi secara konseptual.
Kemudian kita melakukan
elaborasi pada pernyataan awal
dengan cara memberikan
rincian-rincian saat penghalusan
tersebut (elaborasi) berlangsung.
Refinement membantu kita untuk
menyingkapkan rincian-rincian
peringkat rendah saat proses
perancangan perangkat lunak
berlangsung.
9. Aspects
Aspek-aspek merupakan
kumpulan dari beberapa
“concern” yang mencakup
didalamnya spesifikasi-
spesifikasi kebutuhan, use case-
use case, struktur-struktur data,
kolaborasi-kolaborasi, pola-pola
dan batasan-batasan.
17. Refaktorasi merupakan suatu teknik
pengorganisasian ulang perancangan
perangkat lunak yang bertujuan untuk
menyederhanakan perancangan komponen-
komponen (atau kode program yang
dihasilkan) tanpa harus mengubah fungsi
atau behaviornya.
10. Refaktorisasi
Konsep-konsep perancangan “berorientasi
objek” contohnya, seperti konsep-konsep
yang berkaitan dengan kelas-kelas dan
objek-objek, pewarisan (inheritence), pesan-
pesan (message), dan polimosfisme.
11. Object-Oriented Design
Concepts
18. 12. Design class
Mengimplementasikan abstraksi bisnis
peringkat lebih rendah yang diperlukan
untuk secara penuh mengelola business
domain classes.
Process Classes
Merepresentasikan tempat-tempat
penyimpanan data (misalnya sistem basis
data) yang akan digunakan untuk
menyimpan data-data yang diperlukan bagi
eksekusi perangkat lunak.
Persistent Classes
Mengidentifikasi atribut-atribut dan layanan-
layanan (metode-metode) yang diperlukan
untuk mengimplementasikan beberapa
elemen business domain classes.
Business Domain Classes
Mendefinisikan semua abstraksi yang
diperlukan bagi interaksi manusia-komputer
(Human Computer Interaction).
User Interface Classes
Mengimplementasikan pengelolaan
perangkat lunak dan mengendalikan fungsi-
fungsi yang memungkinkan sistem
beroperasi dan berkomunikasi didalam
lingkungan komputasi yang digunakan dan
juga memungkinkan sistem beroperasi dan
berkomunikasi dengan dunia luar.
System Classes
19. Arlow dan Neustadt mendefinisikan 4 karakteristik dari
kelas perancangan yang baik :
20.
21.
22.
23. S
T
W
O
Perancangan data membuat model data
dan/atau informasi yang kelak akan
direpresentasikan pada peringkat abstraksi
yang tinggi.
Struktur data dan algoritma adalah bagian
penting dari perancangan perangkat lunak.
Elemen-elemen perancangan arsitektural
memberi pada kita gambaran keseluruhan
perangkat lunak yang akan dikembangkan.
Model arsitektual perangkat lunak didapatkan
dari 3 sumber :
1. Informasi tentang application domain
untuk perangkat lunak yang akan
dikembangkan.
2. Kebutuhan-kebutuhan spesifik elemen-
elemen model seperti diagram aliran
data (data flow diagram) atau kelas-
kelas analisis, hubungan-hubungannya
untuk penyelesian masalah.
3. Ketersediaan gaya arsitektural serta
pola-pola.
1. Data Design Elements
2. Architectural Design Elements
24. Internal Interface
External Interface
3. Interface Design Elements
User Interface
–ke sistem-sisem lainnya, interface ke sarana-sarana lainnya,
interface ke jaringan-jaringan lainnya, atau interface produsen-
produsen/konsumen-konsumen informasi lainnya.
Internal interface diantara berbagai komponen-komponen
perancangan.
25. Diagram komponen UML
Perancangan peringkat
komponen untuk perangkat
lunak secara penuh
mendeskripsikan rincian
internal untuk masing-masing
komponen perangkat lunak.
4. Component-Level
Design Elements
26. Elemen-elemen perancangan
peringkat penebaran-komponen
(deployment) menggambarkan
bagaimana fungsionalitas perangkat
lunak dan subsistem-subsistem akan
dialokasikan didalam lingkungan
komputasi fisik yang akan
mendukungnya.
5. Deployment-Level
Design Elements
UML deployment diagram