Object Oriented Analisys and Design

Object Oriented Analisys and Design (OOAD)

 

OOAD adalah metode analisis yang memerikasa requirements dari sudut pandang kelas kelas dan objek yang ditemui dalam ruang lingkup permasalahan yang mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek system atau subsistem.OOAD merupakan cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek,yang merupakan kombinasi antara struktur data dan perilaku dalam satu entitas.

Metodologi dalam OOAD

 

Metodologi adalah cara systematis untuk mengerjakan analisys and design. Dengan metodologi, pihak yang membangun system software dapat merencanakan dan mengulangi pekerjaan dilain waktu. Metodologi juga menghilangkan perbedaan notasi untuk suatu hal yang sama karena setiap orang akan berbicara dalam bahasa yang sama. Metodologi yang paling banyak dalam OOAD, yaitu : Object Modeling Technique (OMT) dari Rumbaugh, Object Oriented Booch, Responsibility-Driven Design/ Class Responsibility Calloboration (RDD/CRC) dari Wirf-Broock, Metodologi Coad/ Yourdan dan Jacobson Object Oriented Software Enginering (OOSE).

 

Konsep OOAD

 

Object Oriented Analysis Design (OOAD) adalah rekayasa perangkat lunak yang model pendekatan sistem sebagai kelompok interaksi objek. Beberapa entitas mewakili setiap obyek, yang menarik dalam sistem menjadi model dan kelas, elemen data, dan perilaku. Analisis berorientasi objek (OOA) berlaku objek modeling teknik untuk menganalisis fungsional persyaratan untuk sistem.

 

OOAD mencakup analisis dan desain sebuah sistem dengan pendekatan objek, yaitu analisis berorientasi objek (OOA) dan desain berorientasi objek (OOD). OOA adalah metode analisis yang memeriksa requirement (syarat/keperluan) yang harus dipenuhi sebuah sistem) dari sudut pandang kelas-kelas dan objek-objek yang ditemui dalam ruang lingkup perusahaan. Sedangkan OOD adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem.

 

Terdapat beberapa konsep dalam OOAD, yaitu :

 

1.    Objek (object)

a.    Objek adalah benda secara fisik dan konseptual yang ada di sekitar kita. Sebuah objek memiliki keadaan sesaat yang disebut state.

b.    State dari sebuah objek adalah kondisi dari objek atau himpunan keadaan yang menggambarkan objek tersebut. State dinyatakan dengan nilai dari atribut objeknya.

c.    Atribut adalah nilai internal suatu objek yang mencerminkan karakteristik objek, kondisi sesaat, koneksi dengan objek lain dan identitas.

d.    Behaviour (perilaku objek) mendefinisikan bagaimana sebuah objek bertindak dan memberi reaksi. Behaviour ditentukan oleh himpunan semua atau beberapa operasi yang dapat dilakukan oleh objek tersebut, yang dicerminkan oleh interface, service, dan method dari objek tersebut.

e.    Interface adalah pintu untuk mengakses service dari objek.

f.    Service adalah fungsi yang dapat dikerjakan oleh sebuah objek.

g.    Method adalah mekanisme internal objek yang mencerminkan perilaku objek tersebut.

 

2.    Kelas (class)

Class adalah himpunan objek yang sejenis yaitu mempunyai sifat (atribut), perilaku umum (operasi), relasi umum dengan objek lain dan semantik umum. Class adalah abstraksi dari objek dalam dunia nyata. Class menetapkan spesifikasi perilaku dan atribut dari objek tersebut.

 

3.    Kotak Hitam (black boxes)

Sebuah objek adalah kotak hitam. Konsep ini menjadi dasar implementasi objek. Dalam operasi OO hanya developer yang dapat memahami detail proses yang ada didalam kotak tersebut, sedangkan user tidak perlu mengetahui apa yang dilakukan yang penting mereka dapat menggunakan objek untuk memproses kebutuhan mereka. Kotak hitam berisi kode dan data.

a.    Encapsulation, yaitu proses menyembunyikan detail implementasi sebuah objek. Untuk mengakses data objek tersebut adalah melalui interface. Untuk berkomunikasi dengan objek digunakan message.

b.    Message adalah permintaan agar objek menerima untuk membawa metode yang ditunjukkan oleh perilaku dan mengembalikan result dari aksi tersebut kepada objek pengirim (sender)

 

4.    Asosiasi dan Agregasi

a.    Asosiasi adalah hubungan yang mempunyai makna antara sejumlah objek. Asosiasi digambarkan dengan sebuah garis penghubung diantara objeknya. Contohnya : Asosiasi karyawan dengan unit kerja. Setiap karyawan bekerja di satu unit kerja, sedangkan unit kerja dapat memiliki beberapa karyawan.

b.    Agregasi adalah bentuk khusus sebuah asosiasi yang menggambarkan seluruh bagian pada suatu objek merupakan bagian dari objek yang lain. Contohnya : Kopling dan piston adalah bagian dari mesin, sedangkan mesin, roda, body merupakan bagian dari sebuah mobil.

 

