Pengantar UML ( Unified Modeling Language )

Sabtu, November 01, 2014 0 Comments

Salah satu dari tahapan SDLC atau software development life cycle, adalah desain. Desain bertujuan agar software yang akan dibuat dapat memenuhi kebutuhan user dan handal. Oleh karena itu, desain menjadi tahapan penting dalam proses pembuatan software. Dalam mendesain software, kita perlu mentransformasikan kebutuhan user, baik secara fungsional maupun non fungsional ke dalam model.
Model adalah sebuah abstraksi dari hal nyata. Model merupakan penyederhanaan dari sistem yang sebenarnya sehingga desain dari sebuah sistem dapat dimengerti oleh pihak lain. Untuk memodelkan sesuatu, tentu diperlukan bahasa pemodelan. Bahasa pemodelan dapat berupa pseudo-code, code, gambar, diagram, atau deskripsi yang menggambarkan sebuah sistem. Disinilah UML berperan sebagai bahasa pemodelan.
Unified modeling language atau UML, adalah bahasa pemodelan standar dalam bidang software engineering yang digunakan untuk menggambarkan desain dari sebuah software dan sistem. 
Pertanyaannya adalah, "Mengapa harus menggunakan UML?". Jawabannya adalah untuk menghindari ambiguitas, penggunaan kata yang terlalu banyak dan detail yang tidak penting (jika pemodelan menggunakan kode maupun pseudocode) sehingga menyebabkan kesalahpahaman.
Pemodelan menggunakan UML memiliki keuntungan, yaitu : 
- UML adalah bahasa formal. Setiap elemen dari UML memiliki makna tersendiri sehingga tidak akan terjadi kesalahpahaman.
- UML singkat / ringkas. UML memiliki notasi yang jelas dan tidak berbelit-belit.
- UML komprehensif atau menyeluruh. UML dapat menggambarkan aspek-aspek penting dalam sistem.
- UML dapat menghandle sistem yang besar maupun kecil.
- UML memiliki banyak pengguna. Sehingga tersedia banyak tutorial tentang cara penggunaannya.
- UML adalah bahasa standar. Sehingga UML tidak terikat dengan produk tertentu.

Berikut merupakan daftar diagram UML dan penjelasannya :

- Use Case : Menggambarkan tentang interaksi antara sistem dan pengguna atau sistem lain. Sangat berguna untuk memetakan requirement atau kebutuhan dari suatu sistem.
- Activity : Menggambarkan tentang aktivitas sekuensial maupun paralel dari sistem.
- Class : Mengambarkan class, tipe, interface dan hubungan antar ketiganya.
- Object : Menggambarkan instance objek dari class yang telah didefinisikan di class diagram.
- Sequence : Menggambarkan interaksi antar objek dimana urutan dari interaksi tersebut merupakan hal penting.
- Communication : Menggambarkan cara objek beriteraksi dan koneksi yang dibutuhkan untuk melakukan interaksi.
- Timing : Menggambarkan interaksi antar objek dimana waktu merupakan hal yang penting.
- Component : Menggambarkan komponen penting dalam sistem dan interface yang digunakan untuk saling berinteraksi.
- Package : Menggambarkan hirarki dari sekelompok class dan component.
- State Machine :  Menggambarkan status dari objek selama masa aktifnya dan event yang dapat merubah state dari objek tersebut.
- Deployment : Menggambarkan bagaimana sistem dideploy di dunia nyata.
Detail tentang diagram-diagram UML akan dijelaskan pada post-post berikutnya. :)


Secara umum, UML digunakan sebagai berikut :

UML sebagai sketsa
UML hanya digunakan untuk pembuatan sketsa yang menyampaikan poin-poin penting. 
UML sebagai blueprint
UML digunakan untuk menyediakan spesifikasi dari sistem menggunakan UML diagram. 
Diagram ini kemudian dapat digenerate menggunakan UML tool. Pendekatan ini umumnya berkaitan dengan software dan biasanya menggunakan forward atau reverse engineering untuk menjaga model tetap sinkron dengan kode.
UML sebagai bahasa pemrograman
UML digunakan langsung dari model menjadi executable code (tidak hanya sebagian code seperti pada forward engineering). Hal ini berarti setiap aspek detail dari sistem akan dimodelkan. Keuntungan dari pendekatan ini adalah model dapat digunakan untuk menggenerate code ke berbagai environtment. 

Pendekatan mana yang akan dipakai tergantung pada tipe aplikasi dan metode dalam proses pengembangan software yang digunakan (ex: waterfall, interation, dll).
Sebagai contoh, pada industri tertentu seperti kesehatan, projek software menggunakan pendekatan UML sebagai blueprint. Hal ini karena software harus berkualitas tinggi. Kualitas merupakan hal penting pada industri ini karena kesalahan kecil dapat menyebabkan efek yang fatal. 

Seperti yang telah disebutkan, metode dalam proses pengembangan software juga berpengaruh pada pendekatan yang akan digunakan dalam UML.
Berikut merupakan metode yang sering digunakan dalam pengembangan software :

Waterfall

Metode waterfall akan menperoleh requirement dari software pada awal project life cycle. (Analisis Kebutuhan->Desain->Implementasi->Testing->Deployment). Setelah desain selesai, software diimplementasikan (coding). Kekurangan dari metode ini adalah tidak dapat mengakomodasi perubahan requirement. Pendekatan yang digunakan bisa UML sebagai sketsa dan UML sebagai blueprint.

Iterative

Metode Iterative bertujuan untuk menutupi kekurangan dari metode waterfall dengan cara menerima perubahan requirement (jika diperlukan). Pendekatan yang digunakan bisa UML sebagai sekta dan UML sebagai blueprint.

Agile Methods

Metode Agile menggunakan iterasi dalam waktu yang sangat singkat dan bertujuan meminimalisir resiko. Agile method menggunakan pendekatan UML sebagai sketsa. 




Unknown

A son, student, adventurer, software developer, musician

0 komentar: