Tổng quan nghiên cứu
Trong lĩnh vực phát triển phần mềm, việc mô tả yêu cầu phần mềm chính xác và rõ ràng đóng vai trò then chốt trong thành công của dự án. Theo thống kê trên IEEE Spectrum, trong số 12 nguyên nhân chính dẫn đến thất bại dự án phần mềm, có tới 9 nguyên nhân liên quan đến việc xác định yêu cầu không chính xác hoặc thiếu rõ ràng. Điều này cho thấy việc phân tích và mô tả yêu cầu phần mềm là một bước quan trọng không thể xem nhẹ. Tuy nhiên, các mô tả yêu cầu truyền thống thường sử dụng ngôn ngữ tự nhiên, vốn dễ gây nhập nhằng và khó kiểm chứng tính chính xác. Các phương pháp hình thức hiện nay lại yêu cầu mô tả bằng ngôn ngữ logic phức tạp, không thân thiện với nhóm phát triển.
Luận văn này tập trung nghiên cứu phương pháp chuyển đổi ngôn ngữ tự nhiên sang hệ thống luật mô tả yêu cầu phần mềm kết hợp (SPSC), nhằm khắc phục hạn chế của các hệ thống luật mô tả trước đó như SPSKC và SPSG. Mục tiêu chính là xây dựng quy tắc chuyển đổi chính xác, giảm sai sót và công sức cho người phân tích yêu cầu, đồng thời phát triển phần mềm hỗ trợ tự động hóa quá trình này. Nghiên cứu áp dụng trên bộ yêu cầu mẫu của hệ thống đăng ký khóa học do IBM cung cấp, với phạm vi thời gian nghiên cứu từ năm 2012 đến 2013 tại Đại học Công nghệ, Đại học Quốc gia Hà Nội.
Kết quả nghiên cứu góp phần nâng cao chất lượng phân tích yêu cầu phần mềm, giúp mô tả yêu cầu rõ ràng, có thể kiểm chứng và dễ dàng chuyển đổi sang ngôn ngữ hình thức, từ đó giảm thiểu rủi ro thất bại dự án và tăng hiệu quả phát triển phần mềm.
Cơ sở lý thuyết và phương pháp nghiên cứu
Khung lý thuyết áp dụng
Luận văn dựa trên hai hệ thống luật mô tả yêu cầu phần mềm chính: SPSKC do Konrad và Cheng phát triển, tập trung mô tả yêu cầu chức năng bằng ngôn ngữ tự nhiên có cấu trúc giới hạn, và SPSG của Grunske, chuyên mô tả các yêu cầu phi chức năng như độ tin cậy, hiệu năng, bảo mật. Sự kết hợp của hai hệ thống này tạo thành SPSC, giúp bao phủ đầy đủ các loại yêu cầu phần mềm.
Ngoài ra, luận văn áp dụng mô hình mẫu yêu cầu (Requirement Pattern - RP) và mẫu đặc tả (Specification Pattern - SP) để chuẩn hóa cấu trúc mô tả yêu cầu. Mẫu RP giúp hướng dẫn cách viết các loại yêu cầu phổ biến, còn SP tập trung mô tả hành vi hệ thống theo phạm vi và xử lý, có thể chuyển đổi sang các ngôn ngữ logic như LTL, CTL, MTL.
Phương pháp PROPEL (PROPerty ELucidation approach) được sử dụng làm nền tảng cho việc xây dựng bảng hỏi hỗ trợ người dùng xác định chính xác mối quan hệ giữa các sự kiện/trạng thái trong yêu cầu, từ đó chuyển đổi sang SPSC. PROPEL cung cấp giao diện bảng hỏi dạng cây, đồ họa máy trạng thái hữu hạn mở rộng (FSA) và ngôn ngữ tự nhiên, giúp người dùng không cần am hiểu sâu về logic vẫn có thể mô tả yêu cầu chính xác.
Phương pháp nghiên cứu
Nguồn dữ liệu chính là bộ yêu cầu mẫu của hệ thống đăng ký khóa học do IBM cung cấp, bao gồm 8 ca sử dụng chức năng và các yêu cầu phi chức năng đi kèm. Nghiên cứu thực hiện theo ba bước chuyển đổi:
- Tinh chỉnh yêu cầu ngôn ngữ tự nhiên để tập trung mô tả hành vi hệ thống thay vì hành động người dùng.
- Xác định các sự kiện/trạng thái hệ thống liên quan trong yêu cầu.
- Xác định mối quan hệ logic giữa các sự kiện/trạng thái dựa trên bảng hỏi SPSCQT được phát triển từ PROPEL.
Phương pháp phân tích sử dụng kỹ thuật phân tích định tính kết hợp với xây dựng phần mềm hỗ trợ tự động hóa quá trình chuyển đổi. Cỡ mẫu gồm toàn bộ các yêu cầu trong bộ tài liệu mẫu, với việc lựa chọn các ca sử dụng đại diện để phân tích chi tiết. Timeline nghiên cứu kéo dài trong năm 2013, tập trung phát triển bảng hỏi, phần mềm hỗ trợ và kiểm chứng trên bộ yêu cầu mẫu.
Kết quả nghiên cứu và thảo luận
Những phát hiện chính
Khả năng mô tả yêu cầu chức năng và phi chức năng bằng SPSC: SPSC kết hợp SPSKC và SPSG đã thể hiện được 100% các yêu cầu chức năng và phi chức năng trong bộ mẫu IBM, vượt trội so với SPSKC chỉ thể hiện được 84% yêu cầu xử lý trong nghiên cứu trước đó. Ví dụ, yêu cầu về độ tin cậy “Hệ thống phải có khả năng phản hồi trong vòng tối đa 10 giây đối với 80% số yêu cầu” được mô tả chính xác bằng mẫu probabilisticResponse trong SPSC.
Hiệu quả của bảng hỏi SPSCQT trong chuyển đổi yêu cầu: Bảng hỏi được mở rộng từ PROPEL, hỗ trợ tối đa 4 sự kiện/trạng thái và các yêu cầu có tính xác suất, giúp người dùng xác định chính xác phạm vi và hành vi yêu cầu. Độ chính xác chuyển đổi đạt khoảng 95%, giảm thiểu nhầm lẫn giữa các phạm vi như “after A until B” và “between A and B”.
Phần mềm hỗ trợ chuyển đổi: Phần mềm xây dựng cho phép thêm/sửa/xóa yêu cầu, cung cấp bảng hỏi tương tác, xuất kết quả sang file .doc thuận tiện trao đổi. Thiết kế phần mềm linh hoạt, sử dụng cấu trúc XML cho bảng hỏi, dễ dàng mở rộng và bảo trì.
Khả năng mô tả các ca sử dụng phức tạp: Ví dụ ca sử dụng “Kết thúc việc đăng ký” với nhiều sự kiện và mối quan hệ phức tạp được mô tả chi tiết bằng SPSC, thể hiện rõ ràng các mối quan hệ logic giữa các sự kiện như “Between recv_close_req and end_close_reg, if start_check_course holds then end_check_course eventually holds”.
Thảo luận kết quả
Việc kết hợp SPSKC và SPSG thành SPSC đã khắc phục được hạn chế của từng hệ thống riêng lẻ, cho phép mô tả đầy đủ các yêu cầu chức năng và phi chức năng. Bảng hỏi SPSCQT giúp chuẩn hóa quá trình chuyển đổi, giảm phụ thuộc vào kinh nghiệm cá nhân người phân tích, đồng thời tăng tính nhất quán và khả năng kiểm chứng của mô tả yêu cầu.
So với các nghiên cứu trước, luận văn đã mở rộng phạm vi hỗ trợ cho nhiều sự kiện hơn và bổ sung mô tả xác suất, phù hợp với các yêu cầu thực tế phức tạp hơn. Phần mềm hỗ trợ cũng là một đóng góp quan trọng, giúp ứng dụng phương pháp vào thực tế dễ dàng hơn.
Dữ liệu có thể được trình bày qua biểu đồ thể hiện tỷ lệ yêu cầu được mô tả thành công theo từng loại (chức năng, phi chức năng), bảng so sánh các mẫu luật SPSKC, SPSG và SPSC, cũng như sơ đồ luồng chuyển đổi yêu cầu qua bảng hỏi SPSCQT.
Đề xuất và khuyến nghị
Triển khai áp dụng SPSC trong phân tích yêu cầu phần mềm: Các tổ chức phát triển phần mềm nên áp dụng SPSC để mô tả yêu cầu nhằm nâng cao tính chính xác và khả năng kiểm chứng, giảm thiểu rủi ro dự án. Thời gian áp dụng có thể bắt đầu ngay trong giai đoạn phân tích yêu cầu.
Đào tạo và hướng dẫn sử dụng bảng hỏi SPSCQT: Cần tổ chức các khóa đào tạo cho nhà phân tích yêu cầu và các bên liên quan về cách sử dụng bảng hỏi SPSCQT để đảm bảo quá trình chuyển đổi chính xác và hiệu quả.
Phát triển và tích hợp phần mềm hỗ trợ vào quy trình phát triển: Khuyến nghị tích hợp phần mềm hỗ trợ chuyển đổi SPSC vào các công cụ quản lý dự án và phát triển phần mềm hiện có, giúp tự động hóa và chuẩn hóa quy trình phân tích yêu cầu.
Mở rộng nghiên cứu và phát triển các mẫu yêu cầu mới: Tiếp tục nghiên cứu để bổ sung các mẫu yêu cầu đặc thù cho các lĩnh vực khác nhau, đồng thời nâng cấp bảng hỏi và phần mềm hỗ trợ để đáp ứng các yêu cầu phức tạp hơn, như yêu cầu đa sự kiện hoặc yêu cầu thời gian thực.
Đối tượng nên tham khảo luận văn
Nhà phân tích yêu cầu phần mềm: Giúp nâng cao kỹ năng mô tả yêu cầu chính xác, giảm sai sót và tăng tính kiểm chứng trong quá trình phân tích.
Nhà phát triển phần mềm và kỹ sư kiểm thử: Hiểu rõ hơn về cấu trúc và logic yêu cầu, từ đó cải thiện chất lượng thiết kế và kiểm thử sản phẩm.
Quản lý dự án phần mềm: Nắm bắt được tầm quan trọng của việc mô tả yêu cầu chính xác, từ đó quản lý rủi ro và tiến độ dự án hiệu quả hơn.
Nhà nghiên cứu và giảng viên trong lĩnh vực công nghệ phần mềm: Cung cấp cơ sở lý thuyết và phương pháp thực tiễn để phát triển các công cụ và phương pháp phân tích yêu cầu mới.
Câu hỏi thường gặp
SPSC là gì và khác gì so với SPSKC và SPSG?
SPSC là hệ thống luật mô tả yêu cầu phần mềm kết hợp giữa SPSKC (tập trung yêu cầu chức năng) và SPSG (tập trung yêu cầu phi chức năng), giúp mô tả đầy đủ hơn các loại yêu cầu so với từng hệ thống riêng lẻ.Bảng hỏi SPSCQT hỗ trợ gì trong quá trình chuyển đổi?
Bảng hỏi SPSCQT hướng dẫn người dùng xác định chính xác phạm vi và mối quan hệ giữa các sự kiện/trạng thái trong yêu cầu, giảm nhầm lẫn và tăng độ chính xác chuyển đổi sang SPSC.Phần mềm hỗ trợ chuyển đổi có những tính năng gì?
Phần mềm cho phép thêm/sửa/xóa yêu cầu, cung cấp bảng hỏi tương tác, hiển thị kết quả mô tả SPSC và xuất file .doc để trao đổi dễ dàng với các bên liên quan.SPSC có thể áp dụng cho những loại yêu cầu nào?
SPSC có thể mô tả cả yêu cầu chức năng và phi chức năng, bao gồm các yêu cầu về hiệu năng, độ tin cậy, bảo mật, và các yêu cầu có tính xác suất.Làm thế nào để mở rộng SPSC cho các yêu cầu phức tạp hơn?
Có thể mở rộng bảng hỏi và phần mềm hỗ trợ để xử lý nhiều sự kiện hơn, bổ sung các mẫu yêu cầu mới và tích hợp các logic phức tạp hơn như yêu cầu thời gian thực hoặc đa luồng.
Kết luận
- SPSC là hệ thống luật mô tả yêu cầu phần mềm kết hợp hiệu quả SPSKC và SPSG, đáp ứng đầy đủ yêu cầu chức năng và phi chức năng.
- Bảng hỏi SPSCQT giúp chuẩn hóa và nâng cao độ chính xác trong chuyển đổi yêu cầu từ ngôn ngữ tự nhiên sang SPSC.
- Phần mềm hỗ trợ chuyển đổi được thiết kế linh hoạt, dễ sử dụng và có khả năng mở rộng cao.
- Nghiên cứu đã chứng minh khả năng mô tả các ca sử dụng phức tạp và yêu cầu có tính xác suất trong thực tế.
- Đề xuất triển khai áp dụng SPSC rộng rãi trong phân tích yêu cầu phần mềm, đồng thời tiếp tục phát triển các mẫu yêu cầu và công cụ hỗ trợ.
Tiếp theo, các nhà nghiên cứu và thực hành nên tập trung vào việc đào tạo, tích hợp phần mềm hỗ trợ vào quy trình phát triển và mở rộng phạm vi ứng dụng của SPSC. Để biết thêm chi tiết và nhận phần mềm hỗ trợ, độc giả có thể liên hệ với tác giả hoặc truy cập trang web của nhóm nghiên cứu.