Software design document (SDD) là tài liệu thiết kế phần mềm của dự án, được sử dụng cho programmers, testers, maintainers, systems integrators, vv.
Nó bao gồm việc thiết kế chi tiết cho kiển trúc, thiết kế giao diện và thiết kế lớp cho từng chức năng của hệ thống, cũng như việc thiết kế cơ sở dữ liệu của cả hệ thống để từ đó người đọc sẽ có cái nhìn rõ ràng hơn về phần mềm cần xây dựng và nó sẽ là tài liệu chính thức để từ đó những người xây dựng phần mềm có thể xây dựng nên phần mềm dựa vào tài liệu này.
Danh sách tài liệu thiết kế
SAS: tài liệu đặc tả tính năng phần mềm (đôi khi đươc chia thành Requirement Definition và External design)
SAD: tài liệu về Software Architect (đôi khi được chia thành Internal Design và Detail design)
Data flow: tài liệu diagram về các use case và data flow
Database: tài liệu thiết kế database
API: tài liệu về API
Test case: tài liệu về các test case
Tài liệu kiến trúc phần cứng
kiến trúc hạ tầng
kiến trúc network
kiến trúc security
kiến trúc scaling design
Deployment:
Tài liệu triển khai
Cài đặt hệ thống
Những lỗi thường gặp (Common mistake)
Source code
Coding convention: để đảm bảo source code clean và tối ưu khi deliver hoặc transfer cho khách hàng
CI/CD, source control
Software Detailed Design Process
Theo tài liệu, quy trình Detail design phần mềm có mục đích:
Purpose: “to provide a design for the software that implements and can be verified against the requirements and the software architecture and is sufficiently detailed to permit coding and testing [1]
Kết quả của quy trình implement Software Detailed Design thành công là:
một thiết kế chi tiết cho mỗi thành phần phần mềm, mỗi component đã được tinh chỉnh để process bên dưới có thể coded, compiled và tested.
các external interfaces của mỗi đơn vị phần mềm được xác định
tính nhất quán và nguồn gốc được thiết lập giữa detail design và các requiment và architectural design.
Nôm na thì kết quả của quy trình này tạo ra một cái gì đó đủ chi tiết cho các lập trình viên có thể lập trình tốt được theo detail design đó.
Tài liệu đặc tả yêu cầu (SAS) ~ Requirement Definition
Tài liệu định nghĩa yêu cầu là nơi ghi chép lại các kết quả sau khi xem xét các định nghĩa yêu cầu.
Về cơ bản thì sẽ có các mục sau đây:
Tổng quan hệ thống – Hệ thống làm về cái gì? – Tại sao cần thiết phải có hệ thống này? – Mục đích của hệ thống này là gì?
Sơ đồ cấu trúc hệ thống
Sơ đồ khái niệm hệ thống
Luồng nghiệp vụ hệ thống
Sơ đồ use case
Yêu cầu chức năng
Danh sách tính năng của hệ thống
Chi tiết các tính năng
Yêu cầu dữ liệu đầu vào/đầu ra
Danh sách dữ liệu đầu vào
Chi tiết dữ liệu đầu vào (field, type,…)
Danh sách dữ liệu đầu ra
Chi tiết dữ liệu đầu ra (field, type,…)
Yêu cầu phi chức năng
Yêu cầu bảo mật
Yêu cầu chất lượng, hiệu suất
Other
Schedule sơ lược
Sơ đồ Stakeholder (relationship diagram)
External design (ED)
(Thực hiện sau khi hầu như những yêu cầu của khách hàng được đáp ứng)
Thiết kế bên ngoài là việc thiết kế chi tiết cấu trúc hệ thống dựa vào tài liệu định nghĩa yêu cầu.
Không giống như “Tài liệu định nghĩa yêu cầu” được chia sẻ từ phía khách hàng, External design (hay còn gọi là 基本設計書/Tài liệu thiết kế cơ bản) được xây dựng dựa trên quan điểm của lập trình viên. Tuy nhiên, khách hàng có thể sẽ tham gia việc review tài liệu này.
—> Tóm tắt: Là thiết kế hệ thống hướng về phía người dùng
External design chủ yếu được phân thành 3 loại sau đây:
1. 方式設計/Thiết kế phương pháp
Gọi tắt là Architectural design. Dễ hình dung thì nó là việc trả lời thứ tự các câu hỏi: Bạn sẽ ” sử dụng cái gì”, “bằng quy trình nào” để xây dựng lên hệ thống “như thế nào”.
Sử dụng cái gì? + Thiết lập phương châm phát triển. Cụ thể là cấu hình phần cứng, phần mềm, … + Chỉ định ngôn ngữ, nền tảng flatform để phát triển
Bằng quy trình nào? + Thể chế nhân sự (resource) + Schedule phát triển + Công cụ quản lý dự án
Hệ thống như thế nào?
Sơ đồ cấu trúc hệ thống
2. 機能設計/Thiết kế tính năng
Chia hệ thống thành các mô-đun và thiết kế các thông số kỹ thuật phía bên ngoài của các mô-đun đó. Giai đoạn này thường sử dụng nhiều sơ đồ UML (Unified Modeling Language)
Thiết kế chi tiết của từng mô-đun sẽ được mô tả ở tài liệu Internal design.
Sơ đồ di chuyển màn hình
Sơ đồ thiết kế layout màn hình (UI)
Scenario
Bussiness/Logic
Bảng danh sách các tính năng (function)
Thiết kế database: Sơ đồ ER, định nghĩa Table
3. Thiết kế khác
Các phần khác này có thể là “Thiết kế bảo mật”, “Thiết kế vận hành”, “Thiết kế kiểm thử”,…
Tài liệu Basic Design
Sau khi hoàn thành việc thiết kế bên ngoài (external design) thì kết quả sẽ được tổng hợp vào các tài liệu và được gọi là Tài liệu thiết kế cơ bản.
Tổng quan hệ thống
Scenario
Bussiness/Logic
Cấu trúc hệ thống
Sơ đồ cấu trúc hệ thống
Luồng nghiệp vụ/Sơ đồ hoạt động
Sơ đồ cấu hình phần cứng/phần mềm
Sơ đồ cấu hình network
Bảng danh sách tính năng
Đặc tả database
Sơ đồ ER
Tài liệu định nghĩa table
Thiết kế UI
Sơ đồ di chuyển màn hình
Sơ đồ thiết kế layout màn hình
Other
Thể chế/resource phát triển
Schedule phát triển
Công cụ quản lý dự án
Internal design (ID)
Cũng còn được gọi là Tài liệu thiết kế chi tiết/詳細設計書.
Các loại tài liệu cơ bản:
Thuyết minh, phân chia chức năng – Class diagram
Data flow – DFD (Data flow diagram)
Modules details
Module name
Vai trò
Parameter, respone
Sơ lược xử lý
Note
Case study tham khảo
Bây giờ mình sẽ đi vào phần ví dụ. Mình ví dụ viết tài liệu SDD cho phần mềm Đặt phòng họp, hội thảo. (về user case thì mình chỉ design cho 1 user case demo thôi).
1. Thiết kế kiến trúc:
Hệ thống xây dựng theo kiến trúc mô hình MVC
Phân tích user case [Đặt phòng]
Biểu đồ trình tự (biểu đồ này là chỉ ra trình tự các thông điệp (message) được gửi giữa các đối tượng. ):
Biểu đồ phân tích lớp:
2. Thiết kế giao diện:
Giao diện với thiết bị phần cứng: Không
Giao diện với phần mềm khác: Không
Giao diện người dùng: Biểu đồ dịch chuyển màn hình:
3. Thiết kế Class:
4. Thiết kế mô hình dữ liệu:
Biểu đồ liên kết giữa các bảng
You need to login in order to like this post: click here