Analisa dan Perancangan Sistem
Statechart dan
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( ) f illDocument( ) fList 1 FileList add( ) delete( ) 1
File read( )
read() fill the code.. UI MFC RogueWave global DocumentApp
Persistence Window95 ¹®¼ °ü¸® Ŭ ¶óÀ̾ðÆ®.EXE
WindowsNT ¹® ¼ °ü¸® ¿£Áø.EXE WindowsNT Windows 95 Solaris ÀÀ¿ë¼ ¹ö.EXE Alpha UNIX IBM Mainframe µ¥ÀÌŸº£À̽º¼ ¹ö Windows 95 ¹®¼ °ü¸® ¾ÖÇø´ ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿ ¬°á ¸ðµ¨ - À© µµ¿ì 95 : Ŭ¶óÀ̾ðÆ® - À© µµ¿ì NT: ÀÀ¿ ë¼ ¹ö - À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼ ¹ö ¹× µ¥ÀÌŸ ¼ ¹ö, Åë½Å ¼ ¹ö - IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼ ¹ö, Åë½Å ¼ ¹ö
Document FileManager GraphicFile File Repository DocumentList FileList user mainWndfileMgr :
FileMgr repository document : Document gFile
1 : D oc v iew requ est ( ) 2 : fe tchD oc( )
3: create ( ) 4: crea te ( )
5: re adDoc ( ) 6: f illD ocum ent ( )
7: rea dFile ( ) 8: fi llFile ( ) 9: sortBy Nam e ( ) Ư Á¤¹®¼ ¿ ¡ ´ëÇ Ñ º¸±â ¸¦ »ç ¿ëÀ Ú°¡ ¿ä Ã»Ç Ñ´Ù. È ÀÏ° ü¸®ÀÚ´Â À о î¿Â ¹®¼ À Ç Á¤ º¸¸¦ ÇØ´ç ¹®¼ ° ´Ã¼ ¿ ¡ ¼ ³Á¤ À» ¿äà »Ç Ñ´Ù. È ¸é °´Ã ¼ ´Â ÀоîµéÀ Î ° ´Ã¼ µé¿¡ ´ëÇ Ø À̸§ º°·Î Á ¤·ÄÀ» ½ à ÄÑ È ¸é¿¡ º¸¿©Á Ø´Ù. Customername addr withdraw() fetch() send() receive() <<entity>>
Forward Engineering(Code Generation) and Reverse Engineering 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 Diagram
Activity diagram
Class Diagram
Sequence Diagram
Langkah – Langkah UML
Collaboration Diagram
Deployment Diagram Package Diagram
Statechart Diagram
• Istilah lain: state diagram, state machines, atau state transition
diagram
• Statechart diagram menggambarkan transisi dan perubahan
keadaan (dari satu state ke state lainnya) suatu objek pada
sistem sebagai akibat dari stimuli yang diterima.
• Diagram State adalah diagram untuk menggambarkan
behavior, yaitu perubahan state di suatu class berdasarkan
event dan message yang dikirimkan dan diterima oleh class
tersebut
Status
State
Abstraksi dari nilai-nilai atribut dan asosiasi dari sebuah objek
Representasi kondisi/state dari sebuah objek pada periode waktu tertentu
Berhubungan dengan suatu interval waktu
antara dua event
Detail
Status
• Aksi yang menyertai transisi untuk masuk ke suatu state dapat ditempatkan sebagai entry action dalam state
• Aksi yang menyertai transisi yang keluar dari suatu state
dapat ditempatkan sebagai exit action dalam state
• Perilaku yang terjadi dalam status disebut activity yang
dimulai saat masuk hingga saat selesai atau terinterupsi dengan transisi yang meninggalkan
• Perilaku tsb dapat berupa aksi yang sederhana atau
Notasi
Detail
Status
• Detail Status: dituliskan di dalam status di
bawah nama status terpisahkan garis
horisontal
– Entry diawali dengan entry/
– Exit diawali dengan exit/
– Aksi di awali dengan do/
– Target class dan event
Transisi
• Menyatakan perubahan dari suatu status semula ke status berikutnya (kedua status bisa saja sama)
• Dua transisi: Otomatis dan nonotomatis
• Otomatis: terjadi setelah aktifitas dalam status semula selesai (tidak ada event terasosiasi dengan transisi)
• Nonotomatis: terjadi oleh suatu event (bisa dari object lain atau dari luar sistem)
State Transitions
Transisi – Hubungan antara dua state yang
Detail
Transisi
• Transisi bisa memiliki suatu aksi dan/atau guard condition yang terkait dengannya dan dapat pula mentriger suatu event
• Aksi: perilaku yang terjadi ketika suatu transisi terjadi • Guard condition: adalah ekspresi boolean dari hargaharga atribut yang mana transisi tsb bisa terjadi hanya jika kondisi tersebut true.
• Kedua hal tsb perilaku dari object dan umumnya menjadi operasi dalam class diagram
• Detail dituliskan di dekat garis transisi (misalnya di atas jika horisontal, di samping jika garis vertikal)
• Aksi dituliskan sebagai frase
Notasi
Detail
Transisi
• Pada transisi dapat dispesifikasikan – event
– action
– guard condition – send event
• Dengan format
Event
Event – spesifikasi dari sebuah kejadian tertentu
Segala sesuatu yang terjadi dapat dimodelkan
sebagai event
Sebuah state menunjukkan transuisi antar status
(state) yang dipicu oleh stimulus tertentu (event)
Idle
OffHook / dropConnection()
Event
Event
dapat dikategorikan ke dalam
internal
atau
external
event
Internal event berasal dari dan menuju
ke objek pada sistem aplikasi
External event adalah event yang
berasal dari aktor ke sistem atau
sebaliknya
Event
Hubungan
Dengan
Use Case Diagram
• Diagram statechart meliputi seluruh message yang dapat dikirimkan/diterima object ybs
• Scenario merepresentasikan suatu path di dalam state diagram
Hubungan
Dengan
Diagram
diagram
Lain
• Dengan Sequence Diagram
– State diagram dapat membantu untuk
merepresentasikan message-message yang diterima object tsb
• Dengan Activity Diagram
Guidelines
• Tidak seluruh class perlu dibuatkan diagramnya cukup yang dipandang signiffikan saja
The Fox, then Chicken, and Grain
Sequence
Diagram
• Menunjukkan interaksi object-object dalam scenario yang
dipandang dari dimensi waktu.
• Menggambarkan rentetan pertukaran message antara
1. Seorang elemen aktor digunakan untuk menghadirkan pemakai yang memulai alur peristiwa / kejadian.
2. Elemen – elemen objek.
3. masing-masing elemen yang dihubungkan garis – garis
batang disebut suatu lifeline, di mana jika unsur itu
berpotensi mengambil bagian dalam interaksi itu.
A Sequence Diagram
member:
LibraryMember book:Book
:Book Copy
borrow(book)
ok = mayBorrow()
[ok] borrow(member)
A Sequence Diagram
member: LibraryMember book:Book :Book Copy borrow(book)ok = mayBorrow()
Notasi
Object
• Object digambarkan sebagai segiempat berisikan : – Nama object saja, dituliskan
– Nama object dan nama class, dituliskan
Notasi
Timeline
• Garis waktu setiap object digambarkan sebagai garis terputus-putus di bawah masing-masing object
Notasi
Message
• Aliran message digambarkan sebagai garis berpanah dari
satu titik di timeline object pengirim ke titik di timeline object penerima
– Nama message dan argumen dituliskan di atas garis message tsb
• Jenis-jenis message
– Simple, Procedure call, Return, Synchronous, Asynchronous, Balking, Timeout
• Frekuensi message
Messages
• Simple
– merupakan transfer kontrol dari object pengirim ke penerima
• Procedure Call
– Pengirim menunggu hingga seluruh nested sequence selesai
• Return
– Digunakan sebagai return dari suatu procedure call • Synchronous
Messages
• Balking
– Jika setelah pengiriman penerima tidak segera ready untuk menerima message, maka pengirim mengabaikan pesan tsb • Timeout
– Jika setelah suatu batas waktu tertentu sejak pengiriman penerima belum ready maka pengirim mengabaikan pesan tsb • Periodic
– Message dikirim secara reguler (setelah selang waktu tertentu)
• Aperiodic
Notasi
Message
• Jenis-jenis dibedakan dalam penggabarannya
– Simple
– Procedure call – Return
– Synchronous
– Asynchronous
– balking
Hubungan
dengan
realisasi
usecase
• Sequence diagram dapat berasosiasi dengan realisasi usecase