: Operator Computer
u inclde: triệ gọi một máy trạng thái con khác
Lược đồ trạng thái
lCác nhãn hành động khác chỉ ra sự kiện kích hoạt hành động tương ứng trong biểu thức hành động
(action-expression)
lCú pháp của biểu thức hành động
event-name ’(‘ parameter-list ’)’ ’[‘guard- condition’]’ ’/’ action-expression
Lược đồ trạng thái
lTrạng thái bắt đầu: khi đối tượng được tạo ra hoặc trạng thái tổng hợp được xác định;
ký hiệu
lTrạng thái kết thúc: khi đối tượng bị huỷ bỏ hoặc trạng thái tổng hợp trở nên khơng xác định;
ký hiệu
lTrạng thái tổng hợp(composite) được phân rã thành nhiều trạng thái con đồng thời hoặc các trạng thái con loại trừ nhau
Lược đồ trạng thái
lVí dụ: phân rã trạng thái tổng hợp Running
Running
Forward Backward
Slow Fast
Lược đồ trạng thái
lSự kiện(event) kích hoạt dịch chuyển trạng thái, cĩ thể là
uMột điều kiện trở nên đúng(chú ý khác vớiguard- condition)
uMột đối tượng nhận tín hiệu từ đối tượng khác
uMột phép gọi tác vụ
uMột khoảng thời gian đã trơi qua kể từ một sự kiện nào đĩ
l Cú pháp của sự kiện: event-name ’(’ parameter-list ’)’
l Sự kiện cĩ tầm vực thuộc vềpackagechứa lớp đang mơ tả lược đồ trạng thái, chứ khơng chỉ thuộc về riêng lớp đĩ
Lược đồ trạng thái
lDịch chuyển trạng thái là quan hệ giữa hai trạng thái theo đĩ đối tượng đang ở trạng thái thứ nhất sẽ chuyển sang trạng thái thứ hai đồng thời sẽ thực hiện một số hành động khi sự kiện tương ứng xảy ra và thoả mãn một số điều kiện nhất định
lĐược ký hiệu như một mũi tên hướng từ trạng thái
nguồn đến trạng thái đích và được gán nhãn
lNhãn cĩ cú pháp: event-signature ’[’ guard-
condition ’]’ ’/’ action-expression
Lược đồ trạng thái
lVí dụ: lược đồ trạng thái của lớp Message
Composed
entry/ assign ID exit/ fill date on char/ handle character
compose command
Stored
entry/ save into folder
Read
entry/ convert to rich text
unhightlight focus
hightlight
read command / recover( id )
logout save command
re-fwd cmd / quote / append subject
Sending
do/ send( repc )
send command[ recipents != null ] / parse
Lược đồ trạng thái
import / map := create(file)
Dirty entry/ render No map
do/ load map do/ load image run
import failed
Modeling do/ model(map, param)
Saved entry/ render do/ store
modeling done
exit command / save
model command
save command
import command[ file valid ] map loaded[ image invalid ]
exit command image loaded
viewing command exit command
import / map := create( file )