
1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Thân Văn Đức
KIỂM CHỨNG CÁC GIAO THỨC BẰNG AOP
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2010

2
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Thân Văn Đức
KIỂM CHỨNG CÁC GIAO THỨC BẰNG AOP
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: Ths.Phạm Thị Kim Dung
HÀ NỘI - 2010

3
Lời cảm ơn
Trong quá trình thực hiện đề tài, tôi đã gặp rất nhiều khó khăn và bỡ ngỡ. Nếu không
có sự giúp đỡ và lời động viên chân thành của nhiều người có lẽ tôi khó có thể hoàn thành
tốt khóa luận này.
Đầu tiên tôi xin tỏ lòng biết ơn sâu sắc đến Cô Phạm Thị Kim Dung đã tận tình
hướng dẫn trong suốt quá trình viết khóa luận tốt nghiệp.
Tôi muốn gửi lời cảm ơn đến các thầy giáo cô giáo trong hội đồng bảo vệ. Những ý
kiến đóng góp của cô là vô cùng hữu ích, nó giúp tôi nhận ra các khuyết điểm của khóa
luận.
Tôi xin chân thành cảm ơn quý Thầy, Cô và bạn bè trong 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 và trải nghiệm cùng tôi trong suốt 4 năm học tập. Với vốn kiến thức được tiếp
thu trong quá trình học không chỉ là nền tảng cho quá trình nghiên cứu khóa luận mà còn
là hành trang quí báu để tôi bước vào đời một cách vững chắc và tự tin.
Con xin cảm ơn cha mẹ, những người đã có công sinh thành, dưỡng dục và nuôi dạy
con nên người.
Cuối cùng tôi kính chúc quý thầy, cô dồi dào sức khỏe, đạt được nhiều thành công
trong công việc và cuộc sống.

4
TÓM TẮT NỘI DUNG
Kiểm chứng phần mềm có một vai trò quan trọng trong việc đảm bảo tính đúng đắn
của hệ thống phần mềm trong suốt quá trình thực thi,kiểm chứng giúp phát hiện, tìm ra lỗi
và thông báo lỗi cho nhà phát triển. Phương pháp lập trình hướng khía cạnh (AOP) cùng
với công nghệ AspectJ ra đời đã tạo ra một hướng phát triển mới cho kiểm chứng phần
mềm, giúp nâng cao khả năng dò tìm lỗi, thông báo lỗi mà không ảnh hưởng tới mã nguồn
hệ thống. Trong thực tế, biểu đồ UML là sự lựa chọn rất phổ biến cho việc mô hình hóa
hệ thống phần mềm ở giai đoạn thiết kế hiện nay. Trong đó, biểu đồ tuần tự (sequence
diagram) là một biểu đồ quan trọng, nó miêu tả các cách thức đối tượng tương tác và giao
tiếp với nhau. Việc kiểm chứng thiết kế và kiểm chứng các giao thức ràng buộc trong biểu
đồ trình tự là rất cần quan trọng vì nếu thiết kế biểu đồ tuần tự sai kéo theo các hoạt động
của hệ thống hoặc trình tự hệ thống cần thực hiện sẽ bị sai dẫn tới toàn bộ hệ thống thiết
kế sai. Trong phạm vi khóa luận, tôi xin trình bày phương pháp sinh mã aspect phục vụ
cho mục đích kiểm chứng phần mềm từ biểu đồ tuần tự kết hợp với máy trạng thái và
công cụ tự động sinh mã aspect dựa trên phương pháp này. Mã aspect tạo ra từ công cụ có
thể dùng đan vào chương trình để thực hiện nhiệm vụ kiểm chứng các ràng buộc giữa các
đối tượng và tính đúng đắn của hệ thống nhằm giảm thiểu tối đa lỗi khi viết mã cài đặt
cho hệ thống.

5
MỤC LỤC
Chương 1. Mở Đầu ....................................................................................................8
1.1. Đặt vấn đề .........................................................................................................8
1.2.Bài toán..............................................................................................................8
1.3. Tổng quan về phương pháp giải quyết bài toán..................................................9
1.4. Cấu trúc khóa luận.............................................................................................9
Chương 2. Ngôn ngữ UML và biểu diễn biểu đồ trong UML bằng XMI..............11
2.1. Giới thiệu chung về UML:...............................................................................11
2.2. Các loại biểu đồ UML .....................................................................................12
2.2.1. Nhóm biểu đồ về cấu trúc ........................................................................12
2.2.2. Nhóm biểu đồ hành vi..............................................................................12
2.3. Biểu đồ tuần tự trong UML2.0(Sequence diagram) .........................................12
2.4. Một số thành phần chính trong biểu đồ tuần tự ................................................14
2.4.1. Đường đời (lifeLine)................................................................................14
2.4.2. Thông điệp (Message)..............................................................................15
2.4.3. Đoạn gộp (Combind Fragment)................................................................16
2.5. Biểu diễn biểu đồ tuần tự :...............................................................................19
2.5.1. Biểu diễn Đường đời (LifeLine ):.............................................................19
2.5.2. Biểu diễn Thông điệp:..............................................................................19
2.5.3. Lời chú giải (Comment)...........................................................................19
2.5.4. Các đoạn gộp (CombindedFragment).......................................................19
2.6. Sơ lược về XML..............................................................................................20
2.7. Biểu diễn tài liệu XML....................................................................................21
2.8. TƯƠNG TÁC VỚI TÀI LIỆU XML...............................................................23
2.8.1 DOM........................................................................................................23
2.8.2 XML DOM :.............................................................................................23
2.8.3 XMI:.........................................................................................................25
2.9. Máy trạng thái FSM. .......................................................................................25
2.9.1. Tổng quan về các thành phần trong máy trạng thái FSM..........................25
2.9.2. Xây dựng máy hữu hạn trạng thái từ các thành phần của biểu đồ ...................26
CHƯƠNG 3..............................................................................................................30
Aspect và lập trình hướng khía cạnh......................................................................30
3.1 Tổng quan về lập trình hướng khía cạnh...........................................................30
3.2 Biên dịch AOP: ................................................................................................31

