FSM là những mô hình bao gồm:
o Những yếu tố tĩnh: gồm có trạng thái (state) và sự chuyển tiếp trạng thái (state transition). Những sự chuyển tiếp trạng thái thường được gọi là các sự chuyển tiếp. Số lượng của những trạng thái là hữu hạn. Sự chuyển tiếp trực tiếp từ trạng thái A sang trạng thái B chỉ có thể theo 1 đường link duy nhất là A-B. Số lượng của những chuyển tiếp là giới hạn.
o Những yếu tố động: gồm đầu vào input được cung cấp cho FSM và đầu ra output được lấy ra từ FSM ở việc thực hiện trong hệ thống. Nói chung, cả hai số lượng đầu vào và đầu ra đều là hữu hạn. Nếu trường hợp mà có số lượng đầu vào và đầu ra có thể chiếm một số lượng lớn hoặc một số lượng vô hạn các giá trị, thông thường chúng ta cần phải nhóm chúng vào các phân vùng.
3
Các mô hình FSM và các yếu tố của hệ thống cần kiểm tra được biểu diễn bằng đồ thị gồm:
o Mỗi trạng thái được mô tả như là một nút (node) trong đồ thị.
o Mỗi sự chuyển tiếp được diễn tả như một đường link được kết nối trực tiếp từ trạng thái này sang trạng thái khác.
o Input và output được nối với sự chuyển tiếp và được diễn tả như sự chú thích bởi các sự chuyển tiếp.
Thông thường một trạng thái thì tương ứng với vài trạng thái xử lý chương trình của một hệ thống hoặc là một khoảng thời gian cụ thể, hoặc là tương ứng với một trường hợp đặc biệt giữa những hoạt động nào đó của hệ thống.
2.4. Một số cách biểu diễn cho FSM.
a. Biểu diễn kiểu liệt kê
Cho FSM ATM= <S, I, O, s0, δ, λ>. Trạng thái ban đầu s0
Tập trạng thái S = {s1, s2..., sn} Tập Inputs I = {i1, i2, ..., in}
Tập chuyển trạng thái {δ(ii,sj) = st} với ∀ ii I và sj, st S Tập Outputs O = {λ(si,ik) = ot} với si S; ∀ ik I; ∀ot O
Ví dụ: FSM ATM = <S, I, O, s0, δ, λ),
Tập các trạng thái S={S0, S1, S2}
Tập Inputs I={<card (pin,b)/prompt for pin>,
<pin(p); [(p!=pin) & attempt<3]/ Display error>, <withdraw(w)/ b=b-w>,<deposit(d)/ b=b+d>, <continue transaction/print(b); Display menu>}
Tập Outputs O={<card (pin,b)/ prompt for pin>, <pin(p);[(p!=pin)&attempt<3]/ Display error>, <withdraw(w)/ b=b-w>,<deposit(d) / b=b+d>, <continue transaction/ print(b); Display menu>}
Trạng thái ban đầu: s0=S0
Tập chuyển trạng thái: {δ(S0, pin(p); p==pin)=S1, δ (S1, withdraw(w))=S2, δ (S1,exit)=S0,
δ(S1, deposit(d))=S2, δ(S2, continue transaction)=S1 }.
Tập Outputs tƣơng ứng với sự chuyển trạng thái:
{ λ(S0, pin(p); p==pin)=Display menu, λ (S1, withdraw(w))=b=b-w, λ(S1, exit)=Eject card, λ (S1, deposit(d))=b=b+d,
λ(S2, continue transaction)=print(b);display menu}.
b. Biểu diễn bằng đồ thị
Các FSM và các yếu tố của chúng có thể được biểu diễn bằng đồ thị. Các yếu tố chính trong đồ thị bao gồm:
o Mỗi trạng thái được mô tả như là một nút (node) trong đồ thị.
o Mỗi sự chuyển tiếp được diễn tả như một đường link được kết nối trực tiếp từ trạng thái này sang trạng thái khác được coi là cạnh của đồ thị với nhãn là cặp input/output (ký hiệu „/‟ để phân biệt input và output). Từ việc mô tả FSM ATM bằng phương pháp liệt kê như ví dụ ở trên, ta có thể biểu diễn FSM ATM bằng đồ thị như hình 2.5 dưới đây: