Metode Perancangan Program Pert 22 – Specifying Control
Specifying Control Aspek penting lain dari sebuah aplikasi yang harus dimodel adalah bagaiamana caranya ia merespon terhadap event yang dapat bervariasi tergantung dari waktu dan event sebelumnya. UML menggunakan statechart untuk membuat model state dan ketergantungan state terhadap object dan interaksi Sebuah model dari state behaviour di dalam statechart menggambar semua kemungkinan respon dari sebuah object terhadap semua use case yang terlibat.
State dan Event Semua object mempunyai state. State yang berlaku saat ini pada sebuah object merupakan hasil dari event yang telah terjadi terhadap object tersebut dan ditentukan oleh nilai attribut saat ini dan link yang ada antar object lain. Beberapa attribute dan link dari sebuah object mempunyai peranan penting dalam menentukan state object tersebut. Sebuah state adalah sebuah kondisi selama masa hidup object atau sebuah interaction selama memenuhi kondisi tertentu, melaukan beberapa action atau menunggu beberapa event
Contoh : statechart for the class Grade Rate
State and Event Perpindahan dari satu state ke state yang lain disebut dengan transition, dan diaktifkan oleh event. Sebuah transition digambarkan dengan panah dari state sumber ke state tujuan. Sebuah event adalah sebuah kejadian stimulus yang dapat mengaktifkan sebuah perubahan state dam yang relevan terhadap object atau aplikasi
State and event Event dapat dikelompokkan menjadi beberapa tipe: change event terjadi jika kondisi menjadi benar / true call event terjadi jika sebuah object menerima sebuah panggilan bagi operationnya baik dari luar object maupun dari dirinya sendiri signal event terjadi jika sebuah object menerima signal Elapsed-time event terjadi disebabkan karena mencapai waktu tertenuu setelah sebuah event
Notasi dasar Initial state dari sebuah lifecylce digambarkan dengan lingkaran padat. Sebuah object harus segera berpindah dari initial state ke state. Final state digambarkan dengan lingkaran padat didalam lingkaran putih. Semua event ditunjukkan dengan kotak dengan ujung membulat dan harus diberi nama.
Notasi Lanjutan Jika sebuah state behaviour dari object atau sebuah interaction terlalu kompleks, maka dapat dibuat menjadi beberapa level dan menggambarkan hirarki state yang digunakan di aplikasi. Dari contoh berikutnya dapat dilihat bahwa state active dikembangkan . Sehingga di dalam state active terdapat state lainnya
Contoh: the active state of campaign showing nested substates
Concurrent State Conccurent states adalah behavjour object dapat dijelaskan dengan sebuah product dari dua substates yang berbeda. Masing masing state dapat di enter dan exit tanpa tergantung state yang lain
Contoh: the active state with concurrent substates
Membuat statechart Statechart dapat dibuat dari berbagai perspektif : Pendekatan behaviour Pendekatan lifecycle
Pendekatan behaviour Pembuatan statechart dari sebuah interaction diagram menggunkan pendekatan behaviour mempunyai langkah berikut: Perhatikan semua interaction diagram yang terlibat pada setuap class setiap kali menerima message. Identifikasi message yang masuk pada setiap interaction diagram yang mempunyai hubungan dengan event. Juga identifikasi state yang mungkin. Dokumentasi event dan state ini kedalam state chart Kembangkan statechart dengan interaction tambahan dan pengecualian Kembangkan nested statechart (jika ada) Review statechart untuk memastikan konsistensi dengan use case Ulangi langkah 4,5, dan 6 sampai statechart sudah memuat level yang detail Cek konsistensi statechart dengan class diagram, interaction diagram dan statechart yang lain.
Pendekatan Life Cycle Pendekatan ini langsung diambil dari use case dan dokumentasi requirement yang ada Adapun langkah langkahnya: Identifikasi major sistem event Identifikasi setiap class yang kemngkinan mempunya state yang tergantung pada event ini Untuk setiap class buat statechart pertama dengan mempertimbangkan typical lifecycle dari instance sebuah class Perhatikan statechart dan kembangkan untuk melengkapi event behaviour yang lebih detil Lengkapi statechart dengan memasukan alternatif skenario Review statechart untuk memastikan bahwa ia konsisten dengan use case Ulangi langakh 4,5 dan 6 sampai statechar memiliki level detail Pastikan konsistensi dengan class diagram dan interaction diagram atau statechart lainnya
Consistency Checking Statechart harus konsisten dengan model lainnya: Setiap event harus muncul sebagai message yang masuk untuk object yang tepat pada interaction diagram Setiap action harus berhubungan dengan eksekusi operation pada class yang tepat,dan juga pengiriman pesan ke object lain Setiap event harus berhubungan dengan sebuah operation pada class yang tepat. Setiap message yang dikirimkan dari statechart harus berhubungan dengan sebuah operation dari class lain