Pertemuan 6 Structural modelling TIB15 - ANALISIS & DESAIN BERORIENTASI OBJEK
Materi Yang Dibahas Pengenalan Structural Modeling Konsep Dasar object-oriented dalam structural modeling. Hubungan Class dan obyek dengan blok-blok dari structural modeling dan unit Kategori obyek mencari kandidat class dengan menganalisa use cases. (dibahas secara terpisah pada masing-masing sub pembahasan) memperluas dan mendefinisikan class berdasarkan spesifikasi dan mengembangkan tugasnya hubungan antar class-class menggunakan class diagram untuk merepresentasikan hubungan antar class-class.
Pengenalan Structural Modeling Structural Modeling: Memodelkan bagaimana use case dan actor dapat disusun menjadi class-class Diagram yang digunakan pada structural modelling adalah Class Diagram.
Konsep Dasar object-oriented dalam structural modeling Class/kelas Class adalah sebuah kategori yang membungkus informasi dan perilaku. Class mendefinisikan sesuatu yang akan menjadi cetak biru dari obyek yang akan dibentuknya Class adalah building block dari structural modelling. Obyek Obyek adalah segala sesuatu yang ada dilingkungan sistem Obyek adalah sesuatu yang membungkus informasi dan tingkah laku Obyek merepresentasikan sesuatu yang nyata, dapat berupa benda, proses, formula ataupun suatu aktifitas. Obyek adalah unit terstruktur dari system aktual
Kategori Obyek Obyek Entitas: menangani informasi, dapat dipetakan menjadi tabel dan field pada basis data Obyek Pembatas: diterapkan menjadi antar muka atau jendela dari sebuah aplikasi terhadap pemakai atau aplikasi lainnya Obyek Kontrol/pengendali: Obyek optional yang mengontrol aliran dalam use case. Mengkoordinasikan obyek-obyek dan mengatur keseluruhan logika aliran
Mencari class Class bisa didapat dari aktor, use case maupun aliran kejadian pada diagram use case Atribut class dapat dianalisa dari kebutuhan karakteristik obyek yang didefinisikan oleh actibity diagram Message bisa didapatkan dari adanya pertukaran informasi antar use case. Informasi ini bisa kita dapatkan dari informasi yang dipertukarkan antar aktor pada activity diagram Operasi bisa didapatkan dari proses-proses yang terdapat pada activity diagram Selain dari activity diagram, jika tersedia class dapat pula di analisa dari dokumen use case supplement
Notasi Class Class digambarkan dengan segi empat. Bagian-bagian class: Nama pada bagian atas, atribut pada bagian tengah Operation ada bagian bawah Relationships antara object classes (dikenali sebagai asosiasi) digambarkan dengan garis penghubung kedua class
Hubungan antar Class-class Asosiasi Dependensi Agregasi Generalisasi Realisasi
Penamaan Relasi Relasi boleh diberi nama, boleh juga tidak Penamaan Relasi menggunakan Kata kerja yang menjelaskan mengapa relasi tersebut diadakan Contoh:
Asosiasi Hubungan saling terkait antar kelas Masing-masing kelas dapat mengirimkan message ke kelas lain Asosiasi memungkinkan sebuah kelas untuk mengetahui atribut dan operasi yang mempunyai visibilitas public terhadap kelas lainnya. Asosiasi dapat dilakukan secara rekursif Asosiasi dapat berupa asosiasi dua arah (bidirectional), digambarkan dengan garis tanpa arah panah Asosiasi dapat berupa asosiasi searah (unidirectional), digambarkan dengan garis dengan satu mata panah. Arah mata panah melambangkan arah asosiasi
Relasi Asosiasi Relasi Dua Arah Relasi Searah
Asosiasi Rekursif
Dependensi/Instansiasi Hubungan ketergantungan antar satu class dengan class lainnya. Dependensi merupakan asosiasi satu arah. Dilambangkan dengan garis putus-putus dengan satu mata panah yang menunjukkan arah dependensi. Dependensi didapatkan dengan cara: Membuat variable instan bagi kelas lain, membaca secara searah data yang tersimpan pada variabel global kelas lain Kelas yang diacu dilewatkan sebagai parameter didalam operasi kelas yang mengacu Relasi dependensi terjadi ketika sebuah kelas diperlukan untuk menjadi parameter atau nilai balik suatu kelas. Relasi dependensi pada use case dijadikan sebagai relasi dependensi pada class diagram
Contoh Relasi Dependensi / Instansiasi
Agregasi Bentuk relasi dimana keseluruhan kelas dengan pembentuk-pembentuknya. Biasanya pada relasi ini beberapa kelas diinstansiasi menjadi bagian suatu kelas. Dilambangkan dengan garis dengan bangun lah ketupat (diamond) sebagai ujungnya pada kelas yang melakukan agregasi terhadap kelas lainnya Agregasi dapat dilakukan secara rekursif Relasi agregasi pada use case digambarkan sebagai agregasi pada class diagram
Relasi Agregasi Agregasi Agregasi Rekursif
Contoh Object aggregation
Generalisasi Inheritance merujuk kepada generalisasi dan ditunjukkan sebagai upwards, dari pada downwards pada sebuah hirarki Relasi pewarisan antara dua elemen model (kelas, aktor, use case dan paket) Generalisasi digunakan untuk menunjukkan beberapa aktor atau use case yang mempunyai kesamaan Generalisasi dapat terjadi multi-level Dilambangkan dengan mata panah Relasi Extend, generalisasi aktor dan generaslisasi use case pada analisa use case diimplementasikan dalam bentuk generalisasi. Multiple inheritance dimungkinkan pada generalisasi
Relasi Generalisasi
Contoh Library class hierarchy
Contoh User class hierarchy
Contoh Multiple inheritance
Relasi realisasi Untuk mengimplementasikan interface, hubungan antara interface dengan implementasinya Menggambarkan hubungan antara Relasi antara kelas dengan interfacenya Relasi paket dengan interfacenya Komponen dengan interface nya Use case dengan use case realization
Relasi Realisasi
Referensi: Ian Sommerville, Software Engineering, 7th-ed, 2004, Prentice hall, USA N. Ashrafi, Object Oriented systems Analysis and Design, Pearson International Edition, 2008, Pearson Education, USA Sholiq, Pemodelan Sistem Informasi Berorientasi Objek dengan UML, 2006, Graha Ilmu, Indonesia