Anda di halaman 1dari 13

Pengantar

Pengantar
Unified Modeling
Unified Modeling
Language
Language
(UML)
(UML)
Pendahuluan
Saat ini piranti lunak semakin luas dan besar lingkupnya, sehingga tidak bisa lagi dibuat asal-asalan.
Piranti lunak saat ini seharusnya dirancang dengan memperhatikan hal-hal seperti scalability,
security, dan eksekusi yang robust walaupun dalam kondisi yang sulit. Selain itu arsitekturnya harus
didefinisikan dengan jelas, agar bug mudah ditemukan dan diperbaiki, bahkan oleh orang lain selain
programmer aslinya. Keuntungan lain dari perencanaan arsitektur yang matang adalah
dimungkinkannya penggunaan kembali modul atau komponen untuk aplikasi piranti lunak lain yang
membutuhkan fungsionalitas yang sama.
Pemodelan (modeling) adalah proses merancang piranti lunak sebelum melakukan pengkodean
(coding). odel piranti lunak dapat dianalogikan seperti pembuatan blueprint pada pembangunan
gedung. embuat model dari sebuah sistem yang kompleks sangatlah penting karena kita tidak
dapat memahami sistem semacam itu secara menyeluruh. Semakin komplek sebuah sistem, semakin
penting pula penggunaan teknik pemodelan yang baik.
!engan menggunakan model, diharapkan pengembangan piranti lunak dapat memenuhi semua
kebutuhan pengguna dengan lengkap dan tepat, termasuk faktor-faktor seperti scalability,
robustness, security, dan sebagainya.
Kesuksesan suatu pemodelan piranti lunak ditentukan oleh tiga unsur, yang kemudian terkenal
dengan sebuan segitiga sukses (the triangle for success). Ketiga unsur tersebut adalah metode
pemodelan (notation), proses (process) dan tool yang digunakan.
emahami notasi pemodelan tanpa mengetahui cara pemakaian yang sebenarnya (proses) akan
membuat proyek gagal. !an pemahaman terhadap metode pemodelan dan proses disempurnakan
dengan penggunaan tool yang tepat.
Apa itu UML
Unified Modelling Language ("#) adalah sebuah $bahasa$ yg telah menjadi standar dalam
industri untuk %isualisasi, merancang dan mendokumentasikan sistem piranti lunak. "#
menawarkan sebuah standar untuk merancang model sebuah sistem.
&
!engan menggunakan "# 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. 'etapi karena "# juga menggunakan class dan
operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa-
bahasa berorientasi objek seperti ()), *a%a, (+ atau ,-../'. 0alaupun demikian, "# tetap dapat
digunakan untuk modeling aplikasi prosedural dalam ,- atau (.
Seperti bahasa-bahasa lainnya, "# mendefinisikan notasi dan syntax1semantik. .otasi "#
merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak.
Setiap bentuk memiliki makna tertentu, dan "# syntax mendefinisikan bagaimana bentuk-bentuk
tersebut dapat dikombinasikan. .otasi "# terutama diturunkan dari 2 notasi yang telah ada
sebelumnya3 4rady -ooch 55! (5bject-5riented !esign), *im 6umbaugh 5' (5bject odeling
'echni7ue), dan 8%ar *acobson 55S/ (5bject-5riented Software /ngineering).
Sejarah "# sendiri cukup panjang. Sampai era tahun &99: seperti kita ketahui puluhan metodologi
pemodelan berorientasi objek telah bermunculan di dunia. !iantaranya adalah3 metodologi booch
;&<, metodologi coad ;=<, metodologi 55S/ ;2<, metodologi 5' ;><, metodologi shlaer-mellor
;?<, metodologi wirfs-brock ;@<, dsb. asa itu terkenal dengan masa perang metodologi (method
war) dalam pendesainan berorientasi objek. asing-masing metodologi membawa notasi sendiri-
sendiri, yang mengakibatkan timbul masalah baru apabila kita bekerjasama dengan
group1perusahaan lain yang menggunakan metodologi yang berlainan.
!imulai pada bulan 5ktober &99> -ooch, 6umbaugh dan *acobson, yang merupakan tiga tokoh
yang boleh dikata metodologinya banyak digunakan mempelopori usaha untuk penyatuan
metodologi pendesainan berorientasi objek. Pada tahun &99? direlease draft pertama dari "#
(%ersi :.A). Sejak tahun &99@ pengembangan tersebut dikoordinasikan oleh Object Management
Group (54 B http311www.omg.org). 'ahun &99C "# %ersi &.& muncul, dan saat ini %ersi terbaru
adalah %ersi &.? yang dirilis bulan aret =::2. -ooch, 6umbaugh dan *acobson menyusun tiga buku
serial tentang "# pada tahun &999 ;C< ;A< ;9<. Sejak saat itulah "# telah menjelma menjadi
standar bahasa pemodelan untuk aplikasi berorientasi objek.
Konsepsi Dasar UML
=
Rumbaugh
Booch Jacobson
Odell
Shlaer and Mellor
Gamma
Meyer
OMG
(Object Management Group)
!ari berbagai penjelasan rumit yang terdapat di dokumen dan buku-buku "#. Sebenarnya
konsepsi dasar "# bisa kita rangkumkan dalam gambar dibawah.
Dbstraksi konsep dasar "# yang terdiri dari structural classification, dynamic behavior, dan
model management, bisa kita pahami dengan mudah apabila kita melihat gambar diatas dari
Diagrams. Main concepts bisa kita pandang sebagai term yang akan muncul pada saat kita membuat
diagram. !an %iew adalah kategori dari diagaram tersebut.
#alu darimana kita mulai E "ntuk menguasai "#, sebenarnya cukup dua hal yang harus kita
perhatikan3
&. enguasai pembuatan diagram "#
=. enguasai langkah-langkah dalam analisa dan pengembangan dengan "#
'ulisan ini pada intinya akan mengupas kedua hal tersebut.
Seperti juga tercantum pada gambar diatas "# mendefinisikan diagram-diagram sebagai berikut3
use case diagram
class diagram
statechart diagram
activity diagram
sequence diagram
collaboration diagram
component diagram
deployment diagram
2
Use Case Diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Fang
ditekankan adalah GapaH yang diperbuat sistem, dan bukan GbagaimanaH. 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.
Seorang1sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem
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.
(ontoh use case diagram 3
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
>
(atribut1properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut
(metoda1fungsi).
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 3
&. .ama (dan stereotype)
=. Dtribut
2. etoda
Dtribut dan metoda dapat memiliki salah satu sifat berikut 3
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. nterface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu
menjadi sebuah class! !engan 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
&. Dsosiasi, yaitu hubungan statis antar class. "mumnya menggambarkan class yang memiliki
atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah
navigability menunjukkan arah query antar class.
?
=. Dgregasi, yaitu hubungan yang menyatakan bagian (Gterdiri atas..H).
2. 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.
>. Iubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada
class lain. Iubungan dinamis dapat digambarkan dengan menggunakan sequence diagram
yang akan dijelaskan kemudian.
(ontoh class diagram 3
tatechart Diagram
#tatechart 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).
!alam "#, state digambarkan berbentuk segiempat dengan sudut membulat dan memiliki nama
sesuai kondisinya saat itu. 'ransisi antar state umumnya memiliki kondisi guard yang merupakan
syarat terjadinya transisi yang bersangkutan, dituliskan dalam kurung siku. $ction yang dilakukan
sebagai akibat dari event tertentu dituliskan dengan diawali garis miring.
'itik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan berwarna setengah.
(ontoh statechart diagram 3
@
Acti!it" Diagram
$ctivity diagrams menggambarkan berbagai alir akti%itas dalam sistem yang sedang dirancang,
bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka
berakhir. $ctivity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada
beberapa eksekusi.
$ctivity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan
sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). 5leh
karena itu activity diagram tidak menggambarkan beha%iour internal sebuah sistem (dan interaksi
antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur akti%itas
dari le%el atas secara umum.
Sebuah akti%itas dapat direalisasikan oleh satu use case atau lebih. Dkti%itas menggambarkan proses
yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk
melakukan akti%itas.
Sama seperti state, standar "# menggunakan segiempat dengan sudut membulat untuk
menggambarkan akti%itas. Decision digunakan untuk menggambarkan beha%iour pada kondisi
tertentu. "ntuk mengilustrasikan proses-proses paralel (fork dan %oin) digunakan titik sinkronisasi
yang dapat berupa titik, garis horiJontal atau %ertikal.
$ctivity diagram dapat dibagi menjadi beberapa ob%ect swimlane untuk menggambarkan objek mana
yang bertanggung jawab untuk akti%itas tertentu.
(ontoh activity diagram tanpa swimlane3
C
e#uence Diagram
#equence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk
pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. #equence
diagram terdiri atar dimensi %ertikal (waktu) dan dimensi horiJontal (objek-objek yang terkait).
#equence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah
yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. !iawali dari
apa yang men-trigger akti%itas tersebut, proses dan perubahan apa saja yang terjadi secara internal
dan output apa yang dihasilkan.
asing-masing objek, termasuk aktor, memiliki lifeline %ertikal.
Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain
berikutnya, message akan dipetakan menjadi operasi1metoda dari class.
$ctivation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya
sebuah message.
"ntuk objek-objek yang memiliki sifat khusus, standar "# mendefinisikan icon khusus untuk
objek boundary, controller dan persistent entity.
(ontoh sequence diagram 3
A
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 le%el tertinggi memiliki nomor &.
essages dari le%el yang sama memiliki prefiks yang sama.
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.
"mumnya komponen terbentuk dari beberapa class dan1atau package, tapi dapat juga dari
komponen-komponen yang lebih kecil.
9
Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah komponen
untuk komponen lain.
(ontoh component diagram3
Deplo"ment Diagram
Deployment&physical diagram menggambarkan detail bagaimana komponen di-deploy dalam
infrastruktur sistem, di mana komponen akan terletak (pada mesin, ser%er atau piranti keras apa),
bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi ser%er, dan hal-hal lain yang
bersifat fisikal
Sebuah node adalah ser%er, workstation, atau piranti keras lain yang digunakan untuk men-deploy
komponen dalam lingkungan sebenarnya. Iubungan antar node (misalnya '(P18P) dan requirement
dapat juga didefinisikan dalam diagram ini.
(ontoh deployment diagram 3
&:
Lang$ah%Lang$ah Penggunaan UML
-erikut ini adalah tips pengembangan piranti lunak dengan menggunakan "#3
&. -uatlah daftar business process dari le%el tertinggi untuk mendefinisikan akti%itas dan
proses yang mungkin muncul.
=. Petakan use case untuk tiap business process untuk mendefinisikan dengan tepat
fungsionalitas yang harus disediakan oleh sistem. Kemudian perhalus use case diagram dan
lengkapi dengan requirement, constraints dan catatan-catatan lain.
2. -uatlah deployment diagram secara kasar untuk mendefinisikan arsitektur fisik sistem.
>. !efinisikan requirement lain (non-fungsional, security dan sebagainya) yang juga harus
disediakan oleh sistem.
?. -erdasarkan use case diagram, mulailah membuat activity diagram.
@. !efinisikan objek-objek le%el atas (package atau domain) dan buatlah sequence dan1atau
collaboration diagram untuk tiap alir pekerjaan. *ika sebuah use case memiliki
kemungkinan alir normal dan error, buatlah satu diagram untuk masing-masing alir.
C. -uarlah rancangan user interface model yang menyediakan antarmuka bagi pengguna untuk
menjalankan skenario use case.
A. -erdasarkan model-model yang sudah ada, buatlah class diagram. Setiap package atau
domain dipecah menjadi hirarki class lengkap dengan atribut dan metodanya. Dkan lebih
&&
baik jika untuk setiap class dibuat unit test untuk menguji fungsionalitas class dan interaksi
dengan class lain.
9. Setelah class diagram dibuat, kita dapat melihat kemungkinan pengelompokan class
menjadi komponen-komponen. Karena itu buatlah component diagram pada tahap ini. *uga,
definisikan tes integrasi untuk setiap komponen meyakinkan ia berinteraksi dengan baik.
&:. Perhalus deployment diagram yang sudah dibuat. !etilkan kemampuan dan requirement
piranti lunak, sistem operasi, jaringan, dan sebagainya. Petakan komponen ke dalam node.
&&. ulailah membangun sistem. Dda dua pendekatan yang dapat digunakan 3
Pendekatan use case, dengan meng-assign setiap use case kepada tim pengembang
tertentu untuk mengembangkan unit code yang lengkap dengan tes.
Pendekatan komponen, yaitu meng-assign setiap komponen kepada tim
pengembang tertentu.
&=. #akukan uji modul dan uji integrasi serta perbaiki model berserta codenya. odel harus
selalu sesuai dengan code yang aktual.
&2. Piranti lunak siap dirilis.
&ool 'ang Mendu$ung UML
Saat ini banyak sekali tool pendesainan yang mendukung "#, baik itu tool komersial maupun
opensource. -eberapa diantaranya adalah3
6ational 6ose (www.rational.com)
'ogether (www.togethersoft.com)
5bject !omain (www.objectdomain.com)
*%ision (www.object-insight.com)
5bjecteering (www.objecteering.com)
agic!raw (www.nomagic.com1magicdrawuml)
,isual 5bject odeller (www.%isualobject.com)
!ata seluruh tool yang mendukung "#, lengkap beserta harganya (dalam "S dolar) bisa anda
pelajari di situs http311www.objectsbydesign.com1tools1umltoolsKby(ompany.html . !isamping itu,
daftar tool "# berikut fungsi dan perbangingan kemampuannya juga dapat dilihat di
http311www.jeckle.de1umltools.htm.
Pointer Penting UML
Sebagai referensi dalam mempelajari dan menggunakan "#, situs-situs yang merupakan pointer
penting adalah3
http311www.cetus-links.org1ooKuml.html
http311www.omg.org
http311www.omg.org1technology1uml1
http311www.rational.com1uml
http311www.uml.org1
!an juga buku-buku yang terdapat di daftar pustaka.
&=
Daftar Pusta$a
;&< 4rady -ooch, 5bject-5riented Dnalysis and !esign with Dpplication, -enjamin1(ummings,
&99&.
;=< Peter (oad and /dward Fourdon, 5bject-5riented Dnalysis, Fourdon Press, &99&.
;2< 8%ar *acobson, agnus (hristerson, Patrik *onson, and 4unnar 5%ergaard, 5bject-5riented
Software /ngineering3 D "se (ase !ri%en Dpproach, Dddison-0esley, &99=.
;>< *ames 6umbaugh, ichael -laha, 0illiam Premerlani, Lrederick /ddy, and 0illiam #orenson,
5bject-5riented odeling and !esign, Prentice Iall, &99&.
;?< Sally Shlaer and Stephen *. ellor, 5bject-5riented System Dnalysis3 odeling the 0orld in
!ata, Fourdon Press, &9AA.
;@< 6ebecca 0irfs--rock, -rian 0ilkerson, and #auren 0iener, !esigning 5bject-5riented
Software, Prentice Iall, &99:.
;C< 4rady -ooch, *ames 6umbaugh, and 8%ar *acobson, 'he "nified odeling #anguage "ser
4uide, Dddison-0esley, &999.
;A< 8%ar *acobson, 4rady -ooch, and *ames 6umbaugh, 'he "nified Software !e%elopment
Process, Dddison-0esley, &999.
;9< *ames 6umbaugh, 8%ar *acobson, and 4rady -ooch, 'he "nified odeling #anguage
6eference anual, Dddison-0esley, &999.
;&:< "nified odeling #anguage Specification, 5bject anagement 4roup, www.omg.org, &999.
;&&< 8ntroduction to 54 "# ;http311www.omg.org1gettingstarted1whatKisKuml.htm<
;&=< "# 'utorial ;http311www.sparMsystems.com.au1"#K'utorial.htm<
;&2< /mbarcadero 'ech Support ;http311www.embarcadero.com1support1umlKcentral.asp<
;&>< Practical "# D Iands-5n 8ntroduction for !e%elopers,
;http311www.togethersoft.com1ser%ices1practicalKguides1umlonlinecourse1indeM.html<
;&?< Drchitecture and !esign3 "nified odeling #anguage ("#), ;http311www.cetus-
links.org1ooKuml.html<
&2

Anda mungkin juga menyukai