Halo, selamat datang kembali di blog saya...
Pada pertemuan kita kali ini kita akan membahas tentang UML, apa itu UML? UML adalah singkatan dari Unfied Modeling Language. Nah sebelum kita masuk kemateri tersebut kita harus tau dulu apa perbedaan antara pemodelan dan blueprint, lebih singkatnya pemodelan ialah perancangan suatu objek tertentu sedangkan blueprint tersebut adalah pengaplikasian dari pemodelan.
A. Pendahuluan
A. Pendahuluan
- Pemodelan (modelling ) adalah proses merancang piranti lunak sebelum melakukan pengkodean (coding). Model piranti lunak dapat dianalogikan seperti pembuatan blueprint pada pembangunan gedung
- Membuat model dari sebuah sistem yang kompleks sangatlah penting karena kita tidak dapat memahami sistem semacam itu secara menyeluruh.
- Semakin kompleks sebuah sistem, semakin penting pula penggunaan teknik pemodelan yang baik.
B. Segitiga Menjadi Sukses
- Kesuksesan suatu pemodelan piranti lunak ditentukanoleh tiga unsur, yang kemudian terkenal dengan sebuansegitiga sukses.
- Ketiga unsur tersebut adalah metode pemodelan(notation), proses ( process) dan tool yang digunakan.
- Memahami notasi pemodelan tanpa mengetahui carapemakaian yang sebenarnya (proses) akan membuatproyek gagal. Dan pemahaman terhadap metodepemodelan dan proses disempurnakan denganpenggunaan tool yang tepat
C. Sejarah Singkat UML
UML dimulai secara resmi pada Oktober 1994, ketika Rumbaugh menggabungkan kekuatan dengan Booch. Mereka berdua lalu bekerja bersama di Relational Software Cooperation. Proyek ini memfokuskan pada penyatuan metode booch dan Rumbaught (OMT). Pada bulan Oktober 1995, UML merilis versi 0.8 dan pada waktu yang sama juga Jacobson bergabung dengan Rational. Cakupan dari UML pun semakin meluas. Kemudian dibangunlah persatuan untuk UML dengan beberapa organisasi yang akan menyumbangkan sumber dayanya untuk bekerja, mengembangkan dan melengkapi UML.
Banyak partner yang berkontribusi pada UML 1.0, diantaranya Digital Equipment Corporation, Hawlett-Packard, I-Logix, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Relation, Texas Instruments dan Unisys. Dari kolaborasi ini dihasilkan UML 1.0 yang merupakan bahasa pemodelan yang ditetapkan secara baik, expressive, kuat dan cocok untuk lingkungan masalah yang luas. Dan pada Januari 1997, UML dijadikan sebagai standar bahasa pemodelan.
D. Pengantar UML
UML dimulai secara resmi pada Oktober 1994, ketika Rumbaugh menggabungkan kekuatan dengan Booch. Mereka berdua lalu bekerja bersama di Relational Software Cooperation. Proyek ini memfokuskan pada penyatuan metode booch dan Rumbaught (OMT). Pada bulan Oktober 1995, UML merilis versi 0.8 dan pada waktu yang sama juga Jacobson bergabung dengan Rational. Cakupan dari UML pun semakin meluas. Kemudian dibangunlah persatuan untuk UML dengan beberapa organisasi yang akan menyumbangkan sumber dayanya untuk bekerja, mengembangkan dan melengkapi UML.
Banyak partner yang berkontribusi pada UML 1.0, diantaranya Digital Equipment Corporation, Hawlett-Packard, I-Logix, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Relation, Texas Instruments dan Unisys. Dari kolaborasi ini dihasilkan UML 1.0 yang merupakan bahasa pemodelan yang ditetapkan secara baik, expressive, kuat dan cocok untuk lingkungan masalah yang luas. Dan pada Januari 1997, UML dijadikan sebagai standar bahasa pemodelan.
D. Pengantar 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 komponenkomponen yang diperlukan dalam sistem software.
UML adalah salah satu tool / model untuk merancang pengembangan
software yang berbasis object oriented.
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.
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).
E. Konsep Dasar UML
UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Seperti bahsa-bahasa lainnya, UML mendefinisikan notasi dan sytax/semantik.
Notasi UML merupakan sekumpul bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefenisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notas UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya. Grady Booch OOD (Object-Oriented Design), Jim Rumbaught OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering)
F. Building Blocks
UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Seperti bahsa-bahasa lainnya, UML mendefinisikan notasi dan sytax/semantik.
Notasi UML merupakan sekumpul bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefenisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notas UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya. Grady Booch OOD (Object-Oriented Design), Jim Rumbaught OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering)
F. Building Blocks
Tiga macam yang terdapat dalam building block adalah :
- Benda/Things, adalah abstraksi yang pertama dalam sebuah model
- Hubungan/Relationships, sebagai alat komunikasi dari benda-benda,
- Bagan/Diagrams. 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 elemenelemen lainnya dari sebuah konsep dan atau fisik. Bentuk dari beberapa benda/thing adalah sebagai berikut:
- Classes, 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.
- Interfaces, 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.
- Collaboration, yang didefinisikan dengan interaksi dan sebuah kumpulan / kelompok dari kelas-kelas/elemen-elemen yang bekerja secara bersama-sama. Collaborations mempunyai struktur dan dimensi. Pemberian sebuah kelas memungkinkan berpartisipasi didalam beberapa collaborations dan digambarkan dengan sebuah ‘elips’ dengan garis terpotong-potong.
- Use cases, 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.
- Nodes, 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.
Hubungan / Relationship
Ada 4 macam hubungan didalam penggunaan UML, yaitu;
- 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.
- Association, 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.
- Generalizations, 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.
- Realizations, 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.
Bagan/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 9 diagram, yaitu; use-case, class, object, state,
sequence, collaboration, activity, component, dan deployment diagram.
- Use Case Diagram, menggambarkan sekelompok use cases dan aktor yang disertai dengan hubungan diantaranya. Diagram use cases ini menjelaskan dan menerangkan kebutuhan / requirement yang diinginkan/ dikehendaki user/pengguna, serta sangat berguna dalam menentukan struktur organisasi dan model dari pada sebuah sistem.
- Class Diagram, yang memperlihatkan struktur statis dari kelas actual didalam sistem.
- Object Diagram, yang merupakan varian dari kelas diagram yang memperlihatkan lebih detail banyaknya obyek yang mengintantiasi (instances) kelas.
- State Diagram, yang memperliatkan semua keadaan (state) yang dapat dimiliki oleh kelas dan event yang dapat merubah keadaan tersebut.
- Sequence Diagram, yang memperlihatkan kolaborasi dinamik antara objek-objek dengan suatu urutan pesan (a sequence of message) antar objek tersebut.
- Collaboration Diagram, yang memperlihatkan kolaborasi dinamik antar objek tanpa memperhatikan aspek waktu.
- Activity Diagram, yang memperlihatkan aliran urutan aktifitas.
- Component Diagram, yang memperlihatkan struktur fisik dari source code dalam terminology code components. Komponen berisi informasi tentang logical class dapat berupa komponen source code, komponen biner atau komponen yang dapat dieksekusi.
- Deployment Diagram, yang memperlihatkan arsitektur fisik dari hardware dan software pada sistem.
G. Diagram Dalam UML
Pemecahan masalah utama dari Object Oriented biasanya dengan
penggambaran dalam bentuk model. Model abstrak (semu) merupakan gambaran detail
dari inti masalah yang ada, umumnya sama seperti refleksi dari problem yang ada pada
kenyataan. Beberapa modeling tool yang dipakai adalah bagian dari dasar UML,
kependekan dari United Modeling Language.
- Diagram Use Case
- Diagram Class
- Diagram Package
- Diagram Sequence
- Diagram Collaboration
- Diagram StateChart
- Diagram Activity
- Diagram Deployment
Semakin kompleks bentukan sistem yang akan dibuat, maka semakin sulit
komunikasi antara orang-orang yang saling terkait dalam pembuatan dan
pengembangan software yang akan dibuat. Pada masa lalu, UML mempunyai peranan
sebagai software blueprint (gambaran) language untuk analisis sistem, designer, dan
programmer. Sedangkan pada saat ini, merupakan bagian dari software trade (bisnis
software). UML memberikan jalur komunikasi dari sistem analis kemudian designer,
lalu programmer mengenai rancangan software yang akan dikerjakan.
Salah satu pemecahan masalah Object Oriented adalah dengan
menggunakan UML. Oleh karena itu orang-orang yang berminat dalam mempelajari
UML harus mengetahui dasar-dasar mengenai Object Oriented Solving (pemecahan
masalah OO). Tahap pertama, pembentukan model. Model adalah gambaran abstrak
dari suatu dasar masalah. Dan dunia nyata atau tempat dimana masalah itu timbul bisa
disebut dengan domain. Model mengandung obyek-obyek yang beraktifitas dengan
saling mengirimkan messages (pesan-pesan). Obyek mempunyai sesuatu yang diketahui
(atribut /attributes) dan sesuatu yang dilakukan (behaviors atau operations). Attributes
hanya berlaku dalam ruang lingkup obyek itu sendiri (state). Lalu “blue print” dari
suatu obyek adalah Classes (kelas). Obyek merupakan bagian-bagian dari kelas.
H. Tools UML
- Rational Rose (www.rational.com)
- Together (www.togethersoft.com)
- Object Domain (www.objectdomain.com)
- Jvision (www.object-insight.com)
- Objecteering (www.objecteering.com)
- MagicDraw (www.nomagic.com/magicdrawuml)
- Visual Object Modeller (www.visualobject.com)
- StarUML (www.staruml.org)
Referensi :
- http://mhs.uks.ac.id/OOP/UML.pdf
- http://rosni-gj.staff.gunadarma.ac.id/Downloads/files/14321/10.+Unified+Modeling+Language.pdf