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
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 bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_mo_hinh_hoa_phan_mem_tuan_4_state_machine_diagram.pdf
Nội dung text: 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
- MÔ HÌNH HOÁ PHẦN MỀM TUẦN 4: STATE MACHINE DIAGRAM GVLT: 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 NGUYỄN THỊ MINH TUYỀN 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 NGUYỄN THỊ MINH TUYỀN 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 Transition State MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 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 NGUYỄN THỊ MINH TUYỀN 5
- VÍ DỤ: DIGITAL CLOCK MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 6
- 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 NGUYỄN THỊ MINH TUYỀN 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ể được thực thi • 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 NGUYỄN THỊ MINH TUYỀN 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 NGUYỄN THỊ MINH TUYỀN 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 NGUYỄN THỊ MINH TUYỀN 10
- CÚ PHÁP • Event (trigger) được thực thi • Kích hoạt ngoại sinh • Quá trình chuyển trang thái diễn ra • 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 • Guard (condition) trạng thái nào diễn ra, event bị • Biểu thức Boolean huỷ bỏ • Nếu event xảy ra, guard được • Activity (effect) kiểm tra • Chuỗi các hành động được thực • Nếu guard đúng: hiện trong quá trình chuyển đổi • Tất cả các hoạt động của trạng trạng thái 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 NGUYỄN THỊ MINH TUYỀN 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 § Đối tượng rời khỏi state1 và § Activity3 được thực hiện 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 NGUYỄN THỊ MINH TUYỀN 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 NGUYỄN THỊ MINH TUYỀN 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 NGUYỄN THỊ MINH TUYỀN 14
- VÍ DỤ: REGISTRATION STATUS OF AN EXAM MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 15
- 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 NGUYỄN THỊ MINH TUYỀN 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: Triệu gọi thao tác • 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 NGUYỄN THỊ MINH TUYỀN 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 NGUYỄN THỊ MINH TUYỀN 18
- CHANGE EVENT VS. GUARD Checked permanently Only checked when event occurs MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 19
- 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 NGUYỄN THỊ MINH TUYỀN 20
- INITIAL STATE • “Bắt đầu” của một biểu đồ máy trạng thái • Pseudostate • Tạm thời, tức là hệ thống không thể duy trì trong trạng thái đó • Là cấu trúc điều khiển hơn là một trạng thái thật • Không có chuyển tiếp vào, thường có 1 cạnh ra • Nếu cạnh ra >1 • Guard phải loại trừ lẫn nhau và bao phủ tất cả các trường hợp có thể xảy ra để đảm bảo duy nhất một trạng thái đích được đạt đến • Nếu trạng thái đầu được kích hoạt, đối tượng sẽ lập tức chuyển sang trạng thái tiếp theo • Không có sự kiện nào được phép trên cạnh ra (ngoại trừ : new()) MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 21
- FINAL STATE VÀ TERMINATE NODE Final State • Là trạng thái thật • Đánh dấu kết thúc chuỗi trạng thái • Đối tượng có thể duy trì trong trạng thái cuối mãi mãi Terminate Node • Pseudostate • Kết thúc máy trạng thái • Đối tượng được mô hình chấm dứt sự tồn tại (= is deleted) MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 22
- DECISION NODE • Pseudostate • Được dùng để mô hình các chuyển tiếp thay thế equivalent? = equivalent? ≠ MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 23
- EXAMPLE: DECISION NODE MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 24
- PARALLELIZATION VÀ SYNCHRONIZATION NODE Parallelization node • Pseudostate • Tách luồng điều khiển thành nhiều luồng đồng thời • 1 cạnh vào • >1 cạnh ra Synchronization node • Pseudostate • Hợp nhất nhiều luồng đồng thời • >1 cạnh vào • 1 cạnh ra MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 25
- 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 NGUYỄN THỊ MINH TUYỀN 26
- COMPOSITE STATE • Từ đồng nghĩa: complex state, nested state • Chứa các trạng thái khác – “substates“ • Chỉ một trong các substate được kích hoạt tại một thời điểm • Độ sâu của các substate là tuỳ ý Composite state Substates MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 27
- VÀO MỘT COMPOSITE STATE (1/2) • Chuyển đến ranh giới Event State Executed Activities • Initial node của composite state "Beginning" S3 được kích hoạt e2 S1/S1.1 a0-a2-a3-a4 MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 28
- VÀO MỘT COMPOSITE STATE (2/2) Event State Executed Activities • Chuyển đến một substate "Beginning" S3 • Substate được kích hoạt e1 S1/S1.2 a0-a1-a3-a7 MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 29
- RA KHỎI MỘT COMPOSITE STATE (1/3) Event State Executed Activities • Chuyển đi từ một substate "Beginning" S1/S1.1 a3-a4 e3 S2 a6-a5-a2-a1 MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 30
- RA KHỎI MỘT COMPOSITE STATE (2/3) • Chuyển ra khỏi composite state Event State Executed Activities "Beginning" S1/S1.1 a3-a4 e5 S2 a6-a5-a3-a1 MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 31
- RA KHỎI MỘT COMPOSITE STATE (3/3) • Chuyển đổi hoàn toàn từ Event State Executed Activities composite state "Beginning" S1/S1.1 a3-a4 e4 S1/S1.2 a6-a7 e4 S2 a8-a5-a1 MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 32
- ORTHOGONAL STATE • Composite state được phân thành hai hoặc nhiều vùng tách biệt nhau bằng đường nét đứt • Một trạng thái của mỗi vùng luôn luôn được kích hoạt tại thời điểm nào đó, tức là các substate đồng thời • Entry: chuyển đến ranh giới của orthogonal state kích hoạt tất cả các initial state của tất cả các vùng • Exit: final state phải được đạt đến trong tất cả các vùng để kích hoạt sự kiện hoàn thành Using parallelization and synchronization node to enter different substates MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 33
- SUBMACHINE STATE (SMS) • Để tái sử dụng các phần của biểu đồ máy trạng thái trong các biểu đồ máy trạng thái khác • Ký hiệu: state:submachineState • Ngay khi submachine state được kích hoạt, hành vi của submachine được thực thi • Tương ứng với việc gọi một chương trình con trong ngôn ngữ lập trình Refinement symbol (optional) MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 34
- HISTORY STATE • Được sử dụng khi, sau khi một chuyển tiếp bên ngoài dẫn đến việc thoát khỏi composite state, hệ thống trở lại cùng substate đã được kích hoạt trước khi việc chuyển tiếp xảy ra. • Kích hoạt substate "cũ" và tất cả các entry activity được tiến hành tuần tự từ bên ngoài đến bên trong composite state • Chính xác một cạnh ra của history state chỉ đến một substate đã được sử dụng nếu • composite state không bao giờ được kích hoạt trước đó • composite state được thoát ra thông qua final state • Shallow history state khôi phục trạng thái trên cùng level với composite state • Deep history state khôi phục trạng thái kích hoạt cuối cùng active substate toàn bộ chiều sâu của substate MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 35
- VÍ DỤ: HISTORY STATE (1/4) Event State "Beginning" S5 e1 S4/S1/S1.1 e2 S1.2 e10 S5 e9 (H→) S1/S1.1 MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 36
- VÍ DỤ: HISTORY STATE (2/4) Event State "Beginning" S5 e1 S4/S1/S1.1 e2 S1.2 e10 S5 e8 (H*→) S1.2 MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 37
- VÍ DỤ: HISTORY STATE (3/4) Event State "Beginning" S5 e9 (H→) S1/S1.1 MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 38
- VÍ DỤ: HISTORY STATE (4/4) Event State "Beginning" S5 e8 (H*→) S3/S3.1 MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 39
- CÁC ĐIỂM VÀO/RA • Entry and Exit Points • Cơ chế đóng gói • Một composite state sẽ được vào hoặc thoát ra thông qua một trạng thái hơn là các initial state và final state • Quá trình chuyển tiếp bên ngoài mà không cần biết cấu trúc bên trong của composite state External view MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 40
- VÍ DỤ MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 41
- VÍ DỤ MINH HOẠ [1] MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 42
- VÍ DỤ MINH HOẠ [2] MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 43
- NOTATION ELEMENTS (1/2) Name Notation Description Description of a specific “time span” in which an object finds itself during its “life State cycle”. Within a state, activities can be executed by the object. State transition e from a source state S to a Transition target state T Initial state Start of a state machine diagram Final state End of a state machine diagram Termination of an object’s state machine Terminate node diagram MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 44
- NOTATION ELEMENTS (2/2) Name Syntax Beschreibung Node from which multiple alternative Decision node transitions can origin Splitting of a transition into multiple Parallelization node parallel transitions Synchronization Merging of multiple parallel transitions node into one transition Shallow / deep “Return address” to a substate or a history state nested substate of a composite state MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 45
- Câu hỏi? MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 46