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
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 Group (OMG – http://www.omg.org).
BAGIAN-BAGIAN UML
Bagian-bagian
utama dari UML adalah view, diagram, model element, dan general mechanism.
1. 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.
2. 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 diagrams dan kadang-kadang
dengan activity diagrams. View ini digunakan terutama untuk pelanggan,
perancang (designer), pengembang (developer), dan penguji sistem (tester).
3. Logical View
Mendeskripsikan bagaimana
fungsionalitas dari sistem, struktur statis (class, object, dan
relationship ) 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).
4. Component View