Tổng quan nghiên cứu

Trong bối cảnh phát triển công nghệ thông tin ngày càng nhanh chóng, nhu cầu phát triển phần mềm cũng gia tăng đáng kể. Giai đoạn phân tích yêu cầu phần mềm đóng vai trò then chốt, đòi hỏi các yêu cầu phải được đặc tả đầy đủ, chính xác để hỗ trợ thiết kế và xây dựng phần mềm hiệu quả. Theo ước tính, việc đặc tả yêu cầu không chính xác có thể dẫn đến chi phí sửa lỗi tăng lên đến 40-50% tổng chi phí phát triển phần mềm. Ngôn ngữ mô hình i* (iStar) với hướng tiếp cận mục tiêu (goal-oriented) được xem là công cụ phù hợp cho giai đoạn này, giúp mô hình hóa các mục tiêu, tác nhân và mối quan hệ giữa chúng một cách trực quan và có chiều sâu hơn so với UML truyền thống.

Tuy nhiên, các mô hình i* hiện nay gặp khó khăn trong việc tái sử dụng do thiếu phương pháp lưu trữ và tìm kiếm hiệu quả. Luận văn tập trung nghiên cứu áp dụng đặc tả hình thức vào mô hình i* nhằm biểu diễn mục tiêu dưới dạng biểu diễn logic, từ đó phát triển các phương pháp tính toán độ tương tự giữa các mô hình i* dựa trên đặc trưng và logic. Phạm vi nghiên cứu tập trung vào các mô hình i* dạng Strategic Rationale (SR) trong giai đoạn phân tích yêu cầu phần mềm, với dữ liệu thực nghiệm thu thập từ các bộ dữ liệu mô hình i* chuẩn và các case study tại một số địa phương. Mục tiêu chính là nâng cao khả năng tái sử dụng mô hình, hỗ trợ người phân tích yêu cầu trong việc tìm kiếm và gợi ý mô hình tương tự, qua đó cải thiện hiệu quả và chất lượng 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 ba nền tảng lý thuyết chính:

  1. Đặc tả hình thức (Formal Specification): Là kỹ thuật toán học dùng để mô tả, phát triển và kiểm định hệ thống phần mềm. Các ngôn ngữ đặc tả như SOFL và JML được sử dụng để biểu diễn các yêu cầu và hành vi phần mềm một cách chính xác, có cú pháp và ngữ nghĩa rõ ràng. SOFL đặc biệt hỗ trợ mô hình hướng đối tượng, phù hợp cho việc đặc tả các bước từ thu thập yêu cầu đến thiết kế.

  2. Ngôn ngữ mô hình i (iStar):* Là ngôn ngữ mô hình hướng mục tiêu và tác nhân, gồm hai dạng chính là Strategic Dependency (SD) và Strategic Rationale (SR). Mô hình SR cho phép mở rộng tác nhân để thể hiện các mục tiêu (goal, softgoal), công việc (task), tài nguyên (resource) và các mối quan hệ phức tạp giữa chúng. i* trả lời câu hỏi "who" và "why" trong phân tích yêu cầu, khác biệt với UML chỉ tập trung vào "what".

  3. Đồ thị con đẳng cấu (Subgraph Isomorphism): Là bài toán tìm kiếm một đồ thị con trong đồ thị lớn sao cho hai đồ thị đẳng cấu về cấu trúc và nhãn. Đây là công cụ quan trọng để bổ sung cho phương pháp tính độ tương tự dựa trên logic, giúp xem xét các mối liên kết giữa các phần tử trong mô hình i* mà phương pháp logic thuần túy chưa thể hiện đầy đủ.

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

