2.11 Object Oriented Analysis & Design (OOA&D)
2.11.3 Architectural Design
Arsitektur komponen berfokus pada kelas (aspek stabil) yang menyusun sistem dalam komponen yang berhubungan, dan terutama memperhatikan pertimbangan secara logis. Arsitektur komponen memecahkan sistem menjadi komponen-komponen yang dapat diidentifikasi dan berhubungan satu sama lain (Mathiassen, et al., 2000, p174).
Arsitektur proses berfokus pada objek (aspek dinamis) yang menyusun proses-proses sistem untuk mencapai koordinasi dan penggunaan efisien dari
technical platform, dan terutama memperhatikan pertimbangan secara fisik.
Arsitektur proses memecahkan sistem menjadi beberapa proses yang saling berinteraksi (Mathiassen, et al., 2000, p174).
Hubungan dan perbandingan antara arsitektur komponen dan arsitektur proses dapat dilihat pada Gambar 2.14.
Sumber: Mathiassen, et al., 2000, p174
Gambar 2.14 Arsitektur Komponen dan Arsitektur Proses
Istilah-istilah yang terdapat dalam perancangan arsitektur:
• Kualitas dan objektif perancangan: kriteria-kriteria ini diterapkan untuk menentukan apakah sebuah perancangan memenuhi tujuannya (Bennett, Mcrobb, & Farmer, 2010, p 354). Kriteria-kriteria tersebut dapat dilihat pada Tabel 2.1.
Tabel 2.1 Kriteria Klasik untuk Kualitas Software Kriteria Pengukuran dari
Functional
Kemampuan fungsi untuk dapat bekerja secara benar dan lengkap sesuai dengan harapan dan kebutuhan user (Bennett, Mcrobb, & Farmer, 2010, p354-355).
Efficient
Penghematan sumber daya yang digunakan untuk menjalankan fungsi, meliputi penyimpanan disk, waktu pemrosesan, dan kapasitas jaringan guna untuk mengoptimalkan solusi yang dihasilkan (Bennett, Mcrobb, & Farmer, 2010, p355).
Economical
Biaya tetap dari hardware dan software yang digunakan dan juga biaya yang ditimbulkan dari menjalankan sistem (Bennett, Mcrobb, & Farmer, 2010, p356).
Reliable
Kehandalan sistem yang diukur dari ketidakmudahan hardware atau
software gagal dan dapat dipercaya untuk memelihara integritas dari data
dalam sistem (Bennett, Mcrobb, & Farmer, 2010, p356).
Secure
Keamanan sistem yang harus dirancang untuk menghindari adanya serangan jahat dari orang luar dan terhadap orang dalam yang tidak berhak (Bennett, Mcrobb, & Farmer, 2010, p356).
Flexible
Kemampuan sistem untuk dapat beradaptasi terhadap perubahan kebutuhan bisnis yang berbeda-beda dari waktu ke waktu (Bennett, Mcrobb, & Farmer, 2010, p356-357).
General
Kemampuan penerapan pada program utilitas dibanding sistem informasi besar, mencakup juga penerapan pada hardware yang berbeda. Sistem yang sama harus dapat digunakan pada client di industri lain (Bennett, Mcrobb, & Farmer, 2010, p357).
Buildable
Kemampuan pembangunan sistem dengan penulisan kode program berdasarkan sudut pandang programmer (Bennett, Mcrobb, & Farmer, 2010, p357).
Manageable Kemampuan pengelolaan terhadap konsekuensi perubahan bagian dari sistem dalam pengembangan (Bennett, Mcrobb, & Farmer, 2010, p357).
Maintainable Kemampuan perancangan yang baik untuk mendukung pemeliharaan sistem yang semakin mudah (Bennett, Mcrobb, & Farmer, 2010, p357).
Usable Kemampuan sistem untuk dapat memuaskan kebutuhan user dan
produktif (Bennett, Mcrobb, & Farmer, 2010, p358).
Reusable
Kemampuan sistem untuk dapat dipakai kembali, baik dalam berupa kelas atau komponen yang sudah ada untuk diturunkan ke sistem lain (Bennett, Mcrobb, & Farmer, 2010, p358).
• Kondisi: teknikal, organisasi, dan kesempatan dan batasan manusia yang terlibat dalam melakukan sebuah tugas (Mathiassen, et al., 2000, p178).
• Arsitektur komponen: sebuah struktur sistem yang menyusun komponen-komponen yang saling berhubungan. Tujuan utama dari arsitektur komponen-komponen adalah bahwa sistem menjadi mendalam dan fleksibel (Mathiassen, et al., 2000, p190-191).
• Komponen: sebuah bagian terbatas dari sebuah sistem dan biasanya mengandung lebih dari satu kelas, yang berfokus pada tanggung jawab komponen dalam hubungannya dengan komponen lainnya (Mathiassen, et al., 2000, p191).
Menurut Mathiassen, et al. (2000, p201), tiga perhatian utama dalam komponen adalah: model, fungsi, dan interface.
9 Model: tanggung jawab utama dari komponen adalah untuk memegang objek yang mewakili problem domain (Mathiassen, et al., 2000, p201). 9 Fungsi: tanggung jawab utama dari sebuah function component adalah
untuk menyediakan fungsionalitas model. Apabila sistem memiliki kebutuhan fungsional yang rumit, maka perlu dilakukan pemisahan pada
function component (Mathiassen, et al., 2000, p203).
9 Interface: tanggung jawab utama dari sebuah interface component adalah untuk menangani interaksi antara aktor dan fungsionalnya (Mathiassen, et al., 2000, p204).
• Arsitektur proses: sebuah struktur pengeksekusian sistem yang terdiri dari proses-proses yang saling bergantungan. Tujuan dari perancangan arsitektur
proses adalah untuk menyusun kegiatan eksekusi pada sebuah tingkat fisikal (Mathiassen, et al., 2000, p210-211).
Menurut Mathiassen, et al. (2000, p175-176), langkah-langkah dalam perancangan arsitektur:
• Kriteria: membantu dalam mengelompokkan prioritas perancangan. Tidak ada resep umum atau sederhana untuk perancangan yang baik; untuk mencapainya, kondisi dari masing-masing proyek pengembangan tertentu harus dipertimbangkan (Mathiassen, et al., 2000, p177).
• Pola arsitektur client-server: arsitektur ini dikembangkan untuk menangani distribusi dari sebuah sistem antara beberapa processor yang tersebar secara geografis. Komponen-komponen dalam sebuah arsitektur client-server adalah sebuah server dan beberapa client (lihat Gambar 2.15) (Mathiassen, et al., 2000, p197).
Sumber: Mathiassen, et al., 2000, p197
Gambar 2.15 Pola Arsitektur Client-Server
Tanggung jawab server adalah untuk menyediakan hal yang umum bagi
jawab client adalah untuk menyediakan sebuah interface lokal untuk user. Arsitektur berlapis menawarkan sebuah disiplin hierarki, dimana arsitektur
client-server merupakan sebuah ekspresi dari pemikiran jaringan (Mathiassen, et al., 2000, pp197-198).
Untuk memperoleh bentuk tersebut, pola client-server digunakan sebagai sebuah dasar, kemudian diuraikan dalam arsitektur dasar, menggunakan komponen model (M), fungsi (F), dan user interface (U) (Mathiassen, et al., 2000, p200). Macam pola distribusi arsitektur diperlihatkan dalam Tabel 2.2.
Tabel 2.2 Bentuk Berbeda dari Distribusi Arsitektur Client-Server
Client Server Arsitektur
U U + F + M Distributed presentation
U F + M Local presentation
U + F F + M Distributed functionality
U + F M Centralized data
U + F + M M Distributed data
Sumber: Mathiassen, et al., 2000, p200
Proses: arsitektur proses membawa kepada tingkatan fisikal dari sistem yang berfokus pada distribusi dan eksekusi, dan bekerja dengan proses dan objek sebagai lawan dari komponen dan kelas. Arsitektur proses juga berhubungan dengan peralatan eksternal yang akan dieksekusi oleh sistem dan dipertimbangkan apabila koordinasi penyebaran sumber daya diperlukan (Mathiassen, et al., 2000, p209).
Component diagram dapat digunakan untuk memodelkan baik pandangan abstrak, logis dari komponen-komponen dalam sistem atau subsistem atau
komponen fisik yang dipakai (Bennett, Mcrobb, & Farmer, 2010, p564).
Deployment diagram merupakan diagram implementasi utama dalam UML
yang digunakan untuk menunjukkan konfigurasi dari elemen proses waktu berjalan dan artifak software dan proses yang berada di dalamnya (Bennett, Mcrobb, & Farmer, 2010, p566). Notasi penggambaran deployment diagram dapat dilihat pada Gambar 2.16.
Sumber: Mathiassen, et al., 2000, p339
Gambar 2.16 Notasi untuk Deployment Diagram
Perancangan arsitektur proses dapat dikatakan sebagai titik keberangkatan dari komponen logis yang muncul dari aktivitas komponen. Tujuannya adalah untuk mencapai sebuah distribusi logis mengenai komponen-komponen dalam processor yang tersedia untuk eksekusi (Mathiassen, et al., 2000, p213).
Menurut Mathiassen, et al. (2000, p215-219), ada tiga macam pola
distribusi:
9 Pola terpusat: solusi paling mudah bagi masalah distribusi adalah mendistribusikan sesedikit mungkin, yang dapat dicapai dengan menyimpan semua data dalam server pusat dan client hanya menangani
user interface (Gambar 2.17) (Mathiassen, et al., 2000, p215-216).
Sumber: Mathiassen, et al., 2000, p216
Gambar 2.17 Pola Terpusat Deployment Diagram
Keuntungan dari pola ini, antara lain: dapat diimplementasi dengan client yang tidak mahal, semua data konsisten dikarenakan hanya berada pada satu tempat, strukturnya sederhana untuk dapat dipahami dan diimplementasi, dan kepadatan jaringannya menengah (Mathiassen, et al., 2000, p216).
Kerugian dari pola ini, antara lain: kekuatan tingkat rendah, client tidak dapat melakukan apapun apabila server atau jaringan down, waktu pengaksesan tinggi dikarenakan aktivasi beberapa fungsi client termasuk perubahan dengan server, dan perancangan tidak memfasilitasi cadangan (backup) data (Mathiassen, et al., 2000, p217).
9 Pola terdistribusi: pada pola ini, segala sesuatunya didistribusikan kepada
client dan server hanya perlu mengumumkan pembaharuan model antara client. Sebuah salinan dari model lengkap terletak pada masing-masing client (Gambar 2.18) (Mathiassen, et al., 2000, p217).
Sumber: Mathiassen, et al., 2000, p217
Gambar 2.18 Pola Terdistribusi Deployment Diagram
Keuntungan dari pola ini, antara lain: waktu pengaksesan rendah, dikarenakan fungsi dan model berada pada client lokal dan tidak terjadi kepadatan jaringan, kekuatan dimaksimasi karena seorang client dapat melanjutkan pekerjaan bahkan ketika jaringan, server, dan seluruh client lain down, dan banyaknya cadangan (backup) data karena setiap client
memiliki sebuah salinan dari model lengkap (Mathiassen, et al., 2000, p218).
Kerugian dari pola ini, antara lain: jumlah dari data berlimpah dan potensi ketidak-konsistenan antara data yang berada pada client yang berbeda, kepadatan jaringan tinggi sebagai akibat dari pembaharuan pada client diumumkan kepada seluruh client, kebutuhan teknis meningkat karena
client harus menjalankan model, fungsi, dan interface, dan arsitektur akan
lebih rumit untuk dipahami dan diimplementasi (Mathiassen, et al., 2000, p218).
9 Pola terdesentralisasi: pola ini terletak di antara dua pola sebelumnya.
Client memiliki data masing-masing, sehingga hanya data umum yang
terletak dalam server (Gambar 2.19) (Mathiassen, et al., 2000, p218).
: Client Function Model (local) System Interface User Interface
...
: Server Function Model (common) System Interface User Interface More ClientsSumber: Mathiassen, et al., 2000, p219
Keuntungan dari pola ini, antara lain: konsistensi data karena tidak ada penggandaan data antar client atau antara client dan server, beban jaringan rendah karena jaringan hanya digunakan ketika data umum diperbaharui di
server, dan waktu pengaksesan untuk data lokal rendah, meskipun akses
untuk data umum memerlukan waktu yang lebih panjang (Mathiassen, et al., 2000, p218).
Kerugian dari pola ini, antara lain: seluruh processor harus memiliki kemampuan untuk mengeksekusi fungsi kompleks dan mempertahankan sebuah model besar, biaya hardware meningkat, dan sistem tidak memiliki fasilitas cadangan (backup) built-in, yang memungkinkan perlunya penanganan lokal (Mathiassen, et al., 2000, p218).