object oriented data model using unified modeling...

Post on 08-Mar-2018

237 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Object Oriented Data Model using

Unified Modeling Language (UML)

Presented at the 5th Meeting Database, ST3 Telkom Purwokerto, 20 Oktober 2015

Objectives

• Mahasiswa mampu memodelkan basis data object Oriented menggunakan Unified Modeling Language (UML)

Content

• Konsep Object • Konsep UML • Class Diagram • Use Case Diagram • Activity Diagram • Sequence Diagram • Collaboration Diagram • Component Diagram • Implementation/Deployment Diagram • Tool Pendukung UML

Konsep Object

• Obyek dalam ‘software analysis & design’ adalah sesuatu berupa konsep (concept), benda (thing), dan sesuatu yang membedakannya dengan lingkungannya.

• Secara sederhana obyek adalah mobil, manusia, alarm dan lain - lainnya. Tapi obyek dapat pula merupakan sesuatu yang abstrak yang hidup didalam sistem seperti tabel, database, event, system messages.

• Obyek dikenali dari keadaannya dan juga operasinya. Sebagai contoh sebuah mobil dikenali dari warnanya, bentuknya, sedangkan manusia dari suaranya. Ciri-ciri ini yang akan membedakan obyek tersebut dari obyek lainnya.

Berorientasi Objek • Object-oriented analysis (OOA) : pendekatan

yang digunakan untuk: 1. Menggunakan obyek yang sudah ada untuk

digunakan kembali (reuse) atau diadaptasi untuk penggunaan baru

2. Mendefinisikan obyek baru atau obyek yang dimodifikasi dan digabungkan dengan obyek yang sudah ada untuk membangun suatu aplikasi bisnis

• Object modeling (Pemodelan Obyek) : Teknik untuk mengidentifikasi obyek yang ada dalam sistem dan relasi diantara obyek-obyek tersebut

Mengapa harus OO?

• OO menawarkan tipe data abstrak, modularitas, pemodelan informasi, proses software untuk mengatasinya

• Programmer hanya dibutuhkan memahami konsep berorientasi objek untuk mengkombinasikan konsep berorientasi objek dengan storage basis data relasional

• Model data berorientasi objek lebih kompatibel dengan tools pemrograman berorientasi objek

Kapan menggunakan pemodelan OO?

• Jika perangkat lunak (PL) yang dibangun cukup kompleks (scalability)

• Jika PL yang dibangun diperkirakan akan tumbuh makin kompleks di masa mendatang (dynamic modeling) dan real time

• Jika ingin membangun PL yang: – Berdasar pada komponen yang telah pernah ada

sebelumnya (daur ulang)

– Dapat dipergunakan kembali di masa mendatang (reusable)

Konsep Object (cont’)

• Ada 3 (tiga) teknik/konsep dasar dalam OOA/D, yaitu 1. pemodulan (encapsulation)/information hiding

• menggabungkan potongan-potongan informasi dan perilaku-perilaku spesifik yang bekerja pada informasi tersebut, kemudian dikemas menjadi sebuah objek.

2. penurunan (inheritance) • konsep yang menyatakan bahwa metode atau atribut dalam kelas dapat diturunkan

atau digunakan kembali oleh kelas lain. • Obyek-obyek memiliki banyak persamaan, namun ada sedikit perbedan. Contoh

dengan beberapa buah mobil yang mempunyai kegunaan yang berbeda-beda. Ada mobil bak terbuka seperti truk, bak tertutup seperti sedan dan minibus. Walaupun demikian obyek-obyek ini memiliki kesamaan yaitu teridentifikasi sebagai obyek mobil, obyek ini dapat dikatakan sebagai obyek induk (parent). Sedangkan minibus dikatakan sebagai obyek anak (child), hal ini juga berarti semua operasi yang berlaku pada mobil berlaku juga pada minibus.

3. Polymorphism • obyek yang berbeda dapat merespon pesan yang sama dengan cara yang berbeda • Pada obyek mobil, walaupun minibus dan truk merupakan jenis obyek mobil yang

sama, namun memiliki juga perbedaan. Misalnya suara truk lebih keras dari pada minibus, hal ini juga berlaku pada obyek anak (child) melakukan metoda yang sama dengan algoritma berbeda dari obyek induknya. Hal ini yang disebut polymorphism, teknik atau konsep dasar lainnya adalah ruang lingkup/pembatasan. Artinya setiap obyek mempunyai ruang lingkup kelas, atribut, dan metoda yang dibatasi.

Konsep UML

• ER Diagram membantu untuk memodelkan representasi komponen data dari sebuah sistem perangkat lunak

• Representasi data, hanya merupakan satu dari bagian dari keseluruhan desain/rancangan sistem

• Merancang adalah menemukan suatu cara untuk menyelesaikan masalah, salah satu tool / model untuk merancang pengembangan software yang berbasis object oriented adalah UML

UML...???

• "bahasa" yg telah menjadi standar dalam untuk visualisasi, perancangan dan pendokumentasian piranti lunak

• UML menggunakan class dan operation dalam konsep dasarnya, sehingga lebih cocok untuk penulisan piranti lunak dalam bahasa bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C

Konsep UML (cont’)

• UML merupakan sebuah standar yang dikembangkan untuk membuat spesifikasi dari beberapa komponen sistem perangkat lunak tidak sekedar representasi data

• UML (Unified Modeling Language) adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (ObjectOriented).

