Nhập Môn Công Nghệ Phần Mềm: Kỹ Nghệ Yêu Cầu Phần Mềm

Chuyên khảo kỹ thuật phân tích Nhập môn công nghệ phần mềm introduction to software engineering phần mềm chương 6 kĩ nghệ yêu cầu, đánh giá các khía cạnh quan trọng, đề xuất hướng

Trường đại học

Trường Đại Học

Chuyên ngành

Công Nghệ Phần Mềm

Người đăng

Ẩn danh

Thể loại

bài giảng

2023

52
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

6. CHƯƠNG 6: Kỹ nghệ yêu cầu phần mềm (Requirement Engineering)

6.1. Mục tiêu của bài học

6.2. Nội dung

6.2.1. Tầm quan trọng của yêu cầu phần mềm

6.2.2. Yêu cầu chức năng và yêu cầu phi chức năng

6.2.3. Các hoạt động chính trong kỹ nghệ yêu cầu phần mềm

6.3. Nguồn gốc yêu cầu phần mềm

6.4. Đặc điểm của khách hàng phần mềm

6.5. Vấn đề YCPM giải quyết

6.5.1. Vấn đề YCPM giải quyết (1)

6.5.2. Vấn đề YCPM giải quyết (2)

6.5.3. Vấn đề YCPM giải quyết (3)

6.5.4. Vấn đề YCPM giải quyết (4)

6.6. Phân loại yêu cầu

6.7. Yêu cầu chức năng

6.8. Yêu cầu phi chức năng và ràng buộc

6.9. Các hoạt động chính trong kỹ nghệ YCPM

6.9.1. Phát hiện các yêu cầu phần mềm (Requirements elicitation)

6.9.2. Phân tích các yêu cầu phần mềm và thương lượng với khách hàng (Requirements analysis and negotiation)

6.9.3. Đặc tả các yêu cầu phần mềm (Requirements specification)

6.9.4. Mô hình hóa hệ thống (System modeling)

6.9.5. Kiểm tra tính hợp lý của các yêu cầu phần mềm (Requirements validation)

6.9.6. Quản trị các yêu cầu phần mềm (Requirements management)

6.10. Một số mô hình hóa hệ thống

6.10.1. Biểu đồ phân cấp chức năng - WBS (work break down structure)

6.10.2. Biểu đồ luồng dữ liệu – DFD (data flow diagram)

6.10.3. Máy trạng thái – FSM (Finite state machine)

6.10.4. Sơ đồ thực thể liên kết – ERD (entity relation diagram)

6.11. Ví dụ: Đặc tả chức năng với DFD

6.12. Các hạn chế của DFD

6.13. Ví dụ: Đặc tả trạng thái với FSM - Finite State Machines

6.14. Ví dụ: Đặc tả dữ liệu với Mô hình thực thể liên kết - ERD

6.15. So sánh DFD FSM ERD

6.16. Thế nào là một đặc tả tốt?

6.17. Tài liệu yêu cầu

6.18. Nội dung cần có của tài liệu yêu cầu

6.19. 4d. Một số mô hình hóa hệ thống

6.20. 4e. Quản trị các yêu cầu phần mềm

6.20.1. Các công việc liên quan

6.20.2. Lợi ích

6.21. Quản lý thay đổi và vấn đề phát sinh

6.22. Kiểm soát nguồn thay đổi tiềm năng

Tóm tắt

I. Tầm Quan Trọng Của Kỹ Nghệ Yêu Cầu Phần Mềm

Kỹ nghệ yêu cầu phần mềm đóng vai trò quan trọng trong quá trình phát triển phần mềm. Nó giúp xác định và quản lý các yêu cầu của khách hàng, từ đó đảm bảo rằng sản phẩm cuối cùng đáp ứng được mong đợi. Việc hiểu rõ tầm quan trọng của yêu cầu phần mềm không chỉ giúp giảm thiểu rủi ro mà còn nâng cao chất lượng sản phẩm. Theo nghiên cứu, khoảng 70-80% lỗi trong phần mềm xuất phát từ việc không rõ ràng trong yêu cầu.

1.1. Tại Sao Yêu Cầu Phần Mềm Quan Trọng

Yêu cầu phần mềm là nền tảng cho mọi dự án phát triển. Chúng xác định những gì phần mềm cần thực hiện và giúp tránh những hiểu lầm giữa nhà phát triển và khách hàng.

1.2. Những Hệ Lụy Khi Bỏ Qua Yêu Cầu

Bỏ qua yêu cầu có thể dẫn đến sản phẩm không đáp ứng được nhu cầu thực tế, gây lãng phí thời gian và tài nguyên. Nghiên cứu cho thấy, việc không quản lý yêu cầu có thể làm tăng chi phí phát triển lên đến 30%.

II. Các Vấn Đề Thường Gặp Trong Kỹ Nghệ Yêu Cầu Phần Mềm

Trong quá trình phát triển phần mềm, nhiều vấn đề có thể phát sinh liên quan đến yêu cầu. Những vấn đề này có thể bao gồm yêu cầu không rõ ràng, thay đổi yêu cầu liên tục, và sự thiếu hiểu biết của người sử dụng. Việc nhận diện và giải quyết những vấn đề này là rất cần thiết để đảm bảo thành công của dự án.

2.1. Yêu Cầu Không Rõ Ràng

Yêu cầu không rõ ràng có thể dẫn đến sự hiểu lầm giữa các bên liên quan. Điều này thường xảy ra khi khách hàng không thể diễn đạt chính xác mong muốn của mình.

2.2. Thay Đổi Yêu Cầu Liên Tục

Thay đổi yêu cầu trong quá trình phát triển là điều không thể tránh khỏi. Tuy nhiên, việc quản lý những thay đổi này một cách hiệu quả là rất quan trọng để tránh làm gián đoạn tiến độ dự án.

III. Các Hoạt Động Chính Trong Kỹ Nghệ Yêu Cầu Phần Mềm

Kỹ nghệ yêu cầu phần mềm bao gồm nhiều hoạt động chính như phát hiện yêu cầu, phân tích yêu cầu, và quản lý yêu cầu. Mỗi hoạt động đều có vai trò quan trọng trong việc đảm bảo rằng sản phẩm cuối cùng đáp ứng được nhu cầu của khách hàng.

3.1. Phát Hiện Yêu Cầu

Phát hiện yêu cầu là bước đầu tiên trong quy trình kỹ nghệ yêu cầu. Nó bao gồm việc thu thập thông tin từ khách hàng và các bên liên quan để xác định những gì cần thiết cho phần mềm.

3.2. Phân Tích Yêu Cầu

Phân tích yêu cầu giúp xác định tính khả thi và độ rõ ràng của các yêu cầu đã thu thập. Đây là bước quan trọng để đảm bảo rằng các yêu cầu có thể được thực hiện trong thực tế.

IV. Ứng Dụng Thực Tiễn Của Kỹ Nghệ Yêu Cầu Phần Mềm

Kỹ nghệ yêu cầu phần mềm không chỉ là lý thuyết mà còn có nhiều ứng dụng thực tiễn trong các dự án phát triển phần mềm. Việc áp dụng các phương pháp và công cụ trong kỹ nghệ yêu cầu có thể giúp nâng cao hiệu quả và chất lượng sản phẩm.

4.1. Các Công Cụ Hỗ Trợ Kỹ Nghệ Yêu Cầu

Có nhiều công cụ hỗ trợ trong việc thu thập và quản lý yêu cầu, như biểu đồ luồng dữ liệu và mô hình hóa hệ thống. Những công cụ này giúp trực quan hóa yêu cầu và dễ dàng hơn trong việc giao tiếp với khách hàng.

4.2. Kết Quả Nghiên Cứu Về Kỹ Nghệ Yêu Cầu

Nghiên cứu cho thấy, việc áp dụng kỹ nghệ yêu cầu phần mềm có thể giảm thiểu lỗi và tăng cường sự hài lòng của khách hàng. Các dự án sử dụng kỹ nghệ yêu cầu thường có tỷ lệ thành công cao hơn.

V. Kết Luận Về Kỹ Nghệ Yêu Cầu Phần Mềm

Kỹ nghệ yêu cầu phần mềm là một phần không thể thiếu trong quá trình phát triển phần mềm. Việc hiểu rõ và áp dụng các phương pháp trong kỹ nghệ yêu cầu sẽ giúp nâng cao chất lượng sản phẩm và sự hài lòng của khách hàng. Tương lai của kỹ nghệ yêu cầu sẽ tiếp tục phát triển với sự xuất hiện của các công nghệ mới.

5.1. Tương Lai Của Kỹ Nghệ Yêu Cầu

Với sự phát triển của công nghệ, kỹ nghệ yêu cầu phần mềm sẽ ngày càng trở nên quan trọng hơn. Các công cụ và phương pháp mới sẽ giúp cải thiện quy trình phát triển phần mềm.

5.2. Lời Khuyên Cho Các Nhà Phát Triển

Các nhà phát triển nên chú trọng đến việc thu thập và quản lý yêu cầu một cách hiệu quả. Điều này không chỉ giúp tiết kiệm thời gian mà còn nâng cao chất lượng sản phẩm cuối cùng.

11/07/2025
Nhập môn công nghệ phần mềm introduction to software engineering phần mềm chương 6 kĩ nghệ yêu cầu phần mềm requirement engineering tiếng việt điểm cao

Trích đoạn nội dung tài liệu

Nhập môn Công nghệ Phần mềm (Introduction to Software Engineering) CHƯƠNG 6 Kỹ nghệ yêu cầu phần mềm (Requirement Engineering) Mục tiêu của bài học Sinh viên sẽ được trang bị các kiến thức sau: - Hiểu rõ các khái niệm liên quan tới kĩ nghệ yêu cầu phần mềm - Biết, nắm vững vị trí, vai trò của kĩ nghệ YCPM - Có khái niệm về một số yếu tố liên quan tới các yêu cầu chức năng và phi chức năng - Nắm vững các hoạt động chính của kĩ nghệ YCPM Nội dung 1. Tầm quan trọng của yêu cầu phần mềm 3. Yêu cầu chức năng và yêu cầu phi chức năng 4. Các hoạt động chính trong kỹ nghệ yêu cầu phần mềm 5 1.

Khái niệm (1) • Các đặc tính của hệ thống hay sản phẩm do khách hàng - người sử dụng PM - đặt ra → Xác định được phần mềm đáp ứng được các yêu cầu và mong muốn của khách hàng - người sử dụng phần mềm Bài toán của khách Lĩnh vực ứng dụng hàng cần giải quyết của hệ thống/sản phẩm Nhu cầu và ràng buộc Ngữ cảnh nghiệp vụ: tương tác của những người có của hệ thông/sản phẩm và đóng quyền lợi và nghĩa vụ góp về mặc nghiệp vụ của hệ liên quan đến hệ thống thống /sản phẩm 6 1. Khái niệm (2) • Khởi đầu (Inception): Hỏi một loạt các câu hỏi để xác định: • Hiểu biết căn bản về vấn đề cần giải quyết. • Người đang cần giải pháp • Loại giải pháp mong muốn • Mức độ hiệu quả ban đầu của việc trao đổi thông tin giữa khách hàng và nhà phát triển • Khám phá (Elicitation): tìm ra yêu cầu của tất cả khách hàng. • Xây dựng (Elaboration): tạo ra mô hình phân tích xác định dữ liệu, chức năng và hành vi được yêu cầu.

• Đàm phán (Negotiation): đồng ý với một hệ thống có thể bàn giao một cách thực tế đối với cả 2 bên. Khái niệm (3) • Đặc tả (Specification): có thể là một/ nhiều những thứ sau: • Một Tài liệu được viết • Một Tập hợp các mô hình • Một hình thức biểu diễn toán học • Một tập các kịch bản người dùng ( use-case ) • Một Nguyên mẫu • Đánh giá (Validation): tạo cơ chế xem xét các vấn đề: • Sai sót trong nội dung hoặc giải thích. • Phần được yêu cầu làm rõ. • Thông tin bị thiếu • Mâu thuẫn • Yêu cầu không thực tế, không thể đạt được.

• Quản lý các Yêu cầu (Requirements management) 8 Nội dung 1. Tầm quan trọng của yêu cầu phần mềm 3. Yêu cầu chức năng và yêu cầu phi chức năng 4. Các hoạt động chính trong kỹ nghệ yêu cầu phần mềm 9 Nguồn gốc yêu cầu phần mềm ❑Người sử dụng (Khách hàng): theo mô hình phân lớp của yêu cầu phần mềm Khách hàng được chia làm hai loại: • Khách hàng cung cấp các business requirement: cung cấp các thông tin về công ty, về các đặc điểm ở mức độ cao, về mô hình và phạm vi của hệ thống • Khách hàng cung cấp các user requirement: cung cấp các công tin về từng nhiệm vụ cụ thể mà họ sẽ làm việc với phần mềm ❑Cần phải phối hợp, kết hợp chặt chẽ với hai phân loại khách hàng trên Đặc điểm của khách hàng phần mềm • Khách hàng chỉ có những ý tưởng còn mơ hồ về phần mềm cần phải xây dựng để phục vụ công việc của họ.

• Cho nên chúng ta phải sẵn sàng, kiên trì theo đuổi để đi từ các ý tưởng mơ hồ đó đến “Phần mềm có đầy đủ các tính năng cần thiết” • Khách hàng rất hay thay đổi các đòi hỏi của mình, chúng ta nắm bắt được các thay đổi đó và sửa đổi các mô tả một cách hợp lý 11 Vấn đề YCPM giải quyết (1) ❑Sự tham gia quá mức của NSD ✓ Thông thường người sử dụng không hiểu rõ về quá trình xây dựng các yêu cầu phần mềm và các đặc điểm của phần mềm. ✓ Họ sẽ đưa những đòi hỏi quá cao hoặc chẳng liên quan đến quá trình phát triển phần mềm như viết code,. ✓ Họ đưa ra những yêu cầu và đề nghị rất khó chấp nhận và gây khó khăn cho các PTV ❑Có quá nhiều yêu cầu trong yêu cầu phần mềm ✓ Thông thường các yêu cầu phần mềm được phát hiện trong quá trình khảo sát và rất có thể các yêu cầu về phần mềm sẽ lớn hơn khả năng của đội ngũ phát triển về: nhân lực, thời gian, tài chính. ✓ Cần hạn chế không để các yêu cầu phần mềm phát sinh đi quá phạm vi và giới hạn của phần mềm ✓ Cần quản lý các thay đổi về yêu cầu phần mềm một cách hợp lý và xem xét ảnh hưởng của nó tới kiến trúc hệ thống, … trong quá trình phát triển Vấn đề YCPM giải quyết (2) ❑Các yêu cầu phần mềm mơ hồ nhập nhằng ✓ Đây là một vấn đề rất hay xảy ra trong quá trình phát triển các yêu cầu phần mềm ✓ Các yêu cầu phần mềm cần phải rõ ràng, không được phép hiểu theo nhiều cách ✓ Phương pháp sửa các yêu cầu mơ hồ nhập nhằng là làm lại, đặc tả lại các yêu cầu này.

✓ Theo đánh giá của các nhà phân tích: làm lại yêu cầu phần mềm thường chiếm khoảng 40% quá trình xây dựng nó và 70-80% các đặc tính xây dựng lại có thể dẫn đến các lỗi ✓ Lưu ý tới từng yêu cầu phần mềm và không để sót những yêu cầu mơ hồ, không rõ ràng ❑Không lưu ý tới người sử dụng phần mềm ✓ Thông thường phần mềm làm ra cho một tập hợp các đôi tượng nào đó sử dụng ✓ Cần quan tâm tới đặc điểm của đối tượng này Vấn đề YCPM giải quyết (3) ❑Các đặc tính thừa: ✓ Thông thường người phát triển theo các thói quen nghề nghiệp thêm vào các yêu cầu phần mềm các chức năng không cần thiết cho phần mềm ✓ Tương tự như vậy người sử dụng có thể đưa ra một số yêu cầu phụ cho phần mềm. Các yêu cầu này có thể đòi hỏi các tốn kém về mặt xây dựng mà trên thực tế hoàn toàn không cần thiết ✓ Cần đánh giá các đặc tính và tính cần thiết của nó đối với các phần mềm. Những đặc tính phụ có thể xem xét kỹ hơn xem khả năng đáp ứng nó về mặt kỹ thuật có đáng giá hay không. ❑Đặc tả quá ít ✓ NSD là chuyên viên trong một lĩnh vực nào đó có thói quen nghĩ rằng tất cả các LTV đều là các chuyên viên trong lĩnh vực đó.

✓ NSD đưa ra những yêu cầu quá ngắn gọn mà không miêu tả kỹ lưỡng chúng là gì ✓ Cần hỏi rõ NSD và tranh thủ các kiến thức của họ Vấn đề YCPM giải quyết (4) ❑Kế hoạch sai: ✓Các LTV đánh giá sai về mức độ phức tạp của vấn đề và dẫn tới lập kế hoạch sai về mặt thời gian hoàn thành. ✓Cần lưu ý đánh giá thật chắc chắn các đặc tính của phần mềm khi lập kế hoạch xây dựng phần mềm ✓Nên trả lời cho khách hàng các câu trả lời dạng “gần chính xác”: trong trường hợp xấu nhất…. Tầm quan trọng của yêu cầu phần mềm 3. Yêu cầu chức năng và yêu cầu phi chức năng 4.

Các hoạt động chính trong kỹ nghệ yêu cầu phần mềm 16 Phân loại yêu cầu • Theo 4 thành phần của phần mềm: • Các yêu cầu về phần mềm (Software) • Các yêu cầu về phần cứng (Hardware) • Các yêu cầu về dữ liệu (Data) • Các yêu cầu về con người (People, Users) • Theo cách đặc tả phần mềm • Các yêu cầu chức năng • Các yêu cầu ngoài chức năng • Các ràng buộc khác 17 Yêu cầu chức năng • Miêu tả các chức năng của hệ thống, phụ thuộc vào kiểu phần mềm và mong đợi của người dùng • Tương tác giữa phần mềm và môi trường, độc lập với việc cài đặt • Ví dụ: Hệ thống đồng hồ phải hiển thị thời gian dựa trên vị trí của nó • Các công cụ đặc tả yêu cầu chức năng tiêu biểu: • Biểu đồ luồng dữ liệu (Data Flow Diagrams) • Máy trạng thái hữu hạn (Finite State Machines) • Mạng Petri (Petri nets),… • Tuy nhiên không bắt buộc và có thể dùng ngôn ngữ tự nhiên. 18 Yêu cầu phi chức năng và ràng buộc • Yêu cầu phi chức năng: Định nghĩa các khía cạnh sử dụng phần mềm, không liên quan trực tiếp tới các hành vi chức năng: • Các tính chất của hệ thống như độ tin cậy, thời gian trả lời, dung lượng bộ nhớ, … • Thời gian trả lời phải nhỏ hơn 1 giây • Ràng buộc: do khách hàng hay môi trường thực thi phần mềm đặt ra • Các yêu cầu do tổ chức qui định như qui định chuẩn về quá trình tiến hành, chuẩn tài liệu, … • Ngôn ngữ cài đặt phải là COBOL • Các yêu cầu từ bên ngoài • Phải giao tiếp với hệ thống điều phối được viết vào năm 1956. • Thường sử dụng các công cụ • Biểu đồ thực thể liên kết (Entity-Relationship Diagrams) • Đặc tả Logic (Logic Specifications) • Đặc tả đại số (Algebraic Specifications) → Khó phát biểu chính xác, Rất khó kiểm tra 19 Nội dung 1. Tầm quan trọng của yêu cầu phần mềm 3.

Yêu cầu chức năng và yêu cầu phi chức năng 4. Các hoạt động chính trong kỹ nghệ yêu cầu phần mềm 20 4. Các hoạt động chính trong kỹ nghệ YCPM • Phát hiện các yêu cầu phần mềm (Requirements elicitation) • Phân tích các yêu cầu phần mềm và thương lượng với khách hàng (Requirements analysis and negotiation) • Đặc tả các yêu cầu phần mềm (Requirements specification) • Mô hình hóa hệ thống (System modeling) • Kiểm tra tính hợp lý của các yêu cầu phần mềm (Requirements validation) • Quản trị các yêu cầu phần mềm (Requirements management) 21 4. Các hoạt động chính (tiếp) Xây dựng một nguyên mẫu (prototype) Xác định Phát triển Xem Vấn đề yêu cầu đặc điểm kỹ thuật duyệt Tạo ra mô hình phân tích Last Update8-07 Dept.

of SE, 2002 SE-III. Phát hiện yêu cầu phần mềm • Đánh giá tính khả thi về kỹ thuật và nghiệp vụ của phần mềm định phát triển • Tìm kiếm các nhân sự (chuyên gia, người sử dụng) có những hiểu biết sâu sắc nhất, chi tiết nhất về hệ thống giúp chúng ta xác định yêu cầu phần mềm • Xác định môi trường kỹ thuật trong đó sẽ triển khai phần mềm • Xác định các ràng buộc về lĩnh vực ứng dụng của phần mềm (giới hạn về chức năng/hiệu năng phần mềm) 23 4a.Phát hiện yêu cầu phần mềm (tiếp) • Xác định các phương pháp sử dụng để phát hiện các yêu cầu phần mềm: phỏng vấn, làm việc nhóm, các buổi họp, gặp gỡ đối tác, v.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