Thursday, June 7, 2007

Analisa yang Berorientasi pada Objek

Pengantar
Object-oriented analysis bertujuan untuk mendefinisikan semua class (beserta relationship dan behavior-nya) yang berhubungan dengan problem yang hendak diselesaikan. Untuk itu, langkah-langkah yang harus dilakukan adalah:
1.Diskusi antara customer dan software engineer tentang basic user requirements.
2.Identifikasi class (termasuk definisi attributes dan methods).
3.Spesifikasi hierarchy dari class.
4.Representasi relationship antar object.
5.Pemodelan object behavior.
6.Langkah 1 sampai 5 diulang sampai model selesai dikembangkan.


OOA Methods
Teknologi object yang semakin populer telah melahirkan banyak sekali Object-oriented Analysis Methods (OOA methods). Setiap method memiliki suatu proses untuk menganalisa suatu sistem atau produk, sekumpulan model sebagai output dari proses tersebut, dan suatu notasi untuk mengembangkan model-model tersebut. Berikut ini adalah ringkasan dari beberapa OOA methods yang cukup populer:
1.Booch Method
2.Coad and Yourdon Method
3.Jacobson Method
4.Rumbaugh Method
5.Wirfs-Brock Method

Booch Method memakai prinsip “micro development process” dan “macro development process”. Dalam proses micro, didefinisikan sekumpulan task dalam tahap analisa yang akan dipakai kembali pada tahap-tahap dari proses macro. Berikut ini adalah ringkasan OOA micro development process dari Booch :
1.Identifikasi class dan object
2.Identifikasi semantik dari class dan object
3.Identifikasi relationship antar class dan object
4.Melakukan beberapa perbaikan / penyempurnaan
5.Implementasi class dan object (dalam konteks OOA, adalah penyelesaian model dari tahap analisa)

Coad and Yourdon Method sering dianggap sebagai OOA method yang paling mudah untuk dipelajari. Notasi pemodelan yang dipakai relatif sederhana. Pedoman untuk mengembangkan model juga tidak bertele-tele. Berikut ini adalah ringkasan proses OOA dari Coad and Yourdon:
1.Identifikasi object dengan menggunakan kriteria “apa yang dicari?”
2.Definisi suatu struktur generalization-specification
3.Definisi struktur whole-part
4.Identifikasi subject (representasi komponen subsystem)
5.Definisi attributes
6.Definisi services

Jacobson Method
juga dikenal dengan nama OOSE (object-oriented software engineering). Jacobson Method sebenarnya adalah Objectory Method (juga dikembangkan oleh Jacobson) yang sudah disederhanakan. Method ini memakai penekanan pada use case (deskripsi/skenario yang menggambarkan interaksi user dengan produk/sistem). Ringkasan proses OOA dari Jacobson:
1.Identifikasi user dari sistem dan semua kewajibannya.
2.Mengembangkan model dari requirements
3.Mengembangkan model analisa.

Rumbaugh et al, mengembangkan Object Modeling Technique (OMT) untuk tahap analisa, system design dan object-level design. Tahap analisa menghasilkan tiga model, yaitu:
object model (representasi dari object, class, hierarchy dan relationship)
dynamic model (representasi dari behavior object dan system)
functional model (representasi flow dari sistem yang mirip high-level DFD)
Ringkasan proses OOA dari Rumbaugh:
1.Mendefinisikan ruang lingkup dari problem
2.Mengembangkan object model
3.Mengembangkan dynamic model
4.Mengembangkan functional model

Wirfs-Brock Method tidak memberikan batasan yang jelas antara task-task dari tahap analisa dan desain, tetapi memakai proses yang terus berlanjut yang dimulai dari evaluasi spesifikasi customer sampai proposal desain selesai. Ringkasan task yang berhubungan dengan OOA dari Wirfs-Brock:
1.Evaluasi spesifikasi customer
2.Menggunakan grammar untuk mencari candidat class dari spesifikasi
3.Memilah class untuk mencari super-class
4.Mendefinisikan kewajiban tiap class
5.Menerapkan kewajiban tiap class
6.Identifikasi relationship antar class
7.Mendefinisikan kerjasama antar class berdasarkan kewajibannya
8.Mengembangkan representasi hierarchy dari class untuk menunjukkan inheritance
9.Mengembangkan graph gabungan (keseluruhan) dari sistem

Meskipun istilah dan langkah-langkah dari tiap OOA method diatas berbeda, proses OOA secara umum cukup mirip, Untuk melakukan object-oriented analysis, seorang software engineer harus melakukan langkah-langkah umum berikut ini:
1.Memahami requirement dari customer untuk sistem OO
1.1.Identifikasi skenario atau use cases
1.2.Mengembangkan model dari requirement
2.Memilih class dan object dengan menggunakan requirement dasar sebagai pedoman
3.Identifikasi attribute dan operation untuk tiap object dari sistem
4.Mendefinisikan struktur dan hierarchy untuk mengorganisasi class
5.Mengembangkan object-relationship model
6.Mengembangkan object-behavior model
7.Review OO analysis model dengan use cases/skenario


Use Case
Use Case (atau skenario) dipakai untuk menjelaskan bagaimana sistem akan dipakai. Untuk membuat use case, analis harus mengidentifikasi orang / device yang akan memakai sistem / produk. Orang / device yang akan memakai sistem ini disebut actor. Secara formal, actor adalah apa saja yang berkomunikasi dengan sistem/produk dan bukan merupakan bagian dari sistem itu sendiri (eksternal terhadap sistem). Jacobson menyarankan beberapa pertanyaan yang harus bisa dijawab oleh use case:
Apa fungsi utama dari actor-actor yang ada?
Informasi sistem apa yang akan dibutuhkan, dihasilkan atau diubah oleh actor?
Apakah actor harus memberitahu sistem tentang perubahan pada lingkungan eksternal?
Informasi apa yang diinginkan actor dari sistem?
Apakah actor ingin diberitahu tentang perubahan yang tidak terduga?
Secara umum, suatu use case adalah suatu keterangan tertulis sederhana yang menjelaskan peranan dari actor pada saat berinteraksi dengan sistem.

Referensi
Pressman, chapter 21

No comments: