State Diagram Oleh : Cosmas Haryawan -- Pengenalan UML – Dari The McGraw-Hill Companies, 2004
State ? Terjemahan bebas : Keadaan Contoh : Saat menekan saklar : lampu berubah dari state mati menjadi state hidup Saat meng-klik remote TV : televisi mengubah statenya dari satu chanel menjadi chanel lain Setelah waktu tertentu : traffic light merubah statenya dari merah menjadi hijau
State Diagram Disebut juga : state transition diagram Menunjukkan state dari suatu object, event atau message yang menyebabkan transisi dari satu state ke state yang lain Object bisa memiliki respond yang berlainan untuk stimulus yang sama pada waktu yang berbeda State Diagram tidak harus dibuat untuk setiap class yang ada, kecuali saat dibutuhkan Jenis State : Simple State dan Composite State
Simbol Segi empat dengan pojok melengkung (rounded) Titik awal menggunakan lingkaran solid State Diagram hanya memiliki 1 titik awal Titik akhir menggunakan mata (bull’s eye) State Diagram bisa memiliki banyak titik akhir
Simbol… Dimungkinkan juga untuk menambah detail ke dalam simbol dengan membagi menjadi area yang menunjukkan nama dan aktivitas Activity terdiri atas event dan action Activity biasanya terbagi dalam 3 kategori : Entry (kejadian saat system masuk state) Exit (kejadian saat system meninggalkan state) Do (kejadian saat system di dalam state)
Contoh : Mesin Fax Activity
Event dan Transition Suatu object akan berada pada satu state pada satu saat Events bisa diterima setiap saat Event bisa berupa sinyal, waktu, perubahan state, pesan Event dapat memicu terjadinya transisi Transisi yang disebabkan oleh suatu event, pada garis transisinya akan diberikan keterangan tentang event yang diterima
Event dan Transition… Transition dilambangkan dengan garis berujung panah Bisa dilengkapi dengan Event, Guard Condition dan Action. Terkadang juga dilengkapi dengan attribut Cara penulisan : Event [guard_condition] (attribut) / action
Guard Condition Ditambahkan untuk mengetahui kapan transisi terpicu
Action Action akan dijalankan ketika transisi terpicu Tidak bisa diinterupsi
Entry dan Exit action
Activities Merupakan properties dari state Akan dijalankan saat object berada pada state tersebut Tidak seperti action, activity bisa diinterupsi oleh event baru yang lain
Completion Transition Jika suatu activity bisa selesai tanpa diinterupsi, maka ini akan memicu transisi yang disebut Completion Transition Garis Transisi tanpa disertai Ket. Event
Internal Transition Tidak merubah State Tidak menjalankan Entry dan exit action
Composite State Memasukkan state yang berperilaku mirip ke dalam satu grup State yang di dalam composite state disebut substate
Composite state… Transition Untuk yang dari composite state pasti diaktifkan oleh salah satu dari substate Yang menuju ke composite state, mampu melanggar batas untuk menuju ke nested substate Composite state dapat memiliki activities, entry dan exit action tersendiri Titik akhir di dalam composite state akan memicu Completion Transition
History State Sering terjadi, object butuh kembali ke state sebelumnya History akan mengingat posisi terakhir sebelum berpindah state Diberikan lambang H dalam lingkaran
State akhir CD Player
Contoh Lain
Contoh Lain… Add student[ count < 10 ] Add Student / Set count = 0 Initialization Open entry: Register student exit: Increment count Closed Canceled do: Initialize course do: Finalize course do: Notify registered students Add Student / Set count = 0 Add student[ count < 10 ] [ count = 10 ] Cancel
Contoh Lain…