STATE MACHINE DIAGRAM
State
Machine Diagram adalah teknik yang umum digunakan untuk menggambarkan behaviour
sebuah sistem. Hal ini digunakan untuk membantu analis, perancang dan
pengembang untuk memahami perilaku obyek pada sistem.
State Machine Diagram (Statechart
diagram in versi 1.x) adalah Untuk memodelkan behavior/methode (lifecycle)
sebuah kelas atau object dan memperlihatkan urutan kejadian sesaat (state) yang
dilalui sebuah object,transisi dari sebuah state ke state lainnya
Simbol
Simbol UML untuk state chart diagram adalah
segiempat yang tiap pojoknya dibuat rounded. Titik awalnya menggunakan
lingkaran solid yang diarsir dan diakhiri dengan mata. UML juga memberi pilihan
untuk menambahkan detil ke dalam simbol tersebut dengan membagi 3 area yaitu nama state, variabel dan aktivitas. State variabel seperti timer dan counter yang kadangkala sangat membantu.
Activity
terdiri atas events dan action, tiga hal yang sering
digunakan
dalam activity adalah:
1. Entry
= Apa yang terjadi ketika sistem masuk ke state
2. Exit
= Apa yang terjadi ketika sistem meninggalkan state
3. Do = Apa
yang terjadi ketika sistem ada di state
State, Event, Transition
Statechart diagram menampilkan state-state yang mungkin
dari sebuah obyek, event yang bisa dideteksi dan respon atas eventevent
tersebut. Secara umum, pendeteksian sebuah event dapat menyebabkan sebuah obyek
bergerak dari satu state ke state yang lain yang disebut dengan
transition.Contoh :
Label
pada transisi memiliki dua bagian yang dipisahkan dengan garis miring. Yang
pertama adalah nama dari peristiwa yang memicu transisi. Yang kedua adalah nama
dari suatu tindakan yang akan dilakukan setelah transisi telah dipicu. Properties
dari Gambar Diagram sebuah PINTU PUTAR di atas adalah sebagai berikut:
Ø Jika
pintu putar dalam keadaan terkunci, dan
Coin dimasukkan, maka transisi pintu putar keUnlocked state, dan
tindakan Aktifkan dilakukan.
Ø Jika
pintu putar dalam keadaan unlocked, setelah berhasi dibuka, maka transisi pintu
putar ke Lock state, dan tindakan Lock dilakukan.
Sebuah state machine diagram mempunyai :
a.
state (kejadian sesaat) are represented
by the values of attributes of an object
b.
State digambarkan dengan bentuk Data
Kosong
c. “Black Hole” states is state has
transition into it but none out
d. Miracle states is state has transition
out of it but none
e. Initial state / creation state dengantanda
untuk memulai sebuah state diagram ( in western culture people read from left
to right, top to bottom, starting in the top – left corner)
•
Composite States
Ø Kumpulan
dari beberapa state yang yang setidaknya dalam sebuah region
Ø Orthogonal
State, jenis composite state yanglebih dari satu region
•
Submachine State
Ø Sejenis
composite state yang isinya didefinisikan oleh state machine lain.
Ø State
machine yang berisi submachine state disebut “containing state machine.
Ø Sebuah
state yang dihubungkan dengan machine lainnya.
Ø Dihubungkan
ke satu / lebih entry point dan satu / lebih exit point
Digunakan untuk mendukung konsep encapsulation
Ø Sebuah
state tidak boleh mempunyai region dan submachine secara bersamaan
Ø Nama
state mempunyai sintaks
Ø Nama
submachine state : referenced state machine
•
Sub states
Ø Sebuah
state yang ada dalam sebuah region
Ø Direct
substate, sub state yang tidak berisi state lain
Ø indirect
substate, sub state yang berisi state lain
•
region ( kelompok state )
Ø dipisahkan
dengan garis terputus, yang setiap region boleh mempunyai nama yang optional
Ø sebuah
state tidak boleh mempunyai region dan sub machine secarah bersamaan
•
Transition
Ø Digambarkan
dengan tanda anak panah
Ø Progressions
from one states to another, will be triggered by an event
Ø Transition
adalah hasil dari methode yang menyebabkan perubahan state, walaupun tidak
semua methode menyebabkan perubahan state
Label on transition is in the format
event [guard][/methode list()]
Ø Event
bisa dituliskan dengan past tense
Ø Event
menyebabkan sebuah object berpindah dari satu state ke state lain
Ø Guard,
condition that nust be true for the transition to be tiggered
Ø Guard
harus konsisten dan tidak overlap
Ø Guard
harus lengkap logikanya
Ø Mehode
dijalankan. Ketika object memasuki state diindikasikan dengan methode bernama
entry() dan ketika object keluar state diindikasikan dengan methode bernama
exit()
Ø Methode
menyebabkan perubahan disebuah state, bisa juga tidak
Ø Join,
menggabungkan beberapa transition menjadi sebuah transition
Ø Fork,
memecah sebuah transition menjadi beberapa transition yang berkondisi AND
(transition harus dilewati semuanya).
•
Junction
Menggabungkan sebuah / beberapa
trasition dan memecahnya menjadi sebuah / beberapa trasition yang berkondisi
AND ( transition harus dilewati semuanya ).
Dimungkinkan transition ke sebuah state
yang berisi beberapa state yang disebut state list
•
Choice, mengkondisikan sebuah transition
menjadi sebuah / beberapa transition, yang hanya dipilih salah satu transition
( choice ).
o
Digunakan lambang diamond
o
Operand dapat diletakkan di dalam
diamond atau pada transition
• Entry
point dilambangkan sebuah lingkaran kecil yang ditaruh pada pinggiran state (
bisa di dalam bisa juga di luar ), dan berguna sebagai sub machine state.
•
Exit
point dilambangkan sebuah lingkaran kecil bersilang yang ditaruh pada pinggiran
state ( bisa juga di dalam atau di luar ), dan berguna sebagai submachine
state.
State
Machine Diagram ada 2 jenis
v Behavioral
State machines
o
Merupakan state machine diagram umumnya
o
Digunakan untuk mendefinisikan perilaku
sebuah object
v Protocol
State Machine
o
Digunakan untuk penggunaan protocol pada
sebuah system
o
Dapat didefinisikan ke spesifik Protocol
State Machine atau Behavioral State Machines
o
Didefinisikan sebagai diagram context (
global overview )
o
Notasi yang digunakan sama dengan
Behavioral State Machines dengan penambahan kata ( protocol )
o
Tidak adanya internal activity seperti
entry, exit, do
o
Transition pada Protocol State Machine
harus menggunakan Protocol Transition
o
Protocol Transition
Ø Sintaks
: [pre condition] event / [post condition]
Ø Precondition
atau postcondition adalah guard ( Guard is condition that must be true for the
transition to be triggered )
·
Precondition, kondisi sebelum transition
·
Postcondition, kondisi setelah
transition
Dependencies
v Dimodelkan
dengan garis terputus dengan panah terbuka
v Gambarkan
dependencies dari kiri ke kanan
Inheritance
v Inheriting
/ child component diletakkan di bawah parent component, dengan arah panah
menuju ke parent component
v Dimodelkan
dengan garis dengan panah tertutup
Interface Component Diagram
v Interface
adalah kumpulan > =1 methode dan > = 0 attribute yang dapat dipakai pada
class tanpa menjadi behavior suatu class.
v Jenis
interface ada 2 macam yaitu :
Ø Provide,
digambarkan dengan bentuk lollipop pada UML 1. * bisa juga digambarkan dengan
garis terputus dengan panah tertutup
Ø Required,
digambarkan dengan bentuk socket
v Penggambaran
interfaces dapat juga dilakukkan dengan menambah bagian.
Port
v Adalah
bentuk object yang menjelaskan interaksi antara object dan lingkungannya.
v Digambarkan
sebagai kotak kecil di pinggiran component
v Assembly
connector penghubung antara 2 atau lebih component dimana sebuah atau beberapa
component provides interfaces dan component lain required interfaces. (Greg - 1499)