TEKNIK
–
TEKNIK ANALISA DESAIN
MENGGUNAKAN UML
3
How to Do OOAD
OO Prog. Languages
(Smalltalk, C++) just program!
OO Design
(Booch) design then
program
OO Analysis
(Rumbaugh, Jacobson)
Process Perspective OO Technology
Analyze (use case) first, then design,
4
Review Basic Principles of Object Orientation
Abstraksi
(Abstraction)
Pembungkusan
(Encapsulation)
Pewarisan
(Inheritance)
Banyak Bentuk
(Polymorphism)
5
6
Animal
Dog Martini
Cigar Lounge
Chair
Led Zepplin
«SitsInA» «DrinksA»
«GroovesTo» «SmokesA»
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
…
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
ARTIFACT UML
(BAGAN YANG TERDAPAT PADA UML)
Actor A
Use Case 1
Use Case 2
Actor B
user : »ç¿ëÀÚ mainWnd : MainWnd
fileMgr : FileMgr
repository : Repository document : Document gFile : GrpFile
9: sortByName ( )
L
1: Doc view request ( ) 2: fetchDoc( )
5: readDoc ( ) 7: readFile ( )
3: create ( ) 6: fillDocument ( ) 4: create ( ) 8: fillFile ( )
UI
MFC
RogueWave global DocumentApp
Persistence Window95
¹®¼-°ü¸® Ŭ¶óÀ̾ðÆ®.EXE Windows NT ¹®¼-°ü¸® ¿£Áø.EXE WindowsNT Windows95 Solaris ÀÀ¿ë¼-¹ö.EXE Alpha UNIX IBM Mainframe µ¥ÀÌŸº£À̽º¼-¹ö Windows95 ¹®¼-°ü¸® ¾ÖÇø´ ºÐ»ê ȯ °æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨ - À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ® - À©µµ¿ì NT: ÀÀ¿ë¼-¹ö - À¯ ´Ð½º ¸Ó½Å: ÀÀ¿ë ¼-¹ö ¹× µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö - IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö
Document FileManager GraphicFile File Repository DocumentList FileList user mainWndfileMgr :
FileMgr document : DocumentgFilerepository
1: Doc view request ( ) 2: fetchDoc( )
3: create ( ) 4: create ( )
5: readDoc ( ) 6: fillDocument ( )
7: readFile ( ) 8: fillFile ( ) 9: sortByName ( ) Ư Á¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù. È-ÀÏ°ü¸®ÀÚ´Â Àоî¿Â ¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼- °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù. È-¸é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È-¸é¿¡ º¸¿©ÁØ´Ù. Customer name addr withdraw() fetch() send() receive() <<entity>>
Forward Engineering(Code Generation) and Reverse Engineering Executable System User Interface Definition Domain Expert Openning Writing Reading Closing add file [ numberOffile==MAX ] /
flag OFF add file
close file close file
Use Case 3
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
Catatan Relasi Aktif
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
Beli Barang
Konsumen Bayar Kasir
USE CASE DIAGRAM
Buka Rekening
Simpan Uang
Ambil Uang
Tutup Rekening Nasabah
Simpan uang harus diatas Rp.
200.000,-Buka Rekening Simpan Uang
Ambil Uang Tutup Rekening
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 <<system>> untuk sebuah actor yang merupakan sebuah system
Adanya actor bernama Time yang mengindikasikan scheduled events
(suatu kejadian yang terjadi secara periodik/bulanan)
Konsumen
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)
Nasabah
Buka Rekening
Nabung
Ambil
Tutup Rekening
Teller
Buka Rekening
Nabung
16
Use-Case Diagram
homeowner
Access camera surveillance via the
Internet
Configure SafeHome system parameters
Set alarm
cameras
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
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
Beli Barang
Konsumen Bayar Kasir
Beli Barang
Association - Use Case Diagram
<<include>>
termasuk didalam use case lain (required) / (diharuskan)
Pemanggilan use case oleh use case lain
contohnya adalah Pemanggilan sebuah fungsi program
Gambarkan association <<include>> secara horizontal
Tanda panah terbuka harus terarah ke sub use case
Tidak boleh actor dihubungkan pada use case <<include>>
Buka Rekening <<include>> catat data pribadi Nasabah Buka
Rekening <<include>> data pribadicatat
<<extend>>
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 <<extend>>
Association antara use case (Lanjut)
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
Generalization/inheritance antara actor
Gambarkan generalization/inheritance antara actors
secara vertical dengan inheriting actor dibawah
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
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:
UCD Case Study (3/3)
29