Академический Документы
Профессиональный Документы
Культура Документы
Menurut Erl (2009), ada tiga elemen yang saling berkaitan erat ketika berbicara
tentang arsitektur perangkat lunak. Pertama adalah arsitektur teknologi, yaitu
desain fisik dari suatu perangkat lunak. Kedua adalah infrastruktur teknologi,
yaitu lingkungan pendukung yang termasuk di dalamnya perangkat keras dan
perangkat lunak. Ketiga adalah perangkat lunak itu sendiri. Berikut adalah
diagram sederhana yang memperlihatkan keterkaitan ketiga elemen tersebut.
Halaman| 1
Gambar 1.1
Hubungan arsitektur, infrastruktur, dan perangkat lunak
Istilah “arsitektur” berasal dari istilah yang digunakan pada bidang konstruksi
bangunan. Sebuah bangunan memiliki desain fisik yang digambarkan dalam cetak
biru arsitektur (architecture blueprint) atau disebut juga spesifikasi arsitektur.
Suatu bangunan berada dalam lingkungan tertentu. Lingkungan ini bisa
memberikan dukungan ataupun tidak terhadap bangunan tersebut. Sebagai
contoh, bangunan perumahan yang dididukung oleh sarana transportasi,
pembangkit tenaga listrik, dan sistem pembuangan limbah. Lingkungan
pendukung inilah yang disebut infrastruktur. Agar bangunan dapat
memanfaatkan infrastruktur tersebut, desain fisiknya harus mengintegrasikan
berbagai infrasturktur tadi ke dalam arsitekturnya. Oleh karena itu, spesifikasi
arsitektur sebuah bangunan haruslah memperhatikan infrastruktur di sekitarnya.
Begitu juga dengan perangkat lunak, rancangan arsitekturnya harus
memperhatikan infrastruktur di mana perangkat lunak ini akan ditempatkan.
Halaman| 2
2.2 Layering
Software layer merupakan salah konsep utama yang harus diketahui, dikenali,
dimengerti dan diimplementasikan pada saat akan membangun sebuah perangkat
lunak (software). Software Layer terbagi menjadi empat lapisan, yaitu :
1. A Quality Focus
2. Process
3. Methods
4. Tools
Gambar 2.1
Lapisan Perangkat Lunak Secara Umum
Resources : Software Engineering - A Practitioner's Approach
Roger S. Pressman, 2003, McGraw-Hill.
Pada saat kita membangun sebuah aplikasi, Fokus pertama kali yang dibuat adalah
Kita akan membangun kualitas yang seperti apa,siapa sasaran kita, aplikasi yang
Halaman| 3
dibangun siapa pengguna dan lai-lain, Oleh karena itu FOKUS KUALITAS ini
programmer akan mengetahui level sebuah aplikasi yang dibangun. Misalnya akan
dibangun APLIKASI PEMUTAR MUSIC. Dengan berpatokan pada FOKUS
KUALITAS maka Programmer
akan mengetahui sampai dimana aplikasi yang akan dibangun. File Music bisa
beraneka ragam mulai dari MP3, MP2, AUDIO TRACK, WAV, MDI dan lain-lain.
Dengan mengetahui, Aplikasi ini dibuat untuk File music apa,
maka programmer akan mengetahui segala hal yang berhubungan dengan
program yang dibuat. Apakah aplikasi yang dibuat akan mendukung untuk MP3,
MP2, WAV, OGG, TRACK atau yang lainnya. Jika dilihat dari segi Interaksi Manusia
dan Komputer, maka dengan FOKUS KUALITAS programmer akan mengetahui
bentuk dari aplikasi yang akan bangun.
2.2.2 PROCESS
Process atau Proses adalah merupakan lapisan kedua dalam SOFTWARE LAYER,
Lapisan ini terletak setelah QUALITY FOCUS, hal ini disebabkan setelah diketahui
Fokus Kualitas dari Perangkat Lunak yang akan dibangun, maka pemrogram harus
mengetahui bagaimana proses yang harus dijalani oleh pemrograman
sehubungan dengan Fokus Kualitas dari Perangkat Lunak yang diharapkan,
Proses-proses ini dilakukan terurut dan tepat, agar tidak terjadi kesalahan pada
saat sebuah aplikasi di Launching. Proses-proses yang ada akan dikerjakan sesuai
dengan Kunci Proses Area yang ada (KPA/Key Process Area).
2.2.3 METHODS
Methods atau Metode merupakan salah satu hal yang penting dalam Pembuatan
Perangkat Lunak. Dengan metode, pembuat program akan melakukan langkah-
langkah dan tindakan-tindakan yang sesuai dengan metode yang ada. Metode yang
digunakan harus disesuaikan dengan perangkat lunak yang dibangun, dan tujuan
dari pembuatan perangkat lunak.
2.2.4 TOOLS
Tools merupakan alat bantu yang dapat digunakan oleh programmer dalam
menyelesaikan proyek yang ada. Mulai dari tools animasi tools multimedia, tools
normalisasi dan lain-lain. Misalnya : X3D, power designer, paintshop pro, etc.
Halaman| 4
2.3 Ragam Arsitektur Perangkat Lunak
Ragam Arsitektur perangkat lunak terdiri dari : Data Centered Architectures, Data
Flow Architectures, Call and Return Architectures, Layered architectures, Event-
based, Implicit Invocation, Repositories, Table Driven Interpreters,
Heterogeneous Architectures.
Arsitektur ini memiliki tujuan untuk mencapai kualitas integrability data. Istilah
ini mengacu ke sistem di mana akses dan update dari menyimpan data diakses
secara luas adalah tujuan utama mereka. Pada dasarnya, itu tidak lebih dari
menyimpan data terpusat yang berkomunikasi dengan sejumlah klien Penting
untuk gaya ini adalah tiga protokol: komunikasi, definisi data dan protokol data
manipulasi. Sarana komunikasi membedakan dua subtipe: repositori dan papan
tulis
- Repository: klien mengirimkan permintaan ke sistem untuk melakukan tindakan
yang diperlukan (misalnya memasukkan data)
- Papan tulis: sistem mengirimkan pemberitahuan dan data untuk pelanggan
ketika data perubahan bunga, dan dengan demikian aktif.
Halaman| 5
Gambar 3.3
Salah satu contoh yang paling terkenal dari Data Centered Architectures, adalah
arsitektur database. Ada skema database yang umum (meta struktur-yaitu dari
repositori) - dibuat dengan data protokol definisi Misalnya dalam RDBMS satu set
tabel yang berkaitan dengan bidang, tipe data, kunci, dll.
Klien menggunakan protokol data manipulasi untuk bekerja dengan data.
Misalnya SQL untuk memasukkan, memilih, deleteing data, dll. Tergantung di
mana klien terletak protokol komunikasi mungkin :
Halaman| 6
§ Sebuah komunikasi batin-proces
§ Komunikasi antar komponen di mesin yang sama
§ Komunikasi melalui jaringan, misalnya LAN, Internet, dll
Halaman| 7
Pipes and Filters :
Dalam pipa dan komponen filter gaya masing-masing memiliki satu set input dan
satu set output. Komponen membaca aliran data pada input dan menghasilkan
aliran data outputnya, memberikan contoh lengkap hasilnya dalam urutan
standar. Hal ini biasanya dicapai dengan menerapkan local transformasi untuk
memasukkan aliran dan komputasi bertahap sehingga output input dimulai
sebelum dikonsumsi. Oleh karena itu komponen yang disebut "filter". Konektor
gaya ini berfungsi sebagai medium untuk sungai, transmisi output satu filter untuk
masukan lain. Oleh karena itu konektor ini disebut "pipa".
Di antara invariants penting dari gaya, filter harus independen entitas: khususnya,
mereka tidak harus berbagi negara dengan filter lainnya. Lain invarian penting
adalah bahwa filter tidak mengetahui identitas mereka hulu dan hilir filter.
Spesifikasi mereka mungkin membatasi apa yang muncul pada masukan pipa atau
membuat jaminan tentang apa yang muncul pada pipa output, tetapi mereka tidak
dapat mengidentifikasi komponen-komponen di ujung pipa tersebut. Selanjutnya,
kebenaran output dan menyaring jaringan pipa tidak boleh bergantung pada
urutan filter yang melakukan pemrosesan tambahan mereka-meskipun
penjadwalan wajar dapat diasumsikan.
Spesialisasi umum dari gaya ini meliputi saluran pipa, yang membatasi topologi
untuk urutan linear filter, pipa berikat yang membatasi jumlah data yang dapat
berada pada pipa, dan diketik pipa, yang mengharuskan data yang melewati
antara dua filter memiliki tipe yang didefinisikan dengan baik.
Halaman| 8
Gambar 4.3
Halaman| 9
Gambar 5.1
Berorientasi objek atau abstrak sistem data tipe adalah versi modern dari
arsitektur panggilan-dan-kembali. Paradigma berorientasi objek, seperti
paradigma tipe data abstrak dari yang berevolusi, menekankan bundling data dan
metode untuk memanipulasi dan akses data (Public Interface).
Abstraksi objek Komponen bentuk yang menyediakan layanan kotak hitam dan
komponen lainnya yang meminta layanan tersebut. Tujuannya adalah untuk
mencapai kualitas modifiability.
H a l a m a n | 10
Gambar 5.2
H a l a m a n | 11
Gambar 5.3
H a l a m a n | 12
Gambar 5.4
Dikenal secara luas contoh sebagian besar semacam ini gaya arsitektur protokol
komunikasi berlapis. Di daerah ini masing-masing lapisan aplikasi menyediakan
substrat untuk komunikasi di beberapa level abstraksi. Rendah menentukan
tingkat yang lebih rendah tingkat interaksi, terendah biasanya didefinisikan oleh
H a l a m a n | 13
hardware koneksi. Lain appli-kation daerah untuk gaya ini meliputi database
sistem dan sistem operasi.
Sistem Layered memiliki beberapa sifat yang diinginkan. Pertama, mereka
mendukung desain yang didasarkan pada peningkatan tingkat abstraksi. Hal ini
memungkinkan pelaksana untuk partisi masalah yang kompleks menjadi urutan
langkah-langkah tambahan. Kedua, mereka mendukung peningkatan. Seperti
pipa, karena setiap lapisan berinteraksi dengan di sebagian lapisan bawah dan
atas, perubahan fungsi satu lapisan berdampak pada paling banyak dua lapisan
lainnya. Ketiga, mereka mendukung kembali. Seperti jenis data abstrak,
implementasi yang berbeda dari lapisan yang sama bisa digunakan secara
bergantian, asalkan mereka mendukung interface yang sama untuk lapisan yang
berdekatan mereka. Hal ini menyebabkan untuk kemungkinan mendefinisikan
interface standar lapisan yang berbeda pelaksana dapat membangun. (Sebuah
contoh yang baik adalah ISO OSI model dan beberapa X Window System protokol.)
Tetapi sistem berlapis juga memiliki kekurangan. Tidak semua sistem yang mudah
terstruktur secara berlapis. Dan bahkan jika sistem secara logis dapat berupa
lapisan, pertimbangan kinerja mungkin memerlukan kopling dekat antara logis
tingkat tinggi fungsi dan mereka yang lebih rendah tingkat implementasi. Selain
itu bisa sangat sulit untuk menemukan tingkat yang tepat abstraksi. Hal ini
terutama benar untuk model berlapis standar. Salah satu catatan bahwa
komunikasi masyarakat telah memiliki beberapa protokol yang ada pemetaan
kesulitan ke ISO kerangka: banyak jembatan protokol tersebut beberapa lapisan.
Di satu sisi ini mirip dengan manfaat implementasi ditemukan bersembunyi dalam
tipe data abstrak. Namun, berikut ada beberapa tingkat abstraksi dan
implementasi. Mereka juga mirip dengan pipa, dalam komponen paling banyak
berkomunikasi dengan satu komponen lainnya di kedua sisi. Tapi bukannya pipa
sederhana membaca / menulis protokol pipa, sistem berlapis-lapis dapat
memberikan banyak kaya bentuk interaksi. Hal ini membuat sulit untuk
mendefinisikan sistem lapisan independen (sebagaimana dengan filter)-sejak
lapisan harus mendukung spesifik protokol di atas dan bawah batas-batasnya.
Tetapi juga memungkinkan lebih dekat interaksi antara lapisan, dan izin transmisi
dua arah informasi.
H a l a m a n | 15
pengguna interface untuk memisahkan penyajian data dari aplikasi yang
mengelola data, dan oleh-diarahkan editor sintaks untuk mendukung tambahan
semantic memeriksa.
Salah satu manfaat penting dari doa implisit adalah bahwa ia menyediakan kuat
dukungan untuk digunakan kembali. Setiap komponen dapat diperkenalkan ke
dalam sistem hanya dengan mendaftar untuk peristiwa sistem itu. Manfaat kedua
adalah bahwa implicit doa memudahkan sistem evolusi. Komponen mungkin akan
digantikan dengan yang lain komponen tanpa mempengaruhi antarmuka
komponen lain dalam sistem.
2.3.6 Repositories
Dalam gaya repositori yang berbeda ada dua macam komponen cukup: pusat
struktur data yang mewakili negara saat ini, dan sebuah koleksi independen
komponen yang beroperasi pada menyimpan data pusat. Interaksi antara
repositori dan komponen eksternal dapat bervariasi secara signifikan antara
sistem.
Pilihan disiplin kontrol mengarah ke halaman utama. Jika jenis transaksi dalam
aliran input transaksi memicu proses pemilihan mengeksekusi, repositori bisa
H a l a m a n | 16
menjadi database tradisional. Jika keadaan saat ini pusat struktur data merupakan
pemicu utama memilih proses untuk mengeksekusi, yang repositori bisa berupa
papan tulis.
Gambar 7.1
H a l a m a n | 17
Dalam diagram tidak ada representasi eksplisit control komponen. Doa dari
sumber pengetahuan dipicu oleh keadaan papan tulis. Lokus aktual kontrol, dan
karenanya pelaksanaannya, dapat dalam sumber-sumber pengetahuan, papan
tulis, modul terpisah, atau beberapa kombinasi ini.
Blackboard sistem secara tradisional telah digunakan untuk aplikasi yang
memerlukan kompleks interpretasi dari pemrosesan sinyal, seperti berbicara dan
pola pengakuan. Beberapa di antaranya yang disurvei oleh Nii. Mereka juga
muncul dalam jenis lain dari sistem yang melibatkan berbagi akses ke data dengan
longgar agen ditambah.
Ada, tentu saja, contoh lain dari sistem repositori. Batch- sistem sekuensial dengan
database global merupakan kasus khusus. Pemrograman lingkungan sering
diselenggarakan sebagai kumpulan alat bersama-sama dengan berbagi repositori
program dan fragmen program. Bahkan aplikasi yang telah secara tradisional
dipandang sebagai arsitektur jaringan pipa, mungkin lebih akurat diartikan
sebagai sistem repositori. Sebagai contoh, seperti yang akan kita lihat nanti,
sementara arsitektur compiler secara tradisional telah disajikan sebagai pipa,
yang "Fase" dari kompiler modern yang paling beroperasi pada dasar informasi
bersama (Simbol tabel, pohon sintaks abstrak, dll).
H a l a m a n | 18
Gambar 8.1
H a l a m a n | 19
internal diimplementasikan sebagai antrian FIFO diakses oleh menyisipkan dan
menghapus operasi.
Cara kedua untuk gaya untuk digabungkan adalah untuk memungkinkan
komponen tunggal gunakan campuran konektor arsitektur. Sebagai contoh,
komponen mungkin mengakses repositori melalui bagian interface-nya, tetapi
berinteraksi melalui pipa dengan komponen lain dalam sistem, dan menerima
informasi kontrol melalui bagian lain dari antarmuka. (Bahkan, pipa Unix dan
sistem filter melakukan hal ini, sistem berkas memainkan peran dan inisialisasi
switch repositori bermain peran kontrol.)
Contoh lain adalah "basis data aktif". Ini adalah repositori yang mengaktifkan
komponen eksternal melalui pemanggilan implisit. Dalam hal ini organisasi
komponen eksternal mendaftarkan minat dalam porsi dari database. Database
secara otomatis memanggil alat yang tepat berdasarkan ini asosiasi. (Papan tulis
yang sering dibangun dengan cara ini, sumber-sumber pengetahuan terkait
dengan jenis data tertentu, dan diaktifkan setiap kali seperti itu data dimodifikasi.)
Cara ketiga untuk gaya untuk digabungkan adalah untuk benar-benar rumit satu
tingkat dari deskripsi arsitektur dalam arsitektur gaya yang berbeda sepenuhnya.
Kami akan melihat contoh ini dalam studi kasus.
H a l a m a n | 20
hubungan antar modulnya (panah).
SUMBER:
H a l a m a n | 21