4
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
5
Review Basic Principles of Object
Orientation
Abstraksi
(Abstraction)
Pembungkusan
(Encapsulation)
Pewarisan
(Inheritance)
Banyak Bentuk
(Polymorphism)
Pengiriman
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
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 ( )
GrpFile read( ) open( ) create( ) fillFile( ) rep Repository name : char * = 0 readDoc( ) readFile( ) (from Persistence) FileMgr fetchDoc( ) sortByName( ) DocumentList add( ) delete( ) Document name : int docid : int numField : int get( ) open( ) close( ) read( ) sortFileList( ) create( ) fillDocument( ) fList 1 FileList add( ) delete( ) 1
File read( )
read() fill the code.. UI MFC RogueWave global DocumentApp
Persistence Window95
¹®¼ °ü¸® Ŭ¶óÀ̾ðÆ®.EXE
Windows NT ¹® ¼ °ü¸® ¿£Áø.EXE Windows
NT Windows95
Solaris ÀÀ¿ë¼ ¹ö .EXE
Alpha UNIX IBM M ainframe µ¥ÀÌŸº£À̽º¼ ¹ö Windows95 ¹®¼ °ü¸® ¾ÖÇø´ ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨ - À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ® - À©µµ¿ì NT: ÀÀ¿ë¼ ¹ö - À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼ ¹ö ¹× µ¥ÀÌŸ ¼ ¹ö, Åë½Å ¼ ¹ö - IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼ ¹ö, Åë½ Å ¼ ¹ö
Document FileManager GraphicFile File Repository DocumentList FileList user mainWndfileMgr :
FileMgr document : DocumentgFilerepository
1: D oc vi ew reque st ( ) 2: fetchD oc( )
3: cr eate ( ) 4: cr eate ( )
5: readDoc ( ) 6: fill Document ( )
7 : readFile ( ) 8: fillFile ( ) 9: sortByNam e ( ) ƯÁ¤¹®¼ ¿¡ ´ëÇ Ñ º¸±â¸¦ »ç¿ëÀ Ú°¡ ¿äûÇÑ ´Ù . È ÀÏ°ü¸ ®ÀÚ´Â Àо î¿Â ¹ ®¼ ÀÇ Á¤º¸¸¦ ÇØ´ç ¹® ¼ °´Ã ¼¿ ¡ ¼³Á¤À» ¿äûÇÑ ´Ù . È ¸é °´Ã ¼´Â ÀÐ ¾îµéÀÎ °´ üµé¿¡ ´ëÇØ À̸§º°·Î Á¤·Ä À» ½ÃÄÑ È ¸ é¿¡ º¸¿©ÁØ´Ù . 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 menggambarkan proses system
(kebutuhan system dari sudut pandang user)
actors
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
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,
USE
CASE
DIAGRAM
B u k a R e k e n in g
S im p a n U a n g
A m b il U a n g T u t u p R e k e n in g N a s a b a h
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 ,
-B u k a R e k e n i n g S i m p a n U a n g
A m b i l U a n g T u t u p R e k e n i 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 <<system>> untuk sebuah actor yang merupakan
sebuah system
Adanya actor bernama “Time” yang mengindikasikan
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
17
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
3.
Generalization/Inheritance 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
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>>
B u k a R e k e n i n g
< < i n c l u d e > > c a t a t
d a t a p r i b a d i N a s a b a h
B u k a R e k e n in g
< < in c l u d e > > c a t a t d a t a p r ib a d i N a s a b a h
B u k a R e k e n i n g
<<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)
B u k a R e k e n i n g
N a s a b a h
< < e x t e n d > > B u k a D e p o s i t o
B u k a R e k e n i n g
< < e x t e n d > > B u k a
D e p o s i t o N a s a b a h
<<extend>>
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) B u k a
R e k e n i n g
Generalization/inheritance
antara actor
Gambarkan generalization/inheritance antara actors secara
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)
30