Rabu, 13 Juni 2012

object-oriented analysis and design

Latar Belakang OOAD

Metode beorientasi objek mulai berkembang ketika Grady Booch pada tahun 80 an mempublikasikan suatu paper bagaimana melakukan perancangan untuk bahasa ADA namun memberi judul paper tersebut dengan : Object-Oriented Design. Selanjutnya ide tersebut terus ia kembangkan sampai tahun 90 an. Pada tahun 1991 Peter Coad dan Yourdon memperkenalkan metode berorientasi objek yang lebih sederhana dibandingkan Booch. Metode ini menjadi cepat populer karena mendukung layanan-layanan yang terdapat pada C++. Pada waktu itu C++ merupakan bahasa pemrograman berorientasi objek yang paling populer .

Pada tahun 1991 juga Rumbaugh memperkenalkan Object Modelling Technique (OMT). Pendekatan yang digunakan tidak jauh berbeda dengan pendekatan yang digunakan Coad Yourdon namun dengan notasi yang berbeda. OMT tidak hanya sepenuhnya berbasis pada data driven tapi juga memisahkan proses dari data dengan penggunan data flow diagram yang terpisah dengan diagram kelas. OMT juga menggunakan notasi state transition diagram untuk memodelkan aspek dinamis sistem. Pada tahun 1994 Ivar Jacobson memperkenalkan konsep use case dan object oriented software engineering. Pada tahun 1994 itu juga yaitu bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, mempelopori usaha untuk penyatuan notasi pendekatan berorientasi objek. Pada tahun 1995 dihasilkan draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG – http://www.omg.org).

Tahun 1997 UML versi 1.1 muncul, dan saat ini versi terbaru adalah versi 1.5 yang dirilis bulan Maret 2003. Booch, Rumbaugh dan Jacobson menyusun tiga buku serial tentang UML pada tahun 1999. Sejak saat itulah UML telah menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek [DHA03].


I. Pengertian dan Konsep OOAD
Analisis dan disain berorientasi objek adalah 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.
Pengertian "berorientasi objek" berarti bahwa kita mengorganisasi perangkat lunak sebagai kumpulan dari objek tertentu yang memiliki struktur data dan perilakunya.
Konsep OOAD mencakup analisis dan desain sebuah sistem dengan pendekatan objek, yaiut analisis berorientasi objek (OOA) dan desain berorientasi objek (OOD). OOA adalah metode analisis yang memerika 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.

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. (Misal: klien,developer, pakar, dan lain-lain).
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).
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 :
  • memvisualisasikan grafis model yang tepat.
  • menetapkan model yang tepat, lengkap, dan tidak ambigu untuk mengampil semua keputusan penting dalam analisis, desain dan implementasi.
  • membangun model yang dapat dihubungkan langsung dengan bahasa pemrograman.
  • mendokumentasikan semua informasi yang dikumpulkan oleh tim sehingga memungkinkan untuk berbagi informasi.

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.

A. Karakteristik dari Objek
1. Objek
  • Objek adalah benda secara fisik dan konseptual yang ada di sekitar kita. Sebuah objek memiliki keadaan sesaat yang disebut state.
  • Objek dapat kongkrit, seperti halnya arsip dalam sistem, atau konseptual seperti kebijakan penjadwalan dalam multiprocessing pada sistem operasi.
  • Dua objek dapat berbeda walaupun bila semua nilai atributnya identik.

Gambar 1. Macam-macam Objek

2. Kelas Objek
Kelas merupakan gambaran sekumpulan Objek yang terbagi dalam atribut, operasi, metode, hubungan, dan makna yang sama.
  • Suatu kegiatan mengumpulkan data (atribut) dan perilaku (operasi) yang mempunyai struktur data sama ke dalam satu grup.
  • Kelas Objek merupakan wadah bagi Objek. Dapat digunakan untuk menciptakan Objek.
  • Objek mewakili fakta/keterangan dari sebuah kelas.

Gambar 2. Kelas dan Objek
Istilah-istilah Objek
  • Atribut : Data item yang menegaskan Objek.
  • Operasi : Fungsi di dalam kelas yang dikombinasikan ke bentuk tingkah laku kelas.
  • Metode : Pelaksanaan prosedur (badan dari kode yang mengeksekusi respon terhadap permintaan objek lain di dalam sistem).

B. Karakteritik Metodologi Berorientasi Objek
Metodologi pengembangan sistem berorientasi objek mempunyai tiga karakteristik utama :
1. Encapsulation (Pengkapsulan)
  • Encapsulation merupakan dasar untuk pembatasan ruang lingkup program terhadap data yang diproses.
  • Data dan prosedur atau fungsi dikemas bersama-sama dalam suatu objek, sehingga prosedur atau fungsi lain dari luar tidak dapat mengaksesnya.
  • Data terlindung dari prosedur atau objek lain, kecuali prosedur yang berada dalam objek itu sendiri.
2. Inheritance (Pewarisan)
  • Inheritance adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data/atribut dan metode dari induknya langsung.
  • Atribut dan metode dari objek dari objek induk diturunkan kepada anak objek, demikian seterusnya.
  • Inheritance mempunyai arti bahwa atribut dan operasi yang dimiliki bersama di anatara kelas yang mempunyai hubungan secara hirarki.
  • Suatu kelas dapat ditentukan secara umum, kemudian ditentukan spesifik menjadi subkelas. Setiap subkelas mempunyai hubungan atau mewarisi semua sifat yang dimiliki oleh kelas induknya, dan ditambah dengan sifat unik yang dimilikinya.
  • Kelas Objek dapat didefinisikan atribut dan service dari kelas Objek lainnya.
  • Inheritance menggambarkan generalisasi sebuah kelas.
