Unified
Modeling Language (UML) adalah
bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan
membangun sistem perangkat lunak.
Unified
Modeling Language (UML) adalah
himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek
(OOP) serta aplikasinya. UML adalah metodologi untuk mengembangkan sistem OOP
dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut. UML
mulai diperkenalkan oleh Object Management Group, sebuah organisasi yang telah
mengembangkan model, teknologi, dan standar OOP sejak tahun 1980-an. Sekarang
UML sudah mulai banyak digunakan oleh para praktisi OOP. UML merupakan dasar
bagi perangkat (tool) desain berorientasi objek dari IBM.
UML adalah
suatu bahasa yang digunakan untuk menentukan, memvisualisasikan, membangun, dan
mendokumentasikan suatu sistem informasi. UML dikembangkan sebagai suatu alat
untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh,
dan Ivar Jacobson. Namun demikian UML dapat digunakan untuk memahami dan
mendokumentasikan setiap sistem informasi. Penggunaan UML dalam industri terus
meningkat. Ini merupakan standar terbuka yang menjadikannya sebagai bahasa
pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem.
Sampai
era tahun 1990 puluhan metodologi pemodelan berorientasi objek telah
bermunculan di dunia. Diantaranya adalah: metodologi booch, metodologi coad,
metodologi OOSE, metodologi OMT, metodologi shlaer-mellor, metodologi
wirfs-brock, dsb. Masa itu terkenal dengan masa perang metodologi (method war)
dalam pendesainan berorientasi objek. Masing-masing metodologi membawa notasi
sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita bekerjasama
dengan kelompok/perusahaan lain yang menggunakan metodologi yang berlainan.
Dimulai
pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang merupakan tiga tokoh
yang boleh dikata metodologinya banyak digunakan mempelopori usaha untuk
penyatuan metodologi pendesainan berorientasi objek. Pada tahun 1995 direlease
draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut
dikoordinasikan oleh Object Management
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.
-
Use case
view
Mendeskripsikan fungsionalitas sistem yang seharusnya
dilakukan sesuai yang diinginkanexternal actors. Actor yang
berinteraksi dengan sistem dapat berupa user atau sistem lainnya.
-
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.
-
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.
-
Concurrency
view
Membagi sistem ke dalam proses dan prosesor. View ini
digambarkan dalam diagram dinamis (state, sequence, collaboration,
dan activity diagrams) dan diagram implementasi (componentdan deployment
diagrams) serta digunakan untuk pengembang (developer), pengintegrasi
(integrator), dan penguji (tester).
-
Deployment
view
Mendeskripsikan fisik dari sistem seperti komputer dan
perangkat (nodes) dan bagaimana hubungannya dengan lainnya.
b. 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 :
UML
menyediakan 13 macam diagram untuk memodelkan aplikasi berorientasi objek,
yaitu:
1. Use Case Diagram untuk
memodelkan proses bisnis.
Use
case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem.
Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”.
Sebuah 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.
2. Conceptual
Diagram untuk memodelkan konsep-konsep yang ada di dalam aplikasi.
3. Sequence
Diagram untuk memodelkan pengiriman pesan (message) antar objects.
Sequence
diagram merupakan diagram yang menggambarkan pola hubungan diantara sekumpulan
objek yang saling mempengaruhi menurut urutan waktu. Sebuah objek berinteraksi
dengan objek lain melalui pengiriman pesan (messages). Sequence diagram
biasanya digunakan untuk mengilustrasikan sebuah use case.
4.
Collaboration Diagram untuk memodelkan interaksi antar
objects.
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.
5.
State Diagram untuk memodelkan perilaku objects
di dalam system
Statechart
diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke state
lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima.
Pada umumnya statechart diagram menggambarkan class tertentu (satu class dapat
memiliki lebih dari satu statechart diagram).
6.
Activity Diagram untuk memodelkan perilaku Use Cases
dan objects di dalam system.
Activity
diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang
dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi,
dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses
paralel yang mungkin terjadi pada beberapa eksekusi.
7.
Class Diagram untuk memodelkan struktur kelas.
Class
diagram menggambarkan struktur dan deskripsi class, package dan objek beserta
hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan
lain-lain.
8. Object
Diagram untuk memodelkan struktur object.
Pada
object diagram digambarkan hubungan antar elemen dalam model, tapi dengan
memakai objeknya, bukan class. Class ialah kumpulan dari objek-objek yang
memiliki attribute, behaviour atau operation yang sama.
Class
dan object di dalam tahapan design digambarkan dengan letak yang memiliki tiga
bagian. Pada bagian atas diberi nama class atau object. Bagian tengah merupakan
bagian yang berisi attribute yang dimiliki dan bagian bawah berisi operation.
9.
Component Diagram untuk
memodelkan komponen object.
Component
Diagram merupakan gambaran aspek fisik sistem berbasis objek dengan menunjukkan
hubungan dan ketergantungan dalam serangkaian komponen. Menggambarkan komponen
fisik software termasuk source code, run time (binary) code, executable file,
table, library, dan dokumen. Meliputi komponen, interface, dependency, generalization,
association, realization, notes, constraint, packages, subsystem dari sebuah
model.
10.
Deployment Diagram untuk memodelkan distribusi
aplikasi.
Deployment
diagram menggambarkan sumber fisik dalam sistem, termasuk node, komponen dan
koneksi (model implementasi sistem yang statistik). Dalam hal ini meliputi
topologi hardware yang dipakai sistem.
11.
Interaction overview diagram menunjukan layout dari activity
diagram untuk memodelkan alur dari logic dalam
sekumpulan interaksi.
12. Package diagram menggambarkan
dekomposisi dari sistem menjadi unit-unit dan hubungan ketergantungannya.
13.
Timing diagram menyediakan perubahan statis
yang menekankan pada waktu sebenarnya.
Kesimpulan
Unified
Modeling Language (UML) adalah bahasa pemodelan umum yang digunakan untuk
melakukan spesifikasi, visualisasi, konstruksi dan dokumentasi artifak dari
software system. UML bukanlah sebuah standar proses pengembangan dalam metode
pengembangan sistem tertentu, namun pada umumnya UML dipakai dalam memodelkan
sistem yang dibangun berbasiskan objek.
Tujuan
UML menurut Booch, Rumbaugh dan Jacobson :
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 pemograman dan proses rekayasa.
Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan.
Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun.
Memberikan bahasa pemodelan yang bebas dari berbagai bahasa pemograman dan proses rekayasa.
Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan.
Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun.