Bài giảng Mô hình hoá phần mềm - Tuần 4: State machine diagram - Nguyễn Thị Minh Tuyền

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

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

Bài giảng Mô hình hoá phần mềm - Tuần 4: State machine diagram - Nguyễn Thị Minh Tuyền trang 1

Trang 1

Bài giảng Mô hình hoá phần mềm - Tuần 4: State machine diagram - Nguyễn Thị Minh Tuyền trang 2

Trang 2

Bài giảng Mô hình hoá phần mềm - Tuần 4: State machine diagram - Nguyễn Thị Minh Tuyền trang 3

Trang 3

Bài giảng Mô hình hoá phần mềm - Tuần 4: State machine diagram - Nguyễn Thị Minh Tuyền trang 4

Trang 4

Bài giảng Mô hình hoá phần mềm - Tuần 4: State machine diagram - Nguyễn Thị Minh Tuyền trang 5

Trang 5

Bài giảng Mô hình hoá phần mềm - Tuần 4: State machine diagram - Nguyễn Thị Minh Tuyền trang 6

Trang 6

Bài giảng Mô hình hoá phần mềm - Tuần 4: State machine diagram - Nguyễn Thị Minh Tuyền trang 7

Trang 7

Bài giảng Mô hình hoá phần mềm - Tuần 4: State machine diagram - Nguyễn Thị Minh Tuyền trang 8

Trang 8

Bài giảng Mô hình hoá phần mềm - Tuần 4: State machine diagram - Nguyễn Thị Minh Tuyền trang 9

Trang 9

Bài giảng Mô hình hoá phần mềm - Tuần 4: State machine diagram - Nguyễn Thị Minh Tuyền trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 46 trang duykhanh 9060
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Mô hình hoá 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

Tóm tắt nội dung tài liệu: Bài giảng Mô hình hoá phần mềm - Tuần 4: State machine diagram - Nguyễn Thị Minh Tuyền

Bài giảng Mô hình hoá 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

File đính kèm:

  • pdfbai_giang_mo_hinh_hoa_phan_mem_tuan_4_state_machine_diagram.pdf