UML (Unified Modelling Language)
Bahasa pemodelan perangkat lunak atau UML, diperkenalkan pertama kali pada tahun 1997. Saat ini telah berkembang menjadi sebuah bahasa pemodelan yang baku dalam pengembangan perangkat lunak yang menggunakan pendekatan berorientasi objek.
Intensitas penggunaan UML yang tinggi didukung dengan konsep pemodel yang dirumuskan dalam setiap rilis spesifikasi UML. Rilis spesifikasinya dikeluarkan oleh Object Mangement Group (OMG). Sampai pada tahun ini, OMG telah merilis 11 versi spesifikasi UML, yang terakhir adalah versi 2.5.1 yang termasuk dalam revisi UML 2.0.
Pengembangan alat bantu untuk pemodelan dengan UML berkembang cukup pesa. Bahkan sebagiannya tergolong sebagai free software. Dampaknya adalah ketersediaan banyak pilihan bagi pengembang perangkat lunak untuk menggunakannya. Contohnya Star UML, Argo UML, UML Designer.
UML menyediakan banyak diagram yang diperlukan untuk menjelaskan sistem yang sedang dikembangkan, baik dari aspek statis maupun dinamisnya.
Salah satu diagram penting yang digunakan untuk mengilustrasikan kebutuhan dari sistem adalah use case diagram. Use case diagram menjelaskan secara visual konteks dari interaksi antara aktor dengan sistem. Setiap use case menyatakan spesifikasi perilaku dari sistem yang sedang dijelaskan yang memang dibutuhkan oleh aktor untuk memenuhi tujuannya.
Namun demikian, penjelasan detil dari interaksi yang terjadi antara aktor dan sitem, berkaitan dengan sebuah use case tertentu, harus dijelaskan secara deskriptif dalam sebuah use case scenario.
Oleh karena itu, use case scenario dan use case diagram, yang dibutuhkan dalam pemodelan UC dari sebuah sistem, harus mampu menjelaskan fungsionalitas sistem secara lengkap dan valid.
Kelebihan UML dibandingkan dengan bahasa pemodelan yang lain, antara lain :
- Menyediakan bahasa pemodelan visual yang ekspresif dan siap pakai untuk mengembangkan dan pertukaran model-model yang berarti.
- Menyediakan mekanisme perluasan dan spesialisasi untuk memperluas konsep-konsep inti.
- Mendukung spesifikasi independen bahasa pemrograman dan proses pengnembangan tertentu.
- Menyediakan basis formal untuk bahasa pemodelan.
- Memadukan praktek-praktek terbaik di industri perangkat lunak menjadi terminologi dan notasi yang diterima luas.
- Menyediakan kemampuan merepresentasikan semua konsep yang relevan untuk sistem perangkat lunak.
- Menyediakan fleksibilitas yang diperlukan bagi konsep-konsep perangkat lunak yang baru.