Pertemuan 10 DESAIN ARSITEKTUR
1. PENDAHULUAN
• Perancangan arsitektur merupakan tahap pertama dalam
proses perancangan PL, yang dimulai dengan
perancangan data kemudian berlanjut pada penurunan
satu atau lebih struktur arsitektural sistem.
• Arsitektur sistem/PL adalah struktur sistem/PL yang
menggabungkan komponen PL, menggabungkan
properti yang tampak dari komponen tersebut, dan
mendeskripsikan hubungan antar komponen.
• Output dari perancangan arsitektur berupa model
arsitektur yang menggambarkan bagaimana sistem
diatur sebagai satu set komponen yang saling
berkomunikasi.
2. ARSITEKTUR PL
Arsitektur mencakup:
• Komponen bangunan yang berbeda dapat diintegrasikan
menjadi suatu bentuk keseluruhan yang bersifat kohesif
• Bangunan yang dibuat sesuai dengan lingkungannya
• Bangunan yang dibangun sesuai dengan kegunaannya
• Tekstur, warna dan material pembentuknya
dikombinasikan untuk membuat tampilan yang bagus
• Perancangan pencahayaan, template, dan garis batas
• Merupakan suatu bentuk seni
Arsitektur PL merupakan representasi yang
memungkinkan untuk:
1. Melakukan analisis terhadap efektivitas perancangan
dan disesuaikan dengan kebutuhan yang dinyatakan
sebelumnya
2. Melakukan pertimbangan alternatif arsitektural pada
tahap dimana perubahan rancangan dapat dilakukan
dengan cara yang relatif mudah
3. Mengurangi risiko yang berhubungan dengan konstruksi
PL
Alasan arsitektur PL:
• Representasi arsitektur PL adalah sesuatu yang
memungkinkan terjadinya komunikasi di antara semua
pihak yang tertarik pada pengembangan sistem berbasis
komputer
• Arsitektur yang dibuat di awal perancangan akan
memiliki efek yang menentukan pada semua pekerjaan
RPL selanjutnya
• Arsitektur menggambarkan model yang relatif kecil dan
mudah dipahami, dan menggambarkan bagaimana
sistem distrukturkan dan bagaimana komponen di
dalamnya saling bekerja sama.
A. Deskripsi Arsitektural
Sasaran dari deskripsi arsitektural:
• Untuk menetapkan kerangka kerja konseptual dan kosa
kata yang digunakan selama perancangan arsitektur PL
• Untuk menyediakan panduan yang rinci pada waktu
merepresentasikan deskripsi arsitektural
• Untuk memandu praktek perancangan yang baik
B. Keputusan Arsitektural
Pola Deskripsi Keputusan Arsitektur
a. Permasalahan Perancangan
Deskripsikan permasalahan perancangan arsitektural
yang akan diselesaikan.
b. Penyelesaian
Menentukan pendekatan yang dipilih untuk
menyelesaikan permasalahan yang bekaitan dengan
perancangan
c. Kategori
Spesifikasi kategori perancangan yang akan
diselesaikan permasalahannya, seperti perancangan
data, struktur isi dan komponen, integrasi, presentasi
Pola Deskripsi Keputusan Arsitektur (Lanjutan)
d. Asumsi-asumsi
Indikasikan asumsi saat menentukan keputusan.
Misalnya standar teknologi, pola yang tersedia,
permasalahan yang berkaitan dengan sistem/PL
e. Alternatif-alternatif
Secara singkat deskripsikan alternatif yang akan
dipertimbangkan dan mengapa ditolak
f. Argumen
Jelaskan mengapa memilih penyelesaian di atas dan
alternatif-alternatif lainnya
Pola Deskripsi Keputusan Arsitektur (Lanjutan)
g. Keputusan yang berhubungan
Keputusan terdokumentasi yang berhubungan dengan
keputusan yang diambil
h. Implikasi
Indikasikan konsekuensi perancangan akibat
penentuan keputusan. Apakah penyelesaian akan
berakibat pada perancangan lainnya?
i. Perhatian yang berhubungan
Adakah kebutuhan lain yang berhubungan dengan
keputusan yang diambil?
Pola Deskripsi Keputusan Arsitektur (Lanjutan)
j. Produk kerja
Indikasikan dimana keputusan yang diambil akan
tercermin dalam deskripsi arsitektur
k. Catatan
Rujukan catatan tim lainnya yang sebelumnya telah
digunakan untuk membuat keputusan
Beberapa pertimbangan dalam keputusan
Arsitektur:
1. Adakah arsitektur aplikasi generik yang dapat bertindak
sebagai template untuk sistem yang sedang dirancang?
2. Bagaimana sistem akan didistribusikan ke sejumlah
perangkat keras?
3. Pola atau gaya arsitektur apa yang digunakan?
4. Pendekatan fundamental apa yang digunakan untuk
menyusun sistem?
5. Bagaimana komponen struktural dalam sistem akan
terdekomposisi menjadi sub-komponen?
Beberapa pertimbangan dalam keputusan
Arsitektur:
6. Strategi yang akan digunakan untuk mengontrol
pengoperasian komponen dalam sistem
7. Organisasi arsitektur apa yang terbaik untuk memberikan
persyaratan sistem non-fungsional?
8. Bagaimana desain arsitektur akan dievaluasi?
9. Bagaimana arsitektur sistem didokumentasikan?
3. TAMPILAN ARSITEKTURAL
1. Tampilan Logis
Abstraksi dalam sistem sebagai objek atau kelas objek.
2. Tampilan Proses
Menunjukkan bagaimana (pada saat run-time) sistem
terdiri dari proses yang saling berinteraksi.
3. Tampilan Pengembangan
PL diuraikan untuk pengembangan, yaitu menunjukkan
detail dalam komponen yang akan diimplementasikan
oleh pengembang tunggal atau tim pengembang.
4. Tampilan Fisik
Menunjukkan perangkat keras sistem dan bagaimana
komponen PL didistribusikan di seluruh sistem.
4. GAYA ARSITEKTUR
Gaya arsitektur mendeskripsikan kategori sistem yang
mencakup:
• Kumpulan komponen, seperti sistem basis data dan
modul-modul yang melaksanakan fungsi tertentu yang
diperlukan oleh sistem
• Penghubung (konektor) yang memungkinkan
komunikasi, koordinasi, dan kerja antar komponen
• Batasan yang mendefinisikan bagaiman komponen
dapat iintegrasikan untuk membentuk suatu sistem/PL
• Model semantik yang memungkinkan perancang sistem
memahami properti keseluruhan sistem
Gaya dan Struktur Arsitektur
(Persyaratan Non-Fungsional)
1. Kinerja (Performance)
Arsitektur harus dirancang agar semua komponen dapat
digunakan pada berbagai komputer/prosesor, dan
mendistribusikan di seluruh jaringan.
2. Keamanan (Security)
Menggunakan struktur berlapis untuk melindungi aset
yang paling penting di lapisan terdalam, dengan tingkat
validasi keamanan yang tinggi.
3. Keamanan (Safety)
Operasi yang terkait dengan keselamatan terletak di
salah satu komponen tunggal atau komponen kecil.
Gaya dan struktur arsitektur (persyaratan nonfungsional)
4. Ketersediaan (Availability)
Arsitektur harus dirancang untuk menyertakan
komponen redundan sehingga dimungkinkan saat
mengganti dan memperbarui komponen tanpa
menghentikan sistem.
5. Pemeliharaan (Maintainability)
Arsitektur sistem harus dirancang menggunakan
komponen mandiri yang dapat diubah dengan mudah.
Struktur data bersama harus dihindari.
Struktur Dasar Arsitektur
• Arsitektur PL merepresentasikan suatu struktur dimana
beberapa kumpulan entitas (komponen) dihubungkan
dengan sejumlah relasi (konektor).
• Komponen dan konektor dihubungkan dengan properti
yang dapat membedakan jenis komponen dan konektor
yang digunakan.
a. Struktur Fungsional
• Komponen merepresentasikan fungsi atau entitas.
• Konektor merepresentasikan antarmuka untuk
melewatkan data ke suatu komponen.
• Properti mendefinisikan sifat dari komponen dan
mengorganisasikan antarmuka.
Struktur Dasar Arsitektur (Lanjutan)
b. Struktur Implementasi
• Komponen berbentuk paket, kelas, objek, prosedur,
fungsi, metode, dll, yang merupakan sarana untuk
mengemas fungsionalitas komponen pada berbagai
peringkat abstraksi.
• Konektor meliputi kemampuan untuk melewatkan
data dan kendali, berbagi data, menggunakan, dan
menginstansiasi.
• Properti pada komponen fokus pada karakteristik
kualitas, seperti kemampuan untuk maintenance dan
reuse yang dihasilkan saat struktur
diimplementasikan.
Struktur Dasar Arsitektur (Lanjutan)
c. Struktur Konkurensi
• Komponen merepresentasikan unit-unit konkurensi
yang terorganisasi sebagai pekerjaan paralel
(thread).
• Konektor mencakup sinkronisasi, prioritas, mengirim
data, dan menjalankan proses/fungsi.
• Properti mencakup prioritas, kemampuan untuk
meramalkan, dan waktu eksekusi.
d. Struktur Fisik
• Komponen merupakan perangkat keras fisik.
• Konektor merupakan antarmuka antar komponen
perangkat keras.
• Properti berkaitan dengan kapasitas, bandwidth,
kinerja, dan atribut lainnya.
Struktur Dasar Arsitektur (Lanjutan)
e. Struktur Pengembangan
• Mendefinisikan komponen, produk kerja, dan
sumber informasi lainnya.
• Konektor merepresentasikan relasi antar produk
kerja.
• Properti mengidentifikasi karakteristik tiap-tiap item.
5. POLA ARSITEKTUR
(Architectural Patterns)
A. Lapisan Arsitektur (Layered Architecture)
• Pemahaman tentang pemisahan dan independensi
sangat penting untuk desain arsitektur karena
memungkinkan perubahan secara lokal.
• Menambahkan tampilan baru atau mengubah tampilan
yang ada dapat dilakukan tanpa perubahan apa pun
pada data dalam model.
B. Arsitektur Repositori
(Repository Architecture)
• Bagaimana satu set komponen yang saling berinteraksi
dapat berbagi data.
• Model ini cocok untuk aplikasi di mana data dihasilkan
oleh satu komponen dan digunakan oleh yang lain
• Tidak perlu mentransmisikan data secara eksplisit dari
satu komponen ke komponen lainnya. Tetapi komponen
harus beroperasi di sekitar model data repositori yang
disepakati.
• Pola repositori berkaitan dengan struktur statis dari suatu
sistem dan tidak menunjukkan organisasi run-time.
C. Client–Server Architecture
• Sebuah sistem yang mengikuti pola client-server diatur
sebagai satu set layanan server, dan client yang
mengakses dan menggunakan layanan.
• Komponen utama dari model ini adalah:
1. Server memberikan layanan ke komponen lain.
Contoh: server menawarkan layanan pencetakan,
server file yang menawarkan layanan manajemen
file, dan server kompilasi yang menawarkan layanan
kompilasi bahasa pemrograman.
2. Client yang menggunakan layanan yang ditawarkan
oleh server.
3. Jaringan yang memungkinkan client untuk
mengakses layanan.
Client–Server Architecture (Lanjutan)
• Arsitektur client-server dianggap sebagai arsitektur
sistem terdistribusi, tetapi model logis dari layanan
independen yang berjalan pada server terpisah dapat
diimplementasikan pada satu komputer
• Penggunaan yang efektif dapat dilakukan dari sistem
jaringan dengan banyak prosesor terdistribusi.
• Sangat mudah untuk menambahkan server baru dan
mengintegrasikannya dengan seluruh sistem atau mengupgrade
server secara transparan tanpa mempengaruhi
bagian lain dari sistem.
D. Pipe and Filter Architecture
• Model dari sistem run-time di mana transformasi secara
fungsional memproses input dan menghasilkan output.
• Aliran data bergerak secara berurutan (seperti dalam
pipa).
• Setiap langkah pemrosesan diimplementasikan sebagai
transformasi.
• Transformasi dapat dilakukan secara berurutan/paralel.
• Data diproses oleh transformasi per-item-nya atau dalam
satu batch.
• Pipe digunakan untuk melewati aliran teks dari satu
proses ke proses lainnya.
• Filter digunakan pada transformasi untuk menyaring data.
6. ARSITEKTUR APLIKASI
• Sistem aplikasi dimaksudkan untuk memenuhi
kebutuhan bisnis yang memiliki banyak kesamaan dan
menggunakan aplikasi tertentu.
• Arsitektur aplikasi dapat diimplementasikan kembali
ketika mengembangkan sistem baru, tetapi untuk
banyak sistem bisnis, penggunaan kembali aplikasi
dimungkinkan tanpa implementasi ulang
A. Sistem Pemrosesan Transaksi
(Transaction Processing Systems)
• Aplikasi pemrosesan transaksi adalah aplikasi yang
berpusat pada database yang memproses permintaan
pengguna untuk informasi dan memperbarui informasi
dalam basis data.
• Merupakan jenis sistem bisnis interaktif yang paling
umum, di mana pengguna membuat permintaan
asynchronous untuk layanan
• Transaksi basis data adalah urutan operasi yang
diperlakukan sebagai unit tunggal, dan semua operasi
dalam transaksi harus diselesaikan sebelum perubahan
basis data dibuat permanen.
Aplikasi Pemrosesan Transaksi (Lanjutan)
• Dari perspektif pengguna, transaksi adalah setiap urutan
operasi yang koheren yang memenuhi tujuan, seperti
menemukan jadwal perkuliahan.
• Sistem pemrosesan transaksi dapat diatur sebagai
arsitektur 'pipe and filter' dengan komponen sistem
sebagai input, pemrosesan, dan output.
• Misal: pelanggan menarik uang tunai dari ATM. Sistem ini
terdiri dari dua komponen PL ATM dan PL pemrosesan
akun di server basis data bank. Komponen I/O
diimplementasikan sebagai PL di ATM dan komponen
pemrosesan adalah bagian dari server database bank.
B. SistemInformasi
• Semua sistem yang melibatkan interaksi dengan basis
data dapat dianggap sebagai sistem informasi berbasis
transaksi.
• Sistem informasi memungkinkan akses yang terkontrol
ke basis informasi yang besar. Seperti katalog
perpustakaan, jadwal penerbangan, atau catatan pasien
di rumah sakit.
• Sebagai contoh dari instantiation model berlapis
C. Sistem Pemrosesan Bahasa
(Language Processing Systems)
• Adalah sistem di mana maksud pengguna dinyatakan
dalam bahasa formal (seperti Java).
• Memproses ke dalam bahasa formal, kemudian
menafsirkan representasi secara internal.
• Sistem pemrosesan bahasa dengan compiler, yang
menerjemahkan bahasa program tingkat tinggi ke dalam
kode mesin.
• Sistem pemrosesan bahasa juga menerjemahkan
bahasa alami atau buatan ke dalam representasi bahasa
lain, dan bahasa pemrograman dapat mengeksekusi
kode yang dihasilkan.
Komentar
Posting Komentar