Files
sys-analysis-design/introduction.md
Leonard-ThindPad-P50 c81f249920 init git
2026-09-08 10:26:21 +07:00

6.3 KiB

Tài liệu Phân tích và Thiết kế Hệ thống (System Analysis and Design Document - SAD) hợp nhất toàn bộ yêu cầu nghiệp vụ, kiến trúc kỹ thuật và mô hình dữ liệu để làm kim chỉ nam cho đội ngũ phát triển, kiểm thử và vận hành.

0. Quản lý tài liệu (Document Control)

  • Lịch sử phiên bản: Bảng ghi nhận version, ngày cập nhật, người soạn/sửa, mô tả thay đổi.
  • Người phê duyệt: Danh sách stakeholder ký duyệt (Product Owner, Kiến trúc sư trưởng, Trưởng nhóm kỹ thuật...).
  • Tài liệu tham chiếu: Liên kết tới các tài liệu liên quan (BRD, hợp đồng, tiêu chuẩn tuân thủ, thiết kế của các hệ thống tích hợp).

1. Tổng quan dự án (System Overview)

  • Mục tiêu & Phạm vi: Xác định bài toán cần giải quyết, ranh giới hệ thống (những gì hệ thống làm và không làm).
  • Đối tượng sử dụng: Phân loại các nhóm người dùng và cấp độ phân quyền tương ứng.
  • Thuật ngữ (Glossary): Định nghĩa các khái niệm chuyên ngành hoặc quy tắc nghiệp vụ đặc thù.
  • Giả định (Assumptions): Những điều kiện được mặc định là đúng khi thiết kế (VD: hạ tầng cloud đã sẵn có, người dùng có kết nối Internet ổn định).
  • Ràng buộc (Constraints): Giới hạn về ngân sách, thời gian, công nghệ bắt buộc, quy định pháp lý phải tuân thủ.

2. Phân tích yêu cầu (Requirements Analysis)

  • Yêu cầu chức năng (Functional Requirements): Danh sách chi tiết các tính năng (đăng nhập, thanh toán, xuất báo cáo...).
  • Yêu cầu phi chức năng (Non-Functional Requirements): Tiêu chuẩn về hiệu năng, độ bảo mật, khả năng mở rộng (scalability), thời gian hoạt động (availability), khả năng bảo trì (maintainability), khả năng đa ngôn ngữ (i18n/l10n) và tuân thủ pháp lý (GDPR, Nghị định 13/2023, PCI-DSS...).
  • Sơ đồ Use Case: Mô tả sự tương tác giữa các tác nhân (Actors) và các chức năng hệ thống.
  • Ma trận truy vết yêu cầu (Traceability Matrix): Liên kết mỗi yêu cầu với thành phần thiết kế và test case tương ứng để đảm bảo không bỏ sót khi review.

3. Thiết kế kiến trúc (System Architecture Design)

  • Mô hình kiến trúc: Lựa chọn phong cách kiến trúc (Monolith, Microservices, Event-Driven, MVC).
  • Sơ đồ thành phần & triển khai (Component & Deployment Diagram): Cấu trúc phần cứng, hạ tầng cloud, máy chủ web, cơ sở dữ liệu và cơ chế cân bằng tải.
  • Môi trường triển khai (Environments): Phân tách rõ Dev / Staging / Production, cấu hình khác biệt giữa các môi trường.
  • Tích hợp bên thứ ba: Phương án kết nối API với các dịch vụ bên ngoài (cổng thanh toán, SMS gateway, hóa đơn điện tử).

4. Thiết kế API (API Design)

  • Đặc tả API: Danh sách endpoint (REST/GraphQL/gRPC), phương thức, cấu trúc request/response, mã lỗi chuẩn hóa.
  • Xác thực & phân quyền API: Cơ chế OAuth2/JWT/API Key, scope và rate limiting.
  • Quản lý phiên bản API (Versioning): Chiến lược version hóa và chính sách deprecation.

5. Thiết kế dữ liệu (Data & Database Design)

  • Sơ đồ ERD (Entity Relationship Diagram): Chi tiết các thực thể, thuộc tính và mối quan hệ giữa các bảng.
  • Cấu trúc cơ sở dữ liệu (Database Schema): Thiết kế chi tiết các bảng, kiểu dữ liệu, khóa chính (Primary Key), khóa ngoại (Foreign Key) và chỉ mục (Index).
  • Chiến lược dữ liệu: Phương án lưu trữ cache (Redis/Memcached), sao lưu (Backup) và phân vùng dữ liệu.

6. Thiết kế luồng xử lý chi tiết (Detailed Design)

  • Sơ đồ tuần tự (Sequence Diagram): Luồng truyền tin theo thời gian giữa User, Interface, Controller, Service và Database cho từng tính năng.
  • Sơ đồ lớp (Class Diagram) & Trạng thái (State Diagram): Cấu trúc hướng đối tượng và vòng đời chuyển đổi trạng thái của dữ liệu.
  • Logic nghiệp vụ (Business Rules): Mô tả thuật toán xử lý hoặc công thức tính toán phức tạp.

7. Thiết kế giao diện (UI/UX Design)

  • Wireframe & Mockup: Bản vẽ phác thảo cấu trúc bố cục và giao diện chi tiết các màn hình.
  • Luồng người dùng (User Flow Diagram): Sơ đồ điều hướng thể hiện hành trình của người dùng qua các thao tác trên màn hình.

8. Thiết kế bảo mật (Security Design)

  • Xác thực & phân quyền: Cơ chế đăng nhập (SSO, MFA), mô hình phân quyền (RBAC/ABAC).
  • Bảo vệ dữ liệu: Mã hóa dữ liệu khi lưu trữ (at-rest) và khi truyền tải (in-transit), quản lý khóa/secret (Key Management, Vault).
  • Phòng chống rủi ro bảo mật: Rà soát theo OWASP Top 10, chống tấn công phổ biến (SQL Injection, XSS, CSRF...).
  • Tuân thủ: Đối chiếu với các chuẩn bảo mật bắt buộc theo lĩnh vực (PCI-DSS cho thanh toán, GDPR/Nghị định 13 cho dữ liệu cá nhân).

9. Kế hoạch vận hành & Kiểm thử (Testing & Deployment)

  • Chiến lược kiểm thử (Test Strategy): Phạm vi và trách nhiệm cho từng loại kiểm thử — Unit, Integration, UAT, Performance, Security testing.
  • Kịch bản kiểm thử (Test Cases): Bộ tiêu chuẩn chấp nhận (Acceptance Criteria) để xác minh tính đúng đắn của chức năng.
  • Quy trình CI/CD & Bảo mật: Chiến lược đóng gói, tự động triển khai, phân quyền truy cập và mã hóa dữ liệu.
  • Giám sát & Nhật ký (Monitoring & Logging): Công cụ theo dõi hệ thống (metrics, tracing, alerting), quy ước ghi log và ngưỡng cảnh báo sự cố.
  • Kế hoạch rollback & khôi phục thảm họa (Rollback & Disaster Recovery): Phương án hoàn tác khi triển khai lỗi, quy trình khôi phục hệ thống và dữ liệu khi xảy ra sự cố nghiêm trọng.