Visualisasi class dan Relationship Bag. 2 Oleh : Cosmas Haryawan -- Pengenalan UML – Base on : Sams Teach Yourself UML in 24 Hours, Third Edition
Materi : Inheritance dan Generalization Dependency Composite Aggregation Shared Aggregation Interface dan Realization
Inheritance - Generalization Saat kita mengatakan salah satu jenis benda kita bisa menyebutkan ciri-ciri dari jenis tersebut dan kemiripan jenis tersebut dengan jenis yang lain Misal : Reptil..? Amfibi..? Binatang Bis..? Truk..? Sedan ..? Station Wagon..? Kendaraan OOP menyebutnya Inheritance UML menyebutnya Generalization
Generalization Suatu Class (child class / subClass) mewarisi attribut dan operation dari class lain (parent class / superClass) Parent Class lebih bersifat general / umum dibandingkan child class Generalization tidak berhenti di 2 level saja, suatu Child Class bisa menjadi Parent Class bagi class yang lain, dan seterusnya
Penggambaran Dalam UML, penggambaran hubungan Inheritance / Pewarisan / Generalization dilakukan dengan suatu garis tegas yang menghubungkan antara Parent Class dan Child Class Garis di bagian Parent Class diberikan segitiga yang menunjuk ke Parent Class Koneksi ini disebut : is a kind of (ISA) Child = “ is a kind of “
Contoh : Mammal is a kind of Animal Horse is a kind of Mammal Untuk penggambaran ke lebih dari 1 sub class, bisa juga tiap subclass terhubung dengan gambar segitiga sendiri2 Attribut dan Operation yang bersifat general untuk child class hanya dituliskan di Parent Class
Catatan : Child Class menambahkan attribut dan operation baru dari yang diwariskan dari Parent - nya Contoh : Mammal memiliki rambut dan memberikan susu, kedua hal tsb adalah attribut yang tidak ditemukan di Class Animal Suatu Class tidak memiliki Parent base class atau root class. Suatu Class tidak memiliki anak / Child leaf class. Jika suatu Class hanya memiliki 1 parent single inheritance Jika suatu Class memiliki lebih dari parent multiple inheritance.
Discovering Inheritance Bagaimana cara menemukan inheritance / ISA ? Pegawai root class ? leaf class ? Super? Sub? Buku root class? leaf class ? Super? Sub?
Contoh Lain Generalization
Abstract Class Class yang tidak bisa dibentuk menjadi obyek / diinstansiasi Dengan struktur hirarki Class Animal yang dibahas sebelumnya : Animal dan Mammal tidak dibentuk menjadi Obyek, yang dijadikan obyek adalah Horse oleh karena itu Animal dan Mammal adalah Abstract Class Abstract Class ditandai dengan penulisan Nama Class Italic (huruf Miring)
Contoh Lain Abstract Class
Dependency Relationship dimana satu class menggunakan class yang lain dependency Sehingga perubahan pada satu class akan menimbulkan perubahan pada class yang lain. Biasanya satu class menggunakan kelas lain sebagai parameter dari operation atau tipe data dari salah satu atributnya. Digambarkan menggunakan garis putus dengan ujung panah mengarah ke Class tempat bergantung
Contoh 1: Class system yang akan menampilkan form sesuai pilihan user System class memiliki operation : displayForm(f:Form). Form yang didisplay di system akan tergantung dari form yang dipilih user
removeCourse(c : Course Contoh 2 AudioClip name Microphone record(m:Microphone) start() stop() dependency Using relationship CourseSchedule addCourse(c : Course) removeCourse(c : Course Course
Composite (Composite Aggregation) Disebut juga has a atau part of relationship Menunjukkan : 1 object (the whole) terdiri dari object-object lain (the parts) 1 part hanya berhubungan dengan 1 whole Hubungan yang lebih kuat dibanding association Part hanya ada kalau whole ada, dan sebaliknya Part sangat mirip dengan attribut suatu whole, sehingga membutuhkan knowledge dari analis untuk menentukan bahwa hal tsb cukup penting untuk menjadi suatu object adalah part bukan sekedar attribut
Composite… Akibat dari fakta tsb, maka dapat dikatakan : Penghapusan whole akan menghapus parts Suatu Part hanya untuk 1 whole, tidak digunakan untuk whole yang lain Part tidak dapat diakses dari luar whole (bersifat private untuk whole tsb) Pesan yang diberikan ke Part harus dilewatkan melalui whole, baru kemudian whole meneruskan ke Part
Digambarkan dengan diamond blok Mesin Mobil dengan Silinder dan System Injeksi Bahan Bakar ? Bagaimana menggambarkannya ?
Aggregation ( shared aggregation) Aturan penengah diantara composite aggregation dan association Mirip dengan composite, hanya saja : Penghapusan whole tidak otomatis menghapus part Satu part bisa merupakan bagian dari lebih dari 1 whole Digambarkan dengan diamond terbuka
Contoh : Sebagai Object diagram
Constraint Aggregation Penggunaan constraint or dalam aggregation
Realization Adanya Encapsulation mengakibatkan object lain tidak bisa secara langsung mengakses attribut Dibutuhkan suatu antar muka / interface agar object lain dapat mengakses suatu attribut Misal : Televisi dengan interface Remote, Mobil dengan interface kunci kontak, Mesin cuci dengan tombol kendali
Contoh : Tombol kendali / Control Knob pada mesin cuci tampak sederhana dan mudah digunakan
Interface - Realization Dalam UML dikatakan bahwa [sebagian dari Class] mesin cuci akan berjalan sesuai dengan operasi yang ada pada [Interface] tombol kendali Hubungan antara class dan interface ini disebut dengan Realization Digambarkan dengan garis putus-putus dan di ujungnya terdapat segitiga terbuka (mirip dengan inheritance)
Penggambaran Realization Bentuk Lebih Sederhana (lollipop diagram)
Hubungan Antar Class dengan interface Bentuk sederhana menggunakan model ball and socket notation
Realization vs Inheritance Penggambaran yang mirip, tetapi untuk Realization menggunakan garis putus-putus Berbeda dengan inheritance yang sub class nya memiliki attribut, interface pada realization tidak memiliki attribut apapun.