Unified Modeling Language (UML)
1.1 Sejarah Unified Modeling
Language (UML)
Tahun 1994, Grady Boch dan James Rumbaugh bergabung
untuk menggunakan metode berorientasi objek. Ivan Jacobson bergabung pada tahun
1995, dan mereka bertiga fokus membuat suatu bahasa pemodelan objek standar
sebagai ganti dari pendekatan atau metode objek standar. Berdasarkan kerja
mereka dan hasil kerja lainnya pada industri, Unified Modeling Language
(UML) versi 1.0 dirilis pada tahun 1997.
Unified Modeling Language (UML) tidak menentukan metode untuk sistem-sistem pengembangan, tetapi sudah
diterima luas sebagai standar untuk pemodelan objek. Object Management
Gorup/OMG, badan standar industri, mengadopsi UML pada bulan November 1997 dan
terus bekerja sama untuk meningkatkannya berdasarkan kebutuhan industri. Pada
saat ini, salah satu industri telah merilis sebuah sofware yang mendukung UML
yaitu Visual Paradigm 6.4 Interprise edition. Berbagai industri juga
bermunculan dan mendukung penggunaan UML dengan berbagai produk, diantaranya
Rational Rose, SmartDraw, dan lain-lain.
1.2 Definisi Unified Modeling Language (UML)
Unified Modeling Language (UML) merupakan satu kumpulan konvensi pemodelan yang digunakan untuk menentukan
atau menggambarkan sebuah sistem software yang terkait dengan objek (Whitten L.
Jeffery et al, 2004). Sementara menurut Henderi (2007: 4) Unified Modeling
Language (UML) adalah sebuah bahasa pemodelan yang telah menjadi standar
dalam industri software untuk visualisasi, merancang, dan mendokumentasikan
sistem perangkat lunak. Bahasa Pemodelan UML lebih cocok untuk pembuatan
perangkat lunak dalam bahasa pemrograman berorientasi objek (C+ , Java,
VB.NET), namun demikiantetap dapat digunakan pada bahasa pemrograman prosedural
(Ziga Turck, 2007)
Unified Modeling Language (UML) biasa digunakan untuk (Henderi, 2007 :11)
1.
Menggambarkan batasan sistem dan
fungsi-fungsi sistem secara umum, dibuat dengan use case dan actor
2.
Menggambarkan kegiatan atau proses
bisnis yang dilaksanakan secara umum, dibuat dengan interaction diagrams
3.
Menggambarkan representasi struktur
statik sebuah sistem dalam bentuk class diagrams
4.
Membuat model behavior ”yang
menggambarkan kebiasaan atau sifat sebuah sistem” dengan state transition
diagrams
5.
Menyatakan arsitektur implementasi
fisik menggunakan component and development diagrams
6.
Menyampaikan atau memperluas
fungsionality dengan stereotypes (Ziga Turck, 2007)
UML merupakan salah satu alat bantu yang sangat handal
dalam bidang pengembangan sistem berorientasi objek karena UML menyediakan
bahasa pemodelan visual yang memungkinkan pengembang sistem membuat blue
print atas visinya dalam bentuk yang baku. UML berfungsi sebagai jembatan
dalam mengkomunikasikan beberapa aspek dalam sistem melalui sejumlah elemen
grafis yang bisa dikombinasikan menjadi diagram. UML mempunyai banyak diagram
yang dapat mengakomodasi berbagai sudut pandang dari suatu perangkat lunak yang
akan dibangun. Diagram-diagram tersebut digunakan untuk (Henderi et al,
2008:71):
1. Mengkomunikasikan ide
2. Melahirkan ide-ide baru dan peluang-peluang baru
3. Menguji ide dan membuat prediksiMemahami struktur dan relasi-relasinya
1.3 Konsep Pemodelan Menggunakan Unified Modeling
Language (UML)
Pemodelan menggunakan Unified Modeling Language
merupakan metode pemodelan berorientasi objek dan berbasis visual. Karenanya
pemodelan menggunakan UML merupakan pemodelan objek yang fokus pada
pendefinisian struktur statis dan model sistem informasi yang dinamis daripada
mendefinisikan data dan model proses yang tujuannya adalah pengembangan
tradisional. UML menawarkandiagram yang dikelompokan menjadi lima
perspektif berbeda untuk memodelkan suatu sistem. Seperti satu set blue
print yang digunakan untuk membangun sebuah rumah.
1.3.1 Diagram Dasar dalam Unified Modeling Language
(UML)
Berikut ini adalah penjelasan mengenai berbagai
diagram UML serta tujuannya:
1. Model Use Case Diagram
Use Case Diagram secara grafis menggambarkan interaksi
antara sistem, sistem eksternal, dan pengguna. Dengan kata lain Use Case
diagram secara grafis mendeskripsikan siapa yang akan menggunakan sistem dan
dalam cara apa pengguna (user) mengharapkan interaksi dengan sistem itu. Use
Case secara naratif digunakan untuk secara tekstual menggambarkan sekuensi
langkah-langkah dari setiap interaksi.
2. Diagram Struktur Statis
UML menawarkan dua diagram untuk memodelkan struktur
statis sistem informasi, yaitu:
a.Class Diagram: menggambarkan struktur object sistem. Diagram ini
menunjukan class object yang menyusun sistem dan juga hubungan antara class
object tersebut
b.Object Diagram: serupa dengan class diagram, tetapi object diagram
memodelkan isntance object actual dengan menunjukan nilai-nilai saat ini dari
atribut instance. Object Diagram menyajikan “snapshot/potret” tentang objek
sistem pada point waktu tertentu. Diagram ini tidak digunakan sesering Class
Diagram, tetapi saat digunakan dapat membantu seorang developer memahami
struktur sistem secara lebih baik.
3. Diagram Interaksi
Diagram interaksi memodelkan sebuah interaksi, terdiri
dari satu set objek, hubungan-hubungannya, dan pesan yang terkirim di antara
objek. Model diagram ini memodelkan behavior (kelakuan) sistem yang dinamis dan
UML memiliki dua diagram untuk tujuan ini, yaitu:
a.Diagram rangkaian/Sequence Diagram: secara grafis menggambarkan bagaimana objek berinteraksi dengan satu
sama lain melalui pesan pada sekuensi sebuah use case atau operasi. Diagram ini
mengilustrasikan bagaimana pesan terkirim dan diterima di antara objek dan
dalam sekuensi atau timing apa.
b.Diagram kolaborasi/Collaboration Diagram: serupa dengan diagram rangkaian/sekuensi, tetapi tidak fokus pada timing
atau sekuensi pesan. Diagram ini justru menggambarkan interaksi (atau
kolaborasi) antara objek dalam sebuah format jaringan.
Diagram rangkaian maupun diagram kolaborasi merupakan
isomorphic artinya kita dapat mengubah dari satu diagram ke diagram lain.
4. Diagram State/State Diagram
UML memiliki sebuah diagram untuk memodelkan behavior
objek khusus yang kompleks (statecahrt) dan sebuah diagram untuk memodelkan
behavior dari sebuah use case atau sebuah metode, yaitu:
a.Diagram statechart: digunakan untuk memodelkan behavior objek khusus yang dinamis. Diagram ini
mengilustrasikan siklus hidup objek-berbagai keadaan yang dapat diasumsikan
oleh objek dan event-event (kejadian) yang menyebabkan objek beralih dari satu
state ke state lain.
b.Diagram aktivitas/Activity
Diagram: secara grafis digunakan untuk
menggambarkan rangkaian aliran aktivitas baik proses bisnis maupun use case.
Activity diagram dapat juga digunakan untuk memodelkan action yang akan
dilakukan saat sebuah operasi dieksekusi, dan memodelkan hasil dari action
tersebut.
5. Diagram Implementasi
Diagram implementasi juga memodelkan struktur sistem
informasi, yaitu:
a.Diaram komponen/Component Diagram: digunakan untuk menggambarkan organisasi dan ketergantungan
komponen-komponen software sistem. Komponen diagram dapat digunakan untuk
menunjukan bagaimana kode pemrograman dibagi menjadi modul-modul (atau
komponen).
b.Diagram penguraian/Deployment: digunakan untuk mendeskripsikan arsitektur fisik dalam istilah ”node”
untuk hardware dan software dalam sistem. Diagram ini menggambarkan konfigurasi
komponen-komponen software real-time, prosesor, dan peralatan yang
membentuk arsitektur sistem.
USE CASE
DIAGRAM
2.1 Definisi Use Case Diagram
Use Case diagram adalah model
fungsional sebuah sistem yang menggunakan actor dan use case. Use
Case adalah layanan (services) atau fungsi-fungsi yang disediakan
oleh sistem untuk pengguna-penggunanya (Henderi et al, 2008). Use Case adalah
suatu pola atau gambaran yang menunjukan kelakukan atau kebiasaan sistem.
Setiap Use Case adalahsuatu urut-urutan (sequence) transaksi yang saling
berhubungan dan dilakukan oleh sebuah actor dan sistem dalam bentuk sebuah
dialog (Henderi, 2007). Use Case Diagram dibuat untuk memvisualisasikan/
menggambarkan hubungan antara Actor dan Use Case. Use Case diagram
mempresentasikan kegunaan atau fungsi-fungsi sistem dari perspektif pengguna.
2.2 Simbol dan Notasi Dasar Use Case Diagram
Sistem
Gambar batasan (boundries) sebuah sistem menggunakan
empat persegi panjang yang berisi use case-use case.
Use Case
Gambar use cases menggunakan lingkaran berbentuk bulat
telur (ovals)
Actors
Actors adalah para pengguna (users) dari sebuah
sistem. Kadangkala sebuah sistem adalah merupakan actors bagi sistem yang lain,
beri nama actors sistem tersebut dengan streotipe (bentuk klise/tiruan) actor
(gambar 2.3). Actor adalah seseorang atau sesuatu yang harus berinteraksi
dengan sistem atau sistem yang dibangun/dikembangkan
Relationships
Ilustrasi atau gambaran relasi/hubungan antara sebuah
actor dan use case dengan sebuah garis sederhana. Untuk relasi-relasi antara
use cases, gunakan tanda anak panah-anak panah pada ”uses” yang lainnya atau
gunakan ”extends”. Suatu relasi ”uses” mengindikasikan bahwa ada use case yang
dibutuhkan oleh use case yang lain untuk melakukan sebuat permintaan (task).
Sementara suatu relasi ”extends” mengindikasikan beberapa alternatif opsi
(pilihan) tertentu pada tingkatan yang lebih bawah yang ada pada use case
CLASS DIAGRAM
3.1 Definisi Class Diagram Class
adalah kumpulan objek-objek dengan dan yang mempunyai
struktur umum, behavior umum, relasi umum, dan semantic/kata yang umum.
Class-class ditentukan/ditemukan dengan cara memeriksa objek-objek dalam
sequence diagram dan collaboration diagram. Sebuah class digambarkan seperti
sebuah bujur sangkar dengan tiga bagian ruangan. Class sebaiknya diberi nama
menggunakan kata benda sesuai dengan domain/bagian/kelompoknya.
Class Diagram adalah diagram
yang menunjukan class-class yang ada dari sebuah sistem dan hubungannya secara
logika. Class diagram menggambarkan struktur statis dari sebuah sistem. Karena
itu class diagram merupakan tulang punggung atau kekuatan dasar dari hampir
setiap metode berorientasi objek termasuk UML (Henderi, 2008). Sementara
menurut (Whitten L. Jeffery et al 2004:432) class diagram adalah gambar grafis
mengenai struktur objek statis dari suatu sistem, menunjukan class-class objek
yang menyusun sebuah sistem dan juga hubungan antara class objek tersebut. Elemen-eleman
class diagram dalam pemodelan UML terdiri dari: Class-class, struktur
class, sifat class (class behavior), perkumpulan/gabungan (association),
pengumpulan/kesatuan (agregation), ketergantungan (dependency), relasi-relasi
turunannya, keberagaman dan indikator navigasi, dan role name (peranan/tugas
nama).
3.2 Simbol dan Notasi Dasar Class Diagram Classes merepresentasikan sebuah abstraksi dari entitas-entitas dengan
sifat-sifat atau karakteristik yang bersifat umum. Asosiasi
(perkumpulan/persatuan) merepresentasikan relasi (hubungan) antara class-class.
Classes Ilustrasikan/gambarkan classes
dengan bentuk empat persegi panjang yang dibagi kedalam ruang-ruang terpisah
(compartments). Nama class ditempatkan pada bagian pertama (rata tengah,
di-bold, dan Huruf besar), daftar atribut diletakan pada bagian kedua, dan
operasi-operasi pada class dibagian ketiga
Active ClassesActive classes
adalah class yang memulai dan mengontrol aliran/arus/arah aktifitas.
Sementara passive class menyimpan data dan melayani (men-serve) class yang
lain. active class pada sebuah bolder tebal dibagian tengah
Visibility Gunakan penilai visibility
(“penglihatan”) untuk menandakan siapa yang bisa mengakses informasi-informasi
yang diisi kedalam sebuah class. Private visibiliy artinya informasi yang ada
dalam sebuah class disembunyikan/dipartisi dari pihak luar. Public visibility
mengijinkan semua class yang lainnya untuk melihat nilai informasi. Protected
visibility mengijinkan class-class yang ada yang merupakan turunannya untuk
mengakses informasi yang ada didalamnya karena mereka merupakan class turunan
dari class induknya/inherited
Associations Associations adalah
representasi/gambaran relasi statis diantara class-class. Tempatkan nama
associations pada bagian atas, di, atau dibawah garis associations. Gunakan
tanda anak panah yang berisi sebuah kata yang mengindikasikan relasi secara
langsung. Letakan role (aturan/ ketentuan) pada bagian akhir associations.
Aturan merepresentasikan arah bagi kedua kelas untuk saling berhubungan satu
sama lain (gambar 3.4). Pada umumnya sebuah ”nama” tidak digunakan untuk
menunjukan role sebuah class.
Dalam associations terdapat roles (aturan/ketentuan)
yang disebut dengan multiplicity. Multiplicity adalah jumlah kejadian minimum
dan maksimum dari satu object/class untuk satu kejadian tunggal dari
object/class yang terkait.
Unified Modeling Language (UML) merupakan sistem
arsitektur yang bekerja dalam OOAD (Object-Oriented Analysis/Design) dengan
satu bahasa yang konsisten untuk menentukan, visualisasi, mengkontruksi, dan
mendokumentasikan artifact (sepotong informasi yang digunakan atau dihasilkan dalam
suatu proses rekayasa software, dapat berupa model, deskripsi, atau software)
yang terdapat dalam sistem software. UML merupakan bahasa pemodelan yang paling
sukses dari tiga metode OO yang telah ada sebelumnya, yaitu Booch, OMT (Object
Modeling Technique), dan OOSE (Object-Oriented Software Engineering).UML
merupakan kesatuan dari dari ketiga pemodelan tersebut dan ditambah kemampuan
lebih karena mengandung metode tambahan untuk mengatasi masalah pemodelan yang
tidak dapat ditangani ketiga metode tersebut. UML dikeluarkan oleh OMG (Object
Management Group, Inc) yaitu organisasi internasional yang dibentuk pada 1989,
terdiri dari perusahaan sistem informasi, software developer, dan para user
sistem komputer.Dengan adanya UML, diharapkan dapat mengurangi kekacauan dalam
bahasa pemodelan yang selama ini terjadi dalam lingkungan industri. UML
diharapkan juga dapat menjawab masalah penotasian dan mekanisme tukar menukar
model yang terjadi selama ini.
UML sendiri mempunyai 9 diagram, diantaranya:
1. Class Diagram
2. Use case Diagram
3. Object Diagram
4. State Diagram
5. Activity Diagram
6. Sequence Diagram
7. Collaboration diagram
8. Component
diagram
9. Deployment diagram
BAGIAN-BAGIAN
UML
Bagian-bagian utama dari UML adalah view,
diagram, model element, dan general mechanism.
a. View View digunakan untuk melihat
sistem yang dimodelkan dari beberapa aspek yang berbeda. View bukan
melihat grafik, tapi merupakan suatu abstraksi yang berisi sejumlah diagram.
Beberapa jenis view dalam UML antara lain: use case view,
logical view, component view, concurrency view,dan deployment view.
b. Use case view
Mendeskripsikan fungsionalitas sistem yang seharusnya dilakukan sesuai yang
diinginkan external actors. Actor yang berinteraksi dengan
sistem dapat berupa user atau sistem lainnya. View ini digambarkan
dalam use case diagramsdan kadang-kadang dengan activity
diagrams. Viewini digunakan terutama untuk pelanggan, perancang
(designer), pengembang (developer), dan penguji sistem (tester).
c. Logical view
Mendeskripsikan bagaimana fungsionalitas dari sistem, struktur statis (class,
object,danrelationship ) dan kolaborasi dinamis yang terjadi
ketika object mengirim pesan ke object lain dalam suatu
fungsi tertentu. View ini digambarkan dalam class diagrams untuk
struktur statis dan dalam state, sequence, collaboration, dan activity
diagram untuk model dinamisnya. View ini digunakan untuk
perancang (designer) dan pengembang (developer).
d. Component view Mendeskripsikan
implementasi dan ketergantungan modul. Komponen yang merupakan tipe lainnya
dari code module diperlihatkan dengan struktur dan ketergantungannya
juga alokasi sumber daya komponen dan informasi administrative lainnya.
View ini digambarkan dalam component view dan digunakan untuk
pengembang (developer).
e. Concurrency view Membagi sistem
ke dalam proses dan prosesor.View ini digambarkan dalam diagram dinamis
(state, sequence, collaboration, dan activity diagrams) dan diagram
implementasi (component dan deployment diagrams) serta digunakan
untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester).
f. Deployment view
Mendeskripsikan fisik dari sistem seperti komputer dan perangkat (nodes) dan
bagaimana hubungannya dengan lainnya. View ini digambarkan
dalam deployment diagramsdan digunakan untuk pengembang (developer),
pengintegrasi (integrator), dan penguji (tester).
g. Diagram Diagram berbentuk grafik yang
menunjukkan simbol elemen model yang disusun untuk mengilustrasikan bagian atau
aspek tertentu dari sistem. Sebuah diagram merupakan bagian dari
suatu view tertentu dan ketika digambarkan biasanya dialokasikan
untuk view tertentu. Adapun jenis diagram antara lain :
1. Use Case Diagram Use case
adalah abstraksi dari interaksi antara system dan actor. Use case bekerja
dengan cara mendeskripsikan tipe interaksi antara user sebuah system dengan
sistemnya sendiri melalui sebuah cerita bagaimana sebuah system
dipakai. Use casemerupakan konstruksi untuk mendeskripsikan bagaimana system
akan terlihat di mata user. Sedangkan use case diagram memfasilitasi komunikasi
diantara analis dan pengguna serta antara analis dan client.
2. Class Diagram Class
adalah dekripsi kelompok obyek-obyek dengan property, perilaku (operasi) dan
relasi yang sama. Sehingga dengan adanya class diagram dapat memberikan
pandangan global atas sebuah system. Hal tersebut tercermin dari class- class
yang ada dan relasinya satu dengan yang lainnya. Sebuah sistem biasanya
mempunyai beberapa class diagram. Class diagram sangat membantu dalam
visualisasi struktur kelas dari suatu system.
3. Component Diagram
Component software merupakan bagian fisik dari sebuah system, karena
menetap di komputer tidak berada di benak para analis. Komponent merupakan
implementasi software dari sebuah atau lebih class. Komponent dapat
berupa source code, komponent biner, atau executable component.
Sebuah komponent berisi informasi tentang logic class atau class yang
diimplementasikan sehingga membuat pemetaan dari logical
view ke component view.Sehingga component diagram merepresentasikan
dunia riil yaitu component software yang mengandung component, interface dan
relationship.
4. Deployment Diagram Menggambarkan tata letak sebuah system secara fisik, menampakkan bagian-bagian software yang berjalan pada bagian-bagian hardware, menunjukkan hubungan komputer dengan perangkat (nodes) satu sama lain dan jenis hubungannya. Di dalam nodes,executeable component dan object yang dialokasikan untuk memperlihatkan unit perangkat lunak yang dieksekusi oleh node tertentu dan ketergantungan komponen.
4. Deployment Diagram Menggambarkan tata letak sebuah system secara fisik, menampakkan bagian-bagian software yang berjalan pada bagian-bagian hardware, menunjukkan hubungan komputer dengan perangkat (nodes) satu sama lain dan jenis hubungannya. Di dalam nodes,executeable component dan object yang dialokasikan untuk memperlihatkan unit perangkat lunak yang dieksekusi oleh node tertentu dan ketergantungan komponen.
5. State Diagram Menggambarkan
semua state (kondisi) yang dimiliki oleh suatu object dari
suatu class dan keadaan yang menyebabkan state berubah.
Kejadian dapat berupa object lain yang mengirim pesan. State
class tidak digambarkan untuk semua class, hanya yang mempunyai
sejumlah state yang terdefinisi dengan baik dan kondisi class berubah
oleh stateyang berbeda.
6. Sequence Diagram Sequence
Diagram digunakan untuk menggambarkan perilaku pada sebuah scenario.
Kegunaannya untuk menunjukkan rangkaian pesan yang dikirim
antara object juga interaksi antaraobject, sesuatu yang terjadi pada
titik tertentu dalam eksekusi sistem.
7. Collaboration Diagram Menggambarkan
kolaborasi dinamis sepertisequence diagrams. Dalam menunjukkan pertukaran
pesan, collaboration diagrams menggambarkan objectdan
hubungannya (mengacu ke konteks). Jika penekannya pada waktu atau urutan
gunakansequencediagrams, tapi jika penekanannya pada konteks
gunakan collaboration diagram.
8. Activity Diagram Menggambarkan
rangkaian aliran dari aktivitas, digunakan untuk mendeskripsikan aktifitas yang
dibentuk dalam suatu operasi sehingga dapat juga digunakan untuk aktifitas
lainnya seperti use caseatau interaksi.
Tujuan Penggunaan UML
- Memberikan bahasa pemodelan yang bebas dari berbagai bahas pemrograman dan proses rekayasa.
- Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan.
- Memberikan model yang siap pakai, bahsa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum.
- UML bisa juga berfungsi sebagai sebuah (blue print) cetak biru karena sangat lengkap dan detail. Dengan cetak biru ini maka akan bias diketahui informasi secara detail tentang coding program atau bahkan membaca program dan menginterpretasikan kembali ke dalam bentuk diagram (reserve enginering).
Perangkat lunak yang mendukung
pembuatan diagaram UML
1.
StarUML (http://staruml.sourceforge.net/en/)
StarUML adalah sebuah proyek open
source untuk mengembangkan cepat, fleksibel, extensible, featureful, dan
bebas-tersedia UML / platform MDA berjalan pada platform Win32.Tujuan dari
proyek StarUML adalah untuk membangun sebuah alat pemodelan perangkat lunak dan
juga platform yang menarik adalah pengganti alat UML komersial seperti Rational
Rose, Bersama dan sebagainya
Acceleo adalah
generator kode yang mengubah model menjadi kode. Acceleo mudah digunakan
dan menyediakan “dari rak” generator (Jee,. Bersih, Php …) dan template editor
untuk Eclipse.
ArgoUML adalah
open source UML modeling tool terkemuka dan termasuk dukungan untuk semua
diagram UML standar 1,4. Ini berjalan pada setiap platform Java dan
tersedia dalam bahasa sepuluh. ArgoUML ditulis seluruhnya di Jawa dan
menggunakan Java Kelas Foundation.Hal ini memungkinkan ArgoUML untuk berjalan
di hampir semua platform