download

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
GradeRate( )
Pending
When[rateStartDate
<= currentDate]
Initial State
Change event
Active
Transition
between states
When[rateFinishDate
<= currentDate]
Lapsed
After[1 yaer]
Elapsed-time
event
Final State
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
Active
advertsApproved()/
authorize( )
extendCampaign()/
modifyBudget( )
AdvertPreparation
Running Adverts
Scheduling
Confirm schedule
campaignCompleted()/
prepareFinalStatement
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
Active
Running
advertsApproved()/
authorize( )
extendCampaign()/
modifyBudget( )
AdvertPreparation
Running Adverts
Scheduling
Confirm schedule
campaignCompleted()/
prepareFinalStatement
Monitoring
survey
SurveyComplete()
Runsurvey()
evaluation
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:

1.
2.
3.
4.
5.
6.
7.
8.
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:


1.
2.
3.
4.
5.
6.
7.
8.
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