340 likes | 603 Views
Desain Berorientasi Obyek dan UML. Konsep OO. Penye mbunyi an Informasi - menggunakan enkapsulasi untuk membatasi visibilitas eksternal OO mengenkapsulasi data, menyediakan akses dan visibilitas terbatas Penye mbunyi an Informasi dapat disediakan tanpa OO - adalah sebuah konsep lama.
E N D
Konsep OO • Penyembunyian Informasi - menggunakan enkapsulasi untuk membatasi visibilitas eksternal • OO mengenkapsulasidata, menyediakan akses danvisibilitas terbatas • Penyembunyian Informasi dapat disediakan tanpa OO - adalah sebuah konsep lama
Konsep OO ... • Retensi state- fungsidanprosedur tidak mempertahankan state; objek mengetahuikondisilampaunya (sebelumnya) dan mempertahankan state • Identitas - setiap objek dapat diidentifikasi dan diperlakukan sebagai entitas yang berbeda • Perilaku – statedan layanan secarabersama-samamenentukan perilaku objek, atau bagaimana sebuah objek merespon
Konsep OO .. • Pesan - melalui mana obj pengirim menyampaikan permintaan ke obj sasaran • Untuk melakukanpermintaanO1 harus memiliki - penangananuntuk O2, nama dari operasi (metode), info padaoperasiyang diperlukanO2 • Format umum O2.metode(argumen)
Konsep OO .. • Kelas - kelas adalah stensil darimanaobjek 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 menahanstateobjek • Objek dan kelas yang berbeda; kelas tipe, objek adalah sebuah instance • Statedan identitas adalah benda
Hubungan antara objek-objek • Sebuah objek memiliki kemampuan tertentu - objekberinteraksi dengan obyek lainuntuk layanan lain ygdiperlukannya • Beberapa cara yang berbeda untuk interaksi: • Objek Pemasok adalah global untuk klien • Obj Pemasok adalah parameteruntuk 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 • Pewarisanoleh kelas B dari kelas A adalah fasilitas dimana B secara implisit mendapatkan atribut dan operasiA sebagai bagian dari dirinya sendiri • Pewarisanatribut 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 ... • 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 sedikitefeksamping
Pewarisan ... • Pewarisan tunggal - subkelas mewarisi hanya dari satu superclass • hirarki kelasnyaberupa pohon • Pewarisanberganda- 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 • Pewarisanmenyebabkanpolimorfisme, yaitu suatu objekdapat berasaldari 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 ikatandinamis 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 berorientasiobjek • 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 diantaranyaberguna“ • Sebuah model yang baik mencakupelemen-elemenyang memiliki efek luas dan menghilangkan elemen-elemen minor • Sebuah model sistem bukanmerupakansistem!
Mengapa membangun model? • Model membantu kitamemvisualisasikan sistem • Membantu menentukan struktur sistem • Memberikan kita template yang dapat memandu konstruksi • Mendokumentasikankeputusan yang diambil dan alasannya
Pemodelan • Setiap sistem yang kompleks membutuhkan beberapa model, yang mewakili aspek ygberbeda • Model ini terkait namun dapat dipelajari secaraterpisah • Misalnya.Rencana arsitektur, rencanalistrik, rencanapipa daribangunan • Model dapat berupa model struktural, atau perilaku
Gambardalam UML • Gambaruse case • Gambardesain • Gambar proses • Gambarimplementasi • Gambarpenyerahan Kita akan fokus terutama pada model untuk desain - diagram kelas, diagram interaksi, dll
Diagram Kelas • Kelas adalah blok bangunan dasar dari sistem OO karenakelas 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 olehstereotipe <<interface>> • Properti attribut/metode dapat ditentukan oleh tag antara {}
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
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 hubunganbagian-seluruh • Disimbolkandengan berlian (diamond) menghubungkan kelas
Diagram Interaksi • Diagram Kelas mewakilistruktur 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 • Keduanyamemilikikekuatan yang setara
DiagramUrutan • Objek yang berpartisipasi dalam interaksi ditampilkan di bagian atas • Untuk setiap objek,batangvertikal mewakili garis hidupnya • Pesan dari satuobjek keobjeklain, diwakilisebagai anak panah yang berlabel • Jika pesan dikirimkan di bawah beberapa kondisi, ia bisa ditetapkan dalam kurung • Waktu meningkat ke bawah, urutan peristiwanyatergambardisana
Diagram Kolaborasi • Juga menunjukkan bagaimana objek berinteraksi • Alih-alih gariswaktu, diagram ini lebihmiripseperti diagram state • Pengurutan pesan ditangkap oleh penomorannya • Setara dengan diagram urutan dalam kekuatan pemodelan
Diagram Lainnya • Diagram kelas dan diagram interaksi merupakanyang paling umum digunakan selama desain • Ada diagram lain yang digunakan untuk membangun berbagai jenis model yang berbeda
Diagram Lainnya • Selainobjek/kelas, dapat mewakili komponen, paket, subsistem • Ini berguna untuk mengembangkan struktur arsitektur • UML bisadiperluas - bisa memodelkan konsep baru tetapi yang serupa dengan menggunakan stereotip (dengan menambahkan<<name>>) • Nilai ygditandaidapat digunakan untuk menentukan sifat tambahan, misalnyaprivate, readonly.. • Catatan dapat ditambahkan