Intoducing UML.
Hal pertama yang perlu kita ketahui adalah apa sebenarnya UML?. Kebanyakan orang salah, UML bukanlah Universal Modelling Language, dimana UML tidak diperuntukkan agar bisa membuat model bagi apa saja (contoh, UML tidak terlalu baik untuk memodelkan persediaan pasar).
UML juga bukanlah Unified Marxist-Leninists, suatu partai politik di Nepal. UML adalah Unified Modelling Language.
Di atas mungkin bukanlah bagian terpenting yang perlu diketahui. Yang lebih penting adalah, UML merupakan standardized modelling language yang terdiri dari kumpulan-kumpulan diagram, dikembangkan untuk membantu para pengembang sistem dan software agar bisa menyelesaikan tugas-tugas seperti:
- Spesifikasi
- Visualisasi
- Desain Arsitektur
- Konstruksi
- Simulasi dan testing
- Dokumentasi
UML dikembangkan sebagai ide dasar untuk mempromosikan hubungan dan produktifitas antara para pengembang dari object-oriented system.
Memahami kemampuan UML
UML memuaskan kebutuhan yang penting dalam pengembangan software dan sistem. Pemodelan (modelling) memungkinkan para pengembang bisa berkonsentrasi pada gambaran yang luas. UML membantu kita melihat dan menyelesaikan masalah-masalah yang sering terjadi. Ketika kita membuat model, kita membuat suatu abstraksi dari sistem nyata yang sudah ada, yang memungkinkan kita bisa bertanya tentang model tersebut dan akan kita dapatkan jawaban yang memuaskan.
Setelah kita puas dengan hasil kerja kita, kita bisa menggunakan model kita bersama dengan orang lain. Kita bisa menggunakan model kita untuk meminta bantuan dari orang lain yang akan meningkatkan kerja kita, dan juga dapat saling membantu dengan mengajari orang lain.
Abstracting
Teknik dalam membuat model dari ide kita atau dunia nyata adalah dengan menggunakan abstraction. Sebagai contoh, map merupakan model dunia – bukanlah miniatur dunia.
Setiap diagram UML yang kita gambar memiliki keterkaitan dengan dunia nyata. Abstraction dikembangkan sebagai ketentuan untuk dipelajari dan sering digunakan.
Jika kita berpikir UML sebagai map dari dunia yang kita lihat, hampir mendekati. Analogi yang lebih mendekati adalah merupakan kumpulan dari blueprint yang menampilkan detail yang cukup dari suatu bangunan untuk memastikan tentang apa sebenarnya bangunan tersebut. Abstraction model dan diagram juga berguna karena akan menjelaskan lebih rinci detail-detail yang dibutuhkan (kita tidak perlu mengambar pohon dan mobil dan orang dalam map kita, karena map kita akan menjadi susah alias tidak praktis untuk dipakai).
Kategori diagram UML
- Structural Diagram: kita menggunakan structural diagram untuk menampilkan blok bangunanan dari sistem kita – merupakan fitur yang tidak berubah bersama waktu. Diagram ini menjawab pertanyaan, ada apa disana?
- Behavioral Diagram: kita menggunakan behavioral diagram untuk menampilkan bagaimana sistem kita merespon permintaan atau apa saja seiring waktu.
- Interaction diagram: merupakan tipe dari behavioral diagram. Kita menggunakan interaction diagram untuk melukiskan perubahan dari pesan-pesan dalam suatu kolaborasi (kumpulan dari object-object yang sama) sehingga tujuan bisa tercapai.
- Structural diagram (Class diagram) : Digunakan untuk menampilkan entiti dunia nyata, elemen dari analisa dan desain, atau implementasi class dan relasinya.
- Structural diagram (Object diagram) : Digunakan untuk menampilkan suatu contoh spesifik atau ilustrasi dari suatu object serta link nya. Sering digunakan untuk mengindikasikan kondisi dari suatu even, seperti percobaan atau operasi pemanggilan.
- Structural diagram (Composite structure diagram) : Digunakan untuk menampilkan bagaimana sesuatu itu dibuat.
- Structural diagram (Deployment diagram) : Digunakan untuk menampilkan arsitektur run-time dari suatu sistem, kerangka hardware, ruang lingkup software, dan sebagainya.
- Structural diagram (Component diagram) : Digunakan untuk menampilkan organisasi dan hubungan antar sistem.
- Structural diagram (Package diagram) : Digunakan untuk mengorganisir elemen model dan menampilkan ketergantungan antara mereka.
- Behavioral diagram (Activity diagram) : Digunakan untuk menampilkan arus data dari kebiasaan antar object.
- Behavioral diagram (Use case diagram) : Digunakan untuk menampilkan layanan yang bisa diminta oleh actor dari sistem kita.
- Behavioral diagram (State machine diagram / Protocol state machine diagram) : Digunakan untuk menampilkan urutan proses dari suatu object dan kondisinya saat ini.
- Interaction diagram (Overview diagram) : Digunakan untuk menampilkan banyak skenario interaksi (urutan dari kebiasaan) bagi suatu kolaborasi (kumpulan elemen yang sama dan saling bekerja agar tercapai tujuan yang diinginkan).
- Interaction diagram (Sequence diagram) : Digunakan untuk fokus pada perubahan pesan antara grup dari suatu object dan urutan pesan tersebut.
- Interaction diagram (Communication diagram) : Digunakan untuk fokus pada perubahan pesan antara grup dari suatu object dan relasi dari object-object tersebut.
- Interaction diagram (Timing diagram) : Digunakan untuk menampilkan perubahan dan hubungan terhadap waktu nyata atau terhadap proses sistem.
Karena UML sangatlah fleksibel, kita akan menjumpai berbagai cara dalam meng-kategorikan diagram kita. Pohon kategori di bawah ini cukup terkenal:
- Static diagram: Menampilkan fitur statis dari sistem. Kategori ini hampir sama dengan structural diagram.
- Dynamic diagram: Menampilkan bagaimana proses perubahan yang terjadi dalam sistem sepanjang waktu. Kategori ini mencakup UML state-machine diagram dan timing diagram.
- Functional diagram: Menampilkan detail dari proses dan algoritma. Kategori ini mencakup use case, interaction, dan activity diagram.
Kita bisa mengembangkan diagram UML untuk menampilkan informasi yang berbeda pada waktu yang berbeda atau untuk tujuan yang berbeda. Ada banyak kerangka modelling, seperti Zachman atau DODAF. Berikut pertanyaan standar tentang sistem :
- Siapa yang menggunakan sistem? Menampilkan actor (pengguna sistem) dalam diagram use case(menampilkan tujuan sistem)
- Dari mana sistem dibuat? Menggambarkan diagram Class untuk menampilkan struktur logis dan component diagram agar bisa menampilkan struktur fisik.
- Dimana lokasi komponen dalam suatu sistem? Mengindikasikan rencana kita untuk menentukan lokasi suatu komponen.
- Kapan kejadian penting terjadi? Menampilkan apa yang menyebabkan object kita bisa bereaksi dan mulai melakukan kerjanya dengan state diagram dan interaction diagram.
- Bagaimana sistem ini bekerja? Menampilkan bagian struktur diagram dan menggunakan communication diagram untuk menampilkkan interaksi.
Siapa yang memerlukan UML?
Para pengguna UML dibagi dalam kategori:
- Modeler: Modeler mencoba menjelaskan dunia nyata seperti bagaimana mereka melihatnya.
- Designer: Designer mencoba mencari solusi yang memungkinkan, untuk dibandingkan atau menentukan proses pada aspek yang berbeda.
- Implementer: Implementer membangun solusi menggunakan UML sebagai bagian dari tujuan implementasi. Kebanyakan program UML sekarang sudah bisa membuat sendiri definisi dari suatu Class atau Database, seperti kode aplikasi atau user interface.