1. 4 Cấu trúc khóa luận
3.7. Sử dụng AOP Phát triển ứng dụng và phương pháp kiểm chứng dựa trên AOP
dựa trên AOP
Ngày nay, AOP được ứng dụng rộng rãi trong việc phát triển phần mềm. Phát triển hệ thống sử dụng AOP tương tự như phát triển hệ thống sử dụng các phương pháp khác, cũng g ồm các bước như: xác định concern, cài đặt concern và kết hợp chúng lại tạo thành hệ thống cuối cùng. Cộng đồng nghiên cứu AOP đề xuất ba bước thực hiện như sau:
o Phân tích bài toán theo khía cạnh (Aspectual decomposition): Trong bước này chúng ta phân tích các yêu cầu nhằm xác định các chức năng chính của hệ thống và các chức năng cắt ngang hệ thống. Các phương thức cắt ngang hệ thống được tách ra khỏi các chức năng chính.
o Xây dựng các chức năng (Concern Implementation): Cài đặt các chức năng một cách độc lập.
o Kết hợp các khía cạnh lại để tạo nên hệ thống hoàn chỉnh (Aspectual Recompositon): Trong bước này chúng ta chỉra các quy luật kết hợp bằngcách tạo ra các
aspect. Quá trình này gọi là quá trình dệt mã, sử dụng các thông tin trong aspect để cấu
thành hệ thống cuối cùng.
Hình 12. Các giai đoạn phát triển ứng dụng sử dụng AOP
AOP đã được nghiên cứu và áp dụng vào rất nhiều ngôn ngữ lập trình như: Java, C, C#, PHP. Một số dự án được liệt kê trong bảng dưới đây:
Bảng: Các dự án nghiên cứu AOP
Tên dự án Địa chỉ
AspectJ http://www.eclipse.org/aspectj/
AspectWerkz http://aspectwerkz.codehaus.org/
Jboss AOP http://jboss.org/
Sping AOP http://www.springsource.org/
37
AspectC++ http://aspectc.org/
JAC http://jac.ow2.org/
Từ khả năng mô-đun hóa các quan hệ đan xen, các chức năng cắt ngang hệ thống; tách rời sự hoạt động của các mô-đun cũng như nhiều ưu điểm khác của AOP so với OOP mà hiện nay AOP đã trở thành sự lựa chọn phù hợp cho rất nhiều hệ thống phần mềm; đặc biệt là trong các chức năng lưu vết, bảo mật, xác thực của hệ thống phần mềm. Ngoài ra, do các mã aspect độc lập với mã nguồn chính của chương trình, có thể sửa đổi tùy theo ý muốn của lập trình viên, chính vì vậy AOP cònđư ợc ứng dụng rất lớn vào các loại kiểm chứng trong quá trình thiết kế phần mềm. Ví dụ như: kiểm chứng giao thức [5], kiểm tra việc gọi tuần tự các hàm trong chương trình…
Nội dung chính của các phương pháp kiểm chứng dựa trên AOP là dựa vào những kiến khái niệm cơ bản của AOP như: join point, pointcut, advice, aspect để xây dựng nên các mô-đun kiểm chứng (các aspect) từ các chức năng cắt ngang hệ thống. Các aspect này sẽ được đan vào khung mã ngu ồn chương trình thông qua trình biên dịch AspectJ để thực hiện chức năng kiểm chứng.
CHƯƠNG 4.
KIỂM CHỨNG CÁC GIAO THỨC BẰNG AOP