Unified Modeling Language (UML)
Unified Modeling Language (UML) digunakan untuk melakukan pemodelan sistem/perangkat lunak dengan menggunakan tools yang ada. Dengan pemodelan menggunakan UML, rekayasa dan pengembangan perangkat dapat dilakukan dengan fokus pengembangan dan desain perangkat lunak terhadap: 1. Tinjauan umum bagaimana arsitektur sistem secara keseluruhan
2. Penelaah bagaimana objek-objek dalam sistem saling mengirimkan pesan (message) dan saling bekerjasama satu sama lain
3. Menguji apakah sistem/perangkat lunak sudah berfungsi seperti yang seharusnya
4. Dokumentasi sistem/perangkat lunak untuk keperluan-keperluan tertentu di masa yang akan datang
Setiap sistem yang komplek seharusnya bisa dipandang dari sudut pandang yang berbedabeda sehingga bisa dilakukan pemahaman secara menyeluruh. Dalam upaya-nya tersebut, UML menyediakan sembilan jenis diagram yang dapat dikelompokkan berdasarkan sifatnya yang statis ataupun dinamis. Kesembilan jenis diagram untuk UML adalah:
1. Use-Case Diagram - bersifat statis, memperlihatkan himpunan use-case dan aktor-aktor. Diagram ini sangat penting terutama untuk memodelkan ataupun mengorganisasikan perilaku dari sistem yang dibutuhkan pengguna
2. Class Diagram - bersifat statis tetapi sering pula memuat kelas-kelas aktif dan memperlihatkan himpunan kelas-kelas, antarmuka-antarmuka, kolaborasi-kolaborasi, serta relasi-relasi
3. Statechart Diagram - bersifat dinamis yang memperlihatkan state – state dari sistem, memuat state, transisi, event, serta aktivitas. Penting untuk memperlihatkan sifat dinamis dari antarmuka (interface), kelas, kolaborasi, terutama penting pada pemodelan system-sistem yang reaktif
4. Activity Diagram - bersifat dinamis. Merupakan tipe khusus dari diagram state yang memperlihatkan aliran dari suatu aktivitas ke aktivitas lainnya dalam suatu sistem
5. Sequence Diagram - bersifat dinamis yang menekankan pada pengiriman pesan (message) dalam suatu waktu tertentu
6. Collaboration Diagram - bersifat dinamis yang menekankan organisasi struktural dari objek-objek yang menerima serta mengirim pesan (message)
7. Component Diagram - bersifat statis.diagram ini berhubungan dengan digram kelas dimana komponen secara tipical dipetakan ke dalam satu atau lebih kelas-kelas, antarmuka (interface) ataupun kolaborasi
8. Diagram Objek- bersifat statis, memperlihatkan objek-objek serta serta relasi-relasi antar-objek. Selain itu juga memperlihatkan instansiasi statis dari segala sesuatu yang dijumpai pada diagram kelas
9. Depeloyment Diagram- bersifat statis, diagram memperlihatkan konfigurasi saat aplikasi dijalankan (run-time). Digram ini sangat berguna saat aplikasi kita berlaku sebagai aplikasi yang dijalankan pada banyak mesin (distributedcomputing)