Tuesday, June 28, 2011

Responsibility driven design

a.       Konsep dan deskripsi dari metode
Responsibility driven design adalah sebuah teknik desain dalam pemprograman berorientasi objek. Teknik ini diusulkan oleh  Rebecca Wirfs-Brock dan Brian. Responsibility driven design terinspirasi oleh model client server. Dimana yang menjadi fokus pembahasannya adalah :
-          Tindakan apa yang menjadi tanggung jawab objek tersebut?
-          Informasi apa yang akan dibagi(dishare) oleh objek tersebut?
Dalam model client/server diasumsikan bahwa sebuah software client dan sebuah software server saling bertukar informasi berdasarkan aturan yang sudah distandarisasi. Client bisa membuat request secara rinci, kemudian server akan memberikan tanggapan terhadap request tersebut. Jadi,  responsibility-driven design berusaha untuk menghindari transaksi yang terperinci seperti dimana request dilakukan, tetapi hanya menentukan maksud dari permintaan tersebut. Keuntungannya adalah untuk meningkatkan enkapsulasi, karena spesifikasi dari jalur yang benar dimana request tersebut dilakukan bersifat private.
Responsibility driven design fokus pada tindakan apa yang harus dicapai, dan objek mana yang akan menyelesaikannya. Bagaimana setiap tindakan diselesaikan atau ditunda. Langkah awal yang baik untuk mendefinisikan sebuah objek adalah dengan mendiskripsikan peranannya dan tujuannya dalam sebuah aplikasi. Rincian dari struktur internal dan algoritmanya secara spesifik bisa dikerjakan segera setelah peran dan tanggung jawab dari objek-objek tersebut bisa dipahami.
Responsibility adalah sebuah subset yang padu dari sebuah prilaku yang didefinisikan sebagai sebuah objek. Tanggung jawab dari sebuah objek adalah pernyataan tentang informasi yang dipertahankannya dan operasi yang mendukungnya. Sebuah analogi antara objek desain dan menulis sebuah laporan  dapat dijelaskan maksudnya dari daftar tanggung jawab dari setiap objek. Tanggung jawab dari objek tersebut akan dijadikan topik utama dalam sebuah laporan secara garis besar. Tujuan dari membuat garis besar tanggung jawab dari sebuah objek adalah untuk memahami peranannya dalam aplikasi yang dibuat. Cara untuk menentukan tanggung jawab dari sebuah objek adalah dengan menjawab pertanyaan berikut :
-          Apa yang harus diketahui oleh obejek tersebut untuk mencapai target yang diinginkan?
-          Langkah-langkah apa saja yang harus ditempuh  untuk mencapai hal tersebut?
b.      Ulasan tentang proses desain
Untuk melakukan proses desain pada responsibility driven design terdiri dari dua tahapan, yaitu :
1.     Exploratory design
Merupakan tahap pengembangan dari sebuah objek medel, yang dilakukan pada tahap ini adalah :
-          Menghubungkan objek domain dengan objek solusinya.
-          Menentukan tanggung jawab untuk masing-masing objek.
-          Membangun model kolaborasi antar objek.
Hasil yang didapatkan adalah :
-          CRC objek model, peranan dari masing-masing objek, tanggung jawab masing-masing objek, dan kolaborasi antar objek.
-          UML Sequence / collaboration diagram.
-          Definisi dari masing-masing class.
-          Prototype.
2.     Design refinement
Aktivitas yang dilakukan pada tahapan ini adalah :
-          Memutuskan dokumen desain.
-          Mengontrol style dari desain aplikasi.
-          Mempertimbangkan kemungkinan hubungan antar objek dengan cara membuat UML class diagram.
-          Memperbaiki objek model untuk fleksibilitas, konsistensi, dan kemudahan dalam perawatan, dengan cara melakukan :
ü  Membuat abstraksi objek baru.
ü  Merevisi peranan dari objek, menyesuaikan dengan keadaan.
ü  Menyederhanakan interface dan pola kolaborasi.
ü  Menetapkan peran dari masing-masing class (apakah kelas tersebut sudah mengimplementasikan interface tertentu).
ü  Menggunakan pola desain.
-          Mendokumentasikan desain menggunakan UML diagram.
-          Merumuskan kontrak antara sistem komponen dan class.

No comments:

Post a Comment