Pertemuan 10
DESAIN ARSITEKTUR
1. Konsep Desain Arsitektur
Perancangan arsitektur merupakan tahap pertama dalam proses perancangan perangkat lunak, yang dimulai dengan perancangan data kemudian berlanjut pada penurunan satu atau lebih struktur arsitektural sistem.
Arsitektur sistem perangkat lunak adalah struktur sistem perangkat lunak yang menggabungkan komponen perangkat lunak, 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 Perangkat Lunak
- Arsitektur perangkat lunak 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 perangkat lunak merupakan representasi yang memungkinkan untuk:
- Melakukan analisis terhadap efektivitas perancangan dan disesuaikan dengan kebutuhan yang dinyatakan sebelumnya.
- Melakukan pertimbangan alternatif arsitektural pada tahap dimana perubahan rancangan dapat dilakukan dengan cara yang relatif mudah.
- Mengurangi risiko yang berhubungan dengan konstruksi perangkat lunak.
- Tampilan Logis, Abstraksi dalam sistem sebagai objek atau kelas objek.
- Tampilan Proses, Menunjukkan bagaimana (pada saat run-time) sistem terdiri dari proses yang saling berinteraksi.
- Tampilan Pengembangan, Perangkat Lunak diuraikan untuk pengembangan, yaitu menunjukkan detail dalam komponen yang akan diimplementasikan oleh pengembang tunggal atau tim pengembang.
- Tampilan Fisik, Menunjukkan perangkat keras sistem dan bagaimana komponen Perangkat Lunak didistribusikan di seluruh sistem.
- 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 bagaimana komponen dapat diintegrasikan untuk membentuk suatu sistem/perangkat lunak.
- Model semantik yang memungkinkan perancang sistem memahami properti keseluruhan sistem
- Gaya dan Struktur Arsitektur (Persyaratan Non-Fungsional)
- Kinerja (Performance), Arsitektur harus dirancang agar semua komponen dapat digunakan pada berbagai komputer/prosesor, dan mendistribusikan di seluruh jaringan.
- Keamanan (Security), Menggunakan struktur berlapis untuk melindungi aset yang paling penting di lapisan terdalam, dengan tingkat validasi keamanan yang tinggi.
- Keamanan (Safety), Operasi yang terkait dengan keselamatan terletak di salah satu komponen tunggal atau komponen kecil.
- Ketersediaan (Availability), Arsitektur harus dirancang untuk menyertakan komponen redundan sehingga dimungkinkan saat mengganti dan memperbarui komponen tanpa menghentikan sistem.
- Pemeliharaan (Maintainability), Arsitektur sistem harus dirancang menggunakan komponen mandiri yang dapat diubah dengan mudah. Struktur data bersama harus dihindari.
- Struktur Dasar Arsitektur
1. 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.
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.
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.
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)
- 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.
Name |
Layered Architecture |
Deskripsi |
Mengatur sistem ke dalam lapisan dengan fungsi
terkait. Lapisan menyediakan layanan ke lapisan di atasnya sehingga lapisan
tingkat terendah mewakili layanan inti yang kemungkinan akan digunakan di
seluruh sistem. |
Contoh |
Sebuah model berlapis dari suatu sistem untuk
berbagi dokumen hak cipta yang disimpan di media penyimpanan. |
Saat
digunakan |
|
Keuntungan |
Memungkinkan penggantian seluruh lapisan selama
antarmuka dipertahankan. Fasilitas redundan (misal otentikasi) dapat
disediakan di setiap lapisan untuk meningkatkan keandalan sistem. |
Kerugian |
Lapisan tingkat tinggi mungkin harus berinteraksi
langsung dengan lapisan tingkat yang lebih rendah daripada melalui lapisan
tepat di bawahnya. Kinerja dapat menjadi masalah karena beberapa tingkat
interpretasi permintaan layanan diproses pada setiap lapisan. |
- Contoh arsitektur lapisan, dengan lapisan bawah menjadi basis data individual di setiap pustaka pada Sistem Perpustakaan
- 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 runtime.
Nama |
Repository |
Deskripsi |
Semua data dalam sistem dikelola di repositori
pusat yang dapat diakses oleh semua komponen .sistem |
Contoh |
Contoh dari IDE dimana komponen menggunakan
repositori, dan setiap PL menghasilkan informasi yang kemudian tersedia untuk
digunakan oleh alat lain. |
Saat
Digunakan |
Ketika sistem dengan sejumlah besar informasi
yang dihasilkan disimpan untuk waktu yang lama. |
Keuntungan |
|
Kerugian |
Masalah dalam repositori mempengaruhi seluruh
sistem. |
Name |
Client-Server |
Deskripsi |
Fungsionalitas sistem diatur ke dalam layanan,
dengan setiap layanan yang dikirim dari server
terpisah |
Contoh |
Contoh dari perpustakaan film/video |
Saat
Digunakan |
Ketika data dalam database harus diakses dari
berbagai lokasi. |
Keuntungan |
|
Kerugian |
|
- Dalam sistem ini, beberapa server mengelola dan menampilkan berbagai jenis media.
- Server video dapat menangani kompresi dan dekompresi video dalam berbagai format.
- Katalog harus dapat menangani pertanyaan dan menyediakan tautan ke dalam sistem informasi web yang mencakup data tentang film dan klip video, dan e-commerce mendukung penjualan foto, film, klip video.
- 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.
Name |
Pipe and Filter |
Deskripsi |
Pengolahan data diatur dalam suatu sistem
sehingga setiap komponen pemrosesan (filter)
bersifat diskrit dan melakukan satu jenis transformasi data. |
Contoh |
Contoh pada sistem untuk memproses faktur. |
Saat
Digunakan |
Umumnya digunakan dalam aplikasi pemrosesan data
(baik batch atau berbasis transaksi) di mana input diproses dalam tahap
terpisah untuk menghasilkan output. |
Keuntungan |
|
Kerugian |
|
- Suatu organisasi telah menerbitkan faktur kepada pelanggan.
- Seminggu sekali, pembayaran yang telah dilakukan direkonsiliasi dengan faktur.
- Untuk faktur yang telah dibayarkan, diberikan tanda terima. Untuk faktur yang belum dibayar dalam waktu pembayaran yang ditentukan, diberikan pesan untuk mengingatkan
- 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
- 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.
- 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 Perangkat Lunak ATM dan Perangkat Lunak pemrosesan akun di server basis data bank. Komponen I/O diimplementasikan sebagai Perangkat Lunak di ATM dan komponen pemrosesan adalah bagian dari server database bank.
- Pengguna membuat permintaan ke sistem melalui komponen pemrosesan I / O.
- Permintaan diproses oleh beberapa aplikasi logika.
- Transaksi dibuat dan diteruskan ke manajer transaksi, yang biasanya tertanam dalam sistem manajemen basis data.
- Setelah manajer transaksi memastikan bahwa transaksi sudah diselesaikan dengan benar, kemudian memberi sinyal ke aplikasi bahwa proses telah selesai
- 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
- Sistem dimodelkan menggunakan pendekatan berlapis di mana lapisan atas mendukung antarmuka pengguna dan lapisan bawah adalah database sistem.
- Lapisan komunikasi pengguna menangani semua I/O dari antarmuka pengguna, dan lapisan pencarian informasi untuk mengakses dan memperbarui database
- 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