Think Different Materi APS: UML-Use Case Uml Use case
How to Do OOAD
How to Do OOAD
OO Technology
OO Prog. Languages
(Smalltalk, C++)
OO Design
Process Perspective
just program!
(Booch)
design then
program
OO Analysis
Analyze (use case) first,
then design,
T
then program
(Rumbaugh, Jacobson)
4
Review Basic Principles of Object
Orientation
Abstraksi
(Abstraction)
Pembungkusan
(Encapsulation)
Pewarisan
(Inheritance)
Banyak Bentuk
(Polymorphism)
Pengiriman
Pesan (Message
Sending)
5
6
7
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
DocumentList
FileMgr
Document
add( )
delete( )
fetchDoc( )
sortByName( )
name : int
docid : int
numField : int
get( )
open( )
close( )
read( )
sortFileList( )
create( )
fillDocument( )
FileList
Use Case 1
fLis t
add( )
delete( )
Actor A
Actor B
Opennin g
close file
1
close file
Reading
Closing
rep
Use Case 2
File
Reposit ory
(from Persistence)
read( )
Customer
name
addr
receive()
withdraw()
fetch()
send()
GrpFile
name : char * = 0
read( )
open( )
create( )
fillFile( )
readDoc( )
readFile( )
Domain
Expert
Writing
add file [ numberOffile==MAX ] /
flag OFF
read() fill the
code..
Use Case 3
UI
Class
MFC
Deployment
Diagram
DocumentApp
ºÐ»ê ȯ°æÀÇ ÇÏ µå¿þ¾î¹× ³×Æ®¿÷À¸·Î ÀÇ Á¤º¸ ½Ã½ºÅ Û ¿¬°á ¸ðµ¨
- À©µµ¿ì 95 : Ŭ¶óÀÌ ¾ðÆ®
- À©µµ¿ì NT: ÀÀ¿ë¼¹ö
- À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼ ¹ö ¹× µ¥ÀÌŸ ¼ ¹ö, Åë½Å ¼ ¹ö
- IB M ¸ÞÀ ÎÇÁ ·¹ÀÓ: µ¥ÀÌŸ ¼¹ö, Åë½ Å ¼ ¹ö
RogueWave
Repository
Persistence
9: sortByName ( )
DocumentList
Windows95
Window95
Windows95
global
FileManager
mainWnd : MainWnd
1: Doc view request ( )
L
gFile : GrpFile
4: create ( )
8: fillFile ( )
Package
Diagram
user : »ç¿ëÀÚ
Windows
NT
Solaris
¹® ¼°ü¸® ¿£Áø. EXE
Alpha
UNIX
ÀÀ ¿ë¼¹ö .EXE
Windows
NT
GraphicFile
fileMgr : FileMgr
3: create ( )
File
FileList
IB M
M ainf rame
6: fillDocument ( )
µ¥ÀÌ Å¸º£ÀÌ ½º¼ ¹ö
7: readFile ( )
5: readDoc ( )
document : Document
repository : Repository
Collaboration Diagram
mainWnd
user
ƯÁ¤¹®¼ ¿¡ ´ëÇ Ñ º¸±â¸¦
»ç¿ ëÀ Ú°¡ ¿äûÇÑ ´Ù .
¹®¼°ü¸® ¾ÖÇà ¸´
Document
2: fetchDoc( )
User Interface
Definition
¹®¼ °ü¸®
Ŭ¶óÀ̾ðÆ®.E XE
fileMgr :
FileMgr
document :
Document
gFile repository
Forward Engineering(Code Generation)
and
Component Reverse Engineering
Diagram
Source Code edit, compile, debug, link
1: D oc vi ew reque st ( )
2: fetchD oc( )
3: cr eate ( )
4: cr eate ( )
5: readDoc ( )
È ÀÏ°ü¸ ®ÀÚ´Â Àо î¿ Â
¹ ®¼ ÀÇ Á¤º ¸¸¦ ÇØ´ç ¹® ¼
°´Ã ¼¿ ¡ ¼³Á¤À» ¿äûÇÑ ´Ù .
6: fill Document ( )
7 : readFile ( )
8: fillF ile ( )
È ¸é °´Ã ¼´Â ÀÐ ¾îµéÀÎ
°´ üµé¿¡ ´ëÇØ À̸§º°·Î
Á¤·Ä À» ½ÃÄÑ È¸ é¿ ¡
º¸¿©ÁØ´Ù .
9: sortByNam e ( )
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
USE CASE DIAGRAM
B u k a R e k e n in g
S im p a n U a n g
N asabah
S im p a n u a n g
h a r u s d ia t a s R p .
2 0 0 .0 0 0 ,-
A m b il U a n g
T u tu p
R e k e n in g
T u tu p
R e k e n in g
S im p a n U a n g
N asabah
B u k a R e k e n in g
A m b il U a n g
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)
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)
Use-Case Diagram
SafeHome
Access camera
surveillance via the
Internet
cameras
Configure SafeHome
system parameters
homeowner
Set alarm
17
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 association antara actor dan use case
association antara actor dan use case yang
menggunakan panah terbuka untuk
mengindikasikan bila actor berinteraksi
secara pasif dengan system anda
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
R e k e n in g
B u ka
R e k e n in g
< < in c lu d e > >
c a ta t
d a t a p r ib a d i
Buka
R e k e n in g
< < in c lu d e > >
N asabah
c a ta t
d a t a p r ib a d i
N asabah
N asabah
< < in c lu d e > >
c a ta t
d a ta p r ib a d i
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
B uka
R e k e n in g
< < e x te n d > >
N a saba h
B uka
D e p o s it o
Buka
R e k e n in g
N asabah
< < e x te n d > >
Buka
D e p o s it o
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
Buka
condition)
R e k e n in g
N asabah
Buka
D e p o s it o
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…..
30
31
How to Do OOAD
OO Technology
OO Prog. Languages
(Smalltalk, C++)
OO Design
Process Perspective
just program!
(Booch)
design then
program
OO Analysis
Analyze (use case) first,
then design,
T
then program
(Rumbaugh, Jacobson)
4
Review Basic Principles of Object
Orientation
Abstraksi
(Abstraction)
Pembungkusan
(Encapsulation)
Pewarisan
(Inheritance)
Banyak Bentuk
(Polymorphism)
Pengiriman
Pesan (Message
Sending)
5
6
7
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
DocumentList
FileMgr
Document
add( )
delete( )
fetchDoc( )
sortByName( )
name : int
docid : int
numField : int
get( )
open( )
close( )
read( )
sortFileList( )
create( )
fillDocument( )
FileList
Use Case 1
fLis t
add( )
delete( )
Actor A
Actor B
Opennin g
close file
1
close file
Reading
Closing
rep
Use Case 2
File
Reposit ory
(from Persistence)
read( )
Customer
name
addr
receive()
withdraw()
fetch()
send()
GrpFile
name : char * = 0
read( )
open( )
create( )
fillFile( )
readDoc( )
readFile( )
Domain
Expert
Writing
add file [ numberOffile==MAX ] /
flag OFF
read() fill the
code..
Use Case 3
UI
Class
MFC
Deployment
Diagram
DocumentApp
ºÐ»ê ȯ°æÀÇ ÇÏ µå¿þ¾î¹× ³×Æ®¿÷À¸·Î ÀÇ Á¤º¸ ½Ã½ºÅ Û ¿¬°á ¸ðµ¨
- À©µµ¿ì 95 : Ŭ¶óÀÌ ¾ðÆ®
- À©µµ¿ì NT: ÀÀ¿ë¼¹ö
- À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼ ¹ö ¹× µ¥ÀÌŸ ¼ ¹ö, Åë½Å ¼ ¹ö
- IB M ¸ÞÀ ÎÇÁ ·¹ÀÓ: µ¥ÀÌŸ ¼¹ö, Åë½ Å ¼ ¹ö
RogueWave
Repository
Persistence
9: sortByName ( )
DocumentList
Windows95
Window95
Windows95
global
FileManager
mainWnd : MainWnd
1: Doc view request ( )
L
gFile : GrpFile
4: create ( )
8: fillFile ( )
Package
Diagram
user : »ç¿ëÀÚ
Windows
NT
Solaris
¹® ¼°ü¸® ¿£Áø. EXE
Alpha
UNIX
ÀÀ ¿ë¼¹ö .EXE
Windows
NT
GraphicFile
fileMgr : FileMgr
3: create ( )
File
FileList
IB M
M ainf rame
6: fillDocument ( )
µ¥ÀÌ Å¸º£ÀÌ ½º¼ ¹ö
7: readFile ( )
5: readDoc ( )
document : Document
repository : Repository
Collaboration Diagram
mainWnd
user
ƯÁ¤¹®¼ ¿¡ ´ëÇ Ñ º¸±â¸¦
»ç¿ ëÀ Ú°¡ ¿äûÇÑ ´Ù .
¹®¼°ü¸® ¾ÖÇà ¸´
Document
2: fetchDoc( )
User Interface
Definition
¹®¼ °ü¸®
Ŭ¶óÀ̾ðÆ®.E XE
fileMgr :
FileMgr
document :
Document
gFile repository
Forward Engineering(Code Generation)
and
Component Reverse Engineering
Diagram
Source Code edit, compile, debug, link
1: D oc vi ew reque st ( )
2: fetchD oc( )
3: cr eate ( )
4: cr eate ( )
5: readDoc ( )
È ÀÏ°ü¸ ®ÀÚ´Â Àо î¿ Â
¹ ®¼ ÀÇ Á¤º ¸¸¦ ÇØ´ç ¹® ¼
°´Ã ¼¿ ¡ ¼³Á¤À» ¿äûÇÑ ´Ù .
6: fill Document ( )
7 : readFile ( )
8: fillF ile ( )
È ¸é °´Ã ¼´Â ÀÐ ¾îµéÀÎ
°´ üµé¿¡ ´ëÇØ À̸§º°·Î
Á¤·Ä À» ½ÃÄÑ È¸ é¿ ¡
º¸¿©ÁØ´Ù .
9: sortByNam e ( )
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
USE CASE DIAGRAM
B u k a R e k e n in g
S im p a n U a n g
N asabah
S im p a n u a n g
h a r u s d ia t a s R p .
2 0 0 .0 0 0 ,-
A m b il U a n g
T u tu p
R e k e n in g
T u tu p
R e k e n in g
S im p a n U a n g
N asabah
B u k a R e k e n in g
A m b il U a n g
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)
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)
Use-Case Diagram
SafeHome
Access camera
surveillance via the
Internet
cameras
Configure SafeHome
system parameters
homeowner
Set alarm
17
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 association antara actor dan use case
association antara actor dan use case yang
menggunakan panah terbuka untuk
mengindikasikan bila actor berinteraksi
secara pasif dengan system anda
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
R e k e n in g
B u ka
R e k e n in g
< < in c lu d e > >
c a ta t
d a t a p r ib a d i
Buka
R e k e n in g
< < in c lu d e > >
N asabah
c a ta t
d a t a p r ib a d i
N asabah
N asabah
< < in c lu d e > >
c a ta t
d a ta p r ib a d i
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
B uka
R e k e n in g
< < e x te n d > >
N a saba h
B uka
D e p o s it o
Buka
R e k e n in g
N asabah
< < e x te n d > >
Buka
D e p o s it o
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
Buka
condition)
R e k e n in g
N asabah
Buka
D e p o s it o
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…..
30
31