Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
1,52 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Lê Ngọc Minh KIỂM CHỨNG MỘT SỐ RÀNG BUỘC TRONG CHƢƠNG TRÌNH JAVA SỬ DỤNG AOP LUẬN VĂN THẠC SĨ HÀ NỘI - 2015 TIEU LUAN MOI download : skknchat@gmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Lê Ngọc Minh KIỂM CHỨNG MỘT SỐ RÀNG BUỘC TRONG CHƢƠNG TRÌNH JAVA SỬ DỤNG AOP LUẬN VĂN THẠC SĨ Ngành: Chuyên ngành: Mã số: Công Nghệ Thông Tin Kỹ thuật phần mềm 60 48 01 03 NGƢỜI HƢỚNG DẪN KHOA HỌC TS Trịnh Thanh Bình HÀ NỘI - 2015 TIEU LUAN MOI download : skknchat@gmail.com LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu riêng tơi Các kết trình bày luận văn hồn tồn trung thực, chưa cơng bố cơng trình khác Tơi xin cam đoan trích dẫn tài liệu tham khảo luận văn ghi rõ nguồn gốc Hà Nội, ngày 10 tháng năm 2015 TÁC GIẢ Lê Ngọc Minh iii TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP LỜI CẢM ƠN Trong trình thực đề tài, tơi gặp nhiều khó khăn bỡ ngỡ Nếu khơng có giúp đỡ, động viên chân thành thầy bạn bè đồng nghiệp có lẽ tơi khó hồn thành tốt luận văn Trước hết tơi xin tỏ lịng biết ơn sâu sắc đến TS Trịnh Thanh Bình tận tình hướng dẫn suốt q trình viết luận văn Tơi xin trân trọng cảm ơn quý Thầy, Cô bạn bè khoa Công nghệ thông tin, trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội tận tình truyền đạt kiến thức, sát cánh trải nghiệm suốt năm học tập Với vốn kiến thức tiếp thu trình học tảng cho trình nghiên cứu luận văn Tôi xin trân trọng cảm ơn Đảng ủy, Ban Giám hiệu, Ban chủ nhiệm khoa Công nghệ thông tin trường Đại học Hải Phịng tạo điều kiện cho tơi suốt trình học tập làm luận văn Cuối gửi lời cảm ơn đến vợ con, gia đình động viên giúp đỡ tơi lúc khó khăn cơng tác học tập Xin trân trọng cảm ơn! iv (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP DANH MỤC CÁC BẢNG Số bảng Tên bảng Trang 2.1 Ánh xạ loại join point pointcut tương ứng 2.2 Ví dụ khía cạnh với mã hành vi trước sau 2.3 Cấu trúc khía cạnh 10 3.1 Đặc tả kịch mô tả chức rút tiền tự động máy ATM 14 3.2 Mẫu aspect tổng quát 15 4.1 Cài đặt chương trình cho kịch kiểm tra assertion 23 4.2 Cài đặt kịch mô tả chức rút tiền từ tài khoản 24 4.3 Cài đặt kịch mô tả chức chuyển khoản 28 4.4 Kết kiểm chứng cho kịch 30 v (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP DANH MỤC CÁC HÌNH Số hình Tên hình Trang 1.1 Kịch biểu diễn phép chia hai số nguyên 2.1 Điểm nối thực thi triệu gọi phương thức 2.2 Ví dụ minh họa đặc tả JML 11 3.1 Phương pháp kiểm chứng ràng buộc kịch chương trình Java sử dụng AOP 15 4.1 Giao diện chương trình 20 4.2 Sinh mã Aspect cho kịch 21 4.3 Kết kiểm chứng kịch vi phạm đặc tả 22 4.4 Kết kiểm chứng kịch không vi phạm 22 4.5 kết kiểm tra assertion cho kịch cài đặt sai 24 4.6 Kết kiểm tra assertion cho kịch cài đặt 24 4.7 Mô tả tạo Aspect với toán rút tiền đơn giản 27 4.8 Kết đan xen mã 27 4.9 Kết kiểm chứng 28 vi (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP DANH MỤC CÁC TỪ VIẾT TẮT Chữ viết tắt Giải thích AOP Aspect oriented programming ATM Automatic Teller Machine JDK Java Development Kit JML Java modeling language JPF Java Path Finder JRE Java Runtime Environment JVM Java Virtual Machine LTL Linear Temporal Logic UC Use Case vii (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP Mục Lục LỜI CAM ĐOAN iii LỜI CẢM ƠN iv DANH MỤC CÁC BẢNG v DANH MỤC CÁC HÌNH vi DANH MỤC CÁC TỪ VIẾT TẮT vii CHƢƠNG GIỚI THIỆU 1.1 Đặt vấn đề 1.2 Mục tiêu .2 1.3 1.4 Đóng góp luận văn Cấu trúc luận văn .2 CHƢƠNG KIẾN THỨC CƠ SỞ .4 2.1 Kiểm chứng phần mềm 2.2 Phương pháp lập trình hướng khía cạnh .5 2.2.1 Thực thi cắt ngang 2.2.2.Điểm nối 2.2.3 Hướng cắt (pointcut) .7 2.2.4 Mã hành vi .8 2.4.5 Khía cạnh .9 2.3 Ngôn ngữ mô hình hóa JML (Java modeling language) .10 2.4 Kết luận 11 CHƢƠNG 3: KIỂM CHỨNG MỘT SỐ RÀNG BUỘC CHƢỜNG TRÌNH JAVA SỬ DỤNG AOP 12 3.1 Giới thiệu .12 3.2 Bài toán .12 3.3 Phương pháp kiểm chứng sử dụng AOP .13 3.3.1 Sinh mã aspect từ đặc tả JML .14 3.3.2 Đan xen mã 16 CHƢƠNG CHƢƠNG TRÌNH THỰC NGHIỆM 17 4.1 Chức cài đặt 17 4.2 Công cụ môi trường xây dựng chương trình thực nghiệm .17 4.2.1 JDK .17 vi (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP 4.2.2 Netbean IDE 17 4.2.3 AJDT 17 4.3 Thực nghiệm 18 4.5 Kết luận .28 CHƢƠNG 5: KẾT LUẬN 29 5.1 Kết đạt 29 5.2 Hướng phát triển 29 TÀI LIỆU THAM KHẢO 29 vii (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP CHƢƠNG GIỚI THIỆU 1.1 Đặt vấn đề Phân tích đặc tả u cầu đóng vai trị quan trọng q trình xây dựng phát triển phần mềm Các yêu cầu phần mềm thường đặc tả dạng ca sử dụng (use case-UC) mơ tả tồn tương tác người dùng hệ thống Trong tài liệu đặc tả, mơ hình UC biểu diễn kịch mơ tả bước mà hệ thống cần tuân thủ để thực nhiệm vụ Một kịch thường gồm thành phần : kiện, tương tác kiện, biểu thức tiền điều kiện (precondition) hậu điều kiện (postcondition), xác nhận (assertion) Trong đó, tiền điều kiện hậu điều kiện định nghĩa ràng buộc mà kịch buộc phải thỏa mãn bắt đầu kết thúc thực thi nhiệm vụ, assertion đặc tả thuộc tính mà kịch phải thoả mãn thời điểm Cuối cùng, kịch được cài đặt đoạn mã nguồn chương trình Hình 1.1 biểu diễn kịch mức mã nguồn thực phép chia hai số nguyên dương, với biểu thức tiền điều kiện y khác không hậu điều kiện kết phép chia x cho y Precondition: y != Postcondition: (x / y n && sum < n/2 * n : "sum is " + sum; Giả sử lập trình viên cài đặt chương trình với assertion cho kịch sau: Bảng 4.1 Cài đặt chương trình cho kịch kiểm tra assertion 20 (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP public void tong(){ for (i = 0; i < N; i++) { sum += i; } } public static void main(String[] args) { Scanner input = new Scanner(System.in); AssertionDemo as = new AssertionDemo(); sum =6; System.out.print("Moi ban nhap so N : "); N = input.nextInt(); input.close(); //@ assert AssertionDemo.sum != ; as.tong(); System.out.println(AssertionDemo.sum); //# assume AssertionDemo.sum > AssertionDemo.N && AssertionDemo.sum < AssertionDemo.N / * AssertionDemo.N && AssertionDemo.i == AssertionDemo.N; } } Thực kiểm chứng cho kịch cài đặt Bảng 4.1, kết kiểm chứng Hình 4.5 Trong đó, mã aspect đan vào phát vi phạm ràng buộc assertion sum < n/2 * n Khi người lập trình thực hiệu chỉnh lại chương trình với thay đổi phép gán (sum =0) Bảng 4.1, thực lại trình kiểm chứng cho kết (các assertion thỏa mãn), Bảng 4.7 21 (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP Hình 4.5 kết kiểm tra assertion cho kịch đƣợc cài đặt sai Hình 4.6 Kết kiểm tra assertion cho kịch cài đặt Kịch 3: mô tả chức rút tiền tài khoản máy ATM với tiền điều kiện phải đảm bảo số tiền rút không vượt qua số dư Hậu điều kiện tiền rút tài khoản phải giảm so với lúc chưa rút số tiền lại phải lớn Chi tiết cài đặt kịch Bảng 4.2 Bảng 4.2 Cài đặt kịch mô tả chức rút tiền từ tài khoản public class BankAccount { static int oldBalance =0; 22 (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP static int balance = 0; static int key, nap, rut; //void debit(); //@ assert BankAccount.rut > BankAccount.balance ; static int debit(int amount){ balance -= amount; return balance; } //# assume BankAccount.balance > && BankAccount.balance + BankAccount.rut == BankAccount.oldBalance ; static int credit(int amount){ balance += amount; return balance; } public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("So BankAccount.balance); du hien tai la:" + do{ System.out.println("1: Nap them tien"); System.out.println("2: Rut tien"); System.out.println("3: Kiem Tra tai khoan"); System.out.println("4: Thoat"); key = input.nextInt(); switch (key){ case 1:{ System.out.print("Nhap so tien muon nap:"); nap = input.nextInt(); System.out.println("So tien tai khoan la:" + BankAccount.credit(nap)); break; } case 2:{ System.out.print("Moi ban nhap so tien muon rut:"); 23 (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP rut = input.nextInt(); BankAccount.oldBalance = BankAccount.balance; System.out.println("So tien tai khoan la:" + BankAccount.debit(rut)); break; } case 3:{ System.out.println("So la:"+ BankAccount.balance); tien tai khoan break; } } }while(key !=4); input.close(); } } Sử dụng chương trình thực nghiệm luận văn để kiểm chứng kịch sau: Đọc kịch với biểu thức tiền-hậu điều kiện vào chương trình, Hình 4.7, bên trái, Thực sinh mã aspect, Hình 4.7 bên phải, Kết đan xen mã kiểm chứng Hình 4.8 4.9 24 (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP Hình 4.7: Mơ tả tạo Aspect với tốn rút tiền đơn giản Hình 4.8: Kết đan xen mã 25 (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP Hình 4.9: Kết kiểm chứng Kịch 4: mô tả chức chuyển khoản máy ATM với tiền điều kiện số tiền cần chuyển phải nhỏ số tiền tài khoản chuyển Các assertion số tiền tài khoản nhận tổng số tiền có cộng với số tiền chuyển tổng số tiền tài khoản hệ thống không đổi Chi tiết cài đặt kịch với biểu thức tiền điều kiện, assertion Bảng 4.3 Bảng 4.3: Cài đặt kịch mô tả chức chuyển khoản import java.util.Scanner; public class ATM_Transfer { static byte A=100; static byte B=10, oldB; static byte Tong = (byte)(A + B); static int transferMoney = 0, key; //void tranfer(); //@ assert ATM_Transfer.A >= ATM_Transfer.transferMoney ; 26 (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP void tranfer(){ oldB = B; A -= transferMoney; B += transferMoney; System.out.println("So du hien tai cua cac tai khoan sau chuyen A = "+ A +" , B = " + B); } //# assume ATM_Transfer.B == (ATM_Transfer.oldB ATM_Transfer.transferMoney) && ATM_Transfer.A + ATM_Transfer.B ATM_Transfer.Tong ; + == public static void main(String[] args) { ATM_Transfer ct = new ATM_Transfer(); Scanner input = new Scanner(System.in); System.out.println("So du hien tai cua cac tai khoan A = "+ A +" , B = " + B); System.out.print("Moi ban nhap so tien muon chuyen : "); transferMoney = input.nextInt(); ct.tranfer(); input.close(); } } Thực sinh mã aspect kiểm chứng cho kịch Bảng 4.3 với Bảng 4.4: Kết kiểm chứng cho kịch So du hien tai cua cac tai khoan A = So du hien tai cua cac tai khoan A = 27 (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP 100 , B = 10 100 , B = 10 Moi ban nhap so tien muon chuyen : Moi ban nhap so tien muon chuyen : 10 120 Aspect instance AspectJava@12b3a41 Before call : is created: Aspect instance AspectJava@12b3a41 tranfer Before call : Tien dieu kien dung So du hien tai cua cac tai khoan sau chuyen A = 90 , B = 20 After call : tranfer Ket Qua Dung is created: tranfer Wrong at: void ATM_Transfer.tranfer() In file: ATM_Transfer.java At line: 32 So du hien tai cua cac tai khoan sau chuyen A = -20 , B = -126 After call : tranfer Wrong at: void ATM_Transfer.tranfer() In file: ATM_Transfer.java At line: 32 Ket Qua Sai 4.4 Đánh giá kết Qua kết thử nghiệm cho thấy cơng cụ kiểm chứng luận văn xây dựng phát số ràng buộc kịch thời điểm thực thi Các vi phạm phát xác vị trí gây lỗi Tuy nhiên chương trình thực nghiệm cịn số hạn chế sau: - Số kịch thử nghiệm cho cơng cụ cịn ít, chưa thực đánh giá tính hiệu cơng cụ luận văn xây dựng, - Chưa kiểm chứng ràng buộc khác kịch bất biến (invariants), xác nhận (assertion), - Việc đan xen mã aspect với mã nguồn java tốn thời gian thực thi chương trình 4.5 Kết luận Trong chương này, luận văn sử dụng kết nghiên cứu đề xuất chương để tiến hành xây dựng công cụ kiểm chứng số ràng buộc kịch chương trình Java Cơng cụ kiểm chứng qua số kịch cụ thể, kết thực nghiệm cho thấy phương pháp kiểm chứng ràng buộc kịch trình bày chương hồn tồn có ý nghĩa 28 (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP CHƢƠNG 5: KẾT LUẬN 5.1 Kết đạt đƣợc Luận văn đặt mục tiêu nghiên cứu kiểm chứng phần mềm thời điểm thực thi áp dụng cho toán kiểm chứng số ràng buộc kịch áp dụng cho ngôn ngữ lập trình Java Một số kết đạt được: - Tìm hiểu phương pháp lập trình hướng khía cạnh AOP, ngơn ngữ mơ hình hóa JML, số kĩ thuật kiểm chứng phần mềm, - Nghiên cứu phương pháp kiểm chứng ràng buộc kịch thời điểm thực thi sử dụng phương pháp lập trình hướng khía cạnh, áp dụng cho ngơn ngữ lập trình Java, - Xây dựng thử nghiệm thành công công cụ kiểm chứng cho kết nghiên cứu Hạn chế: - Các liệu thử nghiệm hạn chế qua số kịch bản, - Chưa kiểm chứng ràng buộc khác kịch bất biến (invariants), assertion, 5.2 Hƣớng phát triển Dựa việc đánh giá kết đạt được, số hạn chế chương trình thực nghiệm, tương lại luận văn cần tiếp tục nghiên cứu hoàn thiện theo hướng sau: - Tiếp tục thử nghiệm công cụ kiểm chứng xây dựng, nghiên cứu, đề xuất phương pháp kiểm chứng số ràng buộc khác kịch bản, - Nghiên cứu phương pháp kiểm chứng giai đoạn thiết kế, - Xây dựng thành công công cụ kiểm chứng kịch từ giai đoạn thiết mã nguồn chương trình TÀI LIỆU THAM KHẢO Tiếng Việt 29 (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP Trịnh Thanh Bình, Luận án TS, “Kiểm chứng thành phần Java tương tranh”, ĐHQGHN, 2011 Vũ Sỹ Vương, Khóa luận tốt nghiệp, “Kiểm chứng đặc tả UML cho tác tử phần mềm ”, Đại học Công nghệ, ĐHQG Hà Nội, 2009 Tiếng Anh B Berard, M Bidoit, A Finkel, F Laroussinie, A Petit, L Petrucci, and P Schnoebelen 2010.Systems and Software Verification: ModelChecking Techniques and Tools (1st ed.) Springer Publishing Company, Incorporated Glenford J Myers and Corey Sandler 2004 The Art of Software Testing John Wiley & Sons Melvin Fitting 1990 First-Order Logic and Automated Theorem Proving David Gries (Ed.) Springer-Verlag New York, Inc., New York, NY, USA Andreas Bauer, Martin Leucker, and Christian Schallhart 2011 Runtime Verification for LTL and TLTL ACM Trans Softw Eng Methodol 20, 4, Article 14 (September 2011), 64 pages G Booch, J Rumbaugh, and I Jacopson The Unified Modeling Language User Guide, 2nd edition Addison-Wesley, 2005 Colyer, A Clement, G Harley, and M Webster Eclipse AspectJ: AspectOriented Programming with AspectJ and the Eclipse AspectJ Development Tools Addison Wesley Professional Publisher, 2004 Alan O’Callagan The Object Component Based Development Constraint Language, CSCI3007 10.M Fowler UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd Edition Addison Wesley, 2003 11.Truong Anh Hoang, Nguyen Thanh Binh, Nguyen Viet Ha Checking method call sequences using aspect-oriented programming 12.Ramnivas Laddad AspectJ in Action Practical Aspect-Oriented Programming Manning Publications Co.,2003, Chapter 13.OMG Unified Modeling Language OMG, Version 2.0 March 2006 14.R.S Pressman Software Engineering, A Practitioner’s Approach, 5th edition Thomas Casson, 2001 30 (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP (LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP(LUAN.VAN.THAC.SI).Kiem.chung.mot.so.rang.buoc.trong.chuong.trinh.Java.su.dung.AOP