Tổng quan nghiên cứu

Phát triển phần mềm là một quá trình phức tạp với nhiều giai đoạn liên kết chặt chẽ, trong đó giai đoạn kỹ thuật yêu cầu đóng vai trò then chốt. Theo báo cáo của ngành, khoảng 71% các dự án phần mềm thất bại do lỗi trong kỹ thuật yêu cầu, trong đó 50% lỗi phát sinh ngay từ giai đoạn đặc tả yêu cầu. Việc phát hiện lỗi muộn có thể làm tăng chi phí sửa chữa lên đến 100 lần so với phát hiện sớm. Đặc biệt trong các hệ thống quan trọng như ngành đường sắt, việc tuân thủ các tiêu chuẩn quốc tế đòi hỏi tài liệu yêu cầu phải rõ ràng, chính xác và không mơ hồ. Tuy nhiên, phần lớn các tài liệu này được viết bằng ngôn ngữ tự nhiên, dễ dẫn đến các mơ hồ và sai sót trong quá trình phát triển. Mục tiêu nghiên cứu của luận văn là phát triển một công cụ ứng dụng học máy và xử lý ngôn ngữ tự nhiên (NLP) để tự động phát hiện các mơ hồ trong tài liệu đặc tả yêu cầu phần mềm, từ đó nâng cao chất lượng tài liệu và giảm thiểu rủi ro dự án. Nghiên cứu tập trung vào việc áp dụng mô hình triplet (chủ ngữ, vị ngữ, tân ngữ) để phân tích và phát hiện mơ hồ trong các tài liệu yêu cầu viết bằng tiếng Pháp và tiếng Anh, với phạm vi nghiên cứu tại Việt Nam và Pháp trong giai đoạn 2021-2023. Việc phát hiện sớm các lỗi mơ hồ không chỉ giúp giảm chi phí sửa chữa mà còn tăng tính tuân thủ tiêu chuẩn, cải thiện hiệu quả phát triển và chất lượng sản phẩm 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 lý thuyết chính: kỹ thuật yêu cầu phần mềm (Requirements Engineering - RE) và xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP). RE là quá trình thu thập, phân tích, đặc tả và xác nhận các yêu cầu phần mềm, đóng vai trò nền tảng cho toàn bộ chu trình phát triển phần mềm. Các khái niệm chính bao gồm: đặc tả yêu cầu phần mềm (Software Requirements Specification - SRS), các loại yêu cầu chức năng và phi chức năng, cũng như các tiêu chí chất lượng như tính rõ ràng, không mơ hồ, khả năng kiểm thử và tính nhất quán. NLP được ứng dụng để phân tích ngôn ngữ tự nhiên trong tài liệu yêu cầu, bao gồm các kỹ thuật phân đoạn câu, phân tích cú pháp, phân tích ngữ nghĩa và mô hình ngôn ngữ. Mô hình triplet (chủ ngữ, vị ngữ, tân ngữ) được sử dụng để biểu diễn các yêu cầu một cách cấu trúc, giúp phát hiện các mơ hồ ngữ nghĩa và cú pháp. Ngoài ra, mô hình GPT-3 của OpenAI được lựa chọn làm nền tảng học máy nhờ khả năng hiểu ngữ cảnh và xử lý ngôn ngữ tự nhiên vượt trội, hỗ trợ phát hiện mơ hồ chính xác và hiệu quả.

Phương pháp nghiên cứu

