Pengertian UML (Unified Modelling Language)
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:
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.
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:
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:
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:
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
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
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
- Aktor hanya memberikan informasi kepada sistem.
- Aktor hanya menerima informasi dari sistem.
- Aktor memberikan dan menerima informasi ke dan dari 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
- 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
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
- Transition
- Decision
- Synchronization Bars
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
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
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.
3. Package Diagram
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.