Kamis, 31 Januari 2019

UML (Unified Modeling Languag)

UML singkatan dari Unified Modeling Language. Definisi berdasarkan situs UML tutorial, UML adalah standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems. Dapat dikatakan UML merupakan standar bahasa untuk menjelaskan, menspesifikasi, menggambarkan, atau mendokumentasi perancangan/pengembangan suatu sistem perangkat lunak atau implementasi platformSelain untuk tim pengembang sistem, UML juga dibuat untuk business user atau pihak lain yang membutuhkan pemahan dari sistem ini. 

UML sendiri terdiri dari 2 kategori dasar:
  1. Diagram tingkah laku (behaviour diagram), diagram ini untuk menggambarkan kelakukan sistem/ rangkaian perubahan yang akan terjadi pada sebuah sistem.
    Ada 5 tipe: Use Case diagram, Sequence diagram, Collaboration diagram, Statechart diagram, dan Activity diagram.
  2. Diagram struktur (structure diagram), diagram ini untuk menggambarkan suatu struktur status dari sistem yang dimodelkan.
    Ada 4 tipe: Class diagram, Object diagram, Component diagram, dan Deployment diagram
Biasanya dalam suatu pengembangan sistem yang digunakan adalah Use Case diagram, Sequence diagram, Activity diagram dan Class diagram.

UML Use Case Diagram

UML Squence Diagram
UML Activity Diagram
UML Class Diagram
Definisi,

Use Case diagram

Diagram ini mendeskripsikan interaksi antara aktor dan sistem. Sehingga dapat diketahui fungsi apa saja yang ada pada sistem dan siapa saja yang dapat hak akses terhadap sistem tersebut. 

Pada Use Case Diagram terdapat istilah dan simbol di tabel bawah

*  << atau >>  disebut double chevron *

Contohnya, terdapat sebuah Publish a short story berikut ini,


Dari data tersebut didapat 6 user yang dapat mengakses sistem Publish a Story.  Terdapat 7 aktivitas yang dapat dilakukan didalam sistem tersebut. Dan masing-masing user dapat melakukan hal-hal seperti yang dijelaskan dalam bagian Extensions. Sehingga dapat dibentuk menjadi use case diagram dibawah ini,


Contoh Use Case Diagram dalam Reservasi Railway. Dimana seorang Traveller akan melakukan pemesanan tiket dengan sistem Reservasi Railway Online.


Contoh lain sistem bank,



untuk menjelaskan Include dan Extend pada sistem banking diatas

Include adalah kondisi dimana setiap kali suatu base use case beroperasi maka include use case akan beroperasi juga dan keduanya akan selesai jika include use case telah selesai melakukan kerjanya. Contoh saat login, setiap kali konsumen (user) melakukan login/input kata sandi, maka sistem bank akan secara otomatis melakukan verifikasi kata sandi. Proses login tersebut tidak akan selesai sebelum verifikasi kata sandi selesai diproses. Sehingga pada diagram digambarkan Use Case Verify Password dan Use Case Login memiliki hubungan Include, dimana Use Case Login sebagai base use case. Kondisi ini dijabarkan dengan sebuah panah dengan garis putus-putus dari base use case ke  include use case.

Extend adalah hubungan antara base use case dengan extend use case, dimana, saat  base use case berjalan, extend use case tidak selalu berjalan bersama kecuali jika suatu kondisi terpenuhi. Kondisi ini dijabarkan dengan sebuah panah dengan garis putus-putus dari extend use case ke base use case. Contoh pada hubungan antara Use Case Login dan Display login error, dimana  Use Case Login sebagai base use case. Use Case Display Login Error akan muncul apabila kata sandi tidak dapat diverifikasi.

Contoh lainnya, kondisi ketika kita akan bersin (Sneeze), kita akan otomatis menutup mata (Close Eyes) namun tidak selalu mengatakan maaf (Say Excuse Me). Kondisi ini menjelaskan, Use Case Sneeze akan menjadi base use case. Hubungan antara Use Case Sneeze dan Use Case Close Eyes adalah Include dan Hubungan antara Use Case Sneeze dan Use Case Say Excuse Me adalah Extend. Dimana, Use Case Say Excuse Me akan berjalan dengan kondisi ada orang lain disekitar User, maka ia harus mengucapkan permintaan izin/maaf. Namun jika ia dilokasi sendiri, ia tidak perlu meminta maaf.


Pada bagian bawah adalah gambar berikut, 

Bagan ini menjelaskan bahwa user dpat melakukan beberapa use case dalam sebuah use case. Contoh, saat User melakukan Set up profile, user juga dapat (secara bersamaan) melakukan perintah lain seperti Profile Help dan Privacy Info. Dimana, case-case tersebut terhubung dengan use case Go to Profile Help (saat klik Profile Help; perintah dijelaskan dengan bentuk notes/catatan) atau use case Show Privacy Info.  

Hal lain dalam use case diagram adalah Generalization, kondisi dimana sebuah Use Case dapat melakukan proses lain didalamnya, biasa disebut parent dan child (setiap anak dapat menurunkan sifat/prilaku dari orangtua, namun anak dapat memiliki sifat lain). kondisi ini digambarkan dengan arah panah dari child ke parent. Seperti pada diagram berikut, Make Payment dapat melakukan Pay from Checking dan/atau Pay from Saving. 



Hal ini berlaku juga dalam aktor, contoh Aktor Custumer, dapat dibagi menjadi Aktor New Costumer dan Aktor Returning Costumer.



Sequence diagram

diagram ini menggambarkan urutan pesan/prilaku yang dilakukan dari satu objek ke objek lain. Diagram ini berfungsi untuk menggambarkan urutan panggilan dalam suatu sistem untuk melakukan suatu fungsi. Disebut juga sebagai event diagrams atau event scenarios.

Fungsi pembuatan diagram ini adalah ...

  • Mewakili detail dari UML Use Case
  • Menjelaskan model logika dari prosedur, fungsi, dan operasi yang canggih
  • Memperlihatkan bagaimana objek dan komponen berinteraksi satu sama lain untuk menyelesaikan suatu proses
  • Memperlihatkan bagiamana sistem merencanakan dan memahami fungsional secara terperinci dari skenario yang ada atau yang akan datang (existing or future scenario)

Berikut ini simbol dalam Sequence diagram


Contoh diagram sequence dalam Sistem Manajemen Rumah Sakit
[A hospital information system, also known as a hospital information system, helps doctors, administrators, and hospital staff managing all of the activities and information collected at a hospital, including checkups, prescriptions, appointments, and information on the patients and their caretakers.]



Contoh diagram sequence lain dalam Sistem ATM
[An ATM allows patrons to access their bank accounts through a completely automated process. ]




Activity diagram

diagram ini menjelaskan alur/aktivitas yang dilakukan oleh sistem. Diagram ini akan menjelaskan jenis aktivitas yang dilakukan dan linknya. Aktivitas ini bisa dikatakan berurutan (sequential), bersamaan (concurrent), atau bercabang (brached).

Activity diagram memberikan kegunaan dalam...
  • Memperagakan logika dari suatu algoritma,
  • Menjelaskan langkah-langkah yang dilakukan dalam use case UML,
  • Mengilustrasikan proses bisnis atau alur kerja (workflow) antara user dan sistem,
  • Menjelaskan model arsitektur dari perangkat yang akan dibangun, seperti metode, fungsi, dan operasi apa yang dibutuhkan.
Beberapa istilah dalam diagram ini adalah action (step dalam aktivitas yang dilakukan oleh user/software), decision node (sebuah kondisi bercabang atau terdapat lebih dari satu inputan dalam flow; direpresntasikan dengan bentuk diamond), control flows (penghubung yang menunjukkan flow dari setiap step yang dilakukan), start node (simbol untuk awal aktivitas sistem;  direpresentasikan sebagai black circle), dan end node (simbol untuk akhir aktivitas;  direpresentasikan sebagai outlined black circle).



contoh activity diagram pada sebuah website,
contoh lain dalam proses register,

Contoh dalam sistem bank,



Class Diagram

Class diagram atau Diagram kelas, menggambarkan struktur siatem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Setiap kelas memiliki atribut (variabel dalam kelas) dan metode/operasi dari fungsi yang dimiliki. Dapat dikatakan, diagram ini digunakan untuk menggambarkan fisik dari sistem yang akan dibuat. Hal ini dikarena, diagram ini menjabarkan kelas/objek, interfaces, associations,dan collaboration apa yang dibutuhkan oleh sistem.

Class diagram memberikan kegunaan dalam...
  • Menggambarkan model data yang digunakan oleh sistem yang dibuat
  • Menggambarkan kebutuhan spesifikasi dari sistem yang dibuat
  • Menggambarkan secara detail dari spesifikasi kode yang dibutuhkan (untuk membuat program) dan mengimplementasikannya ke dalam struktur sistem
  • Memberikan deskripsi dari implementasi yang dibutuhkan oleh sistem tersebut

Ada 3 bagian dalam diagram ini, yaitu :
  • Upper section, berisi nama kelas.
  • Middle section, berisi atribut-atribut kelas.
  • Bottom section, berisikan operasi/method kelas. 

