Selasa, 13 Maret 2012

OOA, OOD & OOP

Object Oriented Analysis (OOA)
Object-oriented analysis (OOA) telah ada sejak 1988. orang yang telah memakai metode ini adalah Shlaer-Mellor, Jacobson, Coad-Yourdon, and Rumbaugh. Hasil sukses dalam penerapan metode ini dibuktikan di AT & T Bell Labs. AT & T Bell Labs menerapkan metode ini dalam project besar yang disebut Call Attempt Data Collection System (CADCS). Dari proyek tersebut didapat bahwa penggunaan metode ini mengurangi 8% dari total waktu untuk spesifikasi kebutuhan project dan pengurangan 30% staff effort.
Ada hubungan yang sangat erat antara Object-oriented analysis dan teknologi object oriented yang lain. Diantaranya yaitu Object-Oriented Database, Object-Oriented Design, and Object-Oriented Programming Languages. Dalam penerapannya semua metode itu digunakan secara keseluruhan dalam project disebut dengan metode object-oriented. Jika hanya melakukan analisis saja dengan metode object-oriented dan tidak diikuti dengan design dan programming dengan metode yang sama tentunya akan menambah kesulitan dalam pengambangannya. Dalam kenyataannya ketiga metode diatas tidak bisa dilepaskan satu sama lain. Karena memang untuk mendapatkan hasil yang maksimal dari metode object-oriented, ketiganya harus ada.
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.
Contoh dari OOA:
Hasil analisis berorientasi objek adalah deskripsi dari apa sistem secara fungsional diperluan 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 sehinngga memungkinkan untuk berbagi informasi
Object-Oriented Analysis
  • Object-oriented analysis adalah suatu metoda analisis yang memeriksa syarat-syarat dari sudut pandang kelas-kelas dan objek-objek yang ditemui pada ruang lingkup permasalahan.
  • Mendefinisikan kebutuhan-kebutuhan sistem melalui skenario atau penggunaan kasus-kasus.
  • Kemudian, membuat suatu model obyek dengan kemampuan memenuhi kebutuhan-kebutuhan.
  • Output: Model kebutuhan-kebutuhan, biasanya menggunakan CRC Cards.
  • Memberikan gambaran rinci dari suatu sistem.
  • Mengidentifikasi “WHAT” kebutuhan fungsional (Use Cases)
  • Identifikasi: objects, classes, operations
  • Identifikasi: object relationships, object interations
  • Bangun model-model di dunia nyata menggunakan tampilan OO
  • Tujuan dari OOA adalah untuk memahami domain masalah dan meningkatkan ketelitian,konsistensi, kelengkapan

Object Oriented Design (OOD)
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.
OOD seperti:
Transaksi throughput, response time, run – waktu platform, lingkungan pengembangan, atau bahasa pemrograman.
Object-Oriented Design

  • Object-oriented design adalah metoda untuk meng-arahkan arsitektur perangkat lunak yang didasarkan pada manipulasi objek-objek sistem atau subsistem.
  • Model kebutuhan-kebutuhan yang dibuat pada fase analisis diperkaya dalan fase perancangan.
  • Kadang-kadang ditambahkan lebih banyak lagi atribut dan pelayanan.
  • Ditambahkan antarmuka obyek-obyek.
  • Memberikan blueprint untuk implementasi
  • Menspesifikasi “HOW”
  • Menspesifikasi: class definitions, class categories
  • Menspesifikasi: subsystems, system architectures
  • OOA + Rincian Implementasi
  • Tujuan dari OO Design adalah mengoptimalkan maintainability, reusability, enhancebility dan Reliability











OOP (Object Oriented Programming)
OOP adalah paradigma pemrograman yang cukup dominan saat ini, karena mampu memberikan solusi kaidah pemrograman modern. Meskipun demikian, bukan berarti bahwa pemrograman prosedural sudah tidak layak lagi .
OOP diciptakan karena dirasakan masih adanya keterbatasan pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah, semua pemecahan masalah dibagi ke dalam objek. Dalam OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai objek. Proses perancangan atau desain dalam suatu pemrograman merupakan proses yang tidak terpisah dari proses yang mendahului, yaitu analisis dan proses yang mengikutinya. Pembahasan mengenai orientasi objek tidak akan terlepas dari konsep objek seperti inheritance atau penurunan, encapsulation atau pembungkusan,
dan polymorphism atau kebanyakrupaan. Konsep-konsep ini merupakan fundamental dalam orientasi objek yang perlu sekali dipahami serta digunakan dengan baik, dan menghindari penggunaannya yang tidak tepat.

Konsep dasar dari Pemrograman Berorientasi Objek

Pemrograman orientasi-objek menekankan konsep berikut:
  • kelas — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh ‘class of dog’ adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object.

  • Objek – membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
  • Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
  • Enkapsulasi – Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
  • Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
  • Inheritas- Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada – objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.)
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut.




sumber.http://nzircui.wordpress.com/2010/10/24/ooa-ood-oop/

Tidak ada komentar:

Posting Komentar