Desain Berorientasi Obyek dan UML
Konsep OO Penyembunyian Informasi - menggunakan enkapsulasi untuk membatasi visibilitas eksternal OO mengenkapsulasi data, menyediakan akses dan visibilitas terbatas Penyembunyian Informasi dapat disediakan tanpa OO - adalah sebuah konsep lama
Konsep OO ... Retensi state- fungsi dan prosedur tidak mempertahankan state; objek mengetahui kondisi lampaunya (sebelumnya) dan mempertahankan state Identitas - setiap objek dapat diidentifikasi dan diperlakukan sebagai entitas yang berbeda Perilaku – state dan layanan secara bersama-sama menentukan perilaku objek, atau bagaimana sebuah objek merespon
Konsep OO .. Pesan - melalui mana obj pengirim menyampaikan permintaan ke obj sasaran Untuk melakukan permintaan O1 harus memiliki - penanganan untuk O2, nama dari operasi (metode), info pada operasi yang diperlukan O2 Format umum O2.metode (argumen)
Konsep OO .. Kelas - kelas adalah stensil dari mana objek diciptakan, mendefinisikan struktur dan layanan. Kelas memiliki: antarmuka yang mendefinisikan bagian mana dari sebuah objek dapat diakses dari luar tubuh yang mengimplementasikan operasi variabel instance untuk menahan state objek Objek dan kelas yang berbeda; kelas tipe, objek adalah sebuah instance State dan identitas adalah benda
Hubungan antara objek-objek Sebuah objek memiliki kemampuan tertentu - objek berinteraksi dengan obyek lain untuk layanan lain yg diperlukannya Beberapa cara yang berbeda untuk interaksi: Objek Pemasok adalah global untuk klien Obj Pemasok adalah parameter untuk beberapa operasi klien Obj Pemasok merupakan bagian dari obj klien Obj Pemasok secara lokal dinyatakan dalam operasi Hubungan dapat berupa agregasi (seluruh bagian hubungan), atau hanya hubungan server-klien
Pewarisan Pewarisan adalah unik untuk OO dan tidak ada dalam bahasa-bahasa berorientasi fungsi / model Pewarisan oleh kelas B dari kelas A adalah fasilitas dimana B secara implisit mendapatkan atribut dan operasi A sebagai bagian dari dirinya sendiri Pewarisan atribut dan metode dari A yang digunakan kembali oleh B Ketika B mewarisi dari A, B adalah subkelas atau kelas turunan dan A adalah kelas dasar atau superclass
Pewarisan .. Subkelas B umumnya memiliki bagian yang diturunkan (diwariskan dari A) dan bagian tambahan (baru) Oleh karena itu, B perlu menetapkan hanya bagian tambahan Menciptakan sebuah hubungan "adalah" - objek tipe B juga objek tipe A
Pewarisan ...
Pewarisan ... Hubungan pewarisan antara kelas membentuk hirarki kelas Dalam model, hirarki harus mewakili hubungan alami dalam ranah/domain masalah Dalam hirarki, semua fitur yang umum dapat terakumulasi dalam superclass Sebuah kelas yang ada dapat menjadi spesialisasi dari kelas umum yang ada - juga disebut hubungan generalisasi-spesialisasi
Pewarisan ... Pewarisan ketat - subkelas mengambil semua fitur dari kelas induk Hanya menambahkan fitur untuk mengkhususkannya Non-ketat: ketika beberapa fitur telah didefinisikan ulang Pewarisan ketat mendukung hubungan "adalah" sepenuhnyadan memiliki lebih sedikit efek samping
Pewarisan ... Pewarisan tunggal - subkelas mewarisi hanya dari satu superclass hirarki kelasnya berupa pohon Pewarisan berganda- kelas mewarisi dari lebih dari satu kelas Dapat menyebabkan konflik runtime pewarisan berulang - kelas mewarisi dari kelas, tetapi dari dua jalur terpisah
Pewarisan dan Polimorfisme Pewarisan menyebabkan polimorfisme, yaitu suatu objek dapat berasal dari berbagai jenis Sebuah objek tipe B juga merupakan objek tipe A Oleh karena sebuah objek memiliki jenis statis dan tipe dinamis Implikasi pada pemeriksaan jenis Juga membawa ikatan dinamis operasi yang memungkinkan penulisan kode umum di mana operasi melakukan hal yang berbeda tergantung pada jenis
Unified Modeling Language (UML) dan Pemodelan UML adalah sebuah notasi grafis yang berguna untuk analisis dan desain berorientasi objek Memungkinkan mewakili berbagai aspek dari sistem Berbagai notasi digunakan untuk membangun model yang berbeda untuk sistem metodologi OOAD menggunakan UML untuk mewakili model yang diciptakan
Pemodelan Pemodelan digunakan dalam banyak disiplin ilmu - arsitektur, rancangbangun pesawat, ... Sebuah model adalah penyederhanaan dari realitas/kenyataan "Semua model yang salah, beberapa di antaranya berguna“ Sebuah model yang baik mencakup elemen-elemen yang memiliki efek luas dan menghilangkan elemen-elemen minor Sebuah model sistem bukan merupakan sistem!
Mengapa membangun model? Model membantu kita memvisualisasikan sistem Membantu menentukan struktur sistem Memberikan kita template yang dapat memandu konstruksi Mendokumentasikan keputusan yang diambil dan alasannya
Pemodelan Setiap sistem yang kompleks membutuhkan beberapa model, yang mewakili aspek yg berbeda Model ini terkait namun dapat dipelajari secara terpisah Misalnya. Rencana arsitektur, rencana listrik, rencana pipa dari bangunan Model dapat berupa model struktural, atau perilaku
Gambar dalam UML Gambar use case Gambar desain Gambar proses Gambar implementasi Gambar penyerahan Kita akan fokus terutama pada model untuk desain - diagram kelas, diagram interaksi, dll
Diagram Kelas Kelas adalah blok bangunan dasar dari sistem OO karena kelas adalah unit pelaksanaan juga Diagram Class adalah bagian utama dalam sebuah desain OO. Ini menentukan : Kelas dalam sistem Asosiasi antara kelas Subtipe, hubungan supertipe
Class Diagram ... Kelas itu sendiri direpresentasikan sebagai kotak dengan nama, atribut, dan metode Ada konvensi untuk penamaan Jika kelas adalah suatu interface, ini bisa ditentukan oleh stereotipe <<interface>> Properti attribut/metode dapat ditentukan oleh tag antara { }
Kelas - contoh
Generalisasi-Spesialisasi Hubungan ini menyebabkan hirarki kelas Dapat ditangkap dalam diagram kelas Panah berasal dari subkelas ke superclass dengan kepala menyentuh Super Memungkinkan beberapa subkelas Jika spesialisasi ini dilakukan atas dasar beberapa diskriminator, panah dapat diberi label
Contoh - hirarki kelas
Asosiasi/agregasi Kelas memiliki hubungan-hubungan lainnya Asosiasi: ketika objek dari sebuah kelas membutuhkan layanan dari objek lain Tampil dengan garis yang menghubungkan kelas Multiplisitas dapat diwakili Agregasi: ketika suatu objek terdiri dari objek-objek lain Menunjukkan hubungan bagian-seluruh Disimbolkan dengan berlian (diamond) menghubungkan kelas
Contoh – asosiasi/agregasi
Diagram Interaksi Diagram Kelas mewakili struktur statis dari sistem (kelas dan relasinya) Tidak memodellan perilaku sistem Gambar perilaku - menunjukkan bagaimana objek berinteraksi untuk melakukan tindakan (biasanya use case) Interaksi antara objek, bukan kelas Diagram Interaksi dalam dua gaya Diagram kolaborasi Diagram urutan Keduanya memiliki kekuatan yang setara
Diagram Urutan Objek yang berpartisipasi dalam interaksi ditampilkan di bagian atas Untuk setiap objek, batang vertikal mewakili garis hidupnya Pesan dari satu objek ke objek lain, diwakili sebagai anak panah yang berlabel Jika pesan dikirimkan di bawah beberapa kondisi, ia bisa ditetapkan dalam kurung Waktu meningkat ke bawah, urutan peristiwanya tergambar di sana
Contoh - diagram urutan
Diagram Kolaborasi Juga menunjukkan bagaimana objek berinteraksi Alih-alih garis waktu, diagram ini lebih mirip seperti diagram state Pengurutan pesan ditangkap oleh penomorannya Setara dengan diagram urutan dalam kekuatan pemodelan
Contoh - diag kolaborasi
Diagram Lainnya Diagram kelas dan diagram interaksi merupakan yang paling umum digunakan selama desain Ada diagram lain yang digunakan untuk membangun berbagai jenis model yang berbeda
Diagram Lainnya Selain objek/kelas, dapat mewakili komponen, paket, subsistem Ini berguna untuk mengembangkan struktur arsitektur UML bisa diperluas - bisa memodelkan konsep baru tetapi yang serupa dengan menggunakan stereotip (dengan menambahkan <<name>>) Nilai yg ditandai dapat digunakan untuk menentukan sifat tambahan, misalnya private, readonly.. Catatan dapat ditambahkan
Simbol lainnya