Think Different Materi PBO: Use Case dan Class Diagram Uml Use case
TEKNIK – TEKNIK ANALISA DESAIN
MENGGUNAKAN UML
PADA PERANCANGAN PROGRAM
BERBASISKAN OBJECT
How to Do OOAD
How to Do OOAD
OO Technology
OO Prog. Languages
(Smalltalk, C++)
OO Design
(Booch)
OO Analysis
(Rumbaugh, Jacobson)
Process Perspective
just program!
design then
program
Analyze (use case) first,
then design,
T
then program
3
Review Basic Principles of Object Orientation
Abstraksi
(Abstraction)
Pembungkusan
(Encapsulation)
Pewarisan
(Inheritance)
Banyak Bentuk
(Polymorphism)
Pengiriman Pesan
(Message Sending)
4
Hmmm…
5
Animal
Lounge
Chair
Led
Zepplin
«SitsInA»
«DrinksA»
Dog
«GroovesTo»
{WayLoud}
Martini
«SmokesA»
Cigar
6
UML
Unified Modelling Language
Memvisualisasikan dan mendokumentasikan
hasil analisa dan desain.
Unified karena …
Mengkombinasikan metode OO yg sudah ada sebelumnya (Booch
by Grady Booch, OMT by Jim Rumbaugh and OOSE by Ivar
Jacobson)
Modelling karena…
Digunakan terutama untuk memodelkan sistem secara visual
Language karena …
Berisi sintak yang digunakan untuk memodelkan pengetahuan
What UML can do for you
Help you to:
Memudahkan berpikir dan mendokumentasikan sistem
sebelum mengimplemntasikannya
meramalkan sistem
Menurunkan biaya pembangunan
Merencanakan dan menganalisa logika sistem(perilaku)
Membuat keputusan yang benar sedini mungkin
(sebelum melangkah ke coding)
Men-deploy sistem lebih baik, karena ada perencanaan
penggunaan memori dan prosesor yang efisien.
Lebih mudah memodifikasi/mengelola sistem yang
terdokumentasi dengan baik.
Biaya perawatan yang rendah
Membuat suatu bentuk komunikasi yang standar
ARTIFACT UML
(BAGAN YANG TERDAPAT PADA UML)
Class
Diagram
Use-Case
Diagram
State Diagram
add file
Writing
add file [ numberOffile==MAX ] /
flag OFF
Openning
Use Case 1
Actor A
close file
Actor B
close file
Reading
Use Case 2
Domain
Expert
Closing
Customer
name
addr
receive()
withdraw()
fetch()
send()
Use Case 3
Deployment
Diagram
UI
Class
MFC
DocumentApp
ºÐ»ê ȯ °æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨
- À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ®
- À©µµ¿ì NT: ÀÀ¿ë¼-¹ö
- À¯ ´Ð½º ¸Ó½Å: ÀÀ¿ë ¼-¹ö ¹× µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö
- IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö
RogueWave
Repository
Persistence
9: sortByName ( )
DocumentList
Windows95
W indow95
Windows95
global
FileManager
mainWnd : MainWnd
1: Doc view request ( )
¹®¼-°ü¸® ¾ÖÇø´
W indows
NT
L
2: fetchDoc( )
gFile : GrpFile
4: create ( )
8: fillFile ( )
user : »ç¿ëÀÚ
User Interface
Definition
¹®¼-°ü¸®
Ŭ¶óÀ̾ðÆ®.EXE
Package
Diagram
Document
Solaris
¹®¼-°ü¸® ¿£Áø.EXE
Alpha
UNIX
ÀÀ¿ë¼-¹ö.EXE
Windows
NT
GraphicFile
fileMgr : FileMgr
3: create ( )
File
FileList
IBM
Mainframe
6: fillDocument ( )
µ¥ÀÌŸº£À̽º¼-¹ö
7: readFile ( )
5: readDoc ( )
document : Document
repository : Repository
Collaboration Diagram
mainWnd
user
Ư Á¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦
»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.
fileMgr :
FileMgr
document :
Document
gFile
repository
1: Doc view request ( )
Forward Engineering(Code Generation)
and
ComponentReverse Engineering
Diagram
Source Code edit, compile, debug, link
2: fetchDoc( )
3: create ( )
4: create ( )
5: readDoc ( )
È-ÀÏ°ü¸®ÀÚ´Â Àоî¿Â
¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
È-¸é °´Ã¼´Â ÀоîµéÀÎ
°´Ã¼µé¿¡ ´ëÇØ À̸§º°· Î
Á¤· ÄÀ» ½ÃÄÑ È-¸é¿¡
º¸¿©ÁØ´Ù.
9: sortByName ( )
Sequence Diagram
Executable System
Use-Cases
Use case menggambarkan proses system (kebutuhan
system dari sudut pandang user)
actors mewakili peran orang atau piranti yang dimainkan
ketika sistem berfungsi
Secara umum use case adalah:
Pola perilaku system
Urutan transaksi yang berhubungan yang dilakukan
oleh satu actor
Use case diagram terdiri dari
Use case
Actors
Relationship
System boundary boxes (optional)
Packages (optional)
LAMBANG USE CASE
Aktor
Usecase
Relasi Aktif
Catatan
Relasi Pasif
Generalisasi
Include
extend
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.
Use case diagram tidak terpengaruh urutan waktu, meskipun demikian
supaya mudah dibaca perlu penyusunan use case
Jual
Barang
Beli Barang
Konsumen
Bayar
Kasir
Kasir
Terima
Bayaran
Beli Barang
Konsumen
Kasir
Bayar
Konsumen
USE CASE DIAGRAM
Buka Rekening
Simpan Uang
Nasabah
Simpan uang
harus diatas Rp.
200.000,-
Ambil Uang
Tutup
Rekening
Tutup
Rekening
Simpan Uang
Nasabah
Buka Rekening
Ambil Uang
ACTOR
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 untuk sebuah actor yang merupakan sebuah system
Adanya actor bernama Time yang mengindikasikan scheduled events
(suatu kejadian yang terjadi secara periodik/bulanan)
Kasir
Konsumen
Time
ACTOR-USE CASE DIAGRAM
Letakkan actor utama anda pada pojok kiri atas dari diagram (in western
culture people read from left to right, top to bottom)
Actor jangan digambarkan ditengah-tengah use cases (actors are placed to
the outside of the diagram, and not the middle of it)
Buka
Rekening
Buka
Rekening
Nabung
Nasabah
Ambil
Teller
Nasabah
Tutup
Rekening
Nabung
Use-Case Diagram
Saf eHome
Access camera
surveillance via t he
Int ernet
cameras
Conf igure Saf eHome
syst em paramet ers
homeowner
Set alarm
16
Association
Associations bukan menggambarkan aliran data/informasi
Associations digunakan untuk menggambarkan bagaimana
actor terlibat dalam use case
Ada 4 jenis relasi yang bisa timbul pada use case diagram
1.
Association antara actor dan use case
2.
Association antara use case
3.
Generalization/Inheritance antara use case
4.
Generalization/Inheritance antara actors
Association antara actor dan use case
Ujung panah pada association antara actor dan use
case mengindikasikan siapa/apa yang meminta
interaksi dan bukannya mengindikasikan aliran
data
Sebaiknya gunakan Garis tanpa panah untuk
Beli Barang
association antara actor dan use case
Konsumen
association antara actor dan use case yang
Kasir
Bayar
menggunakan panah terbuka untuk
mengindikasikan bila actor berinteraksi secara
pasif dengan system anda
Beli Barang
Konsumen
Bayar
Kasir
Association - Use Case Diagram
termasuk didalam use case lain (required) / (diharuskan)
Pemanggilan use case oleh use case lain
contohnya adalah Pemanggilan sebuah fungsi program
Gambarkan association secara horizontal
Tanda panah terbuka harus terarah ke sub use case
Tidak boleh actor dihubungkan pada use case
Buka
Rekening
Buka
Rekening
catat
data pribadi
Buka
Rekening
Nasabah
catat
data pribadi
Buka
Rekening
Nasabah
Nasabah
catat
data
pribadi
Buka
Rekening
Nasabah
Nasabah
catat
data
pribadi
catat
data pribadi
Association antara use case (Lanjut)
perluasan dari use case lain jika kondisi atau syarat terpenuhi
Kurangi penggunaan association Extend ini, terlalu banyak
pemakaian association ini membuat diagram sulit dipahami.
Tanda panah terbuka harus terarah ke parent/base use case
Gambarkan association extend secara vertical
Tidak boleh actor dihubungkan pada use case
Buka
Rekening
Buka
Rekening
Nasabah
Nasabah
Buka
Deposito
Buka
Rekening
Buka
Rekening
Buka
Deposito
Nasabah
Nasabah
Buka
Deposito
Buka
Deposito
Generalization/inheritance antara use case
Generalization/inheritance digambarkan dengan sebuah garis
berpanah tertutup pada salah satu ujungnya yang menunjukkan lebih
umum
Gambarkan generalization/inheritance antara use case secara vertical
dengan inheriting use case dibawah base/parent use case
Generalization/inheritance dipakai ketika ada sebuah keadaan yang
lain sendiri/perlakuan khusus (single condition)
Buka
Rekening
Nasabah
Buka
Deposito
Generalization/inheritance antara actor
Gambarkan generalization/inheritance antara actors
secara vertical dengan inheriting actor dibawah
base/parent use case
Use case System boundary boxes
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
UCD Case Study (1/3)
Vending Machine
After client interview the following system
scenarios were identified:
A customer buys a product
The supplier restocks the machine
The supplier collects money from the machine
On the basis of these scenarios, the following
three actors can be identified:
Customer; Supplier; Collector
UCD Case Study (2/3)
UCD Case Study (3/3)
Introducing annotations (notes) and constraints.
CONTOH
Now ask me what I think about tools…..
29
30
MENGGUNAKAN UML
PADA PERANCANGAN PROGRAM
BERBASISKAN OBJECT
How to Do OOAD
How to Do OOAD
OO Technology
OO Prog. Languages
(Smalltalk, C++)
OO Design
(Booch)
OO Analysis
(Rumbaugh, Jacobson)
Process Perspective
just program!
design then
program
Analyze (use case) first,
then design,
T
then program
3
Review Basic Principles of Object Orientation
Abstraksi
(Abstraction)
Pembungkusan
(Encapsulation)
Pewarisan
(Inheritance)
Banyak Bentuk
(Polymorphism)
Pengiriman Pesan
(Message Sending)
4
Hmmm…
5
Animal
Lounge
Chair
Led
Zepplin
«SitsInA»
«DrinksA»
Dog
«GroovesTo»
{WayLoud}
Martini
«SmokesA»
Cigar
6
UML
Unified Modelling Language
Memvisualisasikan dan mendokumentasikan
hasil analisa dan desain.
Unified karena …
Mengkombinasikan metode OO yg sudah ada sebelumnya (Booch
by Grady Booch, OMT by Jim Rumbaugh and OOSE by Ivar
Jacobson)
Modelling karena…
Digunakan terutama untuk memodelkan sistem secara visual
Language karena …
Berisi sintak yang digunakan untuk memodelkan pengetahuan
What UML can do for you
Help you to:
Memudahkan berpikir dan mendokumentasikan sistem
sebelum mengimplemntasikannya
meramalkan sistem
Menurunkan biaya pembangunan
Merencanakan dan menganalisa logika sistem(perilaku)
Membuat keputusan yang benar sedini mungkin
(sebelum melangkah ke coding)
Men-deploy sistem lebih baik, karena ada perencanaan
penggunaan memori dan prosesor yang efisien.
Lebih mudah memodifikasi/mengelola sistem yang
terdokumentasi dengan baik.
Biaya perawatan yang rendah
Membuat suatu bentuk komunikasi yang standar
ARTIFACT UML
(BAGAN YANG TERDAPAT PADA UML)
Class
Diagram
Use-Case
Diagram
State Diagram
add file
Writing
add file [ numberOffile==MAX ] /
flag OFF
Openning
Use Case 1
Actor A
close file
Actor B
close file
Reading
Use Case 2
Domain
Expert
Closing
Customer
name
addr
receive()
withdraw()
fetch()
send()
Use Case 3
Deployment
Diagram
UI
Class
MFC
DocumentApp
ºÐ»ê ȯ °æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨
- À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ®
- À©µµ¿ì NT: ÀÀ¿ë¼-¹ö
- À¯ ´Ð½º ¸Ó½Å: ÀÀ¿ë ¼-¹ö ¹× µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö
- IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö
RogueWave
Repository
Persistence
9: sortByName ( )
DocumentList
Windows95
W indow95
Windows95
global
FileManager
mainWnd : MainWnd
1: Doc view request ( )
¹®¼-°ü¸® ¾ÖÇø´
W indows
NT
L
2: fetchDoc( )
gFile : GrpFile
4: create ( )
8: fillFile ( )
user : »ç¿ëÀÚ
User Interface
Definition
¹®¼-°ü¸®
Ŭ¶óÀ̾ðÆ®.EXE
Package
Diagram
Document
Solaris
¹®¼-°ü¸® ¿£Áø.EXE
Alpha
UNIX
ÀÀ¿ë¼-¹ö.EXE
Windows
NT
GraphicFile
fileMgr : FileMgr
3: create ( )
File
FileList
IBM
Mainframe
6: fillDocument ( )
µ¥ÀÌŸº£À̽º¼-¹ö
7: readFile ( )
5: readDoc ( )
document : Document
repository : Repository
Collaboration Diagram
mainWnd
user
Ư Á¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦
»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.
fileMgr :
FileMgr
document :
Document
gFile
repository
1: Doc view request ( )
Forward Engineering(Code Generation)
and
ComponentReverse Engineering
Diagram
Source Code edit, compile, debug, link
2: fetchDoc( )
3: create ( )
4: create ( )
5: readDoc ( )
È-ÀÏ°ü¸®ÀÚ´Â Àоî¿Â
¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
È-¸é °´Ã¼´Â ÀоîµéÀÎ
°´Ã¼µé¿¡ ´ëÇØ À̸§º°· Î
Á¤· ÄÀ» ½ÃÄÑ È-¸é¿¡
º¸¿©ÁØ´Ù.
9: sortByName ( )
Sequence Diagram
Executable System
Use-Cases
Use case menggambarkan proses system (kebutuhan
system dari sudut pandang user)
actors mewakili peran orang atau piranti yang dimainkan
ketika sistem berfungsi
Secara umum use case adalah:
Pola perilaku system
Urutan transaksi yang berhubungan yang dilakukan
oleh satu actor
Use case diagram terdiri dari
Use case
Actors
Relationship
System boundary boxes (optional)
Packages (optional)
LAMBANG USE CASE
Aktor
Usecase
Relasi Aktif
Catatan
Relasi Pasif
Generalisasi
Include
extend
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.
Use case diagram tidak terpengaruh urutan waktu, meskipun demikian
supaya mudah dibaca perlu penyusunan use case
Jual
Barang
Beli Barang
Konsumen
Bayar
Kasir
Kasir
Terima
Bayaran
Beli Barang
Konsumen
Kasir
Bayar
Konsumen
USE CASE DIAGRAM
Buka Rekening
Simpan Uang
Nasabah
Simpan uang
harus diatas Rp.
200.000,-
Ambil Uang
Tutup
Rekening
Tutup
Rekening
Simpan Uang
Nasabah
Buka Rekening
Ambil Uang
ACTOR
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 untuk sebuah actor yang merupakan sebuah system
Adanya actor bernama Time yang mengindikasikan scheduled events
(suatu kejadian yang terjadi secara periodik/bulanan)
Kasir
Konsumen
Time
ACTOR-USE CASE DIAGRAM
Letakkan actor utama anda pada pojok kiri atas dari diagram (in western
culture people read from left to right, top to bottom)
Actor jangan digambarkan ditengah-tengah use cases (actors are placed to
the outside of the diagram, and not the middle of it)
Buka
Rekening
Buka
Rekening
Nabung
Nasabah
Ambil
Teller
Nasabah
Tutup
Rekening
Nabung
Use-Case Diagram
Saf eHome
Access camera
surveillance via t he
Int ernet
cameras
Conf igure Saf eHome
syst em paramet ers
homeowner
Set alarm
16
Association
Associations bukan menggambarkan aliran data/informasi
Associations digunakan untuk menggambarkan bagaimana
actor terlibat dalam use case
Ada 4 jenis relasi yang bisa timbul pada use case diagram
1.
Association antara actor dan use case
2.
Association antara use case
3.
Generalization/Inheritance antara use case
4.
Generalization/Inheritance antara actors
Association antara actor dan use case
Ujung panah pada association antara actor dan use
case mengindikasikan siapa/apa yang meminta
interaksi dan bukannya mengindikasikan aliran
data
Sebaiknya gunakan Garis tanpa panah untuk
Beli Barang
association antara actor dan use case
Konsumen
association antara actor dan use case yang
Kasir
Bayar
menggunakan panah terbuka untuk
mengindikasikan bila actor berinteraksi secara
pasif dengan system anda
Beli Barang
Konsumen
Bayar
Kasir
Association - Use Case Diagram
termasuk didalam use case lain (required) / (diharuskan)
Pemanggilan use case oleh use case lain
contohnya adalah Pemanggilan sebuah fungsi program
Gambarkan association secara horizontal
Tanda panah terbuka harus terarah ke sub use case
Tidak boleh actor dihubungkan pada use case
Buka
Rekening
Buka
Rekening
catat
data pribadi
Buka
Rekening
Nasabah
catat
data pribadi
Buka
Rekening
Nasabah
Nasabah
catat
data
pribadi
Buka
Rekening
Nasabah
Nasabah
catat
data
pribadi
catat
data pribadi
Association antara use case (Lanjut)
perluasan dari use case lain jika kondisi atau syarat terpenuhi
Kurangi penggunaan association Extend ini, terlalu banyak
pemakaian association ini membuat diagram sulit dipahami.
Tanda panah terbuka harus terarah ke parent/base use case
Gambarkan association extend secara vertical
Tidak boleh actor dihubungkan pada use case
Buka
Rekening
Buka
Rekening
Nasabah
Nasabah
Buka
Deposito
Buka
Rekening
Buka
Rekening
Buka
Deposito
Nasabah
Nasabah
Buka
Deposito
Buka
Deposito
Generalization/inheritance antara use case
Generalization/inheritance digambarkan dengan sebuah garis
berpanah tertutup pada salah satu ujungnya yang menunjukkan lebih
umum
Gambarkan generalization/inheritance antara use case secara vertical
dengan inheriting use case dibawah base/parent use case
Generalization/inheritance dipakai ketika ada sebuah keadaan yang
lain sendiri/perlakuan khusus (single condition)
Buka
Rekening
Nasabah
Buka
Deposito
Generalization/inheritance antara actor
Gambarkan generalization/inheritance antara actors
secara vertical dengan inheriting actor dibawah
base/parent use case
Use case System boundary boxes
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
UCD Case Study (1/3)
Vending Machine
After client interview the following system
scenarios were identified:
A customer buys a product
The supplier restocks the machine
The supplier collects money from the machine
On the basis of these scenarios, the following
three actors can be identified:
Customer; Supplier; Collector
UCD Case Study (2/3)
UCD Case Study (3/3)
Introducing annotations (notes) and constraints.
CONTOH
Now ask me what I think about tools…..
29
30