“Mỗi phương pháp phân tích hệ thống đều bắt đầu từ một cách nhìn về thế giới. Structured Analysis nhìn thế giới qua chức năng và dữ liệu.”
1. Mở đầu
Trong chuỗi bài về Phân tích và Thiết kế Hệ thống theo hướng đối tượng (OOAD), chúng ta đã bắt đầu từ Business Problem, xác định Requirement, sau đó từng bước mô hình hóa hệ thống bằng Use Case, Activity Diagram, Sequence Diagram và Class Diagram.
Đó là cách tiếp cận phổ biến trong phát triển phần mềm hiện đại.
Tuy nhiên, nếu bạn mở nhiều giáo trình đại học hoặc tham gia một dự án nâng cấp hệ thống thông tin đã tồn tại nhiều năm, rất có thể bạn sẽ gặp những mô hình hoàn toàn khác:
- Business Function Diagram (BFD)
- Data Flow Diagram (DFD)
- Data Dictionary
- Entity Relationship Diagram (ERD)
Chúng không thuộc UML và cũng không được xây dựng trên tư duy hướng đối tượng. Thay vào đó, chúng là thành phần của Structured Analysis (Phân tích có cấu trúc) – một phương pháp từng giữ vai trò nền tảng trong phân tích hệ thống thông tin và đến nay vẫn được sử dụng trong nhiều lĩnh vực.
Vậy Structured Analysis là gì? Tại sao phương pháp này ra đời? Và vì sao dù đã có OOAD, chúng ta vẫn cần hiểu nó?
Đó là nội dung của bài học này.
2. Từ bài toán đến phương pháp phân tích
Một tổ chức muốn xây dựng hệ thống quản lý đào tạo.
Người phân tích cần trả lời nhiều câu hỏi:
- Hệ thống cần thực hiện những công việc gì?
- Dữ liệu được tạo ra ở đâu?
- Dữ liệu được xử lý như thế nào?
- Dữ liệu được lưu trữ ở đâu?
- Các bộ phận trao đổi dữ liệu với nhau ra sao?
Ngày nay, chúng ta thường nghĩ ngay đến Use Case hay Activity Diagram. Nhưng trong giai đoạn những năm 1970–1980, khi kỹ nghệ phần mềm còn ở giai đoạn đầu, các nhà nghiên cứu lựa chọn một cách tiếp cận khác.
Họ xem hệ thống thông tin là một tập hợp các chức năng xử lý dữ liệu.
Từ góc nhìn đó, Structured Analysis được hình thành.
3. Triết lý của Structured Analysis
Structured Analysis được xây dựng trên hai khái niệm cốt lõi:
- Chức năng (Function)
- Dữ liệu (Data)
Một hệ thống thông tin được hiểu là tập hợp các chức năng. Mỗi chức năng nhận dữ liệu đầu vào, xử lý dữ liệu và tạo ra dữ liệu đầu ra hoặc lưu trữ dữ liệu để sử dụng về sau.
Ví dụ, trong hệ thống quản lý đào tạo có thể tồn tại các chức năng như:
- Quản lý sinh viên
- Quản lý học phần
- Đăng ký học phần
- Quản lý học phí
- Báo cáo thống kê
Mỗi chức năng đều tiêu thụ hoặc tạo ra dữ liệu. Vì vậy, muốn hiểu hệ thống, người phân tích phải hiểu cả các chức năng và luồng dữ liệu giữa chúng.
Đó chính là tư tưởng trung tâm của Structured Analysis.
4. Ba câu hỏi cốt lõi của phương pháp
Toàn bộ phương pháp Structured Analysis có thể được xem như quá trình trả lời ba câu hỏi.
4.1. Hệ thống cần thực hiện những chức năng gì?
Đây là bước xác định phạm vi của hệ thống.
Người phân tích không quan tâm đến giao diện hay cơ sở dữ liệu ngay từ đầu, mà xác định những nhóm chức năng mà hệ thống phải cung cấp.
Câu hỏi này được trả lời bằng Business Function Diagram (BFD).
4.2. Dữ liệu di chuyển giữa các chức năng như thế nào?
Sau khi biết hệ thống có những chức năng nào, bước tiếp theo là xác định cách dữ liệu được trao đổi và xử lý.
Ví dụ:
- Sinh viên gửi yêu cầu đăng ký học phần.
- Hệ thống kiểm tra điều kiện đăng ký.
- Kết quả được lưu vào cơ sở dữ liệu.
- Thông báo được gửi lại cho sinh viên.
Chuỗi xử lý này được mô hình hóa bằng Data Flow Diagram (DFD).
4.3. Dữ liệu được tổ chức như thế nào?
Cuối cùng, dữ liệu cần được lưu trữ một cách có cấu trúc.
Người phân tích phải xác định:
- Có những thực thể nào?
- Mỗi thực thể có những thuộc tính gì?
- Các thực thể liên kết với nhau ra sao?
Đây là nhiệm vụ của Entity Relationship Diagram (ERD).
4. Ba mô hình – Một tư duy
Trong nhiều giáo trình, BFD, DFD và ERD thường được trình bày như ba chương độc lập.
Thực tế, chúng là ba bước liên tiếp của cùng một quá trình phân tích.
Hệ thống cần làm gì?
│
▼
Business Function Diagram (BFD)
│
▼
Dữ liệu được xử lý như thế nào?
│
▼
Data Flow Diagram (DFD)
│
▼
Dữ liệu được lưu trữ ra sao?
│
▼
Entity Relationship Diagram (ERD)
Hiểu được mối liên hệ này sẽ giúp bạn không còn xem các sơ đồ là những kỹ thuật rời rạc, mà là những góc nhìn bổ sung cho nhau để mô hình hóa cùng một hệ thống.
4. Structured Analysis và OOAD
Structured Analysis và OOAD đều hướng đến mục tiêu xây dựng một hệ thống đáp ứng nhu cầu của tổ chức. Tuy nhiên, điểm xuất phát của hai phương pháp khác nhau.
| Structured Analysis | OOAD |
|---|---|
| Chức năng là trung tâm | Đối tượng là trung tâm |
| Quan tâm đến luồng dữ liệu | Quan tâm đến hành vi và sự cộng tác của các đối tượng |
| Mô hình chính: BFD, DFD, ERD | Mô hình chính: Use Case, Activity, Sequence, Class |
| Phù hợp với phân tích chức năng và dữ liệu | Phù hợp với thiết kế phần mềm hướng đối tượng |
Điều này không có nghĩa là một phương pháp đúng và phương pháp kia sai.
Chúng chỉ phản ánh hai góc nhìn khác nhau về cùng một hệ thống.
6. Structured Analysis còn giá trị không?
Câu trả lời là có.
Nhiều hệ thống thông tin trong ngân hàng, bảo hiểm, doanh nghiệp lớn và khu vực công được xây dựng từ nhiều năm trước bằng phương pháp Structured Analysis.
Ngoài ra, trong các dự án hiện đại hóa hoặc tích hợp hệ thống, việc đọc và hiểu các tài liệu BFD, DFD hoặc ERD vẫn là một kỹ năng cần thiết đối với Business Analyst và System Analyst.
Ngay cả khi dự án mới được phát triển theo OOAD, tư duy phân tích chức năng và luồng dữ liệu của Structured Analysis vẫn giúp người phân tích hiểu rõ hơn về quy trình nghiệp vụ.
7. Tóm tắt
Structured Analysis là phương pháp phân tích hệ thống dựa trên hai khái niệm cốt lõi: chức năng và dữ liệu.
Phương pháp này trả lời ba câu hỏi quan trọng:
- Hệ thống cần thực hiện những chức năng gì?
- Dữ liệu được xử lý như thế nào giữa các chức năng?
- Dữ liệu được tổ chức và lưu trữ ra sao?
Để trả lời ba câu hỏi đó, Structured Analysis sử dụng ba mô hình trung tâm:
- Business Function Diagram (BFD) để mô hình hóa chức năng.
- Data Flow Diagram (DFD) để mô hình hóa luồng dữ liệu.
- Entity Relationship Diagram (ERD) để mô hình hóa dữ liệu.
Ba mô hình này không tồn tại độc lập mà tạo thành một quy trình phân tích thống nhất, giúp chuyển một bài toán nghiệp vụ thành mô hình hệ thống.
8. Checklist
Sau bài học này, bạn nên trả lời được:
- Structured Analysis là gì?
- Hai khái niệm cốt lõi của phương pháp là gì?
- Ba câu hỏi mà Structured Analysis hướng tới là gì?
- Vai trò của BFD, DFD và ERD trong toàn bộ quá trình phân tích?
- Structured Analysis khác OOAD ở điểm nào?
9. Góc nhìn nghề nghiệp
Một System Analyst giỏi không chỉ biết một phương pháp. Trong thực tế, bạn có thể tham gia phát triển một hệ thống mới bằng OOAD nhưng vẫn phải đọc tài liệu phân tích của một hệ thống cũ được xây dựng theo Structured Analysis. Hiểu cả hai cách tiếp cận giúp bạn lựa chọn đúng công cụ cho từng bối cảnh, thay vì áp dụng một phương pháp cho mọi loại dự án.
Bài tiếp theo
Trong bài này, chúng ta đã biết rằng câu hỏi đầu tiên của Structured Analysis là:
Hệ thống cần thực hiện những chức năng gì?
Ở bài tiếp theo, chúng ta sẽ học mô hình đầu tiên của phương pháp này: Business Function Diagram (BFD) – công cụ dùng để xác định và tổ chức các chức năng của hệ thống trước khi phân tích luồng dữ liệu và thiết kế cơ sở dữ liệu.
