1. 4 Cấu trúc khóa luận
6.1 Kết luận về khóa luận
Trong quá trình thực hiện đề tài này, tôi đã tìm hiểu những kiến thức cơ bản về kiểm chứng phần mềm giúp cho việc phát hiện và sửa lỗi phần mềm nhằm đảm bảo chất lượng của phần mềm, các kiến thức cơ bản về UML, Sequence Diagram về chi tiết các thành phần, cách sử dụng và biểu diễn chúng. Tôi đã tìm hiểu các kiến thức về AOP và áp dụng các kiến thức này để xây dựng phương pháp kiểm thử dựa vào những đặc tính ưu việt của AOP. Các mô đun aspect chứa mã kiểm chứng có thể cắt ngang can thiệp vào một thành phần của hệ thống và tách biệt hoàn toàn với chương trình ban đầu. Đây là một khả năng rất hay và mạnh mẽ của AOP. Quá trình kiểm chứng phần mềm mà tôi đề cập trong khóa luận được tóm tắt lại như sau:
Từ biểu đồ trình tự UML đặc tả giao thức, xuất biểu đồ này dưới dạng tài liệu XMI, tiếp đó phân tích tài liệu XMI, máy trạng thái tương tác vơi tài liệu XMI cho ra được biểu đồ trạng thái. Với việc phát triển thêm một số thành phần cho máy trạng thái và xây dựng các mô đun cho việc sinh mã aspect kiểm chứng cho các giao thức cơ bản, tôi đã xây dựng được công cụ sinh mã kiểm chứng tự động bằng aspect từ tài liệu XMI mô tả giao thức. Với chương trình này tôi có thể kiểm chứng được hầu hết các giao thức định nghĩa được trên biểu đồ tuần tự. Khi thực hiện khóa luận tôi cũng gặp phải những khó khăn khi xây dựng công cụ sinh mã kiểm chứng tự động. Việc biểu diễn ràng buộc trong biểu đồ trình tự là rất khó,bằng phương pháp của tôi có thể giải quyết triệt để các ràng buộc đơn giản. Nhưng khi ràng buộc là tổ hợp của rất nhiều ràng buộc nhỏ lẻ bắt buộc phải tách chúng ra thành từng ràng buộc nhỏ lẻ để có thể kiểm chứng. Và một vấn đề nữa là chương trình phụ thuộc hoàn toàn vào tài liệu XMI, mà XMI lại là tự động được sinh ra và phụ thuộc hoàn toàn vào công cụ. Vì vậy, các thành phần của biểu đồ UML được biểu diễn rất khác nhau với mỗi công cụ sinh tài liệu XMI khác nhau. Trong bài khóa luận tôi sử dụng chương trình Altova UModel để sinh tài liệu XMI. Đây là một công cụ khá mạnh mẽ và biểu diễn được tương đối đầy đủ các thành phần biểu đồ UML.