Bỏ qua tới nội dung
Phạm Thủy
Quay lại

State Machine Diagram cho BA

Note này hướng dẫn vẽ UML State Machine Diagram. Nó trả lời câu hỏi: “Một thực thể (Entity) sinh ra như thế nào, sống qua những trạng thái nào, bị tác động bởi ai và chết đi ra sao?”

Note này dùng để làm gì

Mở note khi bạn có một đối tượng dữ liệu phức tạp trong hệ thống. Ví dụ: Đơn hàng (Order), Tài khoản (Account), Yêu cầu nghỉ phép (Leave Request). Nếu BA không vẽ sơ đồ này, Dev sẽ thả cửa cho phép cập nhật trạng thái “Đã giao hàng” thành “Đang chờ thanh toán” (điều vô lý trong logic kinh doanh).

1. Khái niệm cơ bản về Trạng thái và Chuyển tiếp

Một State Diagram không mô tả nhiều đối tượng (như Sequence), nó chỉ mô tả DUY NHẤT một đối tượng.

Ký hiệu cơ bản State Diagram

Công thức của một đường nối (Transition): Trạng thái A —(Sự kiện + Điều kiện bảo vệ)—> Trạng thái B

2. Vòng đời của Đơn hàng (ShopFlow Case Study)

Dưới đây là vòng đời hoàn chỉnh của một Thực thể Order trong hệ thống ShopFlow. Trạng thái của Order không thể nhảy lung tung mà bị khóa chặt bởi các sự kiện (Events).

ShopFlow Order Lifecycle

Giải nghĩa:

3. Lợi ích cực lớn của State Diagram cho Dev & QA

Khi BA bàn giao State Diagram này:

  1. Frontend Dev: Sẽ biết khi đơn hàng ở Shipped, thì phải Ẩn nút “Hủy Đơn”, chỉ hiện nút “Hoàn trả”.
  2. Backend Dev: Sẽ viết code chặn (Validation) API. Nếu ai đó cố tình bắn API đổi status từ Draft thẳng sang Delivered, hệ thống sẽ văng lỗi 400 Bad Request.
  3. QA/Tester: Sẽ viết Test Case cho các trạng thái không hợp lệ (Negative Test).

4. Anti-patterns

Anti-patternVì sao nguy hiểmCách sửa
Vẽ nhiều Object trong 1 sơ đồGây nhầm lẫn logic, dev không biết đang code cho thực thể nàoMỗi sơ đồ chỉ 1 Entity. Tách State của Order và Product ra.
Nhầm Event với StateSai bản chất UML, gây bối rối cho teamTrạng thái là Danh từ/Tính từ (Vd: “Đã gửi Email”). Hành động là Động từ (Vd: “Gửi Email”).
Thiếu Guard ConditionLỗ hổng logic (Vd: Hoàn trả bất kỳ lúc nào thay vì dưới 7 ngày)Luôn gắn điều kiện [Guard] cho các event nhạy cảm về thời gian/quyền.

5. Checklist nhanh

Trước khi giao sơ đồ cho Dev, hãy kiểm tra:


Mini-glossary

References

Internal Sources


Chia sẻ bài viết:

Bài trước
Sequence Diagram cho BA
Bài sau
SRS và BRD cho BA