Nghiên cứu áp dụng phương pháp Design Science Research, gồm bốn bước chính: (1) phân tích và đánh giá các kỹ thuật hiện tại trong việc đặc tả yêu cầu phần mềm; (2) lựa chọn và áp dụng mô hình triplet làm cơ sở thiết kế công cụ phát hiện mơ hồ; (3) phát triển công cụ "The Roc Ambiguity Detect" sử dụng Python, tích hợp GPT-3 và thư viện Streamlit để xây dựng giao diện người dùng; (4) đánh giá công cụ trên ba bộ tài liệu đặc tả yêu cầu thực tế viết bằng tiếng Pháp và tiếng Anh. Cỡ mẫu gồm ba bộ tài liệu đặc tả với tổng số câu lên đến vài trăm, được lựa chọn ngẫu nhiên từ các dự án phần mềm khác nhau. Phân tích dữ liệu dựa trên so sánh tỷ lệ phát hiện mơ hồ của công cụ với kết quả đánh giá thủ công của chuyên gia. Timeline nghiên cứu kéo dài gần hai năm, từ 2021 đến 2023, với các giai đoạn thu thập dữ liệu, phát triển công cụ, thử nghiệm và đánh giá kết quả.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

  1. Tỷ lệ lỗi mơ hồ trong tài liệu đặc tả yêu cầu: Khoảng 50% các lỗi phần mềm phát sinh từ giai đoạn đặc tả, trong đó mơ hồ chiếm phần lớn nguyên nhân. Công cụ phát hiện mơ hồ đạt tỷ lệ chính xác 92,3% trên tài liệu tiếng Pháp và 100% trên tài liệu tiếng Anh, cho thấy hiệu quả vượt trội so với phương pháp thủ công.

  2. Hiệu quả của mô hình triplet: Việc biểu diễn yêu cầu dưới dạng triplet giúp phát hiện các mơ hồ ngữ nghĩa và cú pháp một cách rõ ràng, giảm thiểu các lỗi do diễn giải sai. So với các phương pháp truyền thống như Use Cases hay User Stories, mô hình triplet cho phép tự động hóa và chuẩn hóa quá trình phân tích yêu cầu.

  3. Tác động của công cụ đến chất lượng tài liệu: Sử dụng công cụ giúp tăng tính rõ ràng, nhất quán và khả năng kiểm thử của tài liệu yêu cầu, giảm thiểu các tranh cãi và sai sót trong quá trình phát triển phần mềm. So sánh với các dự án không sử dụng công cụ, dự án áp dụng công cụ có tỷ lệ lỗi phát sinh trong giai đoạn phát triển giảm khoảng 30%.

  4. Tiết kiệm thời gian và chi phí: Phát hiện sớm mơ hồ giúp giảm chi phí sửa lỗi lên đến 100 lần so với phát hiện muộn. Công cụ giúp giảm thời gian rà soát tài liệu yêu cầu xuống còn khoảng 40% so với phương pháp thủ công.

Thảo luận kết quả

Nguyên nhân chính của mơ hồ trong tài liệu yêu cầu là do sử dụng ngôn ngữ tự nhiên không chuẩn hóa, thiếu cấu trúc rõ ràng và sự đa nghĩa của từ ngữ. Mô hình triplet cung cấp một cấu trúc ngữ pháp đơn giản nhưng hiệu quả, giúp phân tách rõ ràng các thành phần của yêu cầu, từ đó giảm thiểu sự hiểu sai. Kết quả nghiên cứu phù hợp với các báo cáo trước đây về tầm quan trọng của phát hiện sớm lỗi yêu cầu và lợi ích của NLP trong kỹ thuật yêu cầu. Việc áp dụng GPT-3 giúp nâng cao khả năng nhận diện mơ hồ nhờ khả năng hiểu ngữ cảnh sâu sắc, vượt trội hơn các phương pháp dựa trên quy tắc cứng nhắc. Biểu đồ so sánh tỷ lệ phát hiện mơ hồ giữa công cụ và phương pháp thủ công minh họa rõ sự vượt trội của công cụ, đồng thời bảng thống kê chi phí sửa lỗi theo giai đoạn phát hiện cho thấy lợi ích kinh tế rõ rệt. Kết quả này có ý nghĩa quan trọng trong việc nâng cao chất lượng phát triển phần mềm, đặc biệt trong các hệ thống yêu cầu độ tin cậy cao như ngành đường sắt.

Đề xuất và khuyến nghị

  1. Áp dụng công cụ phát hiện mơ hồ trong quy trình kỹ thuật yêu cầu: Các tổ chức phát triển phần mềm nên tích hợp công cụ "The Roc Ambiguity Detect" vào giai đoạn đặc tả yêu cầu để phát hiện và xử lý mơ hồ kịp thời, nhằm nâng cao chất lượng tài liệu và giảm thiểu rủi ro dự án. Thời gian thực hiện: ngay trong các dự án hiện tại.

  2. Đào tạo nhân sự về kỹ thuật viết yêu cầu theo mô hình triplet: Tổ chức các khóa đào tạo cho các nhà phân tích và kỹ sư phần mềm về cách viết yêu cầu rõ ràng, ngắn gọn theo cấu trúc triplet để giảm thiểu mơ hồ và tăng tính tự động hóa trong phân tích. Thời gian thực hiện: trong vòng 6 tháng.

  3. Phát triển thêm các tính năng mở rộng cho công cụ: Nâng cấp công cụ để hỗ trợ đa ngôn ngữ, tích hợp với các hệ thống quản lý dự án và kiểm thử tự động, nhằm tăng tính ứng dụng và hiệu quả trong môi trường phát triển phần mềm đa dạng. Thời gian thực hiện: 12 tháng tiếp theo.

  4. Khuyến khích nghiên cứu và ứng dụng NLP trong kỹ thuật yêu cầu: Các viện nghiên cứu và doanh nghiệp nên đầu tư nghiên cứu sâu hơn về NLP và học máy để phát triển các giải pháp tự động hóa nâng cao, góp phần cải thiện chất lượng phần mềm và giảm chi phí phát triển. Thời gian thực hiện: liên tục.

Đối tượng nên tham khảo luận văn

  1. Nhà quản lý dự án phần mềm: Giúp hiểu rõ tầm quan trọng của kỹ thuật yêu cầu và lợi ích của việc phát hiện sớm mơ hồ, từ đó áp dụng các công cụ và phương pháp phù hợp để giảm thiểu rủi ro và chi phí dự án.

  2. Kỹ sư phân tích và thiết kế phần mềm: Cung cấp kiến thức về mô hình triplet và kỹ thuật NLP để nâng cao kỹ năng viết và phân tích yêu cầu, giúp tạo ra tài liệu đặc tả chất lượng cao, dễ hiểu và dễ kiểm thử.

  3. Nhà nghiên cứu và sinh viên ngành công nghệ thông tin: Là tài liệu tham khảo quý giá về ứng dụng học máy và NLP trong kỹ thuật yêu cầu, đồng thời cung cấp phương pháp nghiên cứu khoa học và phát triển công cụ thực tiễn.

  4. Doanh nghiệp phát triển phần mềm trong các lĩnh vực yêu cầu cao: Như ngành đường sắt, hàng không, y tế, nơi yêu cầu tuân thủ tiêu chuẩn nghiêm ngặt và chất lượng phần mềm cao, giúp cải thiện quy trình phát triển và đảm bảo an toàn, hiệu quả.

Câu hỏi thường gặp

  1. Tại sao cần phát hiện mơ hồ trong tài liệu yêu cầu phần mềm?
    Mơ hồ trong tài liệu yêu cầu dẫn đến hiểu sai, gây lỗi trong thiết kế và phát triển, làm tăng chi phí sửa chữa và nguy cơ thất bại dự án. Phát hiện sớm giúp giảm thiểu rủi ro và nâng cao chất lượng sản phẩm.

  2. Mô hình triplet là gì và tại sao được sử dụng?
    Mô hình triplet biểu diễn yêu cầu dưới dạng ba thành phần: chủ ngữ (người hoặc hệ thống thực hiện), vị ngữ (hành động) và tân ngữ (đối tượng hành động). Cấu trúc này giúp đơn giản hóa và chuẩn hóa yêu cầu, giảm mơ hồ và hỗ trợ tự động hóa phân tích.

  3. GPT-3 hỗ trợ phát hiện mơ hồ như thế nào?
    GPT-3 là mô hình ngôn ngữ lớn có khả năng hiểu ngữ cảnh và phân tích ngôn ngữ tự nhiên sâu sắc, giúp nhận diện các câu có thể gây hiểu nhầm hoặc đa nghĩa, từ đó hỗ trợ phát hiện mơ hồ chính xác hơn các phương pháp truyền thống.

  4. Công cụ "The Roc Ambiguity Detect" có thể áp dụng cho những loại tài liệu nào?
    Công cụ phù hợp với các tài liệu đặc tả yêu cầu phần mềm viết bằng ngôn ngữ tự nhiên, đặc biệt là tiếng Pháp và tiếng Anh, có thể mở rộng cho các ngôn ngữ khác trong tương lai.

  5. Làm thế nào để tích hợp công cụ này vào quy trình phát triển phần mềm hiện tại?
    Công cụ có giao diện web thân thiện, dễ sử dụng, có thể được tích hợp vào giai đoạn đặc tả yêu cầu để rà soát tài liệu trước khi chuyển sang thiết kế và phát triển, giúp phát hiện và sửa lỗi mơ hồ kịp thời.

Kết luận

  • Phát hiện sớm mơ hồ trong tài liệu yêu cầu phần mềm là yếu tố then chốt giúp giảm chi phí và nâng cao chất lượng dự án.
  • Mô hình triplet cung cấp cấu trúc đơn giản, hiệu quả để biểu diễn và phân tích yêu cầu, giảm thiểu mơ hồ.
  • Công cụ ứng dụng GPT-3 đạt tỷ lệ phát hiện mơ hồ lên đến 92,3% (tiếng Pháp) và 100% (tiếng Anh), chứng minh tính khả thi và hiệu quả.
  • Việc áp dụng công cụ giúp tiết kiệm thời gian, chi phí và tăng tính tuân thủ tiêu chuẩn trong phát triển phần mềm.
  • Các bước tiếp theo bao gồm mở rộng tính năng công cụ, đào tạo nhân sự và nghiên cứu sâu hơn về NLP trong kỹ thuật yêu cầu.

Hãy áp dụng công cụ và phương pháp này để nâng cao chất lượng tài liệu yêu cầu và thành công cho dự án phần mềm của bạn!