3. Polymorphism (Polimorfisme)
  • Polimorfisme yaitu konsep yang menyatakan bahwa seuatu yang sama dapat mempunyai bentuk dan perilaku berbeda.
  • Polimorfisme mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda.
  • Kemampuan objek-objek yang berbeda untuk melakukan metode yang pantas dalam merespon message yang sama.
  • Seleksi dari metode yang sesuai bergantung pada kelas yang seharusnya menciptakan Objek.

II. Pemodelan Berorientasi Objek
A. Pemodelan Sebagai Teknik Desain

Teknik pemodelan objek menggunakan tiga macam model untuk menggambarkan sistem, diantaranya adalah sebagai berikut :

1. Model Objek
  • Model objek menggambarkan struktur statis dari suatu objek dalam sistem dan relasinya.
  • Model objek berisi diagram objek. Diagram objek adalah graph dimana nodenya adalah kelas yang mempunyai relasi antar kelas.
2. Model Dinamik
  • Model dinamik menggambarkan aspek dari sistem yang berubah setiap saat.
  • Model dinamik dipergunakan untuk menyatakan aspek kontrol dari sistem.
  • 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
  • Model fungsional menggambrakan transformasi nilai data di dalam sistem.
  • Model fungsional berisi data flow diagram. DFD adalah suatu graph dimana nodenya menyatakan proses dan arcnya adalah aliran data.

B. Model Berorientasi Objek
Sebuah model objek menangkap struktur statis dari sistem dengan menggambarkan objek dalam sistem, hubungan antara objek, serta atribut dan operasi yang merupakan karakteristik setiap kelas dan objek.
Model berorientasi objek lebih mendekati keadaan nyata, dan dilengkapi dengan penyajian grafis dari sistem yang sangat bermanfaat untuk komunikasi dengan user dan pembuatan dokumentasi struktur dari sistem.
1. Objek dan Kelas
> Objek
  • Objek didefinisikan sebagai konsep, abstraksi atau benda dengan batasan dan arti untuk suatu masalah.
  • Semua objek mempunyai identitas yang berbeda dengan lainnya.
  • Istilah identitas berarti bahwa objek dibedakan oleh sifat yang melekat dan bukan dengan uraian sifat yang dimilikinya.
  • Contohnya : kembar identik, walaupun mereka nampak seperti sama, tetapi merupakan dua orang yang berbeda.
  • Kadang-kadang objek berarti suatu barang, maka digunakan istilah object instance, dan object class untuk menunjukkan satu grup dari barang yang sama.
> Kelas
  • Suatu object class menggambarkan kumpulan dari objek yang mempunyai sifat (atribut), perilaku umum (operasi), relasi umum dengan objek lain dan semantik umum.
  • Contoh : Orang, perusahaan , binatang, proses adalah objek.
  • Setiap orang mempunyai umur, IQ, dan mungkin pekerjaan. Setiap proses mempunyai pemilik, prioritas, list dari sumber daya yang dibutuhkan.
  • Objek dan object class sering sama sebagai benda dalam deskripsi masalah.
2. Diagram Objek
Diagram objek melengkapi notasi grafik untuk pemodelan objek, kelas dan relasinya dengan yang lain. Diagram objek bermanfaat untuk pemodelan abstrak dan membuat perancangan program.

> Kelas dan Objek
Konsep fundamental dalam analisis berorientasi objek adalah objek itu sendiri. Sebuah objek adalah sebuah entitas yang mencakup data dan metode.
Kelas merupakan satu atau lebih objek dengan persamaan atribut dan metode, sedangkan kelas-&-objek adalah kelas dengan satu atau lebih objek di dalamnya. Nama kelas adalah kata benda tunggal, atau kata sifat dan kata benda. Nama dari kelas-&-objek harus dapat menjelaskan objek tunggal dari suatu kelas.

Gambar 3. Notasi untuk kelas dan kelas-&-objek

> Struktur Objek dan Hirarki Kelas
- Struktur kelas dibagi dua macam, yaitu Whole-Part Structure dan Gen-Spec Structure.
  • Whole-Part Structure memperlihatkan hirarki dari suatu kelas sebagai komponen dari kelas lain yang disebut juga sub objek. Contohnya, kelas Mobil adalah Whole dan komponennya Mesin, Rangka, dan lain-lain, merupakan Part1, Part 2, …, Part n.


Gambar 4. Notasi untuk whole-part structure

  • Gen-Spec Structure memperlihatkan kelas sebagai spesialisasi dari kelas di atasnya. Kelas yang mempunyai sifat umum disebut Generalization, Superclass atau Topclass, sedangkan kelas yang mempunyai sifat khusus disebut Specialization.

Gambar 5. Notasi untuk gen-spec structure
Contohnya, kelas Mobil adalah Generalization, sedangkan Sedan, Truk, Minibus, dan lain-lain merupakan Specizlization1, Specialization2, …, Specialization n, yaitu kelas yang mempunyai sifat khusus.

- Atribut
Atribut menggambarkan data yang dapat memberikan informasi mengenai kelas atau objek dimana atribut tersebut berada.

Gambar 6. Notasi untuk atribut
- Metode
Metode (method) disebut juga service atau operator adalah prosedur atau fungsi seperti yang terdapat dalam bahasa Pascal pada umumnya, tetapi cara kerjanya agak berlainan. Metode adalah subprogram yang tergabung dalam objek bersama-sama dengan atribut. Metode dipergunakan untuk pengaksesan terhadap data yang terdapat dalam objek tersebut.

Gambar 7. Notasi untuk metode

- Pesan (Message)
Message merupakan cara untuk berhubungan antara satu objek dengan objek lain. Suatu pesan dikirimkan oleh suatu objek kepada objek tertentu dapat digambarkan dengan anak panah.


Gambar 8. Notasi untuk message

1 komentar: