Professional Documents
Culture Documents
Materi 7
Materi 7
1. PENGENALAN ARSITEKTUR PL
Arsitektur perangkat lunak adalah sekumpulan pernyataan yang menggambarkan
komponen perangkat lunak dan fungsi-fungsi yang ada pada komponen tersebut. Ia
menggambarkan struktur teknis, batasan-batasan, ciri-ciri, serta antarmuka pada
komponen-komponen tersebut. Arsitektur merupakan rancangan fisik sistem dan oleh
karena itu membutuhkan rencana yang matang pada saat pembuatannya (Krafzig et al,
2004).
Arsitektur perangkat lunak merupakan struktur sebuah sistem, yang meliputi
elemen perangkat lunak, sifat (property) yang tampak dari elemen itu, serta relasi di
antara elemen-elemen tersebut (Bass et al dalam Krafzig et al, 2004). Sifat yang tampak
misalnya fungsi apa saja yang disediakan oleh elemen, bagaimana kinerjanya, bagaimana
penanganan kesalahannya, sumber daya apa saja yang digunakan.
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.
Gambar 2.1
Lapisan Perangkat Lunak Secara Umum
Resources : Software Engineering - A Practitioner's Approach
Roger S. Pressman, 2003, McGraw-Hill.
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).
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.
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.
RAGAM ARSITEKTUR
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.
Gambar 4.3
3. Call and Return Architectures
Call and Return Arhitectures memiliki tujuan untuk mencapai kualitas
modifiability dan solvabilitas. Call and Return Architectures telah menjadi gaya
arsitektur dominan dalam sistem perangkat lunak besar selama 30 tahun terakhir.
Namun, dalam gaya sejumlah substyles, yang masing-masing memiliki fitur yang
menarik, telah muncul.
Arsitektur Main-Program-dan subrutin adalah paradigm pemrograman klasik.
Tujuannya adalah untuk menguraikan program menjadi potongan kecil untuk
membantu mencapai modifiability.
Suatu program merupakan dekomposisi hierarkis. Ada benang tunggal biasanya
control dan masing-masing komponen dalam hirarki mendapatkan control ini
(opsional bersama dengan beberapa data) dari orang tua dan melewati itu bersama
anak-anaknya.
Gambar 5.1
Sistem prosedur panggilan Remote adalah sistem utama-program-dan-sub rutin
yang diuraikan menjadi bagian-bagian yang hidup di komputer yang terhubung
melalui jaringan. Tujuannya adalah untuk meningkatkan kinerja dengan
mendistribusikan perhitungan dan mengambil keuntungan dari beberapa prosesor.
Dalam sistem pemanggilan prosedur remote, penugasan sebenarnya bagian untuk
prosesor ditangguhkan sampai runtime, yang berarti bahwa tugas mudah diubah
untuk mengakomodasi tuning kinerja. Pada kenyataannya, kecuali bahwa panggilan
subroutine memerlukan waktu lebih lama untuk menyelesaikan jika pemanggilan
fungsi pada mesin remote, panggilan prosedur remote tidak dapat dibedakan dari
program utama standar dan sistem subrutin.
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.
Gambar 5.2
Rangkaian ini adalah enkapsulasi suatu yang menyembunyikan rahasia internal
dari lingkungannya. Akses ke objek hanya diperbolehkan melalui operasi yang
disediakan, biasanya dikenal sebagai metode, yang dibatasi bentuk prosedur panggilan.
enkapsulasi ini mempromosikan penggunaan kembali dan modifiability, terutama karena
mempromosikan pemisahan keprihatinan:
1. Pengguna jasa tidak perlu tahu, dan tidak harus tahu, apa-apa tentang
bagaimana layanan yang diimplementasikan.
2. Sistem berlapis adalah orang-orang di mana komponen ditugaskan ke lapisan
untuk mengontrol interaksi intercomponent. Dalam versi murni arsitektur ini,
setiap tingkat hanya berkomunikasi dengan tetangga terdekat.
Gambar 5.3
Tujuannya adalah untuk mencapai kualitas modifiability dan, biasanya, mudah
dibawa. Lapisan terendah menyediakan beberapa fungsi inti, seperti perangkat keras, atau
kernel sistem operasi. Setiap lapisan berturut-turut dibangun di atas pendahulunya,
menyembunyikan lapisan bawah dan menyediakan beberapa layanan yang lapisan atas
memanfaatkan.
Gambar 5.4
4. Layered architectures
Sebuah sistem berlapis diatur secara hirarki, setiap lapisan menyediakan layanan
kepada lapisan di atasnya dan melayani sebagai klien ke lapisan bawah. Dalam
beberapa berlapis Sistem lapisan dalam yang tersembunyi dari semua kecuali lapisan
luar yang berdekatan, kecuali untuk fungsi-fungsi tertentu dipilih dengan cermat
untuk ekspor. Jadi dalam sistem ini yang menerapkan komponen-komponen mesin
virtual pada beberapa lapisan dalam hirarki. (Dalam sistem berlapis lapisan lainnya
mungkin hanya sebagian buram.) Konektor didefinisikan oleh protokol yang
menentukan bagaimana lapisan akan berinteraksi. Kendala Topological termasuk
membatasi interaksi ke lapisan yang berdekatan.
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 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.
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 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
Gambar diatas mengilustrasikan pandangan sederhana dari sebuah arsitektur
papan tulis. Papan Model biasanya disajikan dengan tiga bagian utama:
Sumber pengetahuan (The knowledge sour ces) : terpisah, paket independen
dari aplikasi tergantung pengetahuan. Interaksi antara sumber-sumber
pengetahuan yang diperlukan tempat hanya melalui papan tulis.
Papan tulis struktur data (The blackboard data structure) : pemecahan masalah
negara data, terorganisir menjadi tergantung aplikasi hirarki. Pengetahuan
sumber melakukan perubahan papan tulis yang mengarah bertahap untuk solusi
untuk masalah tersebut.
Pengendalian (Control) : didorong sepenuhnya oleh negara dari papan tulis.
sumber Pengetahuan merespon oportunis ketika perubahan di papan tulis
membuat mereka berlaku.
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).
8. Heterogeneous Architectures
Sejauh ini kita telah berbicara terutama dari "murni" gaya arsitektur. Meskipun
penting untuk memahami sifat individu dari masing-masing gaya, kebanyakan sistem
biasanya melibatkan beberapa kombinasi dari beberapa gaya.
Ada berbagai cara di mana gaya arsitektur dapat dikombinasikan. Salah satu cara
adalah melalui hirarki. Sebuah komponen dari suatu sistem yang diselenggarakan di
satu gaya arsitektur mungkin memiliki struktur internal yang dikembangkan sebuah
yang sama sekali berbeda gaya. Sebagai contoh, dalam sebuah pipa Unix individu
komponen dapat diwakili secara internal menggunakan hampir gaya apapun-
termasuk, tentu saja, lain pipa dan filter, sistem.
Apa yang mungkin lebih mengejutkan adalah bahwa konektor juga, seringkali
dapat secara hirarki membusuk. Sebagai contoh, sebuah konektor mungkin pipa
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.
Sebuah bagan struktur juga digunakan untuk diagram elemen terkait yang terdiri dari
aliran run atau thread. Hal ini sering dikembangkan sebagai diagram hirarkis , tetapi representasi
lain diijinkan. Representasi harus menjelaskan rincian dari sistem konfigurasi ke subsistem dan
tingkat terendah dikelola. Sebuah bagan struktur yang akurat dan lengkap adalah kunci untuk
penentuan item konfigurasi, dan representasi visual dari sistem konfigurasi dan antarmuka
internal. Selama proses konfigurasi kontrol, bagan struktur digunakan untuk mengidentifikasi
dan artefak yang terkait bahwa perubahan yang diusulkan dapat mempengaruhi.
Struktur chart umumnya dipakai dalam perencanaan top-down programming (Alat bantu
ini sering juga disebut hirarki atau tingkatan, atau chart atau visual table of contents-VTOC).
Pada saat ini tidak ada standar yang digunakan dalam struktur chart, dan teknik yang akan
dikemukakan dibawah ini, yang bekerja cukup baik,serta kenapa digunakan sebagai alat diambil
dari berbagai variasi sumber. Contoh structure chart : php
2.2. Komponen Stucture Chart
Produk dari Perancangan Terstruktur adalah Structure Chart yang memperlihatkan
komponen-komponen prosedural program, pengaturan hierarkinya dan data yang
menghubungkan komponen-komponen tersebut.
2.3. Model Bagan Terstruktur
Bagan terstruktur adalah mendefinisikan dan Mengilustrasikan Organisasi dari system
informasi secara berjenjang dalam bentuk modul dan submodul.
2.4. Elemen Struktur Chart Diagram terdiri dari :
1. Elemen data
2. Elemen control
3. Modul
Transform Analysis
Model aliran informasi yang digunakan untuk merancang program dengan mengenali
komponen-komponen fungsional utama serta masukan dan keluarannya.
Dalam DFD sebuah transformasi direpresentasikan oleh sebuah jaringan yang berbentuk
linier.