Tahapan Object Oriented Analysis and Design
- Menetapkan Domain Models
Analisis berorientasi objek berfokus pada menciptakan suatu deskripsi permasalahan dari perspektif pengklasifikasian objek. Hal-hal
terkait penguraian permasalahan seperti identifikasi konsep, atribut dan asosiasi yang dinilai penting. Hasil dari proses tersebut dapat diwujudkan
dalam bentuk domain model yang terdiri dari susunan diagram yang menunjukkan domain konsep atau objek. Tahapan-tahapan dalam proses
ini yaitu : 1. Visualisasi konsep dalam bentuk conceptual class
Visualisasi konsep dilakukan dengan menetapkan suatu conceptual class yang berisikan konsep-konsep yang ada dalam sistem beserta
atribut dan asosiasi antar konsep tersebut. Conceptual class merupakan model permasalahan yang dibuat melalui sudut pandang ”dunia nyata”
terhadap sistem. Dalam mengidentifikasi konsep-konsep yang terdapat pada sistem
dapat dilakukan melalui 2 pendekatan, yaitu melalui daftar kategori konseptual kelas serta identifikasi kata benda yang terdapat pada
skenario dalam use case. 2. Menambahkan Asosiasi dalam conceptual class
Asosiasi atau relasi merupakan hubungan antar konsep pada suatu sistem. Hubungan tersebut antara lain seperti suatu konsep secara fisik
maupun logika merupakan bagian dari konsep lain, suatu konsep
terdapat dalam konsep lain serta suatu konsep “terekam” dalam konsep lainnya.
Setiap asosiasi selanjutnya disebut sebagai role, suatu role akan memiliki nama, ekspresi multiplicity serta navigasi. Multiplicity
menyatakan banyaknya instance yang dimiliki suatu kelaskonsep terhadap kelaskonsep lainnya.
3. Menambahkan Atribut dalam conceptual class Atribut merupakan suatu nilai data logis dari suatu objek. Atribut
merupakan nilai-nilai data yang dimiliki suatu objek atau dalam hal ini suatu konsep. Dalam identifikasi atribut pada conceptual class, atribut
yang dihasilkan harus tetap sederhana serta mereflesikan nilai data yang mungkin dimiliki suatu konep dalam dunia nyata.
- Menetapkan Interaction Diagrams
Desain berorientasi obyek berkaitan dengan mendefinisikan objek perangkat lunak dan kolaborasinya. Notasi umum yang digunakan untuk
menggambarkan kolaborasi
ini adalah
interaction diagrams
SequenceCollaboration Diagram. Diagram ini menunjukkan aliran pesan antara objek perangkat lunak dalam bentuk metode. Tahapan yang
harus dilakukan adalah melalui realisasi use case menggunakan pola GRASP General Responsibilities Assignment Software Pattern.
GRASP merupakan pola-pola yang dapat digunakan untuk memberikan tanggung jawab Responsibilities suatu kelas terhadap kelas
lainnya. Hal ini dilakukan untuk mengidentifikasi metode yang dimiliki
masing-masing kelas yang diperoleh melalui ekstraksi terhadap interaction diagram yang dihasilkan melalui implementasi pola GRASP.
Tabel 2.2 GRASP General Responsibilities Assignment Software Pattern
Pola Penjelasan
Information Expert Berikan tanggung jawab kepada kelas yang memiliki
informasi untuk menyelesaikan suatu tugas.
Creator Berikan tanggung jawab kepada kelas B untuk
menciptakan instance dari kelas A jika salah satu syarat ini terpenuhi :
- B memuat A - B kumpulan dari A
- B memiliki data inisialisasi untuk A - B me-record A
- B menggunakan A
Controller Berikan tanggung jawab penanganan pesan dalam
system event kepada kelas yang menggambarkan : - Menggambarkan keseluruhan sistem, peralatan
dan sub sistem. - Menggambarkan scenario pada use case dimana
terjadinya system event.
Low Coupling Tetapkan tanggung jawab pada masing-masing kelas
sehingga ketergantungan antar kelas yang tidak diperlukan berkurang.
High Cohesion Tetapkan tanggung jawab pada kelas-kelas sehingga
kompleksitas sistem tetap terkontrol. Polymorphism
Tetapkan tanggung jawab pada behaviour-behaviour menggunakan operasi polymorph.
Pure Fabrication Berikan tanggung jawab pada behaviour class buatan
yang tidak merepresentasikan domain proses dengan
tujuan mengurangi coupling dan mempertahankan cohesion antar kelas.
Indirection Berikan tanggung jawab pada objek penengah untuk
menghubungkan komponen-komponen sehingga komponen tersebut tidak langsung berkaitan.
Protected Variation Berikan tanggung jawab pada interface yang stabil
antar objek sehingga objek-objek tersebut tidak saling mempengaruhi.
- Menetapkan Design Class Diagrams
Sebagai tambahan bagi sudut pandang dinamis terhadap kolaborasi objek dalam diagram interaksi, akan sangat berguna untuk menciptakan
suatu sudut pandang statis terhadap definisi kelas dalam bentuk design class diagrams DCD. Diagram ini merepresentasikan atribut dan metode
dari objek dalam sistem. DCD terdiri dari class beserta atribut serta asosiasi, interface, metode, tipe data atribut, navigasi serta dependencies
ketergantungan. Class beserta atribut dan asosiasi diperoleh melalui conceptual
class, sedangkan metode diperoleh melalui aktivitas yang tertera dalam interaction diagram. Navigasi diperoleh juga melalui interaction diagram
sedangkan dependencies diperoleh melalui analisa pemenuhan fungsi, dimana pemenuhan fungsi suatu kelas bergantung pada parameter yang
terdapat pada kelas lainnya.
- Implementasi Desain ke dalam bahasa pemrograman
Tahap akhir
dalam proses
pengembangan yaitu
pengimplementasian desain yang telah dihasilkan ke dalam bahasa pemrograman. Pendefinisian kelas dalam perangkat lunak diperoleh dari
design class diagram, sedangkan metode dari kelas-kelas tersebut dibuat berdasarkan rancangan dalam interaction diagrams.
Berikut ini merupakan contoh sampel artifak dalam OOAD pada proses penjualan suatu produk :
Gambar 2.16 Contoh Relasi antar Tahapan dalam OOAD
Pada gambar diatas terlihat urutan proses OOAD melaui artifak- artifak UML. Tahapan pertama yaitu pembuatan use case berupa skenario
keseluruhan proses yang dapat juga di presentasikan dalam bentuk use case diagram. Kemudian diterjemahkan ke dalam system sequence
diagram untuk mengetahui aktivitas apa saja yang terjadi antara aktor diluar sistem dengan sistem, selain itu juga untuk mengetahui batasan dari
sistem yang akan dibuat. Tahap selanjutnya adalah pembuatan domain model berupa conceptual class yang berisikan objekkonsep yang terdapat
dalam sistem beserta atribut dan asosiasi antar objek-objek tersebut. Tahap selanjutnya adalah realisasi use case ke dalam interaction diagram
menggunakan pola GRASP. Pola GRASP digunakan untuk menetapkan tanggung jawab tiap kelas yang telah dihasilkan untuk kemudian tanggung
jawab tersebut digunakan untuk menetapkan metode bagi masing-masing kelas. Tahap selanjutnya yaitu pembuatan design class diagram
berdasarkan conceptual class serta interaction diagram yang telah dihasilkan. Entitas kelas beserta atribut dan asosiasinya diperoleh dari
conceptual class sedangkan metode, navigasi serta dependencies diperoleh dari interaction diagram.
Tahap akhir adalah implementasi design class diagram yang telah ditetapkan ke dalam bahasa pemrograman. Desain kelas yang telah
dihasilkan diimplementasikan ke dalam souce code pembangun sistem.