ĐẠI HỌC QUỐC GIA HÀ NỘI<br />
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ<br />
<br />
PHẠM NHƯ UYỂN<br />
<br />
MÔ HÌNH HÓA VÀ KIỂM CHỨNG<br />
CÁC CHƯƠNG TRÌNH PHẦN MỀM HƯỚNG KHÍA CẠNH<br />
<br />
LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN<br />
<br />
HÀ NỘI - 2016<br />
<br />
ĐẠI HỌC QUỐC GIA HÀ NỘI<br />
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ<br />
<br />
PHẠM NHƯ UYỂN<br />
<br />
MÔ HÌNH HÓA VÀ KIỂM CHỨNG<br />
CÁC CHƯƠNG TRÌNH PHẦN MỀM HƯỚNG KHÍA CẠNH<br />
<br />
Ngành: Công nghệ Thông tin<br />
Chuyên ngành: Kỹ thuật Phần mềm<br />
Mã số: 60480103<br />
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Trương Ninh Thuận<br />
<br />
HÀ NỘI - 2016<br />
<br />
LỜI CAM ĐOAN<br />
Tôi xin cam đoan toàn bộ nội dung bản luận văn là do tôi tìm hiểu, nghiên cứu,<br />
tham khảo và tổng hợp từ các nguồn tài liệu khác nhau và làm theo hướng dẫn của<br />
người hướng dẫn khoa học. Các nguồn tài liệu tham khảo, tổng hợp đều có nguồn<br />
gốc rõ ràng và trích dẫn theo đúng quy định.<br />
Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan của mình. Nếu có điều gì<br />
sai trái, tôi xin chịu mọi hình thức kỷ luật theo quy định.<br />
Hà Nội, tháng 05 năm 2016<br />
Người cam đoan<br />
<br />
Phạm Như Uyển<br />
<br />
LỜI CẢM ƠN<br />
Đầu tiên tôi xin gửi lời cảm ơn sâu sắc tới thầy PGS.TS Trương Ninh Thuận,<br />
Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông tin, trường Đại học Công<br />
Nghệ, Đại học Quốc Gia Hà Nội – người đã định hướng đề tài và tận tình hướng<br />
dẫn chỉ bảo tôi trong suốt quá trình thực hiện luận văn tốt nghiệp này.<br />
Tôi cũng xin trân trọng cảm ơn quý thầy cô trong Khoa Công nghệ Thông tin<br />
trường Đại học Công Nghệ, Đại học Quốc Gia Hà Nội đã tận tình giảng dạy, truyền<br />
đạt những kiến thức quý báu trong suốt quá trình học làm nền tảng cho tôi thực<br />
hiện luận văn này.<br />
Cám ơn các anh, chị nghiên cứu sinh và các bạn học viên Khoa Công nghệ<br />
Thông tin. Các anh chị và các bạn đã giúp đỡ, ủng hộ tôi rất nhiều cũng như đóng<br />
góp nhiều ý kiến quý báu, qua đó, giúp tôi hoàn thiện luận văn tốt hơn.<br />
Mặc dù đã rất nỗ lực, cố gắng nhưng chắc hẳn luận văn của tôi vẫn còn nhiều<br />
thiếu sót. Tôi rất mong nhận được nhiều những ý kiến đánh giá quý, phê bình của<br />
quý thầy cô, của anh chị và các bạn.<br />
Một lần nữa tôi xin chân thành cảm ơn!<br />
Hà Nội, tháng 5 năm 2016<br />
<br />
Phạm Như Uyển<br />
<br />
3<br />
<br />
MUC LỤC<br />
<br />
<br />
MUC LỤC ........................................................................................................................... 3<br />
DANH SÁCH CÁC HÌNH VẼ .......................................................................................... 5<br />
DANH SÁCH CÁC THUẬT NGỮ VÀ KHÁI NIỆM ..................................................... 7<br />
CHƯƠNG 1: ĐẶT VẤN ĐỀ .............................................................................................. 8<br />
<br />
1.1<br />
<br />
Sự cần thiết của đề tài............................................................................. 8<br />
<br />
1.2<br />
<br />
Nội dung đề tài ........................................................................................ 9<br />
<br />
1.3<br />
<br />
Đóng góp của luận văn ......................................................................... 10<br />
<br />
1.4<br />
<br />
Cấu trúc luận văn .................................................................................. 10<br />
<br />
CHƯƠNG 2. EAOP VÀ EVENT-B ................................................................................ 12<br />
<br />
2.1<br />
<br />
Các đặc điểm của lập trình hướng khía cạnh ........................................ 12<br />
<br />
<br />
<br />
2.1.1. Quản lý các concerns hệ thống ......................................................... 15<br />
<br />
<br />
<br />
2.1.2. Phương pháp luận của AOP ............................................................. 18<br />
<br />
<br />
<br />
2.1.3. Ưu điểm của AOP ............................................................................ 19<br />
<br />
<br />
<br />
2.1.4. Nhược điểm của AOP....................................................................... 19<br />
<br />
2.2<br />
<br />
Lập trình hướng khía cạnh dựa sự kiện ................................................. 20<br />
<br />
<br />
2.3<br />
<br />
2.2.1 Công cụ EAOP: Kiến trúc và thực hiện ................................... 21<br />
<br />
Event-B .................................................................................................. 27<br />
<br />
<br />
<br />
2.3.1 Máy và ngữ cảnh ............................................................................... 27<br />
<br />
<br />
<br />
2.3.2. Sự kiện .............................................................................................. 30<br />
<br />
<br />
<br />
2.3.3. Phân rã và kết hợp ............................................................................ 31<br />
<br />