Anda di halaman 1dari 25

Diterjemahkan dari bahasa Inggris ke bahasa Indonesia - www.onlinedoctranslator.

com
Arsitektur Perangkat Lunak
(Perry & Serigala 92)

“Arsitekturberkaitan dengan pemilihan elemen arsitektur, interaksinya,


dan batasan pada elemen tersebut dan interaksinya yang diperlukan
untuk menyediakan kerangka kerja yang memenuhi persyaratan dan
berfungsi sebagai dasar untuk desain.
(vs desain…)
“Rancanganberkaitan dengan modularisasi dan antarmuka terperinci
dari elemen desain, algoritma dan prosedurnya, dan tipe data yang
diperlukan untuk mendukung arsitektur dan untuk memenuhi
persyaratan.
Arsitektur Perangkat Lunak
(Garlan& Shaw 93)

“Arsitektur perangkat lunakadalah tingkat desain yang melampaui


algoritma dan struktur data komputasi; merancang dan menentukan
struktur sistem secara keseluruhan muncul sebagai jenis masalah
baru. Isu-isu struktural termasuk organisasi kotor dan struktur kontrol
global; protokol untuk komunikasi, sinkronisasi, dan akses data;
penugasan fungsionalitas untuk elemen desain; distribusi fisik;
komposisi elemen desain; penskalaan dan kinerja; dan pemilihan di
antara alternatif desain.”
Arsitektur Perangkat Lunak
(Menampilkan &Garlan96)
"Ituarsitektur sistem perangkat lunakmendefinisikan sistem itu dalam
hal komponen komputasi dan interaksi di antara komponen-
komponen itu. … Selain menentukan struktur dan topologi sistem,
arsitektur menunjukkan korespondensi antara persyaratan dan
elemen sistem yang dibangun, sehingga memberikan beberapa alasan
untuk keputusan desain.”
Analogi dengan
Arsitektur Sipil
Teknik Sipil dan Arsitektur Sipil
berkaitan dengan rekayasa dan desain
bangunan sipil (jalan, gedung, jembatan, dll.)

• 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

• Perry & Serigala


• Elemen struktural
• Pengolahan
• Data
• Menghubungkan ("lem")
• Bentuk: Properti Tertimbang dan Hubungan
• Alasan

• 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

Mengajukan Mengajukan Mengajukan

semantik Kode
Pemindai Pengurai
penganalisis Generator

Pohon Parse

Legenda: Komponen Penyambung


Apa yang dibeli arsitektur untuk
Anda?

• Di wajahnya, tidak ada apa-apa!


• Arsitektur yang buruk dapat menyiratkan sistem kode spageti
• Lihat “Bola Lumpur Besar”,
http://www.devcentre.org/mud/mudmain.htm
• Bagaimana kita dapat menggunakan arsitektur untuk meningkatkan
kualitas (-ilities) dari sistem perangkat lunak kita?
• Menjawab:Gaya Arsitektur
Gaya Arsitektur
• Sebuahgaya arsitekturadalah …
• Satu setkendalaAnda melakukan pengembangan untuk mendapatkan properti
yang diinginkan dari arsitektur perangkat lunak Anda.
• Kendala ini mungkin:
• Topologi
• Perilaku
• Berorientasi komunikasi
• dll. dll.
• Bekerja dalam gaya arsitektur membuat pengembanganlebih keras
• TETAPIgaya arsitektur membantu Anda mendapatkan properti sistem yang
bermanfaat yang akanBetulkahsulit untuk mendapatkan sebaliknya
Gaya Klasik Arsitektur Sipil

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!

• ls–l *.java |grep“foobar” |lpr-Pgaston


• Komponen: Filter
• Konektor: Pipa berbasis aliran
• Antarmuka: Satu masuk, satu keluar pada setiap pipa atau filter, bertukar
aliran byte
• Tautan: Tersirat di baris perintah di atas
• Konfigurasi: Ditentukan dengan memesan pada baris perintah
Batasan Pipa & Filter
• Semua komunikasi melalui aliran byte
• Satu antarmuka "masuk", satu "keluar" pada setiap komponen
• Hanya konektor yang pipa
• Sebuah pipa adalah wajib di antara setiap pasangan filter berurutan
• Filter harus dipesan secara berurutan, dimulai dan diakhiri dengan
filter

• Kualitas perangkat lunak apa yang dihasilkan oleh gaya ini?

Anda mungkin juga menyukai