• UML sendiri juga memberikan standar penulisan sebuah system blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponen-komponen yang diperlukan dalam sistem software (http://www.omg.org)

Tujuan UML

• Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum

• Memberikan bahasa pemodelan yang bebas dari berbagai bahasa pemrograman dan proses rekayasa

• Menyatukan praktek-praktek terbaik yang terdapat dalam bahasa pemodelan

Bagian Dasar UML

1. Things

2. Ralationship

3. Diagram

Things

4 Macam Things dalam UML :

a. Structural Things

b. Behavioral Things

c. Grouping Things

d. Annotational Things

A. Structural Things

• Merupakan Bagian yang bersifat statis dalam model UML

• Dapat berupa elemen-elemen yang bersifat fisik maupun konseptual

• Ada 7 macam structural things, yaitu Kelas, Antarmuka, Kolaborasi, Use Case, Kelas Aktif, Komponen dan Simpul

7 macam structural things (1)

Kelas

- Himpunan dari objek-objek yang berbagi atribut serta operasi yang sama

- Digambarkan dengan empat-persegi-panjang yang memuat nama, atribut, serta operasi yang dimilikinya

7 macam structural things (2)

Antarmuka (Interfaces)

- Kumpulan dari operasi-operasi yang menspesifikasi layanan (service) suatu kelas atau komponen/objek

- Mendeskripsikan perilaku yang tampak dari luar dari suatu elemen

- Jarang berdiri sendiri.

- Biasanya dilampirkan pada kelas atau komponen yang merealisasikan antarmuka

- secara grafis digambarkan dengan lingkaran kecil dengan namanya didahului dengan garis tegak (|)

7 macam structural things (3)

Kolaborasi (Collaboration)

- Mendefinisikan interaksi aturan-aturan dan elemen lain yang bekerjasama untuk menyediakan perilaku yang lebih besar dari jumlah dari elemen-elemennya (sinergi)

- Merepresentasikan pola implementasi yang memperbaiki sistem

- secara grafis digambarkan dengan elipsi bergaris putus-putus yang memuat nama kolaborasi itu.

7 macam structural things (4) Use Case - Deskripsi dari urutan aksi-aksi

yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu actor

- Digunakan untuk menstrukturkan perilaku pada suatu model

- Digambarkan dengan elips tegas yang berisi namanya

7 macam structural things (5)

Kelas Aktif (Active Class)

- Kelas dimana Objek-objek yang dimilikinya memiliki satu atau lebih proses dan lebih jauh menginisialisasi suatu objek kendali.

- Merupakan kelas biasa namun objek-objek yang dimilikinya menampilkan elemen-elemen yang memiliki perilaku konkuren.

- secara grafis digambarkan seperti kelas biasa tetapi dengan batas yang lebih tebal, yang memuat nama, atribut, serta operasi yang dimilikinya.

7 macam structural things (6)

Komponen (Component)

-Suatu Bagian tertentu dan bagian yang dapat digantikan

pada suatu sistem.

- Secara grafis digambarkan dengan empat-persegi-panjang seperti kelas tetapi ditambahi tab.

7 macam structural things (7) Simpul (Node)

- Elemen fisik yang eksis saat aplikasi dijalankan dan

mencerminkan suatu sumber daya komputasi.

- Kumpulan komponen mungkin hadir dalam simpul dan mungkin juga berpindah-pindah dari suatu simpul ke simpul yang lain.

- secara grafis digambarkan sebagai kubus yang berisi namanya.

B. Behavioral Things

- Merupakan bagian yang dinamis pada model UML

- Mencerminkan perilaku sepanjang ruang dan waktu.

- Ada 2 macam behavioral things :

1. Interaksi

2. State

Behavioral Things Interaksi

- Suatu perilaku yang mencakup himpunan pesan-pesan yang diperlukan untuk menyelesaikan suatu fungsi tertentu

- Terdiri dari pesan-pesan, urutan aksi (perilaku yang dihasilkan oleh sebuah pesan), link (hubungan antar objek-objek)

- Secara grafis, pesan digambarkan dengan tanda panah tegas yang sering memuat nama operasinya

Behavioral Things

State

- Perilaku yang menspesifikasi unsur kedudukan suatu objek atau interaksi-interaksi sepanjang waktu dalam menanggapi event-event yang terjadi.

- Penggambaran suatu state memuat beberapa unsur yaitu state itu sendiri, transisi (perubahan dari suatu state ke state lainnya), event (suatu keadaan yang memicu sebuah transisi, serta aktivitas (tanggapan terhadap transisi)

- Digambarkan sebagai empat-persegi-panjang yang sudut-sudutnya melengkung, yang memuat namanya (serta substate didalamnya, jika ada)

C. Grouping Things

- Bagian pengorganisasi dalam UML

- Dalam penggambaran model UML yang rumit kadang diperlukan penggambaran paket yang menyederhanakan model

- Paket berguna bagi pengelompokkan sesuatu, misalnya model-model serta subsistem-subsistem.

D. Annotational Things

- Bagian yang memperjelas model UML

- Dapat berupa komentar yang memperjelas fungsi serta ciri-ciri tiap elemen dalam model UML

RELATIONSHIP

- Hubungan-hubungan yang terjadi antarelemen dalam UML

- Ada 4 macam relationship dalam UML, yaitu Dependency, Asosiasi, Generalisasi, Realisasi

Dependency (Kebergantungan)

- Hubungan dimana perubahan yang terjadi pada suatu elemen independen (mandiri) akan mempengaruhi elemen yang bergantung padanya (elemen yang tidak mandiri – independen).

- Secara grafis digambarkan dengan tanda panah putus-putus.

Asosiasi

- Menghubungkan antara objek satu dengan objek yang lainnya; bagaimana hubungan suatu objek dengan objek lainnya.

- Suatu bentuk asosiasi adalah agregasi yang menampilkan hubungan suatu objek dengan bagian-bagiannya.

- Secara grafis digambarkan dengan garis tegas tanpa tanda panah.

Generalisasi - Hubungan dimana objek anak (descendent) berbagi

perilaku dan struktur data dari objek yang ada diatasnya (objek induk – ancestor).

- Arah dari atas ke bawah (dari objek induk ke objek anak disebut spesialisasi)

- Arah dari bawah ke atas disebut generalisasi

- Secara grafis digambarkan sebagai garis yang ujungnya berkepala panah (atau bentuk segitiga) yang kosong, yang mengarah ke objek induk.

Realisasi

- Operasi yang benar-benar dilakukan oleh suatu objek

- Secara grafis digambarkan dengan tanda panah bergaris putus-putus dengan kepala panah kosong.

Diagram Ada 9 jenis diagram, yaitu : 1. Diagram Kelas

2. Diagram Objek

3. Use Case Diagram

4. Sequence Diagram

5. Collaboration Diagram

6. Statechart Diagram

7. Activity Diagram

8. Component Diagram

9. Deployment Diagram

Class Diagram

- Bersifat Statis - Memperlihatkan himpunan kelas-kelas, antarmuka-antarmuka,

kolaborasi-kolaborasi, serta relasi-relasi • Class adalah sebuah spesifikasi yang jika diinstansiasi akan

menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek.

• Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi).

• Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.

• Class memiliki tiga area pokok : 1. Nama (dan stereotype) 2. Atribut 3. Metoda

Contoh Class Diagram

Diagram Objek

- Bersifat statis

- Memperlihatkan objek-objek serta relasi-relasi antarobjek.

- Memperlihatkan instantiasi statis dari segala sesuatu yang dijumpai pada diagram kelas

Use Case Diagram

• Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Use case merepresentasikan sebuah interaksi antara aktor dengan sistem.

• Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya.

• Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu.

• Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem.

• Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal.

• Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri.

Contoh Use Case Diagram

Activity Diagram

• Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decisionyang mungkin terjadi, dan bagaimana mereka berakhir.

• Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.

• Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing).

• Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.

• Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas.

• Sama seperti state, standar UML menggunakan segi empat dengan sudut membulat untuk menggambarkan aktivitas.

• Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal.

• Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu.

Sequence Diagram

• Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu.

• Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).

• Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu.

• Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan outputapa yang dihasilkan.

• Masing-masing objek, termasuk aktor, memiliki life line vertikal. • Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya.

Pada fase desain • berikutnya, message akan dipetakan menjadi operasi/metoda dari class. • Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali

dengan diterimanya sebuah message • Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan

iconkhusus untuk objek boundary, controller dan persistent entity.

Contoh Sequence Diagram

Collaboration Diagram

• Collaboration diagram juga menggambarkan interaksi antar objek seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian message.

• Setiap message memiliki sequence number, di mana message dari level tertinggi memiliki nomor 1.

• Messages dari level yang sama memiliki prefiks yang sama.

Contoh Collaboration Diagram

Statechart Diagram

- Bersifat dinamis

- Memperlihatkan state-state pada sistem; memuat state, transisi, event, serta aktivitas.

- Memperlihatkan sifat dinamis dari antarmuka, kelas, kolaborasi dan terutama penting pada pemodelan sistem-sistem yang reaktif

Component Diagram

• Component diagrammenggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan (dependency) di antaranya.

• Komponen piranti lunak adalah modul berisi code, baik berisi source code maupun binary code, baik library maupun executable, baik yang muncul pada compile time, link time, maupun run time.

• Umumnya komponen terbentuk dari beberapa classdan/atau package, tapi dapat juga dari komponen-komponen yang lebih kecil.

• Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain.

Deployment Diagram

• Deployment/physical diagram menggambarkan detail bagaimana komponen di-deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal

• Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya.

• Hubungan antar node(misalnya TCP/IP) dan requirementdapat juga didefinisikan dalam diagram ini.

Contoh Deployment Diagram

Tools Pendukung UML

• Rational Rose (www.rational.com)

• Together (www.togethersoft.com)

• Object Domain (www.objectdomain.com)

• Jvision (www.object-insight.com)

• Objecteering (www.objecteering.com)

• MagicDraw (www.nomagic.com/magicdrawuml)

• Visual Object Modeller (www.visualobject.com)

top related