Chƣơng 1 TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM
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:
c. Biểu diễn bằng dạng bảng.
Mặc dù sự mô tả đồ thị thì rất trực giác và dễ giải thích, nhưng nó trở nên không thực tế khi số lượng các trạng thái là lớn. Khi chúng ta có nhiều trạng thái, thì đồ thị sẽ trở nên rối và rất khó theo dõi. Vì thế mô tả dạng bảng biểu hay sự mô tả theo ma trận là một cách rất hệ thống, thường là kiểu ma trận vuông (N x N) ô:
o Trạng thái được liệt kê theo cả hàng và cột.
Bảng 2. 1. Biểu diễn FSM bằng dạng bảng.
Hàng mô tả những trạng thái đầu và cột mô tả trạng thái kết thúc cho sự chuyển tiếp xác định.
Nếu sự chuyển tiếp từ trạng thái X (hàng X) sang trạng thái (cột) được cho phép thì phần tử tương ứng (ở vị trí hàng X, cột) được đánh 13 dấu bằng chính input output của nó. Với những input/output không xác định thì được đánh dấu bởi ký tự „-‟.