Requirements (software and systems requirements engineering) trong kỹ nghệ phần mềm và hệ thống là tập hợp các phát biểu đặc tả những tính năng, hành vi chức năng, ràng buộc vận hành và thuộc tính chất lượng mà một hệ thống thông tin phải thỏa mãn nhằm giải quyết các bài toán thực tế của các bên liên quan (stakeholders). Quản trị yêu cầu là giai đoạn quyết định trực tiếp đến sự thành bại và chi phí của toàn bộ dự án công nghệ.
Phân loại yêu cầu phần mềm chuẩn hóa
Theo chuẩn kỹ nghệ phần mềm quốc tế ISO/IEC/IEEE 29148, các yêu cầu hệ thống được phân định rõ ràng thành các cấp độ và phân loại:
- Yêu cầu nghiệp vụ (Business Requirements): Các mục tiêu chiến lược cấp cao và chỉ số hiệu quả kinh doanh cốt lõi (KPIs/ROI) mà tổ chức mong muốn đạt được khi phát triển sản phẩm.
- Yêu cầu người dùng (User Requirements): Mô tả những tác vụ, luồng công việc và trải nghiệm mà người dùng đầu cuối có thể thực hiện với hệ thống (thường được biểu đạt qua User Stories hoặc Use Cases).
- Yêu cầu chức năng (Functional Requirements - FRs): Đặc tả chi tiết các dịch vụ phần mềm, thuật toán xử lý dữ liệu, quy tắc nghiệp vụ (business rules) và phản ứng của hệ thống đối với các dữ liệu đầu vào xác định.
- Yêu cầu phi chức năng (Non-Functional Requirements - NFRs): Các thuộc tính chất lượng và ràng buộc kỹ thuật của hệ thống, bao gồm hiệu năng (performance), độ tin cậy (reliability), khả năng mở rộng (scalability), tính sẵn sàng (availability), bảo mật an toàn thông tin (security) và tính khả dụng (usability).
Vòng đời kỹ nghệ yêu cầu (Requirements Engineering Life Cycle)
Quá trình kỹ nghệ yêu cầu là một chuỗi hoạt động kỹ thuật có tính lặp và phối hợp chặt chẽ:
| Giai đoạn kỹ thuật | Mục tiêu hoạt động | Kỹ thuật và công cụ áp dụng |
|---|---|---|
| Khơi gợi yêu cầu (Elicitation) | Khai phá nhu cầu tiềm ẩn của khách hàng và người sử dụng | Phỏng vấn chuyên gia, hội thảo Joint Application Design (JAD), khảo sát, quan sát thực địa |
| Phân tích & Đàm phán (Analysis & Negotiation) | Phát hiện xung đột, loại bỏ yêu cầu mơ hồ và phân tầng mức độ ưu tiên | Mô hình hóa dữ liệu (DFD, ERD, UML), kỹ thuật phân loại MoSCoW, ma trận ưu tiên Eisenhower |
| Đặc tả yêu cầu (Specification) | Văn bản hóa các yêu cầu thành tài liệu quy chuẩn kỹ thuật | Tài liệu đặc tả yêu cầu phần mềm (SRS), mẫu User Story định dạng 'As a / I want / So that' |
| Xác minh & Thẩm định (Verification & Validation) | Kiểm tra tính hoàn chỉnh, nhất quán, khả thi và khả năng kiểm thử được | Đánh giá ngang hàng (peer review), thanh tra tài liệu (inspection), tạo mẫu nguyên mẫu nhanh (prototyping) |
Quản lý yêu cầu và ma trận truy xuất nguồn gốc (Traceability Matrix)
Trong các mô hình phát triển phần mềm Agile lẫn Waterfall, quản lý yêu cầu (Requirements Management) bảo đảm sự kiểm soát chặt chẽ đối với các yêu cầu thay đổi:
- Ma trận truy xuất nguồn gốc yêu cầu (Requirements Traceability Matrix - RTM): Một bảng ánh xạ hai chiều liên kết từ mục tiêu nghiệp vụ ban đầu, qua các trường hợp sử dụng (use cases), kiến trúc thiết kế, mã nguồn cài đặt cho đến các kịch bản kiểm thử nghiệm thu (acceptance test cases). RTM đảm bảo không có yêu cầu nào bị bỏ sót và không có mã nguồn thừa không phục vụ mục tiêu hệ thống.
- Quản lý thay đổi phạm vi (Scope Management): Kiểm soát hiện tượng trôi dạt phạm vi (scope creep) thông qua quy trình phê duyệt thay đổi chính thức (Change Control Board - CCB) hoặc sắp xếp lại thứ tự ưu tiên trong Product Backlog ở mỗi vòng lặp Sprint.