UML Kasusnya PDF
UML Kasusnya PDF
Rumbaugh
Booch
Odell
Jacobson
UML
OMG
(Object Management Group)
Meyer
Shlaer and
Mellor
Gamma
Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang
merupakan tiga tokoh yang boleh dikata metodologinya banyak digunakan mempelopori
usaha untuk penyatuan metodologi pendesainan berorientasi objek. Pada tahun 1995
direlease konsep pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan
tersebut dikoordinasikan oleh Object Management Group (OMG). Sejak saat itulah UML
telah menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek.
1. 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 pekerjaanpekerjaan tertentu.
Use case diagram dapat sangat membantu dalam 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.
Clinic
Cancel Appointment
Make Appointment
<<include>>
Scheduler
Check Patient
Record
Patient
<<include>>
Request Medication
Defer Payment
Doctor
<<extend>>
Pay Bill
Extension Point
More Treatment
Bill Insurance
Clerk
2. Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang
mewarisinya. Private diberi tanda pagar (#) pada awal nama attribut atau nama
operasi.
3. Public, dapat dipanggil oleh siapa saja. Private diberi tanda plus (+) pada awal nama
attribut atau nama operasi.
Nama Class
+publicAtribut : <tipe data>
-privateAtribut : <tipe data>
#protectedAtribut : <tipe data>
+publicOperasi
-privateOperasi
#protectedOperasi
Gambar 2.3 Notasi Public, Private dan Protected pada Class Diagram.
Class dapat 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.
3. Statechart Diagram
Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu
state ke state lainnya) suatu objek pada sistem, sebagai akibat dari stimuli yang
diterima. Pada umumnya, statechart diagram menggambarkan class tertentu (satu class
dapat memiliki lebih dari satu statechart diagram).
Dalam UML, state digambarkan berbentuk segiempat, dengan sudut membulat
dan memiliki nama sesuai kondisinya saat itu. Transisi antar state umumnya memiliki
kondisi guard, yang merupakan syarat terjadinya transisi yang bersangkutan (dituliskan
dalam kurung siku). Action yang dilakukan sebagai akibat dari event tertentu dituliskan
dengan diawali garis miring.
Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan
berwarna setengah.
Processing Request
Select [Filter]
+ Filter string
Start
Viewing
Adding to Chart
Adding
End
4. Activity Diagram
Activity diagram 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.
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.
decision
Start
Find Beverage
Put Coffee
in Filter
Add Water to
Reservoir
[no coffee]
Get Cups
Put Filter in
Machine
[no cola]
Turn on
Machine
Brew Coffee
Pour Coffee
Drink Beverage
End
5. 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.
Login Screen
Login Screen
Security
Manager
Customer
Login
Validate User
Check User Details
User Detail
Validate
[Result]
6. Component Diagram
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.
Kernel32.dll
7. Deployment Diagram
Deployment/physical diagram menggambarkan detail bagaimana komponen dideploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server
atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut,
spesifikasi server, dan hal-hal lain yang bersifat fisikal. Sebuah node adalah server,
workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam
lingkungan sebenarnya.
Internet
Gambar 2.8
Client Web
Server
Web Server
Server Proses
Melakukan
Koneksi dan
Login
Menerima
Request Client
Me-request
Informasi/Data
Menerima
Informasi/Data
Melaksanakan
Request Client
Mengumpulkan
Informasi/Data
Disconnect
Pengawas
Save Data
Server
User yang
diawasi
Mengirim
Informasi/Data
Open Data
Server
Manajemen
Daftar Server
Mengkonfigurasi
5. Post-condition : Disconnected.
case
ini
membuka
file
berekstensi
*.sdt
(server
data)
dan
daftar server.
3. Basic Flow :
Melaksanakan request dari Client.
Deployment Diagram
Ethernet
Komputer
Client
Berfungsi sebagai
sarana pengakses
server, yang langsung
berinteraksi dengan
Pengawas
Komputer
Server
Sebagai penyedia
layanan untuk Client,
yang menerima dan
melaksanakan
Request Client
Class Diagram
Client
TFormUtama
Server
TClientUtama
TFormOption
TFormInputFileName
TFormScrshoot
TFormUtama
<<include>>
TFormUtama
TFormEditServer
Notasi Class.
1. Class pada Aplikasi Client
TFormUtama
+MainMenu: TMainMenu
+File1: TMenuItem
+ClientUtama: TClientSocket
+StatusBar: TStatusBar
+PanelAtas: TPanel
+LabelIP: TLabel
+EditPort: TEdit
+LabelPort: TLabel
+Indicator: TShape
+ButtonConnect: TButton
+PageControl: TPageControl
+TabServerList: TTabSheet
+EditPassword: TEdit
+LabelPassword: TLabel
+ListServer: TListView
+PopupServerList: TPopupMenu
+AddServer1: TMenuItem
+EditServer1: TMenuItem
+DeleteServer1: TMenuItem
+Connect1: TMenuItem
+EditIP: TEdit
+TabRunningApp: TTabSheet
+ListRunApp: TListView
+ButtonRefresh: TButton
+ButtonCloseApp: TButton
+CBHiddenApp: TCheckBox
+LabelBackApp: TLabel
+GBAppTool: TGroupBox
+EditAppHandle: TEdit
+StatusBarRunApp: TStatusBar
+PanelRunningApp: TPanel
+ButtonClearAppList: TButton
+TabKeyManager: TTabSheet
+MemoKey: TMemo
+TimerAutoRefresh: TTimer
+ServerKeylogger: TServerSocket
+ButtonHapusTeks: TButton
+ButtonFont: TButton
+FontDialog: TFontDialog
+ButtonSaveKeylog: TButton
+SaveDialog: TSaveDialog
+TabRealMon: TTabSheet
+ImageScrshoot: TImage
+ScrollBoxImage: TScrollBox
+ButtonScrshoot: TButton
+CBFullScreen: TCheckBox
+LabelQuality: TLabel
+EditScrFileName: TEdit
+GBRealtimeTool: TGroupBox
+LabelScrTime: TLabel;
+LabelScrFileName: TLabel;
+TimerAutoScr: TTimer
+StatusBarScrshoot: TStatusBar
+ButtonClearPicCounter: TButton
+OpenDataServer1: TMenuItem
+SaveDataServer1: TMenuItem
+Server1: TMenuItem
+Connect2: TMenuItem
+Add1: TMenuItem
+EditServer2: TMenuItem
+DeleteServer2: TMenuItem
+Option1: TMenuItem
+TabFileManager: TTabSheet
+PanelFMTool: TPanel
+ListFileFolder: TListView
+EditPath: TEdit
+ButtonUp: TButton
+PopupFM: TPopupMenu
+Refresh1: TMenuItem
+Upload1: TMenuItem
+Download1: TMenuItem
+Rename1: TMenuItem
+Delete1: TMenuItem
+StatusBarFM: TStatusBar
+ButtonRoot: TButton
+GoToRoot1: TMenuItem
+NewFolder1: TMenuItem
+OpenDialog: TOpenDialog
+TabMsgManager: TTabSheet
+ButtonOffKeylogger: TButton
+TrackBarQuality: TTrackBar
+TrackBarScrTime: TTrackBar
+EditScrTime: TEdit
+EditQuality: TEdit
+TrackBarRefreshTime: TTrackBar
+EditRefreshTime: TEdit
+CBControlMouse: TCheckBox
+CBControlKeyboard: TCheckBox
+MemoKeyboard: TMemo
+PanelKeyboard: TPanel
+ButtonKeyTab: TButton
+ButtonKeyWin: TButton
+PanelKeyLeft: TPanel
+CBKeyShift: TCheckBox
+CBKeyCtrl: TCheckBox
+CBKeyAlt: TCheckBox
+CBAutoRefresh: TCheckBox
+GBKeylogger: TGroupBox
+CBOnKeylogger: TCheckBox
+CBAutoScrshoot: TCheckBox
+PanelMonitoring: TPanel
+RGMsgType: TRadioGroup
+ButtonMsgSend: TButton
+ButtonMsgExp: TButton
+RGMsgButton: TRadioGroup
+LabelMsgText: TLabel
+EditMsgText: TEdit
+MatikanServer1: TMenuItem
+RefreshServer1: TMenuItem
+ServerBusy: boolean
-TFS: TFileStream
-DataServer: TstringList
-TempList: TstringList
-AppDir: string
-DataServerName: string
-FileSettingName: string
-ServerTask: string
-PicCounter: integer
-ConnectedServer: integer
-ScreenShooting: boolean
+procedure ButtonConnectClick(Sender: TObject)
+procedure ClientUtamaConnect(Sender: TObject; Socket: TCustomWinSocket)
+procedure ClientUtamaDisconnect(Sender: TObject;
Socket: TCustomWinSocket)
+procedure ClientUtamaRead(Sender: TObject; Socket: TCustomWinSocket)
+procedure AddServer1Click(Sender: TObject)
+procedure ListServerSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean)
+procedure DeleteServer1Click(Sender: TObject)
+procedure EditServer1Click(Sender: TObject)
+procedure PopupServerListPopup(Sender: TObject)
+procedure ButtonCloseAppClick(Sender: TObject)
+procedure ButtonRefreshClick(Sender: TObject)
+procedure ListRunAppSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean)
+procedure ButtonClearAppListClick(Sender: TObject)
+procedure ServerKeyloggerClientRead(Sender: TObject;
Socket: TCustomWinSocket)
+procedure ButtonHapusTeksClick(Sender: TObject)
+procedure ButtonFontClick(Sender: TObject)
+procedure ButtonSaveKeylogClick(Sender: TObject)
+procedure ButtonScrshootClick(Sender: TObject)
+procedure ButtonClearPicCounterClick(Sender: TObject)
+procedure EditPathKeyPress(Sender: TObject; var Key: Char)
+procedure ListFileFolderDblClick(Sender: TObject)
+procedure ButtonRootClick(Sender: TObject)
+procedure ButtonUpClick(Sender: TObject)
+procedure Refresh1Click(Sender: TObject)
+procedure Rename1Click(Sender: TObject)
+procedure Delete1Click(Sender: TObject)
+procedure PopupFMPopup(Sender: TObject)
+procedure NewFolder1Click(Sender: TObject)
+procedure Download1Click(Sender: TObject)
+procedure ClientUtamaError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer)
+procedure OpenDataServer1Click(Sender: TObject)
+procedure SaveDataServer1Click(Sender: TObject)
+procedure Option1Click(Sender: TObject)
+procedure Server1Click(Sender: TObject)
+procedure ButtonOffKeyloggerClick(Sender: TObject)
+procedure FormClose(Sender: TObject; var Action: TCloseAction)
+procedure FormShow(Sender: TObject)
+procedure ImageScrshootMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer)
+procedure ImageScrshootMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer)
+procedure ImageScrshootMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer)
+procedure TrackBarQualityChange(Sender: TObject)
+procedure TrackBarScrTimeChange(Sender: TObject)
+procedure TrackBarRefreshTimeChange(Sender: TObject)
+procedure MemoKeyboardKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState)
+procedure MemoKeyboardDblClick(Sender: TObject)
+procedure ButtonKeyTabClick(Sender: TObject)
+procedure ButtonKeyWinClick(Sender: TObject)
+procedure CBKeyShiftClick(Sender: TObject)
+procedure CBKeyCtrlClick(Sender: TObject)
+procedure CBKeyAltClick(Sender: TObject)
+procedure CBAutoRefreshClick(Sender: TObject)
+procedure CBOnKeyloggerClick(Sender: TObject)
+procedure CBAutoScrshootClick(Sender: TObject)
+procedure TabRunningAppExit(Sender: TObject)
+procedure TabRealMonExit(Sender: TObject)
+procedure ButtonMsgExpClick(Sender: TObject)
+procedure ButtonMsgSendClick(Sender: TObject)
+procedure Upload1Click(Sender: TObject)
+procedure MatikanServer1Click(Sender: TObject)
+procedure RefreshServer1Click(Sender: TObject)
+procedure AddServer(Data: string)
+procedure OrderServer(Order: string)
-procedure ScrFullScreen
-procedure SendFile
-procedure LoadDataServer(FileName: string)
-procedure SaveDataServer(FileName: string)
-function SplitString(var S: string; Delimiter: string): string
-function GetHideDrive: integer
TFormEditServer
+LabelServerName: TLabel
+EditServerName: TEdit
+LabelIP: TLabel
+ButtonOK: TButton
+EditIP: TEdit
+EditPort: TEdit
+LabelPort: TLabel
+ButtonCancel: TButton
+CBSaveClose: TCheckBox
+procedure FormShow(Sender: TObject)
+procedure ButtonOKClick(Sender: TObject)
+procedure ButtonCancelClick(Sender: TObject)
TFormInputFileName
+LabelFileName: TLabel
+EditFileName: TEdit
+ButtonOK: TButton
+ButtonCancel: Tbutton
+procedure ButtonOKClick(Sender: TObject)
+procedure ButtonCancelClick(Sender: TObject)
TFormScrshoot
+ScrollBox: TScrollBox
+ImageScrshoot: Timage
+procedure FormKeyPress(Sender: TObject; var Key: Char)
+procedure ImageScrshootMouseDown(Sender: TObject; Button:
TMouseButton;
Shift: TShiftState; X, Y: Integer)
+procedure ImageScrshootMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer)
+procedure ImageScrshootMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer)
-procedure CloseFullScreen
Statechart Diagram
Start
Aplikasi Dijalankan
End
Aplikasi
Ditutup
Disconnected
OnDisconnect()
Aplikasi
Ditutup
Menunggu Koneksi
Connecting
OnListen()
Disconnecting
Connected
Menunggu Request
OnConnect()
OnClientRead()
Mengirim
Request
Server
Siap Menerima
Request
Server
Sibuk
Selection
Request
Sending Request
Kerjakan Request
SendText()
SendText()
Server
Siap Menerima
Request
Mengirim
Data
Menerima Data
OnRead()
Activity Diagram
Start
Mengkonfigurasi
Pilih
Server
Manajemen
Daftar Server
Save Data
Server
Open Data
Server
Input
Password
Connect
[Password
Salah]
[Server
Terpakai]
Input
Password
Request
Proses
Request
Kirim Hasil
Proses Request
Tampilkan Hasil
Request
End
Start
Add Server
Edit Server
Delete Server
Input Nama
Server
Input Nama
Server
Hapus dari
Daftar Server
Input IP
Address
Input Nomor
Port
Input Nomor
Port
Simpan ke
Daftar Server
Simpan ke
Daftar Server
End
Start
Save Daftar
Server
Open Daftar
Server
Input Nama
File
Pilih File
(*.sdt)
Simpan Daftar
Server ke dalam
file (*.sdt)
End
Sequence Diagram
Gambar Sequence Diagram untuk Use Case Melakukan Koneksi dan Login.
Component Diagram
Kesepakatan
Kontrak kerja
Surat perintah
alokasi (SPA )
Mitra
DO ke gudang 1
Pemda
Laporan realisasi
DO dari gudang 1
Gudang 1
DO ke gudang 2
Divre
Laporan realisasi
DO dari gudang 2
Gudang 2
DO ke gudang n
Laporan realisasi
DO dari gudang n
Gudang n
2. Deskripsi Singkat
Use Case ini menghasilkan dasar permintaan guna terbitnya SPPB penyaluran
beras untuk keperluan Raskin
3. Basic Flow
Pemda menyampaikan Surat perintah alokasi (SPA) Raskin ke Divre
Spesifikasi use case
1. Nama Use Case
DO ke gudang 1
2. Deskripsi Singkat
Use case ini akan menghasilkan Delivery order (DO) apakah berupa surat
perintah terima barang (SPTB) atau surat perintah penyerahan barang (SPPB)
yang nantinya diterima oleh pihak gudang 1.
3. Basic Flow
Divre mengeluarkan DO berupa SPTB atau SPPB ke gudang 1.
Deployment Diagram
Deployment Diagram menggambarkan susunan fisik suatu sistem yang
tersusun oleh beberapa perangkat lunak dan perangkat keras. Adapun Deployment
diagram dari Warehouse Management System online pada Sub Divre Wilayah V
Bulukumba adalah sebagai berikut :
TCP/IP , http
TCP/IP,
http
TCP/IP,
http
Divre Server
LAN
Client
Client
- Web Browser
- Web Browser
TCP/IP, http
Server Aplikasi
WHMS
TCP/IP , http
TCP/IP
- Php
- HTML
Mysql DBMS
Server Gudang 1
LAN
TCP/IP , http
TCP/IP , http
TCP/IP,
http
TCP/IP , http
Server Gudang 2
Server Gudang n
LAN
LAN
Client
- Web Browser
TCP/IP, http
TCP/IP,
http
Client
TCP/IP,
http
- Web Browser
Client
TCP/IP, http
TCP/IP,
http
- Web Browser
TCP/IP,
http
Client
- Web Browser
Client
- Web Browser
TCP/IP,
http
Client
- Web Browser
Activity Diagram
1. Activity Diagram Pengadaan dan Giling Gabah
Mitra
Divre
Pengajuan
Kontrak kerja
Gudang
Persetujuan
kontrak
Kontrak
Pengadaan
Kontrak
Giling
SPPB/
SPTB
SPTB
Realisasi
SPTB
Laporan transaksi
Pemasukan/pengeluaran
Slip penariakan
uang di Bank
Penariakan uang
di Bank
Realisasi
SPPB/SPTB
Pemda
Divre
Penyampaiyan
SPA
Gudang
Penerbitan SPPB
berdasarkan SPA
SPPB
Realisasi
SPPB
Laporan transaksi
Pengeluaran beras raskin
BA penyaluran
raskin
Penandatanganan
BA Raskin
Sequence Diagram
Divre
PHP
DBMS
Pesan error
insert database
Divre
PHP
DBMS
Pesan error
Gudang
PHP
DBMS
Pesan error
Update stock