
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vương Văn Trường
KIỂM CHỨNG CÀI ĐẶT BIỂU ĐỒ TƯƠNG TÁC
VỚI UML 2.0
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ phần mềm
HÀ NỘI - 2010

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vương Văn Trường
KIỂM CHỨNG CÀI ĐẶT BIỂU ĐỒ TƯƠNG TÁC
VỚI UML 2.0
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ phần mềm
Cán bộ hướng dẫn: TS Trương Anh Hoàng
Cán bộ đồng hướng dẫn: ThS Phạm Thị Kim Dung
HÀ NỘI - 2010

Lời cảm ơn
Trước tiên tôi xin gửi lời cảm ơn chân thành tới TS.Trương Anh Hoàng, Bộ
môn Công nghệ phần mềm, Khoa Công nghệ thông tin, Trường Đại học Công nghệ,
Đại học Quốc Gia Hà Nôi – người đã định hướng đề tài và tận tình hướng dẫn chỉ bảo
tôi trong suốt quá trình thực hiện khóa luận tốt nghiệp này.
Tôi cũng xin chân thành cảm ơn ThS Phạm Thị Kim Dung, Bộ môn Công nghệ phần
mềm, Khoa Công nghệ thông tin, Trường Đại học Công nghệ, Đại học Quốc Gia Hà
Nội – Người đồng hướng dẫn và chỉ bảo tôi trong quá trình thực hiện khóa luận của
này.
Tôi cũng xin trân trọng cảm ơn quý thầy cô 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 giảng dạy, truyền đạt kiến
thức quý báu trong suốt bốn năm học làm nền tảng cho tôi thực hiện khóa luận tốt
nghiệp này.
Con xin cảm ơn cha mẹ và gia đình đã sinh ra và nuôi dạy con khôn lớn, luôn
cạnh động viên và ủng hộ con trên con đường mà con đã yêu thích và lựa chọn.
Cảm ơn các bạn sinh viên Khoa Công nghệ thông tin khóa 2006 – 2010. Các
bạn giúp đỡ và ủng hộ tôi rất nhiều cũng như đóng góp nhiều ý kiến quý báu, qua đó,
tôi hoàn thiện khóa luận tốt hơn.
Mặc dù đã rất nỗ lực, cố gắng nhưng chắc hẳn khóa luận của tôi vẫn còn nhiều
sót. Tôi rất mong nhận được nhiều những ý kiến đánh giá, phê bình của quý thầy của
các anh chị và các bạn.
Một lần nữa, tôi xin chân thành cảm ơn.
Hà Nội, tháng 5 năm 2010
Vương Văn Trường

Tóm tắt
Phần mềm ngày càng được xây dựng và phát triển mạnh mẽ. Phần mềm
được tạo ra phải đảm bảo chất lượng. Kiểm chứng phần mềm là một trong
những giai đoạn quan trọng trong quy trình sản xuất phần mềm. Kiểm chứng
động phần mềm nhằm phát hiện và tìm lỗi trong giai đoạn kiểm thử phần mềm.
Phương pháp lập trình hướng khía cạnh ( Aspect Oriented programming - AOP)
cùng với công nghệ AspectJ ra đời tạo ra hướng phát triển mới cho kiểm chứng
phần mềm, nâng cao khả năng tìm và sửa lỗi phần mềm mà không ảnh hưởng
đến mã nguồn hệ thống. Từ yêu cầu thực tế, khi mô hình UML đang là sự lựa
chọn phổ biến cho mô hình hóa hệ thống phần mềm ở giai đoạn thiết kế, việc
kiểm chứng các ràng buộc giữa các tương tác trong biểu đồ trình tự UML là rất
cần thiết. Cùng với yêu cầu thực tế đề ra và lựa chọn AOP là giải pháp giải
quyết vấn đề, trong phạm vi khóa luận, tôi xin trình bày phương pháp sinh mã
AspectJ tự động phục vụ cho việc kiểm chứng phần mềm với công cụ là plugin
Create Aspect tự động sinh mã AspectJ dựa trên phương pháp này. Nội dung
chính của phương pháp này dựa trên các kiến thức về AOP, UML, XML,
ANNOTATIONS để chuyển đổi các giao thức ràng buộc đối tượng đặc tả bời
biểu đồ UML sang modun aspect phục vụ cho việc kiểm chứng. Ý nghĩa thực
tiễn là việc sinh ra mã aspect sẽ đan xen vào chương chình thực hiện việc kiểm
chứng các ràng buộc giữa các đối tượng trong thời gian chạy.

Mục lục
Chương 1. Mở đầu .......................................................................................................................... 1
1.1. Đặt vấn đề............................................................................................................................. 1
1.2. Nội dung bài toán .................................................................................................................. 2
1.3. Tổng quan phương pháp “kiểm chứng cài đặt biểu đồ tương tác với UML 2.0”...................... 2
1.4 . Cấu trúc khóa luận................................................................................................................ 4
Chương 2. Annotaions , Aspects và UML 2.0................................................................................... 5
2.1. Annotations ........................................................................................................................... 5
2.1.1. Khái niệm annotaions ..................................................................................................... 5
2.1.2. Ưu điểm của annotations................................................................................................. 5
2.1.3. Cấu trúc annotaions ........................................................................................................ 6
2.1.4. Target annotions ............................................................................................................. 6
2.2. Aspect................................................................................................................................... 7
2.2.1. Lập trình hướng khía cạnh AOP..................................................................................... 7
2.2.2. AspectJ........................................................................................................................... 9
2.3. UML 2.0 ..............................................................................................................................10
2.3.1. khai niệm về UML.........................................................................................................10
2.3.2. Biểu đồ trình tự UML ....................................................................................................11
2.4. Xây dựng máy trạng thái từ biểu đồ trình tự..........................................................................16
2.4.1. Cấu trúc dữ liệu mô tả biểu đồ trình tự..........................................................................16
2.4.2. Xây dựng máy trạng thái(FSM)......................................................................................18
2.5. Tổng kết chương ..................................................................................................................19
Chương 3 . Xây dựng cộng cụ tự động sinh Aspect từ máy trạng thái ...........................................20
3.1. Biểu đồ trình tự và các đoạn gộp...........................................................................................20
3.2. Sinh Aspect từ biêu đồ trình tự............................................................................................21
3.3. Kết luận................................................................................................................................23
Chương 4. Thực nghiệm.................................................................................................................24
4.1. Xây dựng công cụ.................................................................................................................24
4.2. Kiểm chứng một số giao thức thực tế....................................................................................27
4.2.1. Kiểm chứng biểu đồ truy cập thông tin cơ bản của một máy ATM .................................27
4.2.2. Kiểm chứng biểu đồ loop...............................................................................................32
4.2.3. Kiểm chứng biểu đồ tổng quát .......................................................................................36
4.3. Kết luận................................................................................................................................44

