USE CASE
2.1 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 suatu kumpulan teknik terbaik yang telah terbukti
sukses dalam memodelkan system yang besar dan kompleks. UML tidak hanya
digunakan dalam proses pemodelan perangkat lunak, namun hampir dalam semua
bidang yang membutuhkan pemodelan.
2.2 Konsepsi
Dasar UML
2.3 BAGIAN
–BAGIAN UML
Bagian-bagian
utama dari UML adalah view, diagram, model element, dan general mechanism.
a. View
View digunakan untuk melihat sistem yang dimodelkan dari beberapa
aspek yang berbeda. View bukan melihat grafik, tapi merupakan suatu abstraksi yang
berisi sejumlah diagram.
Beberapa jenis view dalam UML antara lain: use case view, logical
view, component view, concurrency view, dan deployment view.
Use case view
Mendeskripsikan fungsionalitas sistem yang seharusnya dilakukan
sesuai yang diinginkan external actors. Actor yang berinteraksi dengan sistem
dapat berupa user atau sistem lainnya.
View ini digambarkan dalam use case diagram dan kadang-kadang
dengan activity diagrams. View ini digunakan terutama untuk pelanggan,
perancang (designer), pengembang (developer), dan penguji sistem (tester).
Logical view
Mendeskripsikan bagaimana fungsionalitas dari sistem, struktur
statis (class, object,dan relationship ) dan kolaborasi dinamis yang terjadi
ketika object mengirim pesan ke object lain dalam suatu fungsi tertentu.
View ini digambarkan dalam class diagrams untuk struktur statis dan
dalam state, sequence, collaboration, dan activity diagram untuk model
dinamisnya. View ini digunakan untuk perancang (designer) dan pengembang
(developer).
Component view
Mendeskripsikan implementasi dan ketergantungan modul. Komponen
yang merupakan tipe lainnya dari code module diperlihatkan dengan struktur dan
ketergantungannya juga alokasi sumber daya komponen dan informasi
administrative lainnya.
View ini digambarkan dalam component view dan digunakan untuk
pengembang (developer).
Concurrency
view
Membagi sistem ke dalam proses dan prosesor. View ini digambarkan
dalam diagram dinamis (state, sequence, collaboration, dan activity diagrams)
dan diagram implementasi (component dan deployment diagrams) serta digunakan
untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester).
Deployment view
Mendeskripsikan fisik dari sistem seperti komputer dan perangkat
(nodes) dan bagaimana hubungannya dengan lainnya.
View ini digambarkan dalam deployment diagrams dan digunakan untuk
pengembang (developer), pengintegrasi (integrator), dan penguji (tester).
b. Diagram
Diagram berbentuk grafik yang menunjukkan simbol elemen model yang
disusun untuk mengilustrasikan bagian atau aspek tertentu dari sistem. Sebuah
diagram merupakan bagian dari suatu view tertentu dan ketika digambarkan
biasanya dialokasikan untuk view tertentu. Adapun jenis diagram antara lain :
-
Use Case
Diagram
Use
case diagram menggambarkan
fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa”
yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case
merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan
sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah
daftar belanja, dan sebagainya.Seorang/sebuah aktor adalah sebuah entitas
manusia atau mesin yang berinteraksi dengan sistem untuk melakukan
pekerjaan-pekerjaan tertentu.
Use
case diagram dapat sangat membantu
bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan
rancangan dengan klien, dan merancang test case untuk semua feature yang
ada pada sistem. Sebuah use case dapat meng-include fungsionalitas
use case lain sebagai bagian dari proses dalam dirinya. Secara umum
diasumsikan bahwa use case yang di-include akan dipanggil setiap
kali use case yang meng-include dieksekusi secara normal.
Sebuah
use case dapat di-include oleh lebih dari satu use case lain,
sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar
fungsionalitas yang common. Sebuah use case juga dapat meng-extend
use case lain dengan behaviour-nya sendiri. Sementara hubungan
generalisasi antar use case menunjukkan bahwa use case yang satu
merupakan spesialisasi dari yang lain.
Relasi dalam Use Case
Ada beberapa relasi yang terdapat pada use case diagram:
Ada beberapa relasi yang terdapat pada use case diagram:
1.
Association, menghubungkan link antar element.
2. Generalization, disebut juga
inheritance (pewarisan), sebuah elemen dapat merupakan spesialisasi dari elemen
lainnya.
3. Dependency, sebuah
element bergantung dalam beberapa cara ke element lainnya.
4. Aggregation, bentuk
assosiation dimana sebuah elemen berisi elemen lainnya.
Tipe relasi / stereotype yang mungkin terjadi pada Use Case diagram:
1.
<<include>>, yaitu kelakuan
yang harus terpenuhi agar sebuah event dapat terjadi, dimana pada kondisi ini
sebuah use case adalah bagian dari use case lainnya.
2.
<<extends>>, kelakuan yang
hanya berjalan di bawah kondisi tertentu seperti menggerakkan alarm.
3.
<<communicates>>, mungkin
ditambahkan untuk asosiasi yang menunjukkan asosiasinya adalah communicates association . Ini merupakan
pilihan selama asosiasi hanya tipe relationship
yang dibolehkan antara actor dan use case.
Secara umum use case adalah:
–
Pola perilaku system
–
Urutan transaksi yang berhubungan yang dilakukan oleh
satu actor
Use case diagram terdiri dari :
·
Use case
Use case dibuat berdasar keperluan actor,
merupakan “apa” yang dikerjakan system, bukan “bagaimana” system
mengerjakannya. Use case diberi nama yang menyatakan apa hal yang dicapai dari
hasil interaksinya dengan actor.
Use case dinotasikan dengan gambar (horizontal
ellipse) Use case biasanya menggunakan
kata kerja Nama use case boleh
terdiri dari beberapa kata dan tidak boleh ada 2 use case yang memiliki nama
yang sama.
·
Actors
-
Actor menggambarkan orang, system atau external entitas /
stakeholder yang menyediakan atau menerima informasi dari system
-
Actor menggambarkan sebuah tugas/peran dan bukannya
posisi sebuah jabatan
-
Actor memberi input atau menerima informasi dari system
-
Actor biasanya menggunakan Kata benda
-
Tidak boleh ada komunikasi langsung antar actor
-
Indikasi <<system>> untuk sebuah actor yang
merupakan sebuah system
-
Adanya actor bernama “Time” yang mengindikasikan
scheduled events (suatu kejadian yang terjadi secara periodik/bulanan)
-
Letakkan actor utama anda pada pojok kiri atas dari
diagram
Empat Tipe
Aktor:
¥ Primary business actor
¤ Stakeholder yang paling diuntungkan dari terlaksananya use-case
dengan menerima sesuatu yang dapat diukur
¤ Contoh: karyawan yang
menerima pembayaran
¥ Primary system actor
¤ Stakeholder yang berinteraksi secara langsung dengan sistem untuk
memicu kejadian bisnis atau sistem (business or system events)
¤ Contoh: teller sebuah bank yang memasukkan informasi deposit
¥ External server actor
¤ Stakeholder yang menanggapi permintaan dari use-case
¤ Contoh: biro kredit melakukan otorisasi charge sebuah credit card
¥ External receiver actor
¤ Stakeholder yang meski bukan primary actor tapi menerima sesuatu
yang bernilai dari use-case
¤ Contoh: gudang menerima packing slip
·
Relationship
·
System boundary boxes (optional)
-
Digambarkan dengan kotak disekitar use case, untuk
menggambarkan jangkauan system anda (scope of of your system).
-
Biasanya digunakan apabila memberikan beberapa
alternative system yang dapat dijadikan pilihan
-
System boundary boxes dalam penggunaannya optional
·
Packages (optional)
Use
case diagram dapat digunakan
untuk :
1.
Menyusun requirement
sebuah sistem,
2.
Mengkomunikasikan
rancangan dengan klien, dan
3.
Merancang test
case untuk semua feature yang ada pada sistem.
Simbol
yang digunakan dalam use case diagram adalah sebagai berikut:
NO
|
GAMBAR
|
NAMA
|
KETERANGAN
|
1
|
Actor
|
Menspesifikasikan
himpuan peran yang pengguna mainkan ketika berinteraksi dengan use case.
|
|
2
|
Dependency
|
Hubungan dimana
perubahan yang terjadi pada suatu elemen
mandiri (independent) akan
mempengaruhi elemen yang bergantung padanya elemen yang tidak mandiri (independent).
|
|
3
|
Generalization
|
Hubungan dimana objek
anak (descendent) berbagi perilaku
dan struktur data dari objek yang ada di atasnya objek induk (ancestor).
|
|
4
|
Include
|
Menspesifikasikan
bahwa use case sumber secara eksplisit.
|
|
5
|
Extend
|
Menspesifikasikan
bahwa use case target memperluas
perilaku dari use case sumber pada
suatu titik yang diberikan.
|
|
6
|
Association
|
Apa yang
menghubungkan antara objek satu dengan objek lainnya.
|
|
7
|
System
|
Menspesifikasikan paket yang menampilkan sistem secara terbatas.
|
|
8
|
Use Case
|
Deskripsi dari urutan
aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur
bagi suatu aktor
|
|
9
|
Collaboration
|
Interaksi
aturan-aturan dan elemen lain yang bekerja sama untuk menyediakan prilaku
yang lebih besar dari jumlah dan elemen-elemennya (sinergi).
|
|
10
|
Note
|
Elemen fisik yang
eksis saat aplikasi dijalankan dan mencerminkan suatu sumber daya komputasi
|
Gambar 1. Simbol Use Case
Diagram
Contoh diagram use case:
CONTOH USE CASE DIAGRAM (Registrasi Ulang)
Deskripsinya :
- Tata usaha melakukan login ke sistem
- Tata usaha meng-update dan me-create data siswa. Semua data dapat perbaikan data
- Tata usaha input pembayaran
- Tata usaha cetak jadwal, dan diserahkan ke siswa serta guru
-
Class Diagram
Class adalah dekripsi kelompok obyek-obyek dengan property,
perilaku (operasi) dan relasi yang sama. Sehingga dengan adanya class diagram
dapat memberikan pandangan global atas sebuah system. Hal tersebut tercermin
dari class- class yang ada dan relasinya satu dengan yang lainnya. Sebuah
sistem biasanya mempunyai beberapa class diagram. Class diagram sangat membantu
dalam visualisasi struktur kelas dari suatu system.
Class menggambarkan
keadaan diantaranya :
1.
Atribut/properti
suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut
(metoda/fungsi).
2.
Menggambarkan
struktur dan deskripsi class, package dan objek beserta hubungan satu
sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.
Class memiliki tiga
area pokok :
1. Nama (dan
stereotype)
2. Atribut
3. Metoda
Atribut
dan metoda dapat memiliki salah satu sifat berikut :
• Private, tidak dapat dipanggil dari luar class yang
bersangkutan
• Protected,
hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya
• Public, dapat dipanggil oleh siapa saja
Class merupakan implementasi dari sebuah interface,
yaitu class abstrak yang hanya memiliki metoda. Interface tidak
dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi
sebuah class. Dengan demikian interface mendukung resolusi metoda
pada saat run-time.
Class dapat
dikelompokkan menjadi package. Kita juga dapat membuat diagram yang
terdiri atas package.
Hubungan
Antar Class
1. Asosiasi, yaitu hubungan statis antar class. Umumnya
menggambarkan class yang memiliki atribut berupa class lain, atau
class yang harus mengetahui eksistensi class lain. Panah navigability
menunjukkan arah query antar class.
2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri
atas”).
3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat
diturunkan dari class lain dan mewarisi semua atribut dan metoda class
asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class
yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
4. Hubungan dinamis, yaitu rangkaian pesan (message) yang
di-passing dari satu class kepada class lain. Hubungan
dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan
dijelaskan kemudian.
Simbol yang digunakan dalam Class Diagram
NO
|
GAMBAR
|
NAMA
|
KETERANGAN
|
1
|
Generalization
|
Hubungan dimana objek
anak (descendent) berbagi perilaku
dan struktur data dari objek yang ada di atasnya objek induk (ancestor).
|
|
2
|
Nary Association
|
Upaya
untuk menghindari asosiasi dengan lebih dari 2 objek.
|
|
3
|
Class
|
Himpunan
dari objek-objek yang berbagi atribut serta operasi yang sama.
|
|
4
|
Collaboration
|
Deskripsi dari urutan
aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur
bagi suatu aktor
|
|
5
|
Realization
|
Operasi yang
benar-benar dilakukan oleh suatu objek.
|
|
6
|
Dependency
|
Hubungan dimana
perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempegaruhi elemen yang bergantung padanya
elemen yang tidak mandiri
|
|
7
|
Association
|
Apa yang menghubungkan
antara objek satu dengan objek lainnya
|
Contoh class diagram :
-
Component Diagram
Component software merupakan bagian fisik dari sebuah system,
karena menetap di komputer tidak berada di benak para analis. Komponent
merupakan implementasi software dari sebuah atau lebih class. Komponent dapat
berupa source code, komponent biner, atau executable component. Sebuah
komponent berisi informasi tentang logic class atau class yang
diimplementasikan sehingga membuat pemetaan dari logical view ke component
view. Sehingga component diagram merepresentasikan dunia riil yaitu component
software yang mengandung component, interface dan relationship.
Component
diagram menggambarkan struktur dan hubungan
antar komponen piranti lunak,termasuk ketergantungan (dependency) di
antaranya. Komponen piranti lunak adalah modul berisi code, baik berisi source
code maupun binary code, baik library maupun executable,
baik yang muncul pada compile time, link time, maupun run time.
Umumnya
komponen terbentuk dari beberapa class dan/atau package, tapi
dapat juga dari komponen-komponen yang lebih kecil.
Komponen dapat
juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah
komponen untuk komponen lain.
Contoh component Diagram:
-
Deployment Diagram
Menggambarkan tata letak sebuah system secara fisik, menampakkan
bagian-bagian software yang berjalan pada bagian-bagian hardware, menunjukkan
hubungan komputer dengan perangkat (nodes) satu sama lain dan jenis
hubungannya. Di dalam nodes, executeable component dan object yang dialokasikan
untuk memperlihatkan unit perangkat lunak yang dieksekusi oleh node tertentu
dan ketergantungan komponen.
Contoh deployment diagram :
-
Statechart Diagram
Menggambarkan semua state (kondisi) yang dimiliki oleh suatu object
dari suatu class dan keadaan yang menyebabkan state berubah. Kejadian dapat
berupa object lain yang mengirim pesan. State class tidak digambarkan untuk
semua class, hanya yang mempunyai sejumlah state yang terdefinisi dengan baik
dan kondisi class berubah oleh state yang berbeda.
Simbol yang digunakan dalam Statechart diagram
NO
|
GAMBAR
|
NAMA
|
KETERANGAN
|
1
|
State
|
Nilai atribut dan
nilai link pada suatu waktu tertentu, yang dimiliki oleh suatu objek.
|
|
2
|
Initial Pseudo State
|
Bagaimana objek
dibentuk atau diawali
|
|
3
|
Final State
|
Bagaimana objek dibentuk dan dihancurkan
|
|
4
|
Transition
|
Sebuah kejadian yang
memicu sebuah state objek dengan cara memperbaharui satu atau lebih nilai
atributnya
|
|
5
|
Association
|
Apa yang
menghubungkan antara objek satu dengan objek lainnya.
|
|
6
|
Node
|
Elemen fisik yang
eksis saat aplikasi dijalankan dan mencerminkan suatu sumber daya komputasi.
|
Contoh statechart diagram:
-
Sequence Diagram
Sequence
diagram menggambarkan interaksi antar objek
di dalam dan di sekitar sistem (termasuk pengguna, display, dan
sebagainya) berupa message yang digambarkan terhadap waktu. Sequence
diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal
(objek-objek yang terkait).
Sequence
diagram biasa digunakan untuk menggambarkan
skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari
sebuah event untuk menghasilkan output tertentu. Diawali dari apa
yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang
terjadi secara internal dan output apa yang dihasilkan. Masing-masing
objek, termasuk aktor, memiliki lifeline vertikal.
Message digambarkan sebagai garis berpanah dari satu objek ke objek
lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi
operasi/metoda dari class.
Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan
diterimanya sebuah message Untuk
objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus
untuk objek boundary, controller dan persistent entity.
Simbol yang digunakan dalam Sequence
Diagram
Contoh sequence
diagram :
NO
|
GAMBAR
|
NAMA
|
KETERANGAN
|
1
|
LifeLine
|
Objek entity, antarmuka yang
saling berinteraksi.
|
|
2
|
Message
|
Spesifikasi
dari komunikasi antar objek yang memuat informasi-informasi tentang aktifitas
yang terjadi
|
|
3
|
Message
|
Spesifikasi dari
komunikasi antar objek yang memuat informasi-informasi tentang aktifitas yang
terjadi
|
Contoh Sequence Diagram
-
Colaboration
Diagram
Menggambarkan kolaborasi dinamis seperti sequence diagrams. Dalam
menunjukkan pertukaran pesan, collaboration diagrams menggambarkan object dan
hubungannya (mengacu ke konteks). Jika penekannya pada waktu atau urutan
gunakan sequencediagrams, tapi jika penekanannya pada konteks gunakan
collaboration diagram.
-
Activity
Diagram
Activity
diagrams menggambarkan berbagai alir
aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir
berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity
diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada
beberapa eksekusi.
Activity
diagram merupakan state diagram khusus,
di mana sebagian besar state adalah action dan sebagian besar
transisi di-trigger oleh selesainya state sebelumnya (internal
processing). Oleh karena itu activity diagram tidak menggambarkan
behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak,
tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level
atas secara umum.
Sebuah aktivitas dapat direalisasikan oleh satu use case atau
lebih. Aktivitas menggambarkan proses
yang berjalan, sementara use case
menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas.
Simbol yang digunakan dalam Activity Diagram
NO
|
GAMBAR
|
NAMA
|
KETERANGAN
|
1
|
Actifity
|
Memperlihatkan bagaimana masing-masing kelas antarmuka saling
berinteraksi satu sama lain
|
|
2
|
Action
|
State dari sistem
yang mencerminkan eksekusi dari suatu aksi
|
|
3
|
Initial Node
|
Bagaimana objek
dibentuk atau diawali.
|
|
4
|
Actifity Final Node
|
Bagaimana objek dibentuk dan dihancurkan
|
|
5
|
Fork Node
|
Satu aliran yang pada
tahap tertentu berubah menjadi beberapa aliran
|
Sama
seperti state, standar UML menggunakan segiempat dengan sudut membulat
untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour
pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan
join) digunakan titik sinkronisasi yang dapat berupa titik, garis
horizontal atau vertikal.
Activity
diagram dapat dibagi menjadi beberapa object
swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk
aktivitas tertentu.
Contoh activity diagram
2.4 Langkah-Langkah
Penggunaan UML
Berikut
ini adalah tips pengembangan piranti lunak dengan menggunakan UML:
1.
Buatlah daftar business process dari level tertinggi untuk
mendefinisikan aktivitas dan proses yang mungkin muncul.
2.
Petakan use case untuk tiap business process untuk mendefinisikan
dengan tepat fungsionalitas yang harus disediakan oleh sistem. Kemudian
perhalus use case diagram dan lengkapi dengan requirement, constraints dan
catatan-catatan lain.
3.
Buatlah deployment diagram secara kasar untuk mendefinisikan arsitektur
fisik sistem.
4.
Definisikan requirement lain (non-fungsional, security dan
sebagainya) yang juga harus disediakan oleh sistem.
5.
Berdasarkan use case diagram, mulailah membuat activity diagram.
6.
Definisikan objek-objek level atas (package atau domain) dan
buatlah sequence dan/atau collaboration diagram untuk tiap alir
pekerjaan. Jika sebuah use case memiliki kemungkinan alir normal dan
error, buatlah satu diagram untuk masing-masing alir.
7.
Buatlah rancangan user interface model yang menyediakan antarmuka bagi
pengguna untuk menjalankan skenario use case.
8.
Berdasarkan model-model yang sudah ada, buatlah class diagram. Setiap package
atau domain dipecah menjadi hirarki class lengkap dengan
atribut dan metodanya. Akan lebih baik jika untuk setiap class dibuat unit
test untuk menguji fungsionalitas class dan interaksi dengan class
lain.
9.
Setelah class diagram dibuat, kita dapat melihat kemungkinan
pengelompokan class menjadi komponen-komponen. Karena itu buatlah
component diagram pada tahap ini. Juga, definisikan tes integrasi untuk setiap
komponen meyakinkan ia berinteraksi dengan baik.
10.
Perhalus deployment diagram yang sudah dibuat. Detilkan kemampuan dan requirement
piranti lunak, sistem operasi, jaringan, dan sebagainya. Petakan komponen
ke dalam node.
11.
Mulailah membangun sistem. Ada dua pendekatan yang dapat digunakan :
•
Pendekatan use case, dengan meng-assign setiap use case kepada
tim pengembang tertentu untuk mengembangkan unit code yang lengkap
dengan tes.
•
Pendekatan komponen, yaitu meng-assign setiap komponen kepada tim
pengembang tertentu.
12.
Lakukan uji modul dan uji integrasi serta perbaiki model berserta codenya.
Model harus selalu sesuai dengan code yang aktual.
13.
Piranti lunak siap dirilis.