Ada beberapa alasan mengapa digunakan OOAD sebagai dasar pengembangan metodologi AOAD:

 

1.    Pada dasarnya ada kemiripan antara paradigma object orientasi (object-oriented (OO paradigm) dengan paradigma agent orientasi (agent-oriented paradigm) [Burmeister, 1996] [Kinny et al.,1996]. Dalam OO agent bisa didesain sebagai obyek aktif, dan obyek yang mempunyai mental state. Meskipun tentu saja, perlu dipikirkan lagi mengenai masalah belief, desire, intentions, dan commitments,yang menjadi karakteristik dari agent.

 

2.    Metodologi OOAD yang ada, misalnya Object Modelling Technique (OMT) [Rumbaugh et al., 1991], Object-Oriented Software Engineering (OOSE) [Jacobson et al., 1992], ataupun Unified Modelling Language (UML) [Booch et al., 1999], sudah banyak digunakan, dan dikenal luas dalam industri software. Sehingga metodologi AOAD (Agent Oriented Analysis Design) yang berdasar pada OOAD, akan lebih cepat dipahami dan diterima secara mudah oleh berbagai lapisan industry software.

 

3.    Proses identifikasi obyek dalam object model creation process bisa diterapkan dalam proses untuk identifikasi agent. Dari sekian banyak metodologi AOAD yang berdasar kepada OOAD ini, dari salah satu metodologi OOAD yaitu OMT yag dikembangkan oleh Rumbaugh [Rumbaugh et al., 1991].

 

Metodologi OMT (Object Modelling Technique) menguraikan bahwa OOAD mempunyai 3 elemen dasar yaitu:

 

1.    Object Model,

2.    Dynamic Model

3.    Static Model.

 

Salah satu Contoh Tiga model AOAD :

 

1.    Agent Model: Yang berisi internal struktur misalnya belief, plan, goals, dan juga behavior dari agent, dan sebagainya.

2.    Organization Model: Yang berisi segala sesuatu yang berhubungan dengan relasi antara suatu agent dengan agent lain, bisa berupa inheritance, role, ataupun aggregation.

3.    Cooperation Model: Yang berisi segala sesuatu yang berhubungan dengan interaksi antar agent, termasuk didalamnya protocol yang dipakai, proses interaksi dan kerjasama (interaction dan cooperation process) ataupun masalah pesan dalam interaksi.

 

OOA (Object Oriented Analysis)

 

OOA mempelajari permasalahan dengan menspesifikasikannya atau mengobservasi permasalahn tersebut dengan menggunakan metode berorientasi objek. Biasanya analisa sistem dimulai dengan adanya dokumen permintaan (requirement) yang diperoleh dari semua pihak yang berkepentingan. (Mis: klien,developer, pakar, dll).

 

Dokumen permintaan memiliki 2 fungsi yaitu : memformulasikan kebutuhan klien dan membuat suatu daftar tugas.

 

Analisis berorientasi obyek (OOA) melihat pada domain masalah, dengan tujuan untuk memproduksi sebuah model konseptual informasi yang ada di daerah yang sedang dianalisis. Model analisis tidak mempertimbangkan kendala-kendala pelaksanaan apapun yang mungkin ada, seperti konkurensi, distribusi, ketekunan, atau bagaimana sistem harus dibangun. Kendala pelaksanaan ditangani selama desain berorientasi objek (OOD). Analisis dilakukan sebelum Design.

 

Sumber-sumber untuk analisis dapat persyaratan tertulis pernyataan, dokumen visi yang formal, wawancara dengan stakeholder atau pihak yang berkepentingan lainnya. Sebuah sistem dapat dibagi menjadi beberapa domain, yang mewakili bisnis yang berbeda, teknologi, atau bidang yang diminati, masing-masing dianalisis secara terpisah.

 

Hasil analisis berorientasi objek adalah deskripsi dari apa sistem secara fungsional diperlukan untuk melakukan, dalam bentuk sebuah model konseptual. Itu biasanya akan disajikan sebagai seperangkat menggunakan kasus, satu atau lebih UML diagram kelas, dan sejumlah diagram interaksi. Tujuan dari analisis berorientasi objek adalah untuk mengembangkan model yang menggambarkan perangkat lunak komputer karena bekerja untuk memenuhi seperangkat persyaratan yang ditentukan pelanggan.

 

UML (Unified Modeling Language) adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (Object-Oriented). UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponen-komponen yang diperlukan dalam sistem software. Unified Model Language (UML) adalah bahasa universal untuk :

 

1.    Memvisualisasikan grafis model yang tepat

2.    Menetapkan model yang tepat, lengkap , dan tidak ambigu untuk mengampil semua keputusan penting dalam analisis, desain dan implementasi

3.    Membangun model yang dapat dihubungkan langsung dengan bahasa pemrograman

4.    Mendokumentasikan semua informasi yang dikumpulkan oleh tim sehinngga memungkinkan untuk berbagi informasi

 

Tahapan Object Oriented Analisis

 

1.    Menganalisis masalah domain

2.    Jelaskan sistem proses

3.    Identifikasi obyek

4.    Tentukan atribut

5.    Mendefinisikan operasi

6.    Komunikasi antar-obyek

 

OOD (Object Oriented Design)

 

OOD mengubah model konseptual yang dihasilkan dalam analisis berorientasi objek memperhitungkan kendala yang dipaksakan oleh arsitektur yang dipilih dan setiap non-fungsional – teknologi atau lingkungan – kendala, seperti transaksi throughput, response time, run – waktu platform, lingkungan pengembangan, atau bahasa pemrograman.

 

Teknik Pemodelan dalam OOAD

 

1.    Model Objek :

a.    Model objek Menggambarkan struktur statis dari suatu objek dalam sistem dan relasinya

b.    Model objek berisi diagram objek. Diagram objek adalah graph dimana nodenya adalah kelas yang mempunyai relasi antar kelas.

 

2.    Model Dinamik

a.    Model dinamik menggambarkan aspek dari sistem yang berubah setiap saat.

b.    Model dinamik dipergunakan untuk menyatakan aspek kontrol dari sistem.

c.    Model dinamik berisi state diagram. State diagram adalah graph dimana nodenya adalah state dan arc adalah tarnsisi antara state yang disebabkan oleh event.

 

3.    Model Fungsional

a.    Model fungsional menggambrakan transformasi nilai data di dalam sistem.

b.    Model fungsional berisi data flow diagram. DFD adalah suatu graph dimana nodenya menyatakan proses dan arcnya adalah aliran data.

 

Perkembangan Metode OOAD

 

Konsep objek telah dikenal sejak lebih dari tiga puluh tahun yang lalu. Diawali dengan penggunaan pemrograman berorientasi objek (OOP), lalu berkembang menjadi konsep perancangan berorientasi objek (OOD) dan selanjutnya metode analisis dan perancangan berorientasi objek (OOAD) di tahun 1990.

 

Di awal tahun 1990, metode OO yang dikenalkan oleh Grady Booch dan James Rumbaugh menjadi amat populer, Rumbough menekankan pengembangan berorientasi objek berdasarkan pendekatan terstruktur, sementara Booch menerapkan metode objek pada bidang teknik dan bisnis. Selanjutnya pada tahun 1995 muncul gagasan Booch dan Rumbough untuk menggabungkan metode mereka dengan membakukan notasi simbol yang digunakan dalam menggambarkan komponen sebuah aplikasi dan selanjtnya disebut Unified Method (UM). Kemudian Ivar Jacobson bergabung bersama mereka untuk menyempurnakan metode objek ini, dengan menyusun konsep use-case. Munculnya metode yang dibuat oleh Booch, Rumbough, dan Jacobson selanjutnya lebih dikenal sebagai bahasa Unified Modelling Language (UML ver 0.9). Penggunaan UML semakin populer, dan pada tahun 1997 UML ver 1.0 dibawa ke dalam konferensi organisasi pemakai objek OMG (Object Management Group) yang akhirnya menyepakati untuk dijadikan sebagai standar metode pengembangan sistem dengan munculnya UML versi 1.1.

 

UML mendefinisikan notasi-notasi tungga dan semantiknya bersama-sama di dalam sebuah meta-model, yaitu kumpulan berbagai notasi  simbol UML yang secara bersama digunakan untuk pengembangan suatu aplikasi yang lengkap. UML adalah bahasa pemodelan yang dapat dikembangkan lebih lanjut kedalam suatu bahasa program dengan menggunakan code generator sehingga berpeluanga menjadi dasar pengembangan suatu Case tools pengeembangan sistem.

 

Diluar bahasa UML yang telah disepakati tersebut berkembang pula metode lainnya misalnya metode yang dikembangkan oleh Shelaer & Mellor (OO Analisys/Design), Metode ini menggunakan teknik pemodelan informasi tradisional untuk menjelaskan entitas dalam sistem menggunakan state diagram untuk memodelkan keadaan (state) entitas menggunakan DFD untuk memodelkan aliran data dalam sistem. Metode ini menghasilkan tiga jenis model, yaitu information model, state model dan proses model. Keunggulan metode ini adalah dalam memandang maslah dari sudut pandang yang berbeda, mudah dikonversi dari metode struktural.

 

Sedangkan metode Booch dukenal sebagai metode design OO. Metode ini menjadikan proses analisis dan design kedalam empat tahapan iterative yaitu identifikasi kelas-kelas dan objek-objek, identifikasi semantik dan hubungan objek dan kelas tersebut, rincian interface dan implementasinya. Metode ini sangat detail dan kaya dengan notasi dan elemen gabungan dari metode lain.

 

Sejak standarisasi metodologi OMG telah mengeluarkan Request for Proposal (RFP) pada juni 1996 untuk mendorong perusahan-perusahaan sistem informasi, developer software, dan para user sistem komputer agar membuat sebuah RFP bersama sebagai respon. Satu perusahaan software telah membentuk konsorsium dengan berbagai organisasi untuk meresmikan UML sebagai standar dalam OOAD.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s