UML (Unified Modelling Language) adalah sebuah “bahasa” yg telah
menjadi standar dalam industri untuk visualisasi, merancang dan
mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar
untuk merancang model sebuah sistem.
Dengan menggunakan UML kita dapat membuat model untuk semua jenis
aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada
piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam
bahasa pemrograman apapun.
UML mendefinisikan diagramdiagram sebagai berikut:
- use case diagram
- class diagram
- statechart diagram
- activity diagram
- sequence diagram
- collaboration diagram
- component diagram
- deployment diagram
1.1 Macam-Macam Diagram UML
Penjelasan dari masing-masing diagram tersebut akan dijelaskan dalam bentuk sub bab berikut ini :
1.1.1 Use Case Diagram
Use Case diagram adalah gambar dari beberapa atau seluruh aktor dan
use case dengan tujuan mengenali interaksi mereka dalam suatu sistem.
Oleh karena itu, use case diagram dapat membantu menganalisa kebutuhan
suatu sistem. Dalam use case diagram terdapat istilah seperti aktor, use
case dan use case relationship.
Aktor mewakili siapa pun atau apa saja yang harus berinteraksi dengan sistem. Aktor bisa didefinisikan sebagai berikut :
- Aktor hanya memberikan informasi kepada sistem.
- Aktor hanya menerima informasi dari sistem.
- Aktor memberikan dan menerima informasi ke dan dari sistem.
Adapun pertanyaan yang berguna untuk membantu mengenali aktor dalam suatu sistem:
- Siapa orang yang berkepentingan dalam sistem?
- Dimana organisasi sistem akan digunakan?
- Siapa yang akan diuntungkan dari penggunaan sistem?
- Siapa yang akan memenuhi sistem dengan informasi, menggunakan informasi dan menghapus informasi?
- Siapa yang mendukung dan menggunakan sistem?
- Apakah sistem menggunakan sebuah sumber dari luar?
- Apakah satu bermain menjadi beberapa peran yang berbeda?
- Apakah sistem mempengaruhi dengan sistem turunannya?
Use Case Model adalah dialog antara aktor dengan sistem yang akan
menggambarkan fungsi yang diberikan oleh sistem.Ada beberapa pertanyaan
yang dapat membantu mengenal use case untuk sistem, yaitu sebagai
berikut:
- Apakah tugas dari setiap aktor?
- Dapatkah aktor melakukan, membuat, menyimpan, merubah, menghapus atau membaca informasi?
- Apakah use case akan membuat, menyimpan, mengganti, menghapus atau membaca informasi?
- Dapatkah aktor menginformasikan sistem tentang perubahan yang terjadi perubahan dari luar secara mendadak?
- Apakah aktor perlu menginformasikan tentang kejadian dalam sistem?
- Apakah use case akan mendukung dan mempertahankan sistem?
- Bisakah semua fungsi use case memenuhi kebutuhan?
Use Case Relationship adalah suatu hubungan baik itu antara aktor dan
use case atau antara use case dan use case. Hubungan antara aktor dan
use case disebut dengan
communicate association
1.1.2 Kelas Diagram
Kelas Diagram berfungsi untuk menjelaskan tipe dari object sistem dan
hubungannya dengan object yang lain. Object adalah nilai tertentu dari
setiap attribute kelas entity. Pada penggambaran kelas diagram ada
dikenal dengan kelas analisis yaitu kelas ber-stereotype. Tapi yang
biasanya dipakai adalah kelas diagram tanpa stereotype.
1.1.3 State Diagram
State diagram menggambarkan urutan keadaan yang dilalui object dalam
suatu kelas, karena suatu kejadian menyebabkan suatu perpindahan
aktivitas/state. State dari objek adalah penggolongan dari satu atau
lebih nilai attribute pada kelas.
1.1.4 Activity Diagram
Activity Diagram berupa flow chart yang digunakan untuk
memperlihatkan aliran kerja dari sistem. Notasi yang digunakan dalam
activity diagram adalah sebagai berikut:
- Activity
Notasi yang menggambarkan pelaksanaan dari beberapa proses dalam aliran pekerjaan.
- Transition
Notasi yang digunakan untuk memperlihatkan jalan aliran kontrol dari activity ke activity.
- Decision
Notasi yang menandakan kontrol cabang aliran berdasarkan decision point.
- Synchronization Bars
Aliran kerja notasi ini menandakan bahwa beberapa aktivitas dapat diselesaikan secara bersamaan (pararel)
1.1.5 Sequence Diagram
Sequence diagram menjelaskan interaksi objek yang disusun berdasarkan
urutan waktu. Secara mudahnya sequence diagram adalah gambaran tahap
demi tahap yang seharusnya dilakukan untuk menghasilkan sesuatu sesuai
dengan use case diagram.
1.1.6 Collaboration Diagram
Collaboration adalah cara alternatif untuk mengetahui tahap-tahap
terjadinya suatu aktivitas. Perbedaan antara collaboration dan sequence
diagram adalah collaboration diagram memperlihatkan bagaimana hubungan
antara beberapa objek, sedangkan yang kedua sequence diagram
memperlihatkan bagaimana urutan kejadian
1.1.7 Component Diagram
Component diagram berfungsi untuk menggambarkan komponen run-time dan
executable yang dibuat untuk sistem. Komponen saling berelasi
menggunakan depedecy relation (Hubungan ketergantungan, yang ditandai
dengan garis putus-putus). Komponen run-time memperlihatkan
pengelompokan kelas untuk run-time library seperti Java Applet, Active-X
Component dan Dynamic Libraries. Komponen executable memperlihatkan
interface dan memanggil dependencies beberapa executable. Interface
kelas diperlihatkan seperti lollypop.
1.1.8 Deployment Diagram
Deployment Diagram memperlihatkan konfigurasi pada jalannya proses
run-time elements dan proses software yang ada pada diagram. Run-time
elements menggambarkan node yang berkoneksi menandakan adanya komunikasi
diantaranya. Diagram ini membantu tim untuk mengerti sistem topology
2. Tool Yang Mendukung UML
Saat ini banyak sekali tool pendesainan yang mendukung UML, baik itu tool komersial
maupun opensource. Beberapa diantaranya adalah:
- 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
3. Requirement
Requerement adalah pernyataan/gambaran pelayanan yang disediakan oleh
sistem, batasan-batasan dari sistem dan bisa juga berupa definisi
matematis fungsi-fungsi sistem.
3.1 Jenis Requirements
3.1.1 Requirement Fungsional
Kebutuhan fungsional harus mendefinisikan aksi dasar yang harus diambil oleh
perangkat lunak untuk menerima dan memproses masukan dan menghasilkan keluaran.
3.3.2 Requuirement Non Fungsional
Bagian ini menspesifikasikan ukuran kuantitatif yang harus dipenuhi oleh perangkat
lunak. Uraian minimal pada bagian ini berisi sebuah tabel, dengan kolom: Kriteria
Kebutuhan, Tuntutan kebutuhan. Kebutuhan tersebut antara lain: Performansi,
Batasan Memori, Modus Operasi, Adaptasi Situs atau Ergonomi.
4. Testing (Pengujian Perangkat Lunak)
Adalah elemen kritis dari jaminan kualitas perangkat lunak dan
merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean.
Sejumlah aturan yang berfungsi sebagai sasaran pengujian pada perangkat lunak adalah:
- Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan
- Test case yang baik adalah test case yang memiliki probabilitas
tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya
- Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya
Sasaran utama desain test case adalah untuk mendapatkan serangkaian
pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan
kesalahan pada perangkat lunak. Untuk mencapai sasaran tersebut,
digunakan 4 kategori yang berbeda dari tehnik desain test case:
Pengujian white-box,
pengujian black-box,
Integrasi Bottom-Up dan
Integrasi Top-Down.
4.1 Pengujian white-box berfokus pada struktur
control program. Test case dilakukan untuk memastikan bahwa semua
statemen pada program telah dieksekusi paling tidak satu kali selama
pengujian dan bahwa semua kondisi logis telah diuji. Pengujian basic
path, tehnik pengujian white-box, menggunakan grafik (matriks grafiks)
untuk melakukan serangkaian pengujian yang independent secara linear
yang akan memastikan cakupan.
Pengujian aliran data dan kondisi lebih lanjut menggunakan logika
program dan pengujian loop menyempurnakan tehnik white-box yang lain
dengan memberikan sebuah prosedur untuk menguji loop dari tingkat
kompleksitas yang bervariasi. Pengujian black-box didesain untuk
mengungkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja
internal dari suatu program.
4.2 Tehnik pengujian black-box berfokus pada domain
informasi dari perangkat lunak, dengan melakukan test case dengan
menpartisi domain input dari suatu program dengan cara yang memberikan
cakupan pengujian yang mendalam.
Metode pengujian graph-based mengeksplorasi hubungan antara dan
tingkah laku objek-objek program. Partisi ekivalensi membagi domain
input ke dalam kelas data yang mungkin untuk melakukan fungsi perangkat
lunak tertentu. Analisis nilai batas memeriksaa kemampuan program untuk
menangani data pada batas yang dapat diterima.
Metode pengujian yang terspesialisasi meliputi sejumlah luas
kemampuan perangkat lunak dan area aplikasi. GUI, arsitektur client/
server, dokumentasi dan fasilitas help dan sistem real time
masing-masing membutuhkan pedoman dan tehnik khusus untuk pengujian
perangkat lunak.
4.3 Integrasi Top-Down adalah pendekatan incremental
dengan menggerakkan ke bawah melalui hirarki control, dimulai dengan
control utama. Strategi intergrasi top-down memeriksa control mayor atau
keputusan pada saat awal di dalam proses pengujian. Pada struktur
program yang difaktorkan dengan baik, penarikan keputusan terjadi pada
tingkat hirarki yang lebih tinggi sehingga terjadi lebih dulu.
Strategi top-down kelihatannya tidak sangat rumit, tetapi di dalam
praktenya banyak menimbulkan masalah logistic. Biasanya masalah ini
terjadi jika dibutuhkan pemrosesan di dalam hirarki pada tingkat rendah
untuk menguji secara memadai tingkat yang lebih tinggi.
4.4 Pengujian Integrasi Bottom-up memulai konstruksi
dan pengujian dengan modul atomic (modul pada tingkat paling rendah
pada struktur program). Karena modul diintegrasikan dari bawah ke atas,
maka pemrosesan yang diperlukan untuk modul subordinate ke suatu
tuingkat yang diberikan akan selalu tersedia dan kebutuhan akan stub
dapat dieliminasi
Dalam pembahasan kali ini saya
ingin membahas Apa sih UML itu ? dan jenis-jenis UML apa saja ? oke deh,
langsung aja ya disimak.. :
Pengertian UML
UML (Unified Modeling Language)
adalah sebuah bahasa untuk menetukan, visualisasi, kontruksi, dan
mendokumentasikan artifact (bagian dari informasi yang digunakan atau
dihasilkan dalam suatu proses pembuatan perangkat lunak. Artifact dapat berupa
model, deskripsi atau perangkat lunak) dari system perangkat lunak, seperti
pada pemodelan bisnis dan system non perangkat lunak lainnya.
UML
merupakan bahasa standar untuk penulisan blueprint software yang digunakan
untuk visualisasi, spesifikasi, pembentukan dan pendokumentasian alat-alat dari
sistem perangkat lunak.
Jenis-jenis Diagram UML, yaitu :
1. Use Case Diagram
Use case adalah abstraksi dari
interaksi antara system dan actor. Use case bekerja dengan cara
mendeskripsikan tipe interaksi antara user sebuah system dengan
sistemnya sendiri melalui sebuah cerita bagaimana sebuah system dipakai.
Diagram Use Case berguna dalam tiga hal :
• Menjelaskan fasilitas yang ada (requirement)
• Komunikasi dengan klien
• Membuat test dari kasus-kasus secara umum
2. Activity Diagram
Activity
diagram menyediakan analis dengan kemampuan untuk memodelkan proses dalam suatu
sistem informasi. Activity diagram dapat digunakan untuk alur kerja model, use
case individual, atau logika keputusan yang terkandung dalam metode
individual3. Activity diagram juga menyediakan pendekatan untuk proses
pemodelan paralel. Activity diagram lebih lanjut .
Pada
dasarnya, diagram aktifitas canggih dan merupakan diagram aliran data yang
terbaru. Secara teknis, diagram aktivitas menggabungkan ide-ide proses
pemodelan dengan teknik yang berbeda termasuk model acara, statecharts, dan
Petri Nets.
Package
diagram utamanya digunakan untuk mengelompokkan elemen diagram UML yang
berlainan secara bersama-sama ke dalam tingkat pembangunan yang lebih
tinggi yaitu berupa sebuah paket. Diagram paket pada dasarnya adalah
diagram kelas yang hanya menampilkan paket, disamping kelas, dan
hubungan ketergantungan, disamping hubungan khas yang ditampilkan pada
diagram kelas.
Sebagai
contoh, jika kita memiliki sistem pendaftaran untuk kantor dokter,
mungkin masuk akal untuk kelompok kelas pasien dengan kelas sejarah
medis pasien bersama-sama untuk membentuk paket kelas pasien. Selain
itu, dapat berguna untuk membuat paket perawatan yang mengandung gejala
penyakit, penyakit, dan obat-obatan khas yang diresepkan untuk mereka.
4. State Machines Diagram
Statechart
diagram digunakan untuk memodelkan perilaku dinamis satu kelas atau objek.
Statechart diagram memperlihatkan urutan keadaan sesaat (state) yang dilalui
sebuah objek, Kejadian yang menyebabkan sebuah transisi dari suatu state atau
aktivitas kepada yang lainnya.
Statechart diagram khusus digunakan untuk
memodelkan tahap-tahap diskrit dari sebuah siklus hidup objek, sedangkan
Activity diagram paling cocok untuk memodelkan urutan aktifitas dalam suatu
proses.
5. Sequence Diagram
Sequence diagram menjelaskan
interaksi objek yang disusun berdasarkan urutan waktu. Secara mudahnya sequence
diagram adalah gambaran tahap demi tahap yang seharusnya dilakukan untuk
menghasilkan sesuatu sesuai dengan use case diagram.
6. Class Diagram
Tujuan
utama dari class diagram adalah untuk menciptakan sebuah kosa kata yang
digunakan oleh analis dan pengguna. Diagram kelas biasanya merupakan
hal-hal, ide-ide atau konsep yang terkandung dalam aplikasi. Misalnya,
jika anda sedang membangun sebuah aplikasi penggajian, diagram kelas
mungkin akan berisi kelas yang mewakili hal-hal seperti karyawan, cek,
dan pendaftaran gaji. Diagram kelas juga akan menggambarkan hubungan
antara kelas.
Class memiliki 3 area pokok :
1. Name (dan stereotype);
2. Attribute;
3. Method.
7. Communication Diagram
Collaboration
diagram menggambarkan interaksi antar objek seperti sequence diagram,
tetapi lebih menekankan pada peran masing-masing objek. Setiap message
memiliki sequence number, dimana message dari level tertinggi memiliki
Nomor 1. Diagram membawa informasi yang sama dengan diagram Sequence,
tetapi lebih memusatkan atau memfokuskan pada kegiatan obyek dari waktu
pesan itu dikirimkan.
Contoh : Diagram Collaboration “Pemesanan kamar di Hotel”.
8. Composite Structure Diagram
Diagram
struktur komposit adalah diagram yang menunjukan struktur internal
classifier, termasuk poin interaksinya ke bagian lain dari system. Hal
ini menunjukkan konfigurasi dan hubungan bagian, yang bersama-sama
melakukan perilaku classifier. Diagram struktur komposit merupakan jenis
diagram struktur yang statis dalam UML, yang menggambarkan struktur
internal kelas dan kolaborasi.
Struktur komposit dapat digunakan untuk menjelaskan:
- Struktur dari bagian-bagian yang saling berkaitan;
- Run-time struktur yang saling berhubungan.
9. Object Diagram
Object
diagram merupakan sebuah gambaran tentang objek-objek dalam sebuah
system pada satu titik waktu. Karena lebih menonjolkan perintah-perintah
dari pada class, object diagram lebih sering disebut sebagai sebuah diagram perintah.
10. Timing Diagram
Timing
Diagram adalah bentuk lain dari interaction diagram, dimana focus
utamanya lebih ke waktu. Timing diagram sangat berdaya guna dalam
menunjukkan factor pembatas waktu diantara perubahan state pada objek
yang berbeda.
11. Component Diagram
Diagram
ini bila dikombinasikan dengan diagram penyebaran dapat digunakan untuk
menggambarkan distribusi fisik dari modul perangkat lunak melalui
jaringan. Misalnya, ketika merancang sistem client-server, hal ini
berguna untuk menunjukkan mana kelas atau paket kelas akan berada pada
node klien dan mana yang akan berada di server.
Diagram
komponen juga dapat berguna dalam merancang dan mengembangkan sistem
berbasis komponen. Karena berfokus pada analisis sistem berorientasi
objek dan desain.
12. Deployment Diagram
Deployment
diagram menggambarkan detail bagaimana komponen di deploy dalam
infrastruktur system, dimana komponen akan terletak (pada mesin, server
atau piranti keras), bagaimana kemampuan jaringan pada lokasi tersebut,
spesifikasi server, dan hal-hal lain yang bersifat fisikal. Hubungan
antar node ( misalnya TCP/IP) dan requirement dapat juga didefinisikan
dalam diagram ini.
13. Interaction Overview Diagram
Interaction
Overview Diagram adalah pecangkolan secara bersama antara activity
diagram dengan sequence diagram. Interaction Overview Diagram dapat
dianggap sebagai activity diagram dimana semua aktivitas diganti dengan
sedikit sequence diagram, atau bisa juga dianggap sebagai sequence
diagram yang dirincikan dengan notasi activity diagram yang digunakan
untuk menunjukkan aliran pengawasan.