TEKNIK – TEKNIK ANALISA DESAIN
MENGGUNAKAN UML
PADA PERANCANGAN PROGRAM
BERBASISKAN OBJECT
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)
Pengiriman Pesan
(Message Sending)
5
6 Animal Dog Martini Cigar Lounge Chair Led Zepplin «SitsInA» «DrinksA» «GroovesTo» «SmokesA» {WayLoud}
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 W indow95 ¹®¼-°ü¸® Ŭ ¶óÀ̾ðÆ®.EXE W indows NT ¹®¼-°ü¸® ¿£Áø.EXE Windows NT Windows95 Solaris ÀÀ¿ë¼-¹ö.EXE Alpha UNIX IBM Mainframe µ¥ÀÌŸº£À̽º¼-¹ö Windows95 ¹®¼-°ü¸® ¾ÖÇø´ ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³× Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬ °á ¸ðµ¨ - À©µµ¿ì 95 : Ŭ ¶óÀÌ¾ðÆ® - À©µµ¿ì NT: ÀÀ¿ë¼-¹ö - À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼-¹ö ¹× µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö - IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö Document FileManager GraphicFile File Repository DocumentList FileList user mainWndfileMgr : FileMgr repository document : Document gFile
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
Source Code edit, compile, debug, link
Use-Case Diagram Class Diagram Collaboration Diagram Sequence Diagram Component Diagram State Diagram Package Diagram Deployment Diagram Class
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
<<include>> Include <<extend>> extend
Relasi Pasif Generalisasi
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
Beli Barang Konsumen Bayar Kasir Jual Barang Konsumen Terima Bayaran 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 NasabahACTOR
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
Kasir <<System Keuangan>>
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 Nasabah
16
Use-Case Diagram
homeowner Access camera surveillance via t he Int ernetConf igure Saf eHome syst em paramet ers
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
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
Beli Barang
Konsumen Bayar Kasir
Beli Barang
Konsumen
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>> catat data pribadi Nasabah Buka Rekening <<include>> catat data pribadi Nasabah Buka Rekening <<include>> catat data pribadi Nasabah Buka Rekening <<include>> catat data pribadi Nasabah
<<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)
Buka Rekening Nasabah <<extend>> Buka Deposito Buka Rekening <<extend>> Buka Deposito Nasabah Nasabah Buka Rekening <<extend>> Buka Rekening <<extend>> Buka Deposito Nasabah 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
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