Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 6 — DFD & luồng dữ liệu: sinh và kiểm tra tính nhất quán

Data Flow Diagram (DFD) trả lời câu hỏi khác với BPMN: không phải "ai làm gì theo thứ tự nào" mà là "dữ liệu chảy từ đâu tới đâu, lưu ở đâu". DFD cực hữu ích khi BA làm việc với hệ thống, tích hợp, hay đặc tả yêu cầu dữ liệu. AI giúp sinh DFD và — quan trọng hơn — kiểm tra tính nhất quán mà mắt người dễ bỏ sót.

Bối cảnh của BA

Bạn viết đặc tả cho tính năng mới, cần chỉ rõ dữ liệu nào đi vào, lưu ở kho nào, xuất ra đâu. Vẽ DFD tay dễ mắc lỗi kinh điển: một data store có dữ liệu vào nhưng không ai đọc ra, hoặc một process xuất dữ liệu từ hư không.

4 thành phần DFD cần nhớ

  • External Entity (thực thể ngoài): nguồn/đích dữ liệu — khách hàng, hệ thống khác.
  • Process (tiến trình): biến đổi dữ liệu — "Xác thực đơn".
  • Data Store (kho dữ liệu): nơi lưu — "CSDL Đơn hàng".
  • Data Flow (luồng dữ liệu): mũi tên có nhãn dữ liệu.

Quy tắc cân bằng (balancing) — nơi AI giúp nhiều nhất

  • Mỗi process phải có ít nhất 1 input VÀ 1 output.
  • Data store không tự tạo dữ liệu — phải có luồng ghi vào trước khi đọc ra.
  • Không có luồng trực tiếp giữa 2 external entity (phải qua process).
  • Không có luồng trực tiếp giữa 2 data store.
AI có thể tự động soi các vi phạm này.

Các bước sinh & kiểm tra DFD

  • Mô tả hệ thống theo góc nhìn dữ liệu.
  • Yêu cầu AI sinh DFD mức 0 (context) rồi mức 1.
  • Yêu cầu AI kiểm tra quy tắc cân bằng.
  • Đối chiếu từng data store: ai ghi, ai đọc?
  • Bổ sung luồng thiếu phát hiện được.
  • Chốt với team kỹ thuật.

Prompt mẫu: sinh DFD + tự kiểm tra

Bạn là chuyên gia phân tích hệ thống. Từ mô tả dưới đây, hãy:
  • Sinh DFD mức 1 bằng Mermaid (dùng flowchart với node phân biệt:
external entity = [/.../\], process = ((...)), data store = [(...)]).
  • Sau đó KIỂM TRA các quy tắc cân bằng DFD và liệt kê mọi vi phạm:
- Process nào thiếu input hoặc output? - Data store nào chỉ có ghi mà không có đọc (hoặc ngược lại)? - Có luồng trực tiếp entity-entity hoặc store-store không?

Mô tả: "Khách đặt hàng, hệ thống xác thực rồi lưu vào CSDL Đơn hàng. Bộ phận kho đọc đơn để chuẩn bị giao. Hệ thống gửi email xác nhận cho khách."

Ví dụ output

flowchart LR
    KH[/Khách hàng/] -->|Thông tin đơn| P1((Xác thực đơn))
    P1 -->|Đơn hợp lệ| DS[(CSDL Đơn hàng)]
    DS -->|Đơn cần giao| P2((Chuẩn bị giao))
    P2 -->|Trạng thái| KH
    P1 -->|Email xác nhận| KH

Báo cáo kiểm tra kèm theo: "Cảnh báo: Bộ phận kho (external) chưa được mô hình hóa như entity nhận dữ liệu — cần bổ sung."

Template tái sử dụng: checklist cân bằng DFD

[ ] Mỗi process có ≥1 input và ≥1 output?
[ ] Mỗi data store có cả luồng ghi và luồng đọc?
[ ] Không có luồng entity ↔ entity trực tiếp?
[ ] Không có luồng store ↔ store trực tiếp?
[ ] Mọi luồng đều có nhãn dữ liệu cụ thể (không để trống)?
[ ] DFD mức con có cân bằng với mức cha (cùng input/output biên)?

Sai lầm thường gặp

  • Lẫn lộn DFD với flowchart (ảo giác loại sơ đồ): AI hay vẽ DFD thành flowchart điều khiển (có gateway quyết định). DFD KHÔNG có logic điều kiện — nó chỉ mô tả luồng dữ liệu. Nhắc rõ trong prompt.
  • Data store mồ côi: kho dữ liệu có ghi mà không đọc (hoặc ngược lại) là lỗi kinh điển — hãy để AI soi, nhưng bạn tự xác nhận vì AI cũng có thể bỏ sót.
  • Nhãn luồng mơ hồ: "dữ liệu" chung chung vô nghĩa. Ép nhãn cụ thể ("thông tin thanh toán").
  • Tin tuyệt đối kết quả kiểm tra của AI: AI kiểm tra cân bằng khá tốt nhưng không hoàn hảo — vẫn cần bạn rà lại checklist thủ công.
  • Rò rỉ dữ liệu: mô tả hệ thống thật có thể lộ kiến trúc nội bộ, tên CSDL production. Trừu tượng hóa trước khi đưa AI.
Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi