BAB IX PERANCANGAN ARSITEKTURAL
A. Perancangan Arsitektural Sistem-sistem besar selalu diuraikan menjadi sistem-sistem yang memberikan set layanan yang berhubungan. Proses perancangan awal untuk mengidentifikasi subsistem ini dan menetapkan kerangka kerja untuk control dan komunikasinya disebut Perancangan Arsitektural . Proses perancangan arsitektur berhubungan dengan penetapan kerangka kerja struktur dasar untuk suatu sistem. Proses ini melibatkan identifikasi komponen-komponn utama sistem
dan komunikasi antar komponen-komponen tersebut.
Ada tiga keuntungan
perancangan dan dokumentasi arsitektur perangkat lunak dengan ekspliit. Yaitu : -
Komunikasi dengan stakeholder yang sangat diperlukan untuk melihat kebutuhan sistem pasar.
-
Analisa Sistem yang sangat diperlukan untuk memenuhi persyaratan kritis seperti kinerja, kehandalan dll
-
Pemakaian ulang berskala besar.
SEdangkan kegiatan-kegiatan yang dilakukan untuk proses perancangan arsitektural adalah -
Penstrukturan sistem. Sistem distruktur menjadi sejumlah subsistem utama dimana suatu subsistem merupakan unit perangkat lunak yang indepnden. Komunikasi antar subsistem juga dimodelkan.
-
Pemodelan control. Menetapkan hubungan control antar bagian-bagian sistem.
-
Dekomposisi modular. Setiap subsistem diuraikan menjadi modul-modul selain itu harus ditentukan tip emodul dan interkoneksinya. 102
Output proses perancangan arsitektur adalah dokumen desain arsitektur. Dokumen ini terdiri dari sejumlah representasi grafis model sistem.
Model arsitektur yang dapat
dikembangkan adalah : -
Model struktur taktis, yang menunjukkan subsistem-subsistem yang dikembangkan sebagai unut yang terpisah.
-
Model proses dinamis, yang menunjukkan bagaimana sistem diorganisasi menjadi proses-proses pada saat run-time. Organisasi ini bisa berbeda dari mode statis.
-
Model interface, yang mendefinisikan layanan yang disediakan oleh setiap subsistem melalui interface umum.
-
Model hubungan,
yang menunjukkan hubungan aluran data diantara subsistem-
subsistem.
Aritektur sistem mempengaruhi kinerja, bobot, kemampuan distribusi dan kemampuan dipeliharanya suatu sistem.
Gaya dan arsitektur tertentu yang dipilih untuk aplikasi
tergantung pada persyaratan sistem non fungsional yaitu: - Kinerja Kinerja ini merupakan persyaratan kritis yang berarti arsitektur harus dirancang untuk melokalisasi operasi-operasi kritis dalam subsistem. - Keamanan Kemanan harus dibuat untuk melindungi asset-aset yang penting dan validasi keamanan juga harus dibuat. - Keselamatan
103
Keselamatam ini berhubungan dengan pengurangan biaya dan masalah validasi keamanan dan disediaknnya sistem proteksi yang berhubungan - Kemampuan dipelihara
B. Model Repositori Subsistem yang membentuk sistem harus saling bertukar informasi sehingga dapat bekerja lebih efktif. Ada dua cara untuk melakukannya yaitu: -
Semua data bersama disimpan pada database pusat sehingga dapat diakses oleh semua subsistem. Model ini disebut model repository.
-
Setiap subsistem memelihara database sendiri. Data dipertukarkan dengan subsistem lain dengan mengirimkan message .
Keuntungan model repository yang dipakai bersama adalah : -
Repositori yang dipakai bersama merupakan cara yang lebih efesien sebab dengan cara ini tidak perlu ada transmisi data secara eksplisit antar sitem.
-
Subsistem harus menyetujuai model data repository.
Karena akan sulit jika
mengintegrasikan subsistem baru jika model datanya tidak sesuai dengan sistem yang ada. -
Subsistem yang menghasilkan data tidak perlu mempermaslahkan bagaimana data dipakai oleh sub sistem lian.
-
Evolusi mungkin sulit karena informasi dengan volume besar dibangkitkan dari model data yang disetujui.
-
Tersentralisasinya kegiatan seperti backup, keamanan, control akses, dan pemulihan error.
104
-
Subsistem yang berbeda bisa memiliki persyartan yang berbeda untuk keamanan, recovery, dan backup. Model repository memaksakan kebjakan yang sama untuk semua subsistem.
-
Tidak mudah untuk mendistribusikan repository ke sejumlah mesin, karena mungkin ada redudansi data dan ketidakkonsistenan.
C. Model Client Server Model arsitektur client-server merupakan model sistem terdistribusi yang menunjukkan bagaimana data dan pemrosesan didistribusikan pada sejumlah prosessor. Komponen utama model ini adalah: -
Satu set server stand alone yang memberikan layanan ke subsistem yang lain.
-
Satu atau lebih set klient yang meminta layanan yang diberikan oleh server. Klienklien ini biasanya adalah subsistem. Teradapat beberapa instance program klien yang dieksekusi secara bersama Klien mungkin harus tahu nama server-server yang tersedia dan layanan yang
diberikan server. Tapi server tidak perlu tahu identitas pelanggan msupun berapa banyak pelanggan yang ada.
Pelanggan mengakses layanan yang disesiakan server melalui
panggilan prosedur jarak jauh ( remote procedure call). Keuntungan dari model C/S adalahmodel ini merupakan arsitektur sistem yang terdistribusi. Tidak sukar untuk menambahkan server baru dan mengintegrasikan dengan sistem atau mengaupgrade server tanpa mempengaruhi bagian lain dari sistem. Keuntungan dan Kerugian dari model C/S ini dapat dirangkum sbb:
105
Advantages: –
Distribution of data is straightforward.
–
Makes effective use of networked systems.
–
Easy to add new servers or upgrade existing servers.
Disadvantages: –
No shared data model so sub-systems may use different data organizations.
–
Redundant management in each server.
–
No central register of names and services - it may be hard to find out what servers and services are available.
D. Sistem Event-Driven Model control Event-Driven dikendalikan oleh event yang dibangkitkan secara eksternal. Event tidak hanya berarti sinyal biner. Event bisa merupakan sinyal yang dapat mengambil nilai berapapun Ada dua model Event-Driven yaitu: -
Model Broadcast Pada model ini suatu event melakukan penyiaran (broadcast) event ke semua subsistem. Setiap subsistem akan meneriam event tersebut. Hal tersebut dapat dilihat pada gambar 9.1 Sub-system 1
Sub-system 2
Sub-system 3
Sub-system 4
Event and message handler
Gambar 9.1 Gambar model Broadcast
106
-
Model interrupt-driven Model ini digunakan pada sistem real time dimana interrupt eksternal dideteksi oleh sebuah interrupt handler. Interup-interupt ini akan diteruskan ke komponen lain untuk diolah. Gambar dari model interrupt drivent ini dapat dilihat pada gambar 9.2 Interrupts
Interrupt vector
Handler 1
Handler 2
Handler 3
Handler 4
Process 1
Process 2
Process 3
Process 4
Gambar 9.2 Model Interupt Handler Pada gambar tersebut ada sejumlah tipe interrupt yang diketahui,yang didefinisikan handler untuk setiap tipenya.
Setiap tipe interrupt dihubungkan dengan lokasi
memory di mana alamat handler disimpan. Ketika interrupt dengan tipe tertentu diterima, suatu saklar perangkat keras mengakibatkan control ditransfer langsung ke handlernya. Handler interrupt ini kemudian dapat memulai atau menghentikan proses lain sebagai tanggapan terhadap event yang disinyalkan oleh interrupt tersebut. Keuntungan dari model ini adalah dimungkinkannya tanggapan yang sangat cepat terhadap event yang akan diimplementasikan. Sedangkan kerugiannya adalah pemrogramannya menjdi kompleks dan validasinya menjadi sulit.
107
E. Dekomposisi Modular. Setelah arsitektur selesai dibuat dilanjutkan dengan proses perancangan arsitektural yaitu menguraikan (dekomposisi) subsistem menjadi modul-modul. Ada dua model yang dapat digunakan untuk dekomposisi modul yaitu: 1. Model Berorientasi Objek, dimana sistem diuraikan menjadi serangkaian objek yang berkomunikasi. 2. Model Aliran Data, sistem diuraikan menjadi modul-modul fungsional yang menerima input dan mentransformasikan menjadi data output. Ini disebut juga pendekatan pipeline. Pada model berorientasi objek, modul adalah objek dengan status privat dan operasi yang didefinisikan pada stataus tersebut. Pada model aliran data, modul merupakan transformasi fungsional 1. Model Objek Model berorientasi objek menstruktur sistem menjadi serangkaian objek yang terhubung dengan interface. Objek memanggil layanan yang diberikan oleh objek lain. Gambar 9.3 menunjukkan contoh model objek suatu pemrosesan faktur. Sistem dapat mengeluarkan faktur untuk pelanggan, menerima pembayaran, mengeluarka resi. Ta\nda panah terputus putus menunjukkan objek memakai atribut atau layanan yang disediakan oleh objek lain. Pada contoh ini ada kelas Invoice yang memiliki berbagai operasi .
Kelas ini menggunakan kelas lain untuk merepresentasikan
pelangga, pembayaran dan resi.
108
Customer customer# name address credit period
Receipt invoice# date amount customer#
Invoice invoice# date amount customer
Payment invoice# date amount customer#
issue () sendReminder () acceptPayment () sendReceipt ()
Gambar 9.3 Sistem pemesanan faktur (Invoice) Keuntungan pendekatan berorientasi objek diantaranya: -
Karena objek-objek terkopel (coupled) secara longgar, maka implementasi objek dapat dimodifikasi tanpa mempengaruhi objek lainnya.
-
Objek merupakan gambaran dari dunia nyata sehingga sistem lebih mudah dimengerti.
-
Objek dapat digunakan ulang (reusable).
Kelemahan pendekatan berorientasi objek diantaranya: -
Dalam memakai layanan, objek harus mengacu nama dan interface ke objek lain secara eksplisit.
-
Jika ada perubahan maka akan mengakibatkan dampak bagi user objek yang lain.
-
Kadang-kadangentitas yang kompleks susah direpresentasikan sebagai objek.
2. Model Aliran Data Pada model aliran data (Data Flow Diagram) transformasi memproses input menjadi output. Contoh untuk model ini dapat dilihat pada gambar 9.4 dimana sebuah organisasi telah mengeluarkan faktur kepada pelanggan.
Sekali seminggu pembayaran yang telah
109
dilakukan dipasangkan dengan fakturnya. Untuk fkatur yang telah dibayara diberikan resi. Dan yang belum dibayar diberikan perngatan .
Read issued invoices
Invoices
Issue receipts
Receipts
Find payments due
Issue payment reminder
Identify payments Reminders
Payments
Gambar 9.4 DFD Pemrosesan Faktur. Keuntungan : -
Mudah dimengerti karena sistem dilihat dari sudut input dan output sistem.
-
Mendukung pemakaian ulang
-
Urutan proses sistem lebih mudah dipahami
Kelemahan: -
Butuh format secara umum
-
Lebih sulit menggabungkan dengan format GUI
110