State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED...

25
STATE MACHINE DIAGRAM Budi Susanto Pemodelan Sistem PL - TI UKDW - Budi Susanto 1

Transcript of State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED...

Page 1: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

STATE MACHINE DIAGRAM

Budi Susanto

Pemodelan Sistem PL - TI UKDW - Budi Susanto 1

Page 2: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Tujuan • Memahami peran yang diberikan dari state machine diagram • Dapat memahami notasi-notasi yang digunakan dalam state

machine diagram

2 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 3: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Dasar State Machine Diagram • Secara umum, State Machine Diagram adalah sebuah teknik

untuk menggambarkan perilaku dinamis sebuah sistem. • Dalam pendekatan OO, sebuah State Machine Diagram

memodelkan perilaku dari sebuah objek tunggal, menunjukkan urutan kejadian yang terjadi pada sebuah objek selama hidupnya dalam merespone suatu event

• Elemen dasar adalah state dan transisi dari satu state ke state lainnya.

3 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 4: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Dasar State Machine Diagram • Contoh 1. State Machine Diagram memperlihatkan state siklus

hidup sebuah pintu

4

Close [doorWay is empty ]/pull

Open /push

transition state

Initial pseudostate

●  Pintu memiliki 3 state: Opened, Closed, atau Locked.

●  Pintu dapat merespon terhadap kejadian : Open, Close, Lock dan Unlock.

Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 5: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Elemen State Machine Diagram • State: sebuah state ditandai dengan sebuah kotak dengan

sudut tumpul dan terdapat nama state yang ditulis di dalamnya. •  Initial dan Final States (pseudostate) : Initial State ditandai

dengan sebuah kotak terisi warna hitam penuh dan dapat diberi label. Final State ditandai dengan sebuah lingkaran dengan titik ditengahnya dan dapat diberi label.

5 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 6: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Elemen State Machine Diagram •  Transition: sebuah transisi menyatakan perpindahan dari satu

state ke state berikutnya dengan sebuah anak panah. Transisi memiliki label dalam 3 bagian: trigger [guard]/activity. Semuanya optional. •  Trigger: sinyal kejadian yang memicu perubahan state •  Guard: jika ada, sebuah kondisi Boolean harus true sehingga trigger

menyebabkan transisi •  Activity: beberapa perilaku yang telah dijalakan selama transisi

6 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 7: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Elemen State Machine Diagram • Self-Transitions: adalah sebuah transisi dimana state sumber

dan sasaran sama.

7

Trigger [guard]/activity

Waiting 3 minute [if unlocked]/locking

Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 8: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Contoh 2

8

Tanya: 1) apa saja state yang ada? 2) Apa arti dari transisi (candle removed [door closed]/reveal lock) ?

Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 9: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Aktifitas Internal • Untuk memperlihatkan kasus dimana state bertindak terhadap

event tanpa transisi. • Ditulis dengan meletakkan event, guard dan activity dalam

kotak state itu sendiri.

9

entry/highlight all exit/update field

character/handle character

help [verbose]/open help page help [quiet] / update status bar

Typing state name

entry/exit activity

Internal activity

Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 10: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Aktifitas Internal • Entry activity: aktifitas dijalankan ketika anda masuk ke sebuah

state • Exit activity: aktifitas dijalankan ketika Anda meninggalkan

sebuah state • Berbeda dari self-transition, dalam internal activitiy tersebut

tidak memicu aktifitas masuk dan keluar.

10 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 11: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Aktifitas Internal • Regular vs Activity State:

•  Regular state : “diam” dan menunggu untuk kejadian berikutnya sebelum melakukan sesuatu

•  Activity state dapat melakukan sesuatu pekerjaan • Perbedaan penting :

•  regular activities terjadi secara instan dan tidak dapat diinterupsi •  Activity menggunakan waktu terbatas dan tidak dapat diinterupsi

11 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 12: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Contoh Activity State

12 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 13: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Super- dan Sub- States • Sebuah substate adalah sebuah state yang dirangkai dengan state lain

• Sebuah state yang memiliki substates disebut Superstate (atau composite state)

• Aggregation View: ketika beberapa state berbagi transisi umum dan internal activity, mereka dapat dibuat substate dan dipindah dari berbagi perilaku menjadi sebuah superstate.

• Decomposition view: ketika sebuah state terlalu komplek, terkadang dapat diuraikan menjadi beberapa substate untuk mencapai pemahaman yang lebih baik terhadap perilakunya.

13 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 14: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Super- dan Sub- States

14

Transition to a superstate state

Transition from a superstate state

Transition from a substate

Substate Superstate

Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 15: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

History States

15

●  Sebuah history State digunakan untuk mengingat state sebelumnya dari sebuah state machine ketika diinterupsi.

history pseudostate

If there is a power cut, the washing machine will stop running and will go to the Power Off state. Then when the power is restored, the Running state is entered at the History State symbol meaning that it should resume where it last left-off.

Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 16: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Concurrent States • State dapat dipecah ke dalam beberapa (sub-)state diagram yang berjalan secara bersamaan

16 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 17: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Concurrent States • Contoh : Concurrent orthogonal (sub-)states

17

State ketika ia dimatikan pada waktu sebelumnya

Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 18: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Concurrent States • Concurrent states: Alternative diagram

18

substate

join: pseudostate

superstate

fork: pseudostate

Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 19: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Branch States • Sebuah pseudo-state keputusan diperlihatkan sebagai sebuah belahketupat dengan satu transisi yang masuk dan dua atau lebih transisi yang meninggalkan.

19

Decision: pseudostate

state arrived after the decision pseudo-state is dependent on the message format selected during execution of the previous state.

Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 20: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Implementing •  Tiga metode

penerapan •  Nested Switch •  State Table •  State Pattern

20 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 21: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Method 1. Nested Switch public void HandleEvent (PanelEvent anEvent) { switch (CurrentState) { …… case PanelState.Wait //current state = “Wait” switch (anEvent) { case PanelEvent.CandleRemoved //trigger if (isDoorClose) { //guard RevealLock( ) //activity CurrentState = PanelState.Lock //state change } break } …….

21 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 22: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Method 2. State Table • Menangkap sebuah informasi state diagram sebagai data • Menghasilkan class-class berdasar tabel penerapannya

22

Reveal lockDoor openCandle removeLockWait

Safe closedWaitOpen

Release killerCandle outKey turnedFinalLock

Open safeCandle inKey turnedOpenLock

ProcedureGuardEventTarget State

Source State

Reveal lockDoor openCandle removeLockWait

Safe closedWaitOpen

Release killerCandle outKey turnedFinalLock

Open safeCandle inKey turnedOpenLock

ProcedureGuardEventTarget State

Source State

Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 23: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Method 3. State Pattern • Membuat sebuah hirarki dari class-class state untuk menangani perilaku

23 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 24: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

Kapan menggunakan? • Baik untuk menggambarkan perilaku sebuah objek terhadap

beberapa use case (namun tidak baik pada kolaborasi objek) • Untuk memahami lebih baik kompleksitas class, secara khusus

tindakan yang terjadi dalam beberapa perbedaan state mereka • Bermanfaat untuk memodelkan bentuk perilaku objek UI dan

kontrol

24 Pemodelan Sistem PL - TI UKDW - Budi Susanto

Page 25: State Machine Diagram - eprints.binadarma.ac.ideprints.binadarma.ac.id/492/1/OBJECT ORIENTED ANALYSIS & DES m… · Aktifitas Internal • Untuk memperlihatkan kasus dimana state

SELESAI!

Terima kasih!

Pemodelan Sistem PL - TI UKDW - Budi Susanto 25