pertemuan 10

 PERTEMUAN 10

DESAIN ARSITEKTUR

POKOK PEMBAHASAN

1. Konsep Desain Arsitektur

2. Arsitektur Perangkat Lunak

3. Tampilan Arsitektural

4. Gaya Arsitektur

5. Pola Arsitektur

6. Arsitektur Aplikasi

1. PENDAHULUAN

▪ 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:

1. Komponen bangunan yang berbeda dapat

diintegrasikan menjadi suatu bentuk keseluruhan yang

bersifat kohesif

2. Bangunan yang dibuat sesuai dengan lingkungannya

3. Bangunan yang dibangun sesuai dengan kegunaannya

4. Tekstur, warna dan material pembentuknya

dikombinasikan untuk membuat tampilan yang bagus

5. Perancangan pencahayaan, template, dan garis batas

6. Merupakan suatu bentuk seni

▪ Arsitektur perangkat lunak 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 perangkat lunak.

2. ARSITEKTUR PERANGKAT

LUNAK - Lanjutan

ALASAN ARSITEKTUR PERANGKAT LUNAK

1. Representasi arsitektur perangkat lunak adalah sesuatu

yang memungkinkan terjadinya komunikasi di antara

semua pihak yang tertarik pada pengembangan sistem

berbasis komputer.

2. Arsitektur yang dibuat di awal perancangan akan

memiliki efek yang menentukan pada semua pekerjaan

rekayasa perangkat lunak selanjutnya.

3. 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:

1. Untuk menetapkan kerangka kerja konseptual dan

kosa kata yang digunakan selama perancangan

arsitektur perangkat lunak.

2. Untuk menyediakan panduan yang rinci pada waktu

merepresentasikan deskripsi arsitektural.

3. 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 perangkat

lunak.

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

B. KEPUTUSAN ARSITEKTURAL

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)

B. KEPUTUSAN ARSITEKTURAL

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

• Pola Deskripsi Keputusan Arsitektur (Lanjutan)

B. KEPUTUSAN ARSITEKTURAL

▪ 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?

B. KEPUTUSAN ARSITEKTURAL

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?

▪ Beberapa pertimbangan dalam keputusan

Arsitektur:

B. KEPUTUSAN ARSITEKTURAL

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

Perangkat Lunak 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 Perangkat Lunak didistribusikan di seluruh

sistem.

4. GAYA ARSITEKTUR

▪ Gaya arsitektur mendeskripsikan kategori sistem yang

mencakup:

1. Kumpulan komponen, seperti sistem basis data dan

modul-modul yang melaksanakan fungsi tertentu yang

diperlukan oleh sistem

2. Penghubung (konektor) yang memungkinkan komunikasi,

koordinasi, dan kerja antar komponen

3. Batasan yang mendefinisikan bagaimana komponen dapat

diintegrasikan untuk membentuk suatu sistem/perangkat

lunak.

4. 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.

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.

Gaya dan Struktur Arsitektur

(Persyaratan Non-Fungsional)

Struktur Dasar Arsitektur

▪ Arsitektur Perangkat Lunak 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.

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.

Struktur Dasar Arsitektur

Lanjutan

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.

Gambar Generik Arsitektur Lapisan

Lapisan atas menyediakan

fasilitas antarmuka pengguna

Lapisan terendah: PL pendukung

sistem (basis data dan OS)

Lapisan aplikasi: komponen

fungsionalitas aplikasi dan

komponen utilitas

Lapisan ketiga: manajemen

antarmuka pengguna dan

menyediakan otentikasi dan

otorisasi pengguna

Pola Arsitektur Berlapis

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

• saat membangun fasilitas baru di atas sistem yang ada

• ketika pengembangan tersebar di beberapa tim dengan tanggung

jawab masing-masing tim

• ketika ada persyaratan untuk keamanan multi-level

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

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 runtime.

Repositori Arsitektur

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 • Komponen dapat mandiri, karena tidak perlu mengetahui

keberadaan komponen lain.

• Perubahan yang dilakukan oleh satu komponen dapat

disebarkan ke semua komponen.

• Semua data dapat dikelola secara konsisten karena semuanya

ada di satu tempat.

Kerugian Masalah dalam repositori mempengaruhi seluruh sistem. 

Contoh repositori arsitektur untuk

sebuah IDE

Menunjukkan IDE yang mencakup alat yang berbeda untuk

mendukung pengembangan berbasis model. Repositori dalam kasus

ini adalah lingkungan yang dikendalikan oleh versi yang melacak

perubahan pada Perangkat Lunak dan memungkinkan rollback ke

versi sebelumnya.

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.

▪ 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

meng-upgrade server secara transparan tanpa

mempengaruhi bagian lain dari sistem.

C. Client–Server Architecture

Lanjutan 

Arsitektur Client-Server

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 • Server dapat didistribusikan melalui jaringan.

• Fungsi umum dapat tersedia untuk semua client dan tidak

perlu diterapkan di semua layanan.

Kerugian • Setiap layanan dapat terjadi kegagalan sehingga rentan

terhadap penolakan layanan atau kegagalan server.

• Kinerja tidak dapat diprediksi karena tergantung pada

jaringan dan juga sistem. 

Contoh sistem perpustakaan film/video

▪ 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.

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.

Pipe and Filter Architecture

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 • Mudah dimengerti dan mendukung transformasi reuse.

• Gaya alur kerja cocok dengan struktur proses bisnis.

• Dapat diimplementasikan sebagai sistem sekuensial/konkuren.

Kerugian • Format transfer data harus disepakati di antara transformasi

komunikasi.

• Setiap transformasi harus memahami input dan tidak

mempublikasikan outputnya ke bentuk yang tidak dipahami.

• Meningkatkan overhead sistem, berarti bahwa tidak mungkin

menggunakan kembali transformasi fungsional yang

menggunakan struktur data yang tidak kompatibel.

Contoh pada sistem untuk memproses faktur

▪ 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

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 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.

Contoh Aplikasi Pemrosesan Transaksi

Penjelasan

✓ 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

B. SISTEM INFORMASI

▪ 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

Contoh Sistem Informasi

▪ 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

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

Postingan populer dari blog ini

tugas RPL Pertemuan 13

Tugas Pertemuan 11