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