Setiap kelas memiliki tingkat akses yang berbeda tergantung pada pengubahan aksesnya (access modifier; atau visibility). Berikut tingkatan aksesnya dengan simbol yang sesuai:
  • Public (+)
  • Private (-)
  • Protected (#)
  • Package (~)
  • Derived (/)
  • Static (underlined)


Komponen dalam kelas diagram:

  • Classes : Template untuk membuat objek dan implementasinya (perilaku objek) dalam suatu sistem. Disimbolkan dalam bentuk persegi panjang yang mencangkup nama kelas, attributnya, dan operasinya (method).
  • Signals : simbol yang merepresntasikan satu alur atau komunikasi asinkron diantara objek yang aktif.
  • Data types : (tipe data) klasifikasi yang menentukan jenis dari nilai data.
  • Packages : Bentuk yang dirancang untuk mengatur hubungan klasifikasi yang saling terkait didalam diagram. Disimbolkan dalam bentuk persegi panjang dengan spasi yang lebar.
  • Interfaces : Sebuah kumpulan dari operasi atau attribut yang sama. Interface mirip dengan kelas, namuan interface harus memiliki setidaknya satu kelas untuk mengimplementasikannya.
  • Enumerations : Representasi dari tipe data user-defined. Sebuah pencacahan (enumeration) yang termasuk dalam kelompok identifiers yang mewakili values dari nilai pencacahan.
  • Objects : Instance (struktur proses dan memori yang menjalankan sistem database; system-global-area, SGA) dari sebuah kelas atau banyak kelas.
  • Artifacts : Elemen model yang mewakili entitas yang nyata didalam sistem perangkat lunak, seperti dokumen, database, executable files, komponen perangkat lunak, dsb.

Berikut ini interaksi yang dilakukan  dalam diagram kelas dan objek:
  • Inheritance (generalization), proses sebuah sub-class atau kelas anak yang mengambil fungsi dari super-class atau kelas orangtua. Disimbolkan dengan garis yang terhubung langsung dengan panah tertutup (hollow arrow) yang menunjuk ke super-class.

    Seperti contoh, kelas Car (sub-class) mewarisi semua (inherit all) dari atribut dan fungsi/method dari kelas Vehicle (super-class). Jadi sifatnya dapat sama, namun kelas Car juga dapat memiliki atribut atau method lain. Seperti seorang anak dan orangtua pada kehidupan nyata.

  • Bidirectional association (Asosiasi/Hubungan Dua Arah) : Adanya hubungan antara satu kelas dengan kelas lainnya. Hubungan antar kelas ini disimbolkan dengan sebuah garis lurus (straight line) dengan sebuah kode hubungan.

    Seperti contoh, pada hubungan antara kelas Car dan kelas RoadTrip berikut.

    Salah satu hubungan antara kelas ini adalah kelas Car mengambil objek 'assignedCar' dari kelas RoadTrip dengan value dari 0..1, artinya, ketika instance  dari kelas RoadTrip exists, maka ia dapat memiliki satu instance dari kelas Car yang terkait dengannya atau tidak.

    Sedangkan value dari 0...*, artinya, kelas RoadTrip dapat memiliki beberapa instance dari kelas Car yang terkait dengannya karena satu instance kelas Car dapat memiliki beberapa hubungan 'getRoadTrip'. dengan kata lain, sebuah mobil dapat melakukan beberapa perjalanan.

    **instance adalah sebuah variabel yang dideklarasikan di dalam class, diluar method baik constructor atau method lainnya.**

  • Unidirectional association (Asosiasi Searah, Directed association) : Hubungan ini menjelaskan adanya hubungan sebuah kelas terhadap kelas lain, namun tidak sebaliknya. Hubungan kelas ini disimbolkan dengan sebuah garis lurus yang menunjuk panah terbuka (open arrowhead) dari sebuah kelas ke kelas lain.

    Seperti contoh, dalam kelas dibawah, aktivitas kelas SpeedEnforcer tidak akan diketahui oleh kelas Car sampai ada suatu method untuk memberikan informasi/notifikasi hasil dari kecepatan mobil. Penggambaran dibawah ini menjelaskan kelas SpeedEnforcer mencatat informasi yang didapatkan dari kelas Car. 


Simbol,
Berikut contoh Class Diagram pada sistem nanajemen hotel. Dimana, terdapat hubungan dari beberapa pekerja, tamu, dsb. yang disimbolkan menjadi kelas.

Contoh lain pada sistem ATM. Dimana, konsumen dapat mengakses uang tabungannya dari bank melalui mesin ATM. Namun, dibalik dua hubungan ini, terdapat banyak hubungan lain untuk memvalidasi proses yang dilakukan keduanya.


Tidak ada komentar:

Posting Komentar

jangan lupa beri komentar dan join blognya yaa :)