Sejarah Singkat UML
UML
(Unified Modeling Language) adalah sebuah bahasa yang berdasarkan grafik/gambar
untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari
sebuah sistem pengembangan software
berbasis OO (Object-Oriented). UML sendiri juga memberikan standar penulisan
sebuah sistem 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).
Pendekatan
analisa & rancangan dengan menggunakan model OO mulai diperkenalkan sekitar
pertengahan 1970 hingga akhir 1980 dikarenakan pada saat itu aplikasi software
sudah meningkat dan mulai komplek. Jumlah yang menggunakaan metoda OO mulai
diuji cobakandan diaplikasikan antara 1989 hingga 1994, seperti halnya oleh
Grady Booch dari Rational Software Co., dikenal dengan OOSE (Object-Oriented
Software Engineering), serta James Rumbaugh dari General Electric, dikenal
dengan OMT (Object Modelling Technique).
Kelemahan
saat itu disadari oleh Booch maupun Rumbaugh adalah tidak adanya standar
penggunaan model yang berbasis OO, ketika mereka bertemu ditemani rekan lainnya
Ivar Jacobson dari Objectory mulai
mendiskusikan untuk mengadopsi masing-masing pendekatan metoda OO untuk membuat
suatu model bahasa yang uniform / seragam
yang disebut UML (Unified Modeling Language) dan dapat digunakan oleh
seluruh dunia.
Secara
resmi bahasa UML dimulai pada bulan
oktober 1994, ketika Rumbaugh bergabung Booch untuk membuat sebuah project
pendekatan metoda yang uniform/seragam dari masing-masing metoda mereka. Saat
itu baru dikembangkan draft metoda UML version 0.8 dan diselesaikan serta di
release pada bulan oktober 1995. Bersamaan dengan saat itu, Jacobson bergabung
dan UML tersebut diperkaya ruang lingkupnya dengan metoda OOSE sehingga muncul release
version 0.9 pada bulan Juni 1996. Hingga saat ini sejak Juni 1998 UML version
1.3 telah diperkaya dan direspons oleh OMG (Object Management Group), Anderson
Consulting, Ericsson, Platinum Technology, ObjectTime Limited, dll serta di
pelihara oleh OMG yang dipimpin oleh Cris Kobryn.
UML
adalah standar dunia yang dibuat oleh
Object Management Group (OMG), sebuah badan yang bertugas mengeluarkan
standar-standar teknologi
object-oriented dan software component.
Ketiga, sebuah generalization adalah menggambarkan hubungan khusus dalam obyek anak/child yang menggantikan obyek parent / induk . Dalam hal ini, obyek anak memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada obyek induk. Digambarkan dengan garis panah seperti terlihat dalam gambar 8.
Keempat, sebuah realization merupakan hubungan semantik antara pengelompokkan yang menjamin adanya ikatan diantaranya. Hubungan ini dapat diwujudkan diantara interface dan kelas atau elements, serta antara use cases dan collaborations. Model dari sebuah hubungan realization seperti terlihat dalam gambar 9.
Pengenalan UML
UML sebagai sebuah bahasa yang memberikan vocabulary dan tatanan
penulisan kata-kata dalam ‘MS Word’ untuk kegunaan komunikasi. Sebuah bahasa
model adalah sebuah bahasa yang mempunyai vocabulary dan konsep tatanan /
aturan penulisan serta secara fisik mempresentasikan dari sebuah sistem.
Seperti halnya UML adalah sebuah bahasa standard untuk pengembangan sebuah
software yang dapat menyampaikan bagaimana membuat dan membentuk model-model,
tetapi tidak menyampaikan apa dan kapan model yang seharusnya dibuat yang merupakan
salah satu proses implementasi pengembangan software.
UML tidak hanya merupakan sebuah bahasa pemograman visual saja, namun juga
dapat secara langsung dihubungkan ke berbagai bahasa pemograman, seperti JAVA,
C++, Visual Basic, atau bahkan dihubungkan secara langsung ke dalam sebuah
object-oriented database. Begitu juga mengenai pendokumentasian dapat dilakukan
seperti; requirements, arsitektur, design, source code, project plan, tests,
dan prototypes.
Untuk dapat memahami UML membutuhkan bentuk konsep dari sebuah bahasa
model, dan mempelajari 3 (tiga) elemen utama dari UML seperti building block, aturan-aturan
yang menyatakan bagaimana building block diletakkan secara bersamaan, dan
beberapa mekanisme umum (common).
Building blocks
3 (tiga) macam yang terdapat dalam building block adalah katagori
benda/Things, hubungan, dan diagram. Benda/things adalah abstraksi yang pertama
dalam sebuah model, hubungan sebagai alat komunikasi dari benda-benda, dan
diagram sebagai kumpulan/group dari benda-benda/things.
Benda/Things
Adalah hal yang
sangat mendasar dalam model UML, juga merupakan bagian paling statik dari
sebuah model, serta menjelaskan elemen-elemen lainnya dari sebuah konsep dan
atau fisik. Bentuk dari beberapa benda/thing adalah sebagai berikut:
Pertama, adalah
sebuah kelas yang diuraikan sebagai
sekelompok dari object yang mempunyai atribute, operasi, hubungan yang
semantik. Sebuah kelas mengimplementasikan 1 atau lebih interfaces. Sebuah
kelas dapat digambarkan sebagai sebuah persegi panjang, yang mempunyai sebuah
nama, atribute, dan metoda pengoperasiannya, seperti terlihat dalam gambar 1.
Kedua, yang
menggambarkan ‘interface’ merupakan sebuah antar-muka yang menghubungkan dan
melayani antar kelas dan atau elemen. ‘Interface’ / antar-muka mendefinisikan sebuah set /
kelompok dari spesifikasi pengoperasian, umumnya digambarkan dengan sebuah
lingkaran yang disertai dengan namanya. Sebuah antar-muka berdiri sendiri dan
umumnya merupakan pelengkap dari kelas atau komponen, seperti dalam gambar 2.
Ketiga, adalah
collaboration yang didefinisikan dengan interaksi dan sebuah kumpulan/kelompok
dari kelas-kelas/elemen-elemen yang bekerja secara bersama-sama. Collaborations
mempunyai struktura dan dimensi. Pemberian sebuah kelas memungkinkan
berpartisipasi didalam beberapa collaborations dan digambarkan dengan sebuah
‘elips’ dengan garis terpotong-potong.
Keempat, sebuah ‘use
case’ adalah rangkaian/uraian sekelompok yang saling terkait dan membentuk
sistem secara teratur yang dilakukan atau diawasi oleh sebuah aktor. ‘use case’
digunakan untuk membentuk tingkah-laku benda/ things dalam sebuah model serta
di realisasikan oleh sebuah collaboration. Umumnya ‘use case’ digambarkan
dengan sebuah ‘elips’ dengan garis yang solid, biasanya mengandung nama,
seperti terlihat dalam gambar 4.
Kelima, sebuah node
merupakan fisik dari elemen-elemen yang ada pada saat dijalankannya sebuah
sistem, contohnya adalaha sebuah komputer, umumnya mempunyai sedikitnya memory
dan processor. Sekelompok komponen mungkin terletak pada sebuah node dan juga
mungkin akan berpindah dari node satu ke node lainnya. Umumnya node ini digambarkan
seperti kubus serta hanya mengandung namanya, seperti terlihat dalam gambar 5.
Hubungan / Relationship
Ada 4 macam hubungan
didalam penggunaan UML, yaitu; dependency, association, generalization, dan
realization.
Pertama, sebuah dependency
adalah hubungan semantik antara dua benda/things yang mana sebuah benda berubah
mengakibatkan benda satunya akan berubah pula. Umumnya sebuah dependency
digambarkan sebuah panah dengan garis terputus-putus seperti terlihat dalam
gambar 6.
Kedua, sebuah
association adalah hubungan antar benda struktural yang terhubung diantara
obyek. Kesatuan obyek yang terhubung merupakan hubungan khusus, yang
menggambarkan sebuah hubungan struktural diantara seluruh atau sebagian.
Umumnya assosiation digambarkan dengan sebuah garis yang dilengkapi dengan
sebuah label, nama, dan status hubungannya seperti terliahat dalam gambar 7.
Ketiga, sebuah generalization adalah menggambarkan hubungan khusus dalam obyek anak/child yang menggantikan obyek parent / induk . Dalam hal ini, obyek anak memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada obyek induk. Digambarkan dengan garis panah seperti terlihat dalam gambar 8.
Keempat, sebuah realization merupakan hubungan semantik antara pengelompokkan yang menjamin adanya ikatan diantaranya. Hubungan ini dapat diwujudkan diantara interface dan kelas atau elements, serta antara use cases dan collaborations. Model dari sebuah hubungan realization seperti terlihat dalam gambar 9.
Diagram
UML sendiri terdiri
atas pengelompokkan diagram-diagram sistem menurut aspek atau sudut pandang
tertentu. Diagram adalah yang menggambarkan permasalahan maupun solusi dari
permasalahan suatu model. UML mempunyai beberapa diagram, yaitu; use-case, class, statechart, activity, sequence, collaboration, component, dan deployment
diagram.
Use Case Diagram
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. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang
berinteraksi dengan system 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 dapat
di-include oleh lebih dari satu use case lain, sehingga duplikasi
fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang
common.
Sebuah use case juga dapat meng-extend use case
lain dengan behaviour-nya sendiri. Sementara
hubungan generalisasi antar use case menunjukkan bahwa use case yang satu
merupakan spesialisasi dari yang lain.
Contoh use case diagram :
Class Diagram
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 :
- Nama (dan stereotype)
- Atribut
- Metoda
Atribut dan metoda dapat
memiliki salah satu sifat berikut :
- Private, tidak dapat dipanggil dari luar class yang bersangkutan
- Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya
- Public, dapat dipanggil oleh siapa saja
Class dapat merupakan
implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda.
Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan
dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi
metoda pada saat run-time.
Sesuai dengan perkembangan class
model, class dapat dikelompokkan menjadi package. Kita juga dapat membuat diagram yang terdiri atas package.
Hubungan Antar Class
- Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class.
- Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
- Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
- Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian.
Contoh class diagram :
Statechart Diagram
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).
Dalam UML, state digambarkan
berbentuk segiempat dengan sudut membulat dan memiliki nama sesuai kondisinya
saat itu. Transisi antar state umumnya memiliki kondisi guard yang merupakan syarat
terjadinya transisi yang bersangkutan, dituliskan dalam kurung siku. Action
yang dilakukan sebagai akibat dari event tertentu dituliskan dengan diawali
garis miring.
Titik awal dan akhir digambarkan berbentuk
lingkaran berwarna penuh dan berwarna setengah.Activity Diagram
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.
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 segiempat 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 atar 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 output apa yang dihasilkan.
Masing-masing objek, termasuk
aktor, memiliki lifeline 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 icon khusus untuk objek boundary,
controller dan persistent entity.
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 :
Component Diagram
Component diagram menggambarkan
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 class dan/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.
Contoh component diagram:
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
requirement dapat juga didefinisikan dalam diagram ini.
Contoh deployment diagram :
Sumber :
ilmukomputer.com
willmen46.wordpress.com
Materi terkait UML :
guzdharma.blogspot.com
dhidhickrorax.blogspot.com
indrabelog.blogspot.com
culesnunique.blogspot.com
froztheo.blogspot.com
martaprandika.blogspot.com
andretangkas.blogspot.com
kunjungi-suwecanata.blogspot.com
aguswiratama50.blogspot.com
bagussudarsana.blogspot.com
criticalmandate.blogspot.com
dewa-hendra.blogspot.com
dwiantari769.blogspot.com
donydaryanto.blogspot.com
goobloggerwi.blogspot.com
endhywandhana26.blogspot.com
iwansafwan.blogspot.com
myownerisyou.blogspot.com
belajar-uml.blogspot.com
angung.blogspot.com
wild-in-the-dark.blogspot.com
inovasiit.blogspot.com
kafy-belajaruml.blogspot.com
seputera.blogspot.com
raindaime.blogspot.com
rezaanugerahjrs.blogspot.com
caesario-nanda.blogspot.com
dennyshare.blogspot.com
materionline7tw.blogspot.com
niakentjiblog.blogspot.com
wahyuseno.blogspot.com
imukhopadhyay.blogspot.com
ilmukomputer.com
willmen46.wordpress.com
Materi terkait UML :
guzdharma.blogspot.com
dhidhickrorax.blogspot.com
indrabelog.blogspot.com
culesnunique.blogspot.com
froztheo.blogspot.com
martaprandika.blogspot.com
andretangkas.blogspot.com
kunjungi-suwecanata.blogspot.com
aguswiratama50.blogspot.com
bagussudarsana.blogspot.com
criticalmandate.blogspot.com
dewa-hendra.blogspot.com
dwiantari769.blogspot.com
donydaryanto.blogspot.com
goobloggerwi.blogspot.com
endhywandhana26.blogspot.com
iwansafwan.blogspot.com
myownerisyou.blogspot.com
belajar-uml.blogspot.com
angung.blogspot.com
wild-in-the-dark.blogspot.com
inovasiit.blogspot.com
kafy-belajaruml.blogspot.com
seputera.blogspot.com
raindaime.blogspot.com
rezaanugerahjrs.blogspot.com
caesario-nanda.blogspot.com
dennyshare.blogspot.com
materionline7tw.blogspot.com
niakentjiblog.blogspot.com
wahyuseno.blogspot.com
imukhopadhyay.blogspot.com