Sơ đồ luồng dữ liệu (DFD) là công cụ nền tảng trong phân tích và thiết kế hệ thống. Chúng cung cấp biểu diễn trực quan về cách thông tin di chuyển qua một hệ thống. Hiểu rõ độ sâu của một DFD là điều cần thiết để đảm bảo các yêu cầu được thu thập chính xác. Hướng dẫn này khám phá quá trình chuyển từ sơ đồ bối cảnh cấp cao xuống sơ đồ cấp 1 chi tiết. Chúng ta sẽ xem xét các nguyên tắc phân rã, bảo toàn dữ liệu và tính toàn vẹn cấu trúc mà không phụ thuộc vào các công cụ phần mềm cụ thể.

Các DFD không phải là tài liệu phẳng; chúng tồn tại theo thứ bậc. Cấu trúc này cho phép các nhà phân tích xem xét hệ thống ở các mức độ chi tiết khác nhau. Mỗi cấp độ thêm tính cụ thể hơn cho các quá trình và luồng dữ liệu.
Sự chuyển tiếp từ sơ đồ bối cảnh sang cấp 1 thường là bước thách thức nhất đối với các nhà phân tích mới. Nó đòi hỏi sự cân bằng giữa nhu cầu rõ ràng và nhu cầu chi tiết. Nếu sơ đồ quá cao, nó thiếu thông tin có thể hành động. Nếu quá thấp, sơ đồ trở nên rối rắm và mất đi bức tranh tổng thể.
Sơ đồ bối cảnh đóng vai trò là điểm tựa cho toàn bộ bộ công cụ DFD. Nó xác định biên giới của hệ thống đang được nghiên cứu. Tất cả những gì bên trong vòng tròn là một phần của hệ thống; tất cả những gì bên ngoài là bên ngoài.
Xác định biên giới là điều quan trọng. Một thực thể được coi là bên ngoài nếu nó nằm ngoài phạm vi dự án hiện tại. Ví dụ, trong một hệ thống lương, cơ quan thuế có thể là một thực thể bên ngoài, nhưng phòng tài chính có thể là nội bộ. Việc xác định sai biên giới dẫn đến mở rộng phạm vi và gây nhầm lẫn.
Phân rã là quá trình chia một quy trình phức tạp thành các tiểu quy trình nhỏ hơn, dễ quản lý hơn. Đây là cơ chế cốt lõi để tạo sơ đồ cấp 1. Điều này không chỉ đơn thuần là chia nhỏ nhiệm vụ; mà còn nhằm làm rõ logic nội tại của hệ thống.
Khi chuyển từ cấp 0 sang cấp 1, cần tuân theo một số quy tắc để duy trì tính nhất quán về mặt logic.
Một trong những yêu cầu kỹ thuật quan trọng nhất là cân bằng luồng dữ liệu. Dữ liệu đi vào quy trình cấp 0 phải bằng với tổng dữ liệu đi vào các quy trình cấp 1. Tương tự, dữ liệu rời khỏi quy trình cấp 0 phải bằng với tổng dữ liệu rời khỏi các quy trình cấp 1.
Nếu sơ đồ ngữ cảnh hiển thị một “Mẫu đơn đặt hàng” đi vào hệ thống, sơ đồ cấp 1 phải hiển thị chính mẫu đơn đó đi vào một trong các tiểu quy trình. Nếu sơ đồ cấp 1 hiển thị “Mã khách hàng” được truyền nội bộ, thì nó không thể là đầu vào hoặc đầu ra bên ngoài trong sơ đồ cấp 0, trừ khi nó đã xuất hiện ở đó.
Khi kế hoạch phân rã đã sẵn sàng, việc xây dựng thực tế sẽ bắt đầu. Điều này bao gồm việc xác định các khu vực chức năng chính của hệ thống.
Hãy nhìn vào quy trình duy nhất từ sơ đồ ngữ cảnh. Hỏi: Những hoạt động chính nào cần thiết để thực hiện mục đích của hệ thống? Những hoạt động này sẽ trở thành các hình tròn hoặc hình bong bóng trong sơ đồ cấp 1.
Kết nối các quy trình bằng các mũi tên. Những mũi tên này đại diện cho sự di chuyển dữ liệu giữa các quy trình nội bộ. Bạn cũng có thể vẽ các mũi tên kết nối các thực thể bên ngoài với các tiểu quy trình mới này.
Trong khi sơ đồ ngữ cảnh loại bỏ chúng, sơ đồ cấp độ 1 thường bao gồm các kho dữ liệu. Một kho dữ liệu là nơi dữ liệu được lưu trữ khi không hoạt động. Nó có thể là một cơ sở dữ liệu, một tập tin, hoặc một tủ hồ sơ vật lý.
Khi vẽ các kho dữ liệu:
Ngay cả các nhà phân tích có kinh nghiệm cũng gặp lỗi khi tạo sơ đồ luồng dữ liệu (DFD). Nhận diện những mẫu này sớm giúp tiết kiệm thời gian trong quá trình xác minh.
Lỗ đen là một quá trình có đầu vào nhưng không có đầu ra. Điều này ngụ ý rằng dữ liệu đang bị tiêu thụ mà không tạo ra kết quả. Trong một hệ thống chức năng, mọi đầu vào đều phải dẫn đến một dạng đầu ra hoặc lưu trữ dữ liệu.
Phép màu là một quá trình có đầu ra nhưng không có đầu vào. Điều này ngụ ý rằng dữ liệu đang được tạo ra từ không có gì. Mọi đầu ra đều phải được suy ra từ dữ liệu đầu vào nào đó.
Sơ đồ luồng dữ liệu (DFD) theo dõi luồng dữ liệu, chứ không phải luồng điều khiển. Một luồng điều khiển đại diện cho tín hiệu để bắt đầu hoặc dừng một quá trình (ví dụ: “Nút Bắt đầu được nhấn”). Nếu bạn thấy một luồng trông giống như tín hiệu điều khiển, thì nó có khả năng thực sự là dữ liệu (ví dụ: “Yêu cầu Bắt đầu”). DFD không xử lý thời gian hoặc điều khiển logic một cách rõ ràng.
Điều này xảy ra khi các đầu vào của sơ đồ cấp độ 1 không khớp với các đầu vào của sơ đồ ngữ cảnh. Luôn kiểm tra sự bảo toàn dữ liệu sau khi vẽ sơ đồ cấp độ 1.
Bảng sau tóm tắt sự khác biệt giữa các cấp độ để hỗ trợ hiểu rõ khi nào nên sử dụng cấp độ nào.
| Tính năng | Sơ đồ ngữ cảnh (cấp độ 0) | Sơ đồ cấp độ 1 |
|---|---|---|
| Quá trình trung tâm | Một quá trình duy nhất | Nhiều quá trình con |
| Kho dữ liệu | Không có | Có, được bao gồm |
| Mức độ chi tiết | Tóm tắt cấp cao | Phân tích chức năng |
| Các thực thể bên ngoài | Tất cả các thực thể chính | Tập con hoặc các thực thể giống nhau |
| Mục đích chính | Xác định phạm vi hệ thống | Xác định logic nội bộ |
Sau bản nháp ban đầu, sơ đồ phải được xác minh. Đây không phải là một lần kiểm tra duy nhất mà là một chu kỳ xem xét và tinh chỉnh.
Khi bạn đi sâu hơn vào cấu trúc DFD, bạn sẽ phải đối mặt với các quyết định về độ chi tiết. Bạn nên đi sâu đến đâu?
Không có quy tắc chung nào, nhưng tồn tại các hướng dẫn chung:
Các kho dữ liệu có thể làm phức tạp luồng trực quan. Đảm bảo chúng được đặt một cách hợp lý. Không vẽ đường chéo xuyên qua một quá trình. Nếu đường phải đi qua một quá trình, hãy sử dụng điểm nối hoặc ký hiệu giao điểm để chỉ ra rằng nó đang đi ngang qua, chứ không tương tác.
Phân biệt giữa các tác nhân bên trong hệ thống và những tác nhân bên ngoài. Nếu một người vận hành là một phần trong quy trình hệ thống (ví dụ: nhân viên nhập dữ liệu), họ có thể là một tác nhân nội bộ, nhưng thường thì họ được biểu diễn như một thực thể bên ngoài vì họ nằm ngoài ranh giới phần mềm. Tính nhất quán trong định nghĩa này là điều then chốt.
Sơ đồ chỉ là một phần của câu chuyện. Các mô tả văn bản là cần thiết để giải thích logic.
Thành công khi chuyển từ sơ đồ bối cảnh sang cấp độ 1 đòi hỏi một cách tiếp cận có kỷ luật. Điều này không chỉ đơn thuần là vẽ thêm nhiều hộp; mà là việc làm rõ sự thật về hệ thống.
Bằng cách tuân theo các bước có cấu trúc này, bạn sẽ tạo nên nền tảng vững chắc cho thiết kế hệ thống. Sơ đồ cấp độ 1 trở thành bản vẽ thiết kế cho các nhà phát triển và công cụ giao tiếp cho các bên liên quan kinh doanh. Nó cầu nối khoảng cách giữa các yêu cầu trừu tượng và triển khai cụ thể.