download

Developing Software Woth UML
State Diagram
Pokok bahasan:
• State Diagram
• State
• Substate
• Events dan transition
Addison-Wesley
Booch Jacobson Rumbaugh
SYSTEMS ANALYSYS AND DESIGN METHODS 5TH Edition
Whitten Bentley Dittman
Membuat model behavior dari objek-objek
• Setiap objek dapat dikatakan memiliki state --nilai dari attributnya pada suatu saat tertentu.
• State diagram memodelkan daur hidup sebuah
objek tunggal. Ia menggambarkan macammacam state yang dimiliki sebuah objek, event
yang mengakibatkan perubahan state selama
waktu tertentu dan aturan-aturan yang mengatur
transisi objek antara satu state dengan state
lainnya.
• Perubahan terhadap state objek terjadi ketika
ada suatu kejadian atau ketika nilai dari salah
satu atributnya berubah. Perubahan state ini
dipicu oleh adanya suatu event.
Irwin/McGraw-Hill
Copyrighth@2000 The Mcgraw-Hill Companies All Right reserved
Developing Software Woth UML
Booch Jacobson Rumbaugh
• Sebuah state diagram menunjukkan urut-urutan state
dari sebuah objek selama masa hidupnya / lifetimenya,
sekaligus dengan event-event yang menyebabkan
perubahan dari state tersebut.
• Sebuah state diagram menjelaskan sebuah hypothetical
machine (finite automaton) yang pada setiap waktu
berada pada satu set finite state, yang terdiri dari:
• a finite, non-empty set of states;
• a finite, non-empty set of events;
• functions, yg menjelaskan transisi dari satu state ke
state berikutnya;
• sebuah initial state;
• satu set final state.
Addison-Wesley
Developing Software Woth UML
Booch Jacobson Rumbaugh
Soal:
• On opening the flight, the initial state leads to the NoReservation
state. When the state is entered, the Reset operation is executed. If
a reservation is made for this flight, the object changes to the state
PartiallyReserved.
• The Reserve event is associated to the homonymous Reserve
action (implemented as an operation).
• In this operation, the actual reservation takes place, and the internal
reservation counter is updated. After termination of this action, we
will find the object in the PartiallyReserved state.
• Each additional reservation leads to the same action. As long as a
free seats are available, the object remains in the PartiallyReserved
state. If only one seat left, it changes into FullyBooked state.
Cancellation of reserved seats is carried out in a similar way. Thus,
the state diagram describes which actions are triggered by which
events and under which conditions these (and together with the call
of the corresponding operations) are permitted.
Addison-Wesley
Developing Software Woth UML
Booch Jacobson Rumbaugh
cancel()
[reservedSeats>1]
reserve()
[freeSeats>1]
reserve()
NoReservation
PartiallyReserved
entry/reset()
reserve()
[freeSeats=1]
cancel()
[ReservedSeats=1]
cancel()
cancelFlight()
openFlight()
close()
FullyBooked
close()
Closed
Addison-Wesley
Developing Software Woth UML
Booch Jacobson Rumbaugh
State
• Sebuah state dimiliki oleh satu buah Class dan
merepresentasikan abstraksi atau kombinasi dari
satu set nilai atribut yang mungkin terjadi pada
objek tersebut dari class ini.
• Tidak setiap perubahan nilai atribut akan dianggap
sebagai perubahan state. Hanya event tertentu
yang sangat signifikan mengakibatkan perubahan
behavior dari objek.
• Sebuah state oleh karena itu dapat dilihat juga
sebagai rentang waktu (time span) antara dua
event.
• Dua type khusus state yang ada adalah initial state
dan final state.
Addison-Wesley
Developing Software Woth UML
Booch Jacobson Rumbaugh
• Tidak ada transisi yang menuju initial state dan tidak ada
event yang diperbolehkan meninggalkan final state.
• Transisi dari satu state ke state berikutnya di trigger /
dipicu oleh event. Sebuah event terdiri dari nama event
dan sejumlah argument.
• Event dapat memicu aksi didalam state yang dilakukan
melalui operasi tertentu.
Ada tiga trigger yang sudah predefine:
• entry, fires automatically when entering a state
• exit, fires automatically when leaving a state
• do, fires repeatedly as long as the state is active, that is,
not left.
Addison-Wesley
Developing Software Woth UML
Booch Jacobson Rumbaugh
Substate
• Sebuah state dapat diuraikan lebih lanjut, baik
sekuensial ataupun paralel substate.
• Gambar dibawah ini menunjukkan sebuah sequential
nesting. Ketika kontrak asuransi ditetapkan, sebuah
produk dipilih (sebagai contoh, content-nya), yang terdiri
dari beberapa produk element (Pel), seperti furniture,
gelas, dsb. Untuk setiap produk elemen, sebuah cover
(istilah asuransi) harus dibuat. Ilustrasi dibawah ini
menunjukkan Create covers state dari context ini.
Create Covers
covers:set=Empty set
PElQuantity
Reset
addPEl
Def ine
cover
addPEl
Addison-Wesley
[isComplete]
Developing Software Woth UML
Booch Jacobson Rumbaugh
Gambar dibawah ini menunjukkan notasi
dari paralel substates.
substates
S3
event1
S4
S1
S2
event2
event4
Addison-Wesley
event3
S5
Developing Software Woth UML
Booch Jacobson Rumbaugh
Event dan transition
• Sebuah event adalah sebuah kejadian yang
memiliki pengaruh khusus dalam suatu context yang
dibicarakan, karena ia men-trigger / memicu
perubahan state.
• Kebalikan dari state, event bukan milik satu kelas
tertentu.
• State transition (perubahan state) biasanya dipicu
oleh adanya event yang digambarkan dengan anak
panah yang menghubungkan state satu dengan
state lainnya.
Addison-Wesley