Bài giảng Mô hình hóa phần mềm - Tuần 4: State Machine Diagram - Nguyễn Thị Minh Tuyền
NỘI DUNG
1.Giới thiệu
2.Trạng thái
3.Chuyển tiếp
4.Loại sự kiện
5.Loại trạng thái
6.Các điểm vào/ra
MÔ HÌNH HOÁ PHẦN MỀM
2
NỘI DUNG
1.Giới thiệu
2.Trạng thái
3.Chuyển tiếp
4.Loại sự kiện
5.Loại trạng thái
6.Các điểm vào/ra
MÔ HÌNH HOÁ PHẦN MỀM
3
GIỚI THIỆU
• Mỗi đối tượng có một số lượng hữu hạn các trạng thái suốt vòng
đời của nó.
• Biểu đồ máy trạng thái (State machine diagram) được dùng để:
• Mô hình các trạng thái có thể của một hệ thống hay đối tượng
• Chỉ ra cách dịch chuyển trạng thái xảy ra như là kết quả của môt sự
kiện
• Chỉ ra hành vi nào hệ thống hay đối tượng thể hiện ở mỗi trạng thái
• Ví dụ: mô tả ở mức cao của hành vi của một lecture hall
MÔ HÌNH HOÁ PHẦN MỀM
4
VÍ DỤ: LECTURE HALL WITH DETAILS
class LectureHall {
private boolean free;
public void occupy() {
free=false;
}
public void release() {
free=true;
}
MÔ HÌNH HOÁ PHẦN MỀM
5
NỘI DUNG
1.Giới thiệu
2.Trạng thái
3.Chuyển tiếp
4.Loại sự kiện
5.Loại trạng thái
6.Composite state
MÔ HÌNH HOÁ PHẦN MỀM
7
TRẠNG THÁI
• Trạng thái = các node của máy trạng thái
• Khi một trạng thái đang hoạt động
• Đối tượng đang ở trạng thái đó
• Tất cả các hoạt động bên trong đặc tả trong trạng
thái này có thể
• Một hoạt động gồm nhiều hành động
• entry / Activity(...)
• Được thực thi khi đối tượng vào trạng thái
• exit / Activity(...)
• Được thực thi khi đối tượng thoát khỏi trạng thái
• do / Activity(...)
• Được thực thi trong khi đối tượng còn duy trì trạng
thái này
MÔ HÌNH HOÁ PHẦN MỀM
8
NỘI DUNG
1.Giới thiệu
2.Trạng thái
3.Chuyển tiếp
4.Loại sự kiện
5.Loại trạng thái
6.Composite state
MÔ HÌNH HOÁ PHẦN MỀM
9
CHUYỂN TIẾP
• Chuyển từ trạng thái này sang trạng thái khác
Event
Guard
Sequence of actions (effect)
Source state
Transition
Target state
MÔ HÌNH HOÁ PHẦN MỀM
10
CÚ PHÁP
được thực thi
• Event (trigger)
• Quá trình chuyển trang thái
ra
• Kích hoạt ngoại
• Có thể kích hoạt quá trình
• Nếu guard sai:
chuyển đổi trạng thái
• Không có quá trình chuyển
trạng thái nào diễn ra, event bị
huỷ bỏ
• Guard (condition)
• Biểu thức Boolean
• Activity (effect)
• Nếu event xảy
kiểm tra
• Chuỗi các hành động được thực
hiện trong quá trình chuyển đổi
trạng thái
• Nếu guard đúng:
• Tất cả các hoạt động của trạng
thái hiện tại bị chấm dứt.
• Mọi hoạt động thoát liên quan
MÔ HÌNH HOÁ PHẦN MỀM
11
LOẠI CHUYỂN TIẾP [1]
Internal transition
External transition
§ Nếu event1 xảy ra
§ Nếu event1 xảy ra
§ Đối tượng duy trì trong state1
§ Activity3 được thực hiện
§ Đối tượng rời khỏi state1 và
Activity2 được thực hiện
§ Activity3 được thực hiện
§ Đối tượng vào state1 và
Activity1 được thực hiện
MÔ HÌNH HOÁ PHẦN MỀM
12
LOẠI CHUYỂN TIẾP [2]
• Khi nào các chuyển tiếp sau diễn ra ?
If e1 occurs, A1 is aborted and the object
changes to S2
If e1 occurs and g1 evaluates to true, A1 is
aborted and the object changes to S2
As soon as the execution of A1 is finished, a
completion event is generated that initiates the
transition to S2
As soon as the execution of A1 is finished, a
completion event is generated; if g1 evaluates to
true, the transition takes place; If not, this
transition can never happen
MÔ HÌNH HOÁ PHẦN MỀM
13
CHUỖI CÁC HOẠT ĐỘNG ĐƯỢC THỰC HIỆN
• Giả sử S1 đang ở trạng thái hoạt động, giá trị của x sau
khi e xảy ra là gì?
S1 becomes active, x is set to the value 4
e occurs, the guard is checked and evaluates to true
S1 is left, x is set to 5
The transition takes place, x is set to 10
S2 is entered, x is set to 11
MÔ HÌNH HOÁ PHẦN MỀM
14
NỘI DUNG
1.Giới thiệu
2.Trạng thái
3.Chuyển tiếp
4.Loại sự kiện
5.Loại trạng thái
6.Composite state
MÔ HÌNH HOÁ PHẦN MỀM
16
LOẠI SỰ KIỆN [1]
• Signal event: Bên gởi gởi tín hiệu cho bên nhận mà
không cần đợi trả lời (giao tiếp không đồng bộ)
• Ví dụ: rightmousedown, sendSMS(message)
• Call event: Tr
• Ví dụ: occupy(user,lectureHall), register(exam)
• Time event: Chuyển đổi trạng thái dựa trên thời gian
• Tương đối: dựa trên thời gian xảy ra sự kiện trong trạng thái
active
• Ví dụ: after(5 seconds)
• Tuyệt đối
• Ví dụ: when(time==16:00), when(date==20150101)
MÔ HÌNH HOÁ PHẦN MỀM
17
LOẠI SỰ KIỆN [2]
• Any receive event: đặc tả loại chuyển tiếp 'else',
xảy ra khi bất kỳ sự kiện nào xảy ra mà không kích
hoạt chuyển tiếp khác từ trạng thái hoạt động
• Từ khoá all
• Completion event: Được tạo tự động khi mọi thứ
được thực hiện ở trạng thái hiện tại được hoàn
thành.
• Change event: Kiểm tra lâu dài xem điều kiện có
đúng không
• E.g., when(x > y), after(90min)
MÔ HÌNH HOÁ PHẦN MỀM
18
NỘI DUNG
1.Giới thiệu
2.Trạng thái
3.Chuyển tiếp
4.Loại sự kiện
5.Loại trạng thái
6.Composite state
MÔ HÌNH HOÁ PHẦN MỀM
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mô hình hóa phần mềm - Tuần 4: State Machine Diagram - Nguyễn Thị Minh Tuyền", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- bai_giang_mo_hinh_hoa_phan_mem_tuan_4_state_machine_diagram.pdf