Luận văn sử dụng phương pháp nghiên cứu kết hợp giữa lý thuyết và thực nghiệm:

  • Nguồn dữ liệu: Bao gồm các mô hình i* dạng SR được thu thập từ các công cụ như OpenOME, J-PRIM, và bộ dữ liệu chuẩn iStarML. Ngoài ra, các case study thực tế được xây dựng để minh họa và kiểm thử phương pháp.

  • Phương pháp phân tích:

    • Biểu diễn mục tiêu trong mô hình i* dưới dạng biểu diễn logic, với vế trái là các task và resource, vế phải là các goal và softgoal.
    • Tính toán độ tương tự giữa các mô hình i* dựa trên hai phương pháp: độ tương tự dựa trên đặc trưng (feature-based similarity) và độ tương tự dựa trên logic (logic-based similarity).
    • Áp dụng thuật toán đồ thị con đẳng cấu Ullmann để cải thiện độ chính xác trong việc so sánh cấu trúc mô hình.
    • Kết hợp các phương pháp trên để cân bằng giữa độ chính xác và thời gian thực thi.
  • Timeline nghiên cứu:

    • Tháng 1-3/2016: Thu thập tài liệu, xây dựng cơ sở lý thuyết.
    • Tháng 4-5/2016: Phát triển mô hình biểu diễn logic và thuật toán tính độ tương tự.
    • Tháng 5-6/2016: Thực hiện case study, triển khai hệ thống và đánh giá thực nghiệm.
    • Tháng 6/2016: Hoàn thiện luận văn và bảo vệ.

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

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

  1. Biểu diễn mục tiêu i dưới dạng logic:*
    Mô hình i* dạng SR được biểu diễn thành các mệnh đề logic với cấu trúc:
    $$ \text{Name}: \text{Task}_1 \wedge \ldots \wedge \text{Task}_n \wedge \text{Resource}_1 \wedge \ldots \wedge \text{Resource}_m \to \text{Softgoal}_1 \wedge \ldots \wedge \text{Goal}_j $$
    Ví dụ, mô hình "Design Product" được biểu diễn logic với 7 task/resource và 4 goal/softgoal.

  2. Tính toán độ tương tự dựa trên đặc trưng và logic:

    • Độ tương tự dựa trên đặc trưng được tính bằng tỷ lệ phần tử chung trên tổng phần tử khác biệt giữa hai mệnh đề logic.
    • Độ tương tự dựa trên logic sử dụng phép toán xấp xỉ-hơn (over-approximation) và công cụ Z3 để đơn giản hóa biểu thức, cho kết quả chính xác hơn.
    • Thực nghiệm trên bộ dữ liệu gồm 5 mô hình i* cho thấy độ tương tự logic có thể đạt giá trị cao hơn 0.7 trong khi độ tương tự đặc trưng chỉ khoảng 0.5, chứng tỏ tính ưu việt của phương pháp logic.
  3. Ứng dụng thuật toán đồ thị con đẳng cấu:

    • Thuật toán Ullmann được áp dụng để tìm kiếm đồ thị con đẳng cấu giữa các mô hình i* biểu diễn dưới dạng đồ thị có hướng và gán nhãn.
    • Kết quả thực nghiệm cho thấy phương pháp này cải thiện độ chính xác so với phương pháp logic thuần túy, đặc biệt trong việc nhận diện các mối liên kết phức tạp giữa các phần tử.
    • Tuy nhiên, thời gian thực thi tăng lên đáng kể, ví dụ trên tập dữ liệu lớn thời gian thực thi tăng gấp 2-3 lần so với phương pháp logic.
  4. Kết hợp phương pháp logic và đồ thị con đẳng cấu:

    • Phương pháp kết hợp sử dụng logic để lọc sơ bộ các mô hình có độ tương tự cao, sau đó áp dụng thuật toán đồ thị con đẳng cấu để xác định chính xác hơn.
    • Phương pháp này cân bằng được giữa độ chính xác và thời gian thực thi, phù hợp cho ứng dụng thực tế trong hệ thống gợi ý mô hình i*.

Thảo luận kết quả

Việc biểu diễn mục tiêu i* dưới dạng biểu diễn logic giúp chuẩn hóa và tự động hóa quá trình so sánh mô hình, đồng thời tận dụng được các công cụ giải quyết logic hiện đại như Z3. Tuy nhiên, phương pháp logic chưa thể hiện đầy đủ các mối quan hệ phức tạp giữa các phần tử trong mô hình i*, dẫn đến một số trường hợp độ tương tự bị đánh giá thấp hoặc sai lệch.

Thuật toán đồ thị con đẳng cấu bù đắp hạn chế này bằng cách xét cả cấu trúc và nhãn của các đỉnh, cạnh trong mô hình. Mặc dù vậy, bài toán này thuộc lớp NP-đầy đủ, nên chi phí tính toán cao, không phù hợp khi dữ liệu lớn hoặc yêu cầu thời gian thực nhanh.

Kết hợp hai phương pháp trên là giải pháp tối ưu, tận dụng ưu điểm của từng phương pháp, đồng thời giảm thiểu nhược điểm. Kết quả thực nghiệm cho thấy phương pháp kết hợp đạt độ chính xác trên 85% và thời gian thực thi giảm khoảng 40% so với chỉ dùng thuật toán đồ thị con đẳng cấu.

So sánh với các nghiên cứu trước đây về tính toán độ tương tự web service dựa trên logic, luận văn đã mở rộng ứng dụng sang mô hình i* và bổ sung thuật toán đồ thị con đẳng cấu, tạo ra đóng góp mới cho lĩnh vực phân tích yêu cầu phần mềm.

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

  1. Phát triển công cụ hỗ trợ tích hợp phương pháp tính độ tương tự:
    Xây dựng phần mềm tích hợp biểu diễn logic và thuật toán đồ thị con đẳng cấu để hỗ trợ người phân tích yêu cầu trong việc tìm kiếm và gợi ý mô hình i*. Mục tiêu đạt thời gian phản hồi dưới 5 giây trên bộ dữ liệu khoảng 100 mô hình. Chủ thể thực hiện: nhóm phát triển phần mềm trong 6 tháng.

  2. Mở rộng cơ sở dữ liệu mô hình i:*
    Thu thập và chuẩn hóa các mô hình i* từ nhiều dự án thực tế, xây dựng thư viện lưu trữ theo chuẩn iStarML, hỗ trợ truy vấn và tái sử dụng. Mục tiêu tăng số lượng mô hình lên ít nhất 500 trong vòng 1 năm. Chủ thể thực hiện: các tổ chức nghiên cứu và doanh nghiệp phần mềm.

  3. Nâng cao tính trực quan và dễ hiểu của đặc tả hình thức:
    Phát triển giao diện người dùng thân thiện, che giấu các chi tiết toán học phức tạp, giúp khách hàng và nhà phân tích dễ dàng hiểu và tương tác với mô hình. Mục tiêu giảm thời gian đào tạo người dùng mới xuống còn 1 tuần. Chủ thể thực hiện: nhóm thiết kế UX/UI trong 4 tháng.

  4. Nghiên cứu mở rộng áp dụng cho các ngôn ngữ mô hình khác:
    Áp dụng kỹ thuật đặc tả hình thức và tính độ tương tự sang các ngôn ngữ mô hình như UML, BPMN để tăng tính linh hoạt và khả năng tích hợp trong phát triển phần mềm. Mục tiêu hoàn thành nghiên cứu thí điểm trong 1 năm. Chủ thể thực hiện: các nhóm nghiên cứu khoa học máy tính.

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

  1. Nhà phân tích yêu cầu phần mềm:
    Giúp hiểu sâu về cách biểu diễn và so sánh các mô hình yêu cầu, nâng cao hiệu quả tái sử dụng mô hình, giảm thiểu sai sót trong phân tích.

  2. Nhà phát triển phần mềm và kiến trúc sư hệ thống:
    Áp dụng các kỹ thuật đặc tả hình thức để đảm bảo tính chính xác và toàn vẹn của yêu cầu, hỗ trợ thiết kế phần mềm phù hợp với mục tiêu nghiệp vụ.

  3. Nhà nghiên cứu trong lĩnh vực kỹ thuật phần mềm và trí tuệ nhân tạo:
    Cung cấp cơ sở lý thuyết và phương pháp mới trong việc xử lý mô hình hướng mục tiêu, đặc biệt là ứng dụng thuật toán đồ thị con đẳng cấu trong so sánh mô hình.

  4. Doanh nghiệp phát triển công cụ hỗ trợ phân tích yêu cầu:
    Tham khảo để phát triển các công cụ tích hợp tính năng tìm kiếm, gợi ý mô hình dựa trên độ tương tự, nâng cao trải nghiệm người dùng và hiệu quả công việc.

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

  1. Tại sao cần biểu diễn mô hình i dưới dạng biểu diễn logic?*
    Biểu diễn logic giúp chuẩn hóa mô hình, cho phép sử dụng các công cụ tự động để tính toán độ tương tự, kiểm tra tính nhất quán và hỗ trợ tái sử dụng mô hình hiệu quả hơn.

  2. Phương pháp tính độ tương tự dựa trên đặc trưng và logic khác nhau thế nào?
    Độ tương tự dựa trên đặc trưng chỉ xét các phần tử chung và khác biệt, trong khi độ tương tự dựa trên logic sử dụng phép toán xấp xỉ-hơn và công cụ giải quyết logic để đánh giá sâu hơn về cấu trúc và ý nghĩa của mô hình.

  3. Thuật toán đồ thị con đẳng cấu có ưu điểm gì trong so sánh mô hình?
    Thuật toán này xét cả cấu trúc và nhãn của mô hình, giúp phát hiện các mối quan hệ phức tạp mà phương pháp logic thuần túy không thể nhận diện, từ đó nâng cao độ chính xác so sánh.

  4. Phương pháp kết hợp logic và đồ thị con đẳng cấu hoạt động ra sao?
    Đầu tiên, phương pháp logic được dùng để lọc nhanh các mô hình có độ tương tự cao, sau đó thuật toán đồ thị con đẳng cấu được áp dụng để xác định chính xác hơn, cân bằng giữa độ chính xác và thời gian thực thi.

  5. Luận văn có thể áp dụng cho các ngôn ngữ mô hình khác ngoài i không?*
    Có thể, các kỹ thuật đặc tả hình thức và thuật toán đồ thị con đẳng cấu có thể được điều chỉnh để áp dụng cho các ngôn ngữ mô hình khác như UML hoặc BPMN, mở rộng phạm vi ứng dụng trong phát triển phần mềm.

Kết luận

  • Luận văn đã thành công trong việc áp dụng đặc tả hình thức để biểu diễn mục tiêu trong mô hình i* dưới dạng biểu diễn logic, tạo nền tảng cho việc tính toán độ tương tự giữa các mô hình.
  • Phương pháp tính độ tương tự dựa trên logic và thuật toán đồ thị con đẳng cấu được nghiên cứu, đánh giá và kết hợp nhằm nâng cao độ chính xác và hiệu quả so sánh mô hình.
  • Hệ thống lưu trữ và gợi ý mô hình i* được xây dựng, hỗ trợ tái sử dụng mô hình trong phân tích yêu cầu phần mềm.
  • Thời gian thực thi và độ chính xác của các phương pháp được cân bằng hợp lý, phù hợp với yêu cầu thực tế trong phát triển phần mềm.
  • Hướng nghiên cứu tiếp theo tập trung vào mở rộng ứng dụng cho các ngôn ngữ mô hình khác và phát triển công cụ hỗ trợ người dùng trực quan hơn.

Hành động tiếp theo: Khuyến nghị các nhà nghiên cứu và phát triển phần mềm áp dụng phương pháp này trong dự án thực tế, đồng thời tiếp tục hoàn thiện và mở rộng hệ thống để nâng cao hiệu quả phân tích yêu cầu.