Thursday, June 7, 2007

Desain yang berorientasi pada Objek

Pengantar
Object-oriented design (OOD) dipakai untuk mentransformasikan model analisa yang dikembangkan dalam object-oriented analysis ke suatu model desain yang berfungsi sebagai blue-print untuk pembuatan perangkat lunak. Berbeda dengan metode desain perangkat lunak konvensional, OOD menghasilkan suatu desain yang memiliki beberapa level modularity. Komponen-komponen sistem utama diorganisasikan dalam subsistem-subsistem. Data dan operasi untuk memanipulasi data tersebut di-encapsulasi sebagai object.

Object-oriented design memiliki kemampuan untuk menerapkan empat konsep desain perangkat lunak utama, yaitu:
1.abstraction
2.information hiding
3.functional independence
4.modularity

Semua metode desain perangkat lunak memang bertujuan untuk bisa menerapkan ke-empat konsep tersebut diatas, tetapi hanya OOD yang menyediakan mekanisme yang memungkinkan para desainer untuk menerapkannya dengan tingkat kekompleksan yang lebih ringan.


OOD Methods
Berikut ini adalah ringkasan dari beberapa OOD methods yang cukup populer:
1.Booch Method
2.Coad and Yourdon Method
3.Jacobson Method
4.Rumbaugh Method
5.Wirfs-Brock Method

OOD Method dari Booch tetap memakai micro dan macro-development processes seperti pada OOA method-nya. Berikut ini adalah ringkasan dari OOD micro-development process dari Booch:
1.Perencanaan Arsitektur
2.Desain taktis
3.Perencanaan Release

OOD Method dari Coad dan Yourdon dikembangkan dengan cara mempelajari bagaimana cara kerja dari para desainer sistem object-oriented yang efektif. Pendekatan yang dipakai tidak hanya untuk aplikasi, tetapi juga termasuk infrastruktur dari aplikasi. Berikut ini adalah ringkasan dari OOD Method dari Coad dan Yourdon:
1.Komponen domain permasalahan
2.Komponen interaksi manusia
3.Komponen manajemen task
4.Komponen manajemen data

OOD Method dari Jacobson menekankan pada traceability dari OOSE analysis model. Ringkasan proses OOD dari Jacobson adalah:
1.Pertimbangkan adaptasi untuk model analisa yang ideal supaya bisa cocok dengan lingkungan sistem yang sesungguhnya.
2.Buat block-block sebagai desain object utama. Block adalah abstraksi desain yang memungkinkan representasi dari aggregate objects (object yang terdiri dari object-object lainnya).
3.Buat diagram interaksi yang menunjukkan bagaimana block-block tersebut berkomunikasi.
4.Block-block tersebut diorganisasi dalam bentuk subsistem.
5.Review hasil desain tersebut.



Rumbaugh Method, yang juga dikenal dengan nama Object Modeling Technique (OMT) mencakup aktivitas desain yang memungkinkan dilakukannya desain dengan dua level abstraksi yang berbeda. Desain sistem difokuskan pada layout komponen yang dibutuhkan untuk membangun produk / sistem yang lengkap. Desain object menekankan pada layout detail dari individu object. Ringkasan proses OOD dari Rumbaugh adalah:
1.Mengembangkan desain sistem.
2.Mengembangkan desain object.
3.Mengimplementasikan mekanisme kontrol yang didefinisikan pada desain sistem.
4.Memperbaiki struktur dari class untuk memperkuat inheritance.
5.Mendesain messaging untuk mengimplementasikan hubungan antar object (asosiasi).
6.Mengelompokkan class dan asosiasi-nya ke dalam module-module.

OOD Method dari Wirfs-Brock menekankan pada proses yang berkelanjutan dari tahap analisa ke tahap desain. Ringkasan proses OOD dari Wirfs-Brock adalah:
1.Membuat protokol untuk tiap class. Protokol adalah deskripsi formal dari message-message yang dikenal oleh suatu class.
2.Membuat spesifikasi desain untuk tiap class.
3.Membuat spesifikasi desain untuk tiap subsistem.

Meskipun istilah dari tahapan proses dari tiap OOD method diatas berbeda, secara keseluruhan, proses OOD cukup konsisten. Untuk melakukan OOD, seorang software engineer harus melakukan tahapan umum berikut ini:
1.Setiap subsistem dideskripsikan ke dalam bentuk yang mudah untuk diimplementasikan.
2.Mendesain object.
3.Mendesain message.
4.Review model dari desain. Langkah-langkah diatas diulangi bila perlu.


Tranlasi OOA ke OOD
OOA dan OOD seringkali sulit untuk dibedakan. Intinya, OOA adalah aktivitas klasifikasi. Suatu masalah dianalisa dalam rangka untuk menentukan class-class dari object yang bisa diterapkan dalam solusi yang hendak dikembangkan. Analisis juga menentukan hubungan antar object (relationship) dan behavior-nya.

OOD memungkinkan software engineer untuk mengetahui object-object yang dihasilkan oleh tiap class dan hubungan antar object. Selain itu, OOD menggambarkan bagaimana hubungan antar object bisa dilakukan, bagaimana behavior dari object diimplementasikan dan bagaimana komunikasi antar object diimplementasikan.

Model Analisa

Model Desain
Class

object
Attribute

struktur data
Method

algoritma
Relationship

messaging
Behavior

kontrol

Figure 13-1. Menterjemahkan model analisa ke model desain

OOD dipakai untuk menterjemahkan model OOA (model dari real world) ke model yang mudah untuk diimplementasikan dalam suatu perangkat lunak. Proses OOD bisa dideskripsikan sebagai suatu piramid empat layer. Layer dasar difokuskan pada desain dari subsistem yang mengimplementasikan fungsi-fungsi utama dari sistem. Layer class dipakai untuk men-spesifikasikan arsitektur object secara keseluruhan dan hirarki class yang dibutuhkan untuk mengimplementasikan sistem. Layer message dipakai untuk menunjukkan hubungan / kerja-sama antar object bisa dilakukan. Layer tanggung-jawab (responsibility layer) dipakai untuk mengidentifikasikan attribute dan operasi dari setiap class.



Kesimpulan
Meskipun terdapat banyak OOD method, semuanya sesuai dengan piramid desain dan memiliki dua level abstraksi:
desain dari sistem dan subsistem
desain dari object secara individu

Empat komponen yang dibahas dalam desain subsistem:
komponen domain permasalahan
komponen interaksi manusia
komponen manajemen task
komponen manajemen data
Komponen domain permasalahan dipakai untuk mengimplementasikan kebutuhan dari customer. Komponen lainnya dipakai untuk desain infrastruktur dari perangkat lunak sehingga bisa beroperasi dengan efektif.

Proses desain object difokuskan pada deskripsi dari struktur data yang mengimplementasikan attribute dari class, algoritma untuk mengimplementasikan operasi, dan message yang memungkinkan hubungan / kerja-sama antar object.


Referensi
Pressman, chapter 21

3 comments:

Anonymous said...

Making money on the internet is easy in the underground world of [URL=http://www.www.blackhatmoneymaker.com]blackhat cpa[/URL], It's not a big surprise if you haven’t heard of it before. Blackhat marketing uses little-known or misunderstood avenues to build an income online.

Anonymous said...

i menikmati persis bagaimana Anda menerima tingkat Anda sepanjang

Anonymous said...

[url=http://www.casino-online.gd]casinos online[/url], also known as agreed casinos or Internet casinos, are online versions of commonplace ("buddy and mortar") casinos. Online casinos approve gamblers to dissemble and wager on casino games with the grant-money the Internet.
Online casinos typically fortune on the securities dealing odds and payback percentages that are comparable to land-based casinos. Some online casinos depot forth higher payback percentages with a objective rift automobile games, and some bruit down payout schedule audits on their websites. Assuming that the online casino is using an aptly programmed indefinitely party generator, catalogue games like blackjack enquire of by object of an established barrier edge. The payout prominence after these games are established during the rules of the game.
Uncountable online casinos furrow into worldwide certain or be conversant with their software from companies like Microgaming, Realtime Gaming, Playtech, Global Artfulness Technology and CryptoLogic Inc.