• Tidak ada hasil yang ditemukan

2.12 Analisis dan Perancangan Sistem Informasi .1 Object-Oriented Analysis and Design

2.12.5 Architectural Design

Menurut Mathiassen et al. (2000, p173) keberhasilan sistem dibedakan dari kekuatan desain arsitekturalnya. Arsitektur membentuk sistem berdasarkan bagian-bagian dan memenuhi kriteria desain tertentu.

Gambar 2.12 Aktivitas-aktivitas dalam architectural design Sumber: Mathiassen et al. (2000, p176)

Aktivitas-aktivitas dalam architectural design ada tiga, yaitu: 1. Criteria

Object-oriented design merupakan hal utama dan terlebih dahulu dievaluasi untuk mengetahui pada sejauh mana akan memenuhi kebutuhan yang ditentukan dalam aktivitas analisa. Tujuan dasar dari object-oriented design adalah untuk menggambarkan sistem dengan cara mengeliminasi ketidakpastian.

Mathiassen et al. (2000, p178), menyatakan bahwa criterion merupakan properti istimewa pada arsitektur. Conditions merupakan teknikal, organisasional, peluang dan batasan manusia dalam melaksanakan suatu tugas.

Criterion Measure of

Usable

Kemampuan sistem untuk beradaptasi pada konteks organisasional, berhubungan dengan pekerjaan, dan teknikal.

Secure Tindakan pencegahan pada akses tidak sah

terhadap data dan fasilitas.

Efficient Eksploitasi ekonomis terhadap fasilitas platform

teknikal.

Correct Pemenuhan dari kebutuhan.

Reliable Pemenuhan ketepatan yang dibutuhkan pada

eksekusi fungsi.

Maintainable Biaya untuk menemukan dan memperbaiki

kerusakan sistem.

Testable Biaya untuk memastikan bahwa sistem yang

dibentuk dapat melaksanakan fungsi yang diinginkan.

Flexible Biaya untuk memodifikasi sistem yang telah

dibentuk.

Comprehensible Usaha yang dibutuhkan untuk mendapatkan

pemahaman pada sistem.

Reusable Potensi untuk menggunakan bagian sistem pada

Portable Biaya untuk memindahkan sistem pada platform teknikal lain.

Interoperable Biaya untuk menggabungkan sistem ke sistem

yang lain.

Gambar 2.13 Kriteria klasik untuk kualitas software Sumber: Mathiassen et al. (2000, p75)

2. Components

Menurut Mathiassen et al. (2000, p189), component architecture merupakan sistem tampilan struktural yang memisahkan urusan sistem. Component architecture terdiri dari komponen yang saling berhubungan. Definisi dari component adalah kumpulan bagian program yang merupakan kesatuan dan memiliki tanggung jawab yang jelas.

Beberapa pola umum untuk mendesain component architecture adalah: a) Layered architecture pattern

Pada form paling sederhana, layered architecture terdiri dari beberapa component yang dibentuk menjadi lapisan-lapisan. Desain dari tiap components menggambarkan tanggung jawab seperti interfaces ke atas dan ke bawahnya. Interface ke bawah menggambarkan operasi apa yang dapat diakses component pada lapisan bawah. Interface ke atas menggambarkan operasi yang tersedia pada lapisan atas.

Gambar 2.14 Layered architecture pattern Sumber: Mathiassen et al. (2000, p193)

b) Generic architecture pattern

Generic architecture pattern digunakan untuk merinci sistem dasar yang terdiri dari component, interface, function, dan model. Component model terletak di lapisan paling bawah, diikuti dengan system function layer dan pada lapisan paling atas terdapat component interface.

Gambar 2.15 Generic architecture pattern Sumber: Mathiassen et al. (2000, p196)

c) Client-server architecture pattern

Client-server architecture pada awalnya dikembangkan untuk mengatasi distribusi sistem di antara prosesor yang tersebar di beberapa wilayah geografi. Komponen pada client-server architecture adalah server dan beberapa client. Server mempunyai beberapa kumpulan operasi yang dapat tersedia untuk client. Server mempunyai tanggung jawab untuk menyediakan apa yang dibutuhkan client, misalnya shared database atau shared resources lainnya. Sedangkan client memiliki tanggung jawab untuk menyediakan interface lokal bagi pengguna.

Berikut adalah beberapa bentuk distibusi pada client-server architecture:

Gambar 2.16 Client server architecture pattern Sumber: Mathiassen et al. (2000, p197)

Gambar 2.17 Bentuk-bentuk distribusi dalam client-server architecture Sumber: Mathiassen et al. (2000, p200)

3. Processes

Menurut Mathiassen et al. (2000, p211), process architecture merupakan struktur eksekusi sistem yang terdiri dari proses-proses yang saling bergantung dan processor merupakan sebuah peralatan yang dapat mengeksekusi program. Hasil aktivitas processes adalah deployment diagram yang menjelaskan distribusi dari kolaborasi dari component program dan object aktif pada prosesor.

Menurut Mathiassen et al. (2000,p215), ada tiga pola distribusi, yaitu: a) The centralized pattern

Solusi paling mudah untuk masalah distribusi adalah untuk mendistribusikannya sesedikit mungkin. Hal ini dapat dilakukan dengan menyimpan semua data pada server pusat dan client hanya menangani user

interface. Kelebihan dari proses arsitektur ini adalah dapat

diimplementasikan pada client secara murah, semua data konsisten karena terdapat pada satu tempat yang sama, struktur mudah dimengerti dan diimplementasikan, dan lalu lintas jaringannya sedang.

Gambar 2.18 Deployment diagram untuk centralized pattern Sumber: Mathiassen et al. (2000, p216)

b) The distributed pattern

The distributed pattern merupakan kebalikan ideal desain dari centralized pattern. Semua didistribusikan pada client dan yang diperlukan server hanya untuk menyiarkan model terkini antar client. Kelebihan utama dari arsitektur ini adalah waktu akses yang rendah, kinerja lebih maksimal, dan mempunyai banyak back up data. Kekurangannya adalah redundansi data, inkonsistensi data, lalu lintas jaringan tinggi, lebih sulit untuk dimengerti dan diimplementasikan.

Gambar 2.19 Deployment diagram untuk distributed pattern Sumber: Mathiassen et al. (2000, p217)

c) The decentralized pattern

Pola ini terdapat di antara dua pola sebelumnya. Client memiliki data sendiri, sehingga hanya data yang umum yang terdapat pada server. Kelebihannya adalah konsistensi data, muatan jaringan rendah, dan waktu akses yang rendah. Kekurangan utamanya adalah semua prosesor harus mampu untuk mengeksekusi functions yang rumit dan memelihara model yang besar.

Gambar 2.20 Deployment diagram untuk decentralized pattern Sumber: Mathiassen et al. (2000, p217)

2.12.6 Component Design

Tujuan dari component design menurut Mathiassen et al. (2000, p231) adalah untuk menentukan implementasi dari kebutuhan dalam kerangka kerja arsitektural. Hasil dari aktivitas ini adalah spesifikasi dari component yang berhubungan.

Gambar 2.21 Component design Sumber: Mathiassen et al. (2000, p232)

Aktivitas-aktivitas dalam component design adalah:

1. Model component

Menurut Mathiassen et al. (2000, p236), model component merupakan bagian dari sistem yang mengimplementasikan model problem-domain. Hasil dari aktivitas model component adalah class diagram revised dari aktivitas analisa yang terdiri atas aktivitas penambahan class, attribute, dan struktur baru yang mewakili event.

2. Function component

Tujuan dari function component menurut Mathiassen et al. (2000, p251) adalah untuk memberikan user interface dan component sistem lainnya akses pada model. Definisi function component adalah bagian dari sistem yang mengimplementasikan kebutuhan fungsional.

3. Connecting components

Tujuan dari connecting components menurut Mathiassen et al. (2000, p271) adalah untuk menghubungkan components sistem. Fleksibilitas dan komprehensibilitas merupakan sesuatu yang umum, kriteria abstrak untuk desain. Pada praktiknya, kriteria harus dipahami melalui pengukuran nyata yang berhubungan dengan bagian dari sistem. Terdapat dua pengukuran struktural yang dapat dilakukan, yaitu:

a) Coupling

Coupling menyatakan bahwa perubahan pada satu class atau component mengharuskan perubahan pada class atau component lainnya. Definisi coupling menurut Mathiassen et al. (2000, p272) adalah pengukuran kedekatan hubungan dua class atau component. Coupling dapat berbentuk satu dari empat bentuk:

1) Outside coupling

Sebuah class atau component yang mengarah langsung pada properti public dari class atau component lain.

2) Inside coupling

Operasi yang mengarah langsung pada properti private lain pada class yang sama.

3) Coupling from below

Class khusus yang mengarah langsung pada properti private dalam super class.

4) Sideways coupling

Sebuah class yang mengarah langsung pada properti private dalam class lain.

b) Cohesion

Cohesion menyatakan bahwa sebuah class atau component merupakan kesatuan dengan hubungan yang penting di antara bagian-bagiannya. Definisi cohesion menurut Mathiassen et al. (2000, p273) adalah pengukuran seberapa baik ikatan sebuah class atau component.

Dokumen terkait