, có thể chia thành 3 hướng tiếp cận chính.
4. Phương pháp kiểm chứng phần mềm dựa trên Aspect
Nguyễn Thùy Nhung MSV 0420280
Email: nhungnt.it@gmail.com
Cán bộ hướng dẫn : TS. Nguyễn Việt Hà
1. Giới thiệu
Khóa luận được thực hiện theo đề tài: Nghiên cứu phương pháp kiểm chứng phần mềm dựa trên Aspect. Đây là một đề tài mang ý nghĩa thực tiễn, nhất là trong thời điểm hiện nay, khi mà yêu cầu về chất lượng phần mềm ngày càng cao. Nội dung của khóa luận trình bày kiến thức cơ bản xung quanh các vấn đề: kiểm chứng phần mềm; thiết kế phần mềm với UML (Unified Modeling Language) và OCL (Object Constraint Language); phương pháp lập trình hướng khía cạnh (AOP) và ứng dụng AOP vào bài toán kiểm chứng. Trên cơ sởđó, chúng tôi phân tích, làm rõ lợi ích và quy trình thực hiện kiểm chứng phần mềm theo phương pháp “Kiểm chứng phần mềm dựa trên Aspect”. Trong nội dung chính của khóa luận, chúng tôi trình bày phương pháp xây dựng Aspect kiểm chứng các ràng buộc OCL cơ bản của chương trình hướng đối tượng và tiến hành cài đặt thử nghiệm các Aspect kiểm chứng ràng buộc bất biến (invariant), điều kiện trước (pre- condition), điều kiện sau (post-condition) trên một số ví dụđơn giản.
2. UML & OCL
Ngôn ngữ mô hình hóa thống nhất UML là ngôn ngữ được sử dụng rộng rãi nhất hiện nay trong việc thiết kế và đặc tả thiết kế các hệ thống phần mềm. Hỗ trợ cho UML, ngôn ngữ ràng buộc OCL ra đời nhằm mô tả một cách rõ ràng và chính xác các ràng buộc đối với các đối tượng, các thuộc tính và phương thức của các lớp trong mô hình UML.
OCL định nghĩa 4 loại ràng buộc cơ bản: bất biến (invariant), điều kiện trước (pre- condition), điều kiện sau (post-condition) và guard.
3. Lập trình hướng khía cạnh và AspectJ
Phương pháp lập trình hướng khía cạnh (Aspect Oriented Programming)– viết tắt là AOP
– được định nghĩa là : “công nghệ mới dùng để
phân tích vấn đề trong phát triển phần mềm, cho phép đơn thể hóa những vấn đềđan nhau của hệ
thống phần mềm”
AOP được xây dựng dựa trên các phương pháp lập trình khác như lập trình hướng đối tượng, lập trình hướng thủ tục và có bổ sung thêm các khái niệm, các tổ chức mới nhằm mô
đun hóa các mối quan tâm cắt ngang. AOP được sử dụng kết hợp với các phương pháp lập trình truyền thống, tức là với các mối quan tâm chính ta có thể cài đặt bằng phương pháp lập trình chính đã chọn (ví dụ như OOP,...), còn với các mối quan tâm cắt ngang sử dụng phương pháp lập trình hướng khía cạnh.
AOP phân chia trách nhiệm rõ ràng giữa các mô đun riêng lẻ, AOP làm tăng tính mô đun hóa của hệ thống, Với AOP hệ thống dễ dàng
được mở rộng, Tăng tính tái sử dụng…
Quy trình xây dựng một ứng dụng AOP gồm 3 bước cơ bản: Phân rã bài toán theo khía cạnh - Cài đặt các mối quan tâm - Tích hợp các khía cạnh.
AspectJ là ngôn ngữ hướng khía cạnh có khả năng ứng dụng lớn, dễ dàng cài đặt vào các môi trường phát triển phổ biến như
Eclipse,...Aspectj được xây dưng trên cơ sở mở
rộng ngôn ngữ lập trình java, thêm vào các thành phần mới hỗ trợ AOP
Các khái niệm cơ bản trong AspectJ : thực thi cắt ngang tĩnh, thực thi cắt ngang động, joinpoint, pointcut, advice, Aspect
4. Phương pháp kiểm chứng phần mềm dựa trên Aspect trên Aspect
“Phương pháp kiểm chứng phần mềm dựa trên Aspect” là phương pháp kiểm chứng trong đó công việc kiểm chứng được tách biệt hoàn toàn với việc phát triển mã nguồn. Các Aspect chứa
mã kiểm chứng được xây dựng độc lập với chương trình nguồn, sau đó các Aspect này được tựđộng đan vào chương trình chính để tạo thành hệ thống cuối cùng có khả năng tự kiểm chứng Phương pháp kiểm chứng này có nhiều lợi ích: Theo dõi chặt chẽ chương trình trong thời gian chạy, có thể xây dựng mã kiểm chứng độc lập với phát triển mã nguồn, hứa hẹn khả năng lớn trong việc tựđộng hóa,...
Các bước thực hiện:
Bước 1: Mã nguồn được được lập trình viên cài
đặt theo đúng thiết kế
Bước 2: Song song với việc phát triển mã nguồn, mã kiểm chứng được cài đặt trong các Aspect. Tùy theo khía cạnh cần kiểm chứng, các Aspect
sẽ có nội dung khác nhau.
Bước 3: Đan Aspect vào chương trình nguồn để
tạo thành hệ thống thống nhất có khả năng tự
kiểm chứng
Áp dụng “Phương pháp kiểm chứng phần mềm dựa trên Aspect” để kiểm chứng ràng buộc OCL của các chương trình hướng đối tượng, sơđồ các bước kiểm chứng như sau:
Trong đó các aspect kiểm chứng ràng buộc OCL
được xây dựng theo 3 bước: Bước 1: Xác định các quy tắc đan
Bước 2: Xác định các hành vi đan vào hệ thống Bước 3: Tổng hợp Aspect
5. Thực nghiệm
Sử dụng AspectJ cài đặt Aspect kiểm chứng bất biến, điều kiện trước, điều kiện sau, của đối tượng Java trong thời gian chạy.
Tài liệu tham khảo
[1] Nguyễn Thị Thu Trang. Mô hình hóa và kiểm chứng Aspect, Luận văn thạc sĩ khoa học. Trường Đại học Bách Khoa Hà Nội. Năm 2007, tr.60-81.
[3] G. Booch, J. Rumbaugh, and I. Jacopson. The Unified Modeling Language User Guide, 2nd edition. Addison-Wesley, 2005.
[4] OMG. Object Constraint Language. OMG, Version 1.5 March 2003.
[5] Ho Tat Thanh, Nguyen Thi Thu Trang, Truong Ninh Thuan, Nguyen Viet Ha. An approach for verifying invariants of Java objects at runtime. In Proceeding of the Japan- Vietnam Workshop on Software Engineering IoIT, Ha Noi, 2007