Mục lục
- Kỹ thuật Yêu cầu (Requirement Engineering)
- Quản lý Vòng đời Yêu cầu (Requirement Life Cycle Management)
- Bài tập nhóm (Team Assignment)
1. Kỹ thuật Yêu cầu (Requirement Engineering)
1.1. Tổng quan
Kỹ thuật yêu cầu (Requirement Engineering) cung cấp các cơ chế phù hợp để thực hiện những công việc sau:
- Hiểu rõ những gì khách hàng mong muốn
- Phân tích nhu cầu của các bên liên quan
- Đánh giá tính khả thi của dự án
- Đàm phán để đưa ra một giải pháp hợp lý
- Đặc tả giải pháp một cách rõ ràng, không mơ hồ
- Xác nhận (validate) các đặc tả yêu cầu
- Quản lý yêu cầu, bao gồm theo dõi các phiên bản
Kỹ thuật yêu cầu tạo ra một tài liệu lớn, được viết bằng ngôn ngữ tự nhiên, mô tả hệ thống sẽ làm gì mà không mô tả cách thức hệ thống thực hiện.
1.2. Quy trình Kỹ thuật Yêu cầu (Requirement Engineering Process)
Quy trình kỹ thuật yêu cầu gồm 5 bước chính:
- Nghiên cứu tính khả thi (Feasibility Study)
- Thu thập và phân tích yêu cầu (Requirement Elicitation and Analysis)
- Đặc tả yêu cầu (Requirement Specification)
- Xác nhận yêu cầu (Requirement Validation)
- Quản lý yêu cầu (Requirement Management)
Quy trình được thực hiện theo luồng: Nghiên cứu khả thi → Thu thập & Phân tích yêu cầu → Đặc tả yêu cầu → Xác nhận yêu cầu. Các bước này có thể lặp lại và phản hồi lẫn nhau. Kết quả đầu ra bao gồm: Báo cáo khả thi, Mô hình hệ thống, Yêu cầu người dùng & hệ thống, và Tài liệu yêu cầu.
1.3. Nghiên cứu tính khả thi (Feasibility Study)
Mục tiêu: Xác định lý do phát triển phần mềm sao cho phần mềm được người dùng chấp nhận, linh hoạt trước sự thay đổi và tuân thủ các tiêu chuẩn đã được thiết lập.
Có 3 loại tính khả thi cần đánh giá:
| Loại | Mô tả |
|---|---|
| Khả thi kỹ thuật (Technical Feasibility) | Đánh giá các công nghệ cần thiết để đáp ứng yêu cầu của khách hàng trong giới hạn thời gian và ngân sách |
| Khả thi thị trường (Market Feasibility) | Đánh giá mức độ mà phần mềm có thể giải quyết các vấn đề kinh doanh và đáp ứng yêu cầu của khách hàng |
| Khả thi kinh tế (Economic Feasibility) | Xác định xem phần mềm có thể tạo ra lợi nhuận tài chính cho tổ chức hay không (ROI – Lợi tức đầu tư) |
1.4. Thu thập và Phân tích Yêu cầu (Elicitation & Analysis)
Thu thập yêu cầu (Elicitation) còn được gọi là quá trình thu thập yêu cầu (gathering of requirements). Đây là quá trình mô tả các nhiệm vụ mà Business Analyst (BA) thực hiện để lấy thông tin từ các bên liên quan và xác nhận kết quả, đồng thời mô tả việc giao tiếp với các bên liên quan.
3 phương pháp thu thập yêu cầu:
- Hợp tác (Collaborative): Tương tác trực tiếp với các bên liên quan
- Nghiên cứu (Research): Tìm kiếm và nghiên cứu thông tin từ các tài liệu hoặc nguồn có sẵn
- Thử nghiệm (Experiments): Xác định thông tin không thể thu thập từ con người hoặc tài liệu. Bao gồm các nghiên cứu quan sát, chứng minh khái niệm (proof of concept) và nguyên mẫu (prototype)
Các vấn đề thường gặp trong thu thập và phân tích yêu cầu:
- Khó khăn trong việc tập hợp đúng và đủ người tham gia
- Các bên liên quan thường không biết rõ mình muốn gì
- Các bên liên quan diễn đạt yêu cầu theo ngôn ngữ riêng của họ
- Các bên liên quan có thể có yêu cầu mâu thuẫn lẫn nhau
- Yêu cầu thay đổi liên tục trong quá trình phân tích
- Các yếu tố tổ chức và chính trị có thể ảnh hưởng đến yêu cầu hệ thống
1.5. Thu thập và Hợp tác (Elicitation & Collaboration)
Kỹ năng quản lý khách hàng:
- Khuyến khích các bên liên quan làm việc hướng tới mục tiêu chung
- Mối quan hệ kém với các bên liên quan có thể dẫn đến:
- Không cung cấp được thông tin chất lượng
- Phản ứng tiêu cực mạnh trước các trở ngại và khó khăn
- Kháng cự sự thay đổi
- Thiếu sự hỗ trợ
- Thông tin phân tích nghiệp vụ bị bỏ qua
→ Câu hỏi đặt ra: Làm thế nào để xây dựng mối quan hệ tích cực với các bên liên quan?
1.6. Đặc tả Yêu cầu Phần mềm (Software Requirement Specification – SRS)
SRS là một tài liệu:
- Được tạo bởi BA sau khi thu thập yêu cầu từ các nguồn khác nhau
- Trình bày yêu cầu bằng ngôn ngữ kỹ thuật để đội phát triển có thể hiểu được
Các mô hình được sử dụng trong giai đoạn này:
a) Sơ đồ Luồng Dữ liệu – DFD (Data Flow Diagram)
- Được phổ biến từ cuối những năm 1970
- Gồm 4 thành phần:
- Thực thể bên ngoài (External Entity): Nguồn hoặc đích của dữ liệu
- Tiến trình (Process): Xử lý và biến đổi dữ liệu
- Kho dữ liệu (Data Store): Nơi lưu trữ dữ liệu
- Luồng dữ liệu (Data Flow): Hướng di chuyển của dữ liệu
Ví dụ: Trong hệ thống đặt hàng, User gửi đơn hàng → Tiến trình xử lý đơn hàng → Lưu vào kho Orders → Gửi thông tin giao hàng đến bộ phận Fulfillment → Giao sản phẩm. Song song, thông tin thanh toán được lưu vào Invoices và gửi đến tiến trình thu tiền.
b) Sơ đồ Phân rã Chức năng – FDD (Function Decomposition Diagram)
Phân rã hệ thống thành các chức năng nhỏ hơn.
Ví dụ: Hệ thống khách sạn (Hotel System) được phân rã thành:
- Đặt phòng (Reserve rooms): Đăng nhập → Kiểm tra phòng trống → Kiểm tra khuyến mãi → Ghi nhận đặt phòng
- Quản lý phòng (Manage rooms): Xem báo cáo đặt phòng → Tạo lệnh công việc
- Đặt dịch vụ (Reserve services): Đăng nhập → Ghi nhận đặt dịch vụ
- Quản lý dịch vụ (Manage services): Xem báo cáo đặt chỗ → Tạo lệnh công việc
- Chấm công (Check-in work time): Lấy mã nhân viên → Ghi nhận thời gian làm việc
c) Sơ đồ Thực thể – Mối quan hệ – ERD (Entity-Relationship Diagram)
Gồm 3 thành phần:
- Thực thể (Entity): Đối tượng trong hệ thống (ví dụ: Customer, Order, Item)
- Thuộc tính (Attribute): Đặc điểm của thực thể (ví dụ: Name, Address, Email)
- Mối quan hệ (Relationship): Liên kết giữa các thực thể (ví dụ: Customer “Orders” Item)
Ký hiệu quan hệ: Một (One), Không hoặc nhiều – tùy chọn (Zero or more, Optional), Nhiều (Many)
d) Mô hình Quy trình Nghiệp vụ – BPMN (Business Process Model and Notation)
- Phiên bản đầu tiên: Tháng 5/2004 (version 1.0)
- Phiên bản mới nhất: Tháng 12/2013 (version 2.0)
- Sử dụng các ký hiệu chuẩn bao gồm: Sự kiện bắt đầu/kết thúc, Hoạt động, Cổng quyết định (Gateway), Làn bơi (Lane/Pool) để mô tả quy trình nghiệp vụ
1.7. Xác nhận Yêu cầu Phần mềm (Software Requirement Validation)
Yêu cầu cần được kiểm tra dựa trên các điều kiện sau:
- Yêu cầu có thể triển khai được trên thực tế hay không
- Yêu cầu có đúng và phù hợp với chức năng của phần mềm hay không
- Yêu cầu có mơ hồ, không rõ ràng hay không
- Yêu cầu có đầy đủ hay không
- Yêu cầu có thể mô tả được hay không
2. Quản lý Vòng đời Yêu cầu (Requirements Life Cycle Management)
2.1. Tổng quan
Quản lý vòng đời yêu cầu nhằm:
- Mô tả các nhiệm vụ mà BA thực hiện để quản lý và duy trì các yêu cầu và thông tin thiết kế từ khi khởi tạo đến khi ngừng sử dụng
- Đảm bảo các yêu cầu nghiệp vụ, yêu cầu của bên liên quan và yêu cầu giải pháp & thiết kế được đồng bộ với nhau, và giải pháp thực hiện đúng các yêu cầu đó
- Kiểm soát yêu cầu và cách thức yêu cầu được triển khai
- Đảm bảo thông tin phân tích nghiệp vụ sẵn sàng cho việc sử dụng trong tương lai
(Tham khảo thêm: BABOK Guide v3, phần “Requirement Life Cycle Management”)
2.2. Quy trình quản lý vòng đời yêu cầu
Các hoạt động chính trong quản lý vòng đời yêu cầu:
- Theo dõi yêu cầu (Trace Requirements)
- Duy trì yêu cầu (Maintain Requirements)
- Ưu tiên yêu cầu (Prioritize Requirements)
- Phê duyệt yêu cầu (Approve Requirements)
- Đánh giá thay đổi yêu cầu (Assess Requirements Changes)
Luồng xử lý:
- Bước 1 – Đánh giá (Assess): Khi có một yêu cầu tiềm năng, tiến hành đánh giá. Nếu đạt → chuyển sang bước tiếp theo. Nếu không → quay lại đánh giá.
- Bước 2 – Phê duyệt / Đồng thuận (Approval/Consensus): Yêu cầu được đưa ra phê duyệt. Nếu được chấp thuận → chuyển sang quản lý. Nếu không → quay lại thành yêu cầu tiềm năng để đánh giá lại.
- Bước 3 – Quản lý (Manage): Thực hiện theo dõi (Trace), duy trì (Maintain) và ưu tiên hóa (Prioritize) yêu cầu.
3. Quản lý Phiên bản Yêu cầu (Requirement Versions Management)
3.1. Sử dụng Git
Git được sử dụng để quản lý và sao lưu các tài liệu yêu cầu, áp dụng mô hình hệ thống quản lý phiên bản tập trung (Centralized Version Control System).
Cách hoạt động:
- Máy chủ (Server) chứa Repository trung tâm
- Các máy trạm (Workstation) có Working Copy (bản sao làm việc)
- Thao tác commit để gửi thay đổi lên server
- Thao tác update để cập nhật thay đổi từ server
- Mỗi commit được ghi nhận với thời gian và nội dung thay đổi
3.2. Các máy chủ Git miễn phí
| Dịch vụ | Địa chỉ |
|---|---|
| GitHub | https://github.com/ |
| GitLab | https://gitlab.com/ |
| Bitbucket | https://bitbucket.org/ |
3.3. Công cụ
- Git Server: GitHub
- Git Client: Sourcetree (https://www.sourcetreeapp.com/) – công cụ giao diện đồ họa giúp quản lý Git dễ dàng hơn