com
Arsitektur Perangkat Lunak
(Perry & Serigala 92)
• Arsitektur vs Konstruksi
• Beberapa tampilan
• Sipil: Render artis, elevasi, denah lantai, cetak biru
• Perangkat lunak: Kode, desain objek, kotak-dan-panah, GUI
• Gaya arsitektur
• Sipil: Klasik, Romawi, Gotik, Renaisans, Barok, Art Deco
• Perangkat lunak: Pipa-dan-filter, klien/server, sistem berlapis
• Pengaruh gaya pada prinsip rekayasa
• Pengaruh gaya pada pilihan bahan
Perbedaan Antara Arsitektur Sipil
dan Perangkat Lunak
• Fisik vs konseptual
• Statis vs dinamis
• Evolusi kecil vs. evolusi sering
• Dasar matematika dan ilmiah yang berbeda
• Pengertian yang berbeda tentang "penggunaan
kembali"
Elemen Arsitektur Perangkat
Lunak
• Shaw &Garlan:
• Komponen
• Interkoneksi
• Aturan Komposisi
• Aturan Perilaku
Komponen
• SEBUAHkomponenadalah blok bangunan yang…
• Satuan darikomputasiataupenyimpanan data, dengan
sebuahantarmukamenentukan layanan yang disediakannya
• Satuan daripenyebaran
• Satuan daripenggunaan kembali
Perbedaan Antara Komponen dan
Objek
• Lingkaran kehidupan
• Objek dibuat dan dihancurkan terus-menerus
• Komponen jarang dibuat dan dihancurkan
• Tujuan penggunaan
• Perangkat grafis (komponen) vs. widget grafis (objek)
• Penyimpanan data (komponen) vs. struktur data (objek)
• Sistem tipe
• Objek adalah turunan dari kelas, dengan kelas yang diatur dalam hierarki sesuai dengan hubungan pewarisan
• Komponen mungkin memiliki sistem tipenya sendiri (mungkin sepele), seringkali sangat sedikit komponen
dengan tipe yang sama
• Ukuran
• Benda cenderung kecil
• Komponen bisa kecil (satu objek) atau besar (pustaka objek atau aplikasi lengkap)
konektor
• SEBUAHpenyambungadalah blok bangunan yang memungkinkan
interaksi antar komponen
• Variabel bersama
• Panggilan prosedur (lokal atau jarak jauh)
• Pesan dan bus pesan
• Acara
• Pipa
• Middleware klien/server
• Konektor mungkinimplisitataueksplisit
• Tersirat: panggilan prosedur
• Eksplisit: Bus pesan kelas satu
Perbedaan Antara Komponen dan
Konektor
• Tugas Dilakukan
• Komponen fokus pada tugas komputasi
• Konektor fokus pada tugas komunikasi
• Semantik Aplikasi
• Komponen umumnya mengimplementasikan sebagian besar semantik
aplikasi
• Penghubung tidak (mereka dapat mengubah bentuk pesan, tetapi
umumnya tidak mengubah maknanya)
• "Kesadaran"
• Komponen (harus) tidak mengetahui siapa yang menggunakannya dan
untuk tujuan apa
• Konektor lebih mengetahui komponen yang terhubung dengannya
sehingga dapat memfasilitasi komunikasi dengan lebih baik
Tidak semua orang setuju dengan ini!
Antarmuka
• Sebuahantarmukaadalah "titik koneksi" eksternal pada komponen
atau konektor yang menjelaskan bagaimana komponen/konektor lain
berinteraksi dengannya
• Asalkandanantarmuka yang diperlukan itu penting
• Spektrum spesifikasi antarmuka
• Ditentukan secara longgar (acara masuk, acara keluar)
• Gaya API (daftar fungsi)
• Sangat ditentukan (protokol acara di seluruh antarmuka dalam CSP)
• Antarmuka adalahitukunci untuk interoperabilitas komponen (atau
kekurangannya)
Konfigurasi
• SEBUAHkonfigurasiadalah …
• Struktur keseluruhan dari arsitektur perangkat lunak
• Susunan topologi komponen dan konektor
• Menyiratkan adanya hubungan antar komponen/konektor
• Kerangka kerja untuk memeriksa kompatibilitas antara antarmuka, protokol
komunikasi, semantik, ...
• "Jika tautan memiliki semantik, itu akan menjadi konektor."
• Biasanya dibangun menurutgaya arsitektur
Secara grafis…
Antarmuka
Komponen
Jam
Penyambung
Bis1
Antarmuka
Secara grafis (lanjutan).
Jam Konfigurasi
Tautan
Bis1
LCD
Pengemudi
Contoh:
Arsitektur untuk Kompilator
semantik Kode
Pemindai Pengurai
penganalisis Generator
semantik Kode
Pemindai Pengurai
penganalisis Generator
Pohon Parse
Panteon
Roma, Italia
Gaya Gotik
Katedral Ntre-Dame
Paris, Prancis
Gaya Mediterania
Irvine, California
Gaya Arsitektur Perangkat Lunak
Umum (Shaw &Garlan96)
• Sistem Aliran Data
• Batch berurutan
• Pipa dan filter
• Sistem Panggilan-dan-Kembali
• Program utama dan subrutin
• Sistem berorientasi objek
• Lapisan hierarkis (lapisan bawang)
• Komponen Independen
• Proses komunikasi (klien/server dan peer-to-peer)
• Sistem acara
• Doa implisit
Gaya Arsitektur Perangkat Lunak
Umum (Lanjutan)
• Mesin virtual
• Penerjemah
• Sistem berbasis aturan
• Sistem Berpusat Data (Repositori)
• Database
• Sistem hiperteks
• papan tulis
Contoh Pipa dan Filter
• Anda juga adalah seorang arsitek perangkat lunak!