
3
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM NHƯ UYỂN
MÔ HÌNH HÓA VÀ KIỂM CHỨNG
CÁC CHƯƠNG TRÌNH PHẦN MỀM HƯỚNG KHÍA CẠNH
Ngành: Công nghệ Thông tin
Chuyên ngành: Kỹ thuật Phần mềm
Mã số: 60480103
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Trương Ninh Thuận
HÀ NỘI - 2016

4
CHƯƠNG 1: ĐT VN ĐỀ
1.1 Sự cần thiết của đề tài
C rt nhiều công trnh nghiên cu tập trung vo kim chng mô hnh hưng kha
cnh s dng cc kỹ thuật khc nhau như UML [10], kim chng mô hnh (model
checking) [9], Petri-net [4], v B [7] nhưng không ph hp vi mt hệ thống da trên
cc s kiện.
Mt số công trnh nghiên cu đ khai thc nhng k hiệu ca UML hoc m
rng nhng k hiệu UML đ c th ha nhng vn đề crosscutting. Tuy nhiên, nhng
nghiên cu ny đ không gii quyt nhng kha cnh kim chng do bn cht không
chnh thc hoc bn chnh thc ca UML. Ubayashi v Tamain [8] đ đề xut mt
phương php đ kim chng chương trnh AOP s dng mô hnh kim tra. Phương
php nhm vo cc giai đon lập trnh v ng dng cc mô hnh kim tra đ c kt
qu đan code ca lp v aspect. Phương php ny đm bo s chnh xc trong kim
chng, tuy nhiên li b qua cc vn đề kim chng mô đun. Điều ny c ngha l rt
kh c th s dng phương php ny đ xc minh phần mềm ln.
Dianxiang Xu [9] đ đề xut s dng my trng thi v kim chng nhng
chương trnh s dng aspect. Chng đ chuyn ha cc mô hnh đan v cc lp mô
hnh không b nh hưng bi aspect thnh cc chương trnh FSP, m s đưc kim
chng bi mô hnh LTSA chống li cc thuc tnh hệ thống mong muốn. Tuy nhiên,
phương php ny cần phi chuyn ha chương trnh cơ bn v aspect sang mô hnh
trng thi trưc khi khi đng mô hnh FSP [7] S dng B đ kim chng đan aspect.
Tc gi ny trnh by lp cơ bn v mt số aspect liên quan ca AspectJ trong ngôn
ng B. N nhm mc đch đt đưc li ch t cc minh chng to ra bi công c B
đ đm bo chnh xc ca aspectJ thnh phần.
Đ gii quyt vn đề ny, EAOP [3] cho phép xem xét hệ thống mối quan hệ gia
point-cut v đ thc hiện các aspect khi nhận đưc s kiện đưc pht sinh bi chương
trnh cơ bn. Tuy nhiên, mô hnh ny không đi kèm vi phương php đc t c th
chnh thc cũng như không cung cp bt kỳ cơ ch đ xc minh tnh cht ca n
chnh thc. Trong bi ny, chng tôi đề xut mt phương php da trên mô hnh hóa
phương thc trên Event-B [2] đ phân tch mt ng dng EAOP. Đầu tiên, chng ta
xc đnh cc thnh phần ca n trong Event-B nơi s dng cc Event- B cơ ch làm

5
mn đ mô hnh cơ bn v chương trnh gim st. Sau đ, khai thc Event – B đ
chng minh đưc to ra đ kim tra xem cc hn ch p dng bi aspect cross-cuts.
1.2. Nội dung đề tài
Lập trnh hưng kha cnh da trên s kiện (EAOP) mô hnh cho phép xem
xét hệ thống mối quan hệ gia point-cut v đ thc hiện các aspect khi nhận đưc s
kiện đưc pht sinh bi chương trnh cơ bn. Tuy nhiên, mô hnh ny không đi kèm
vi phương php đc t c th chnh thc cũng như không cung cp bt kỳ cơ ch đ
xc minh tnh cht ca n chnh thc. Trong bi ny, chng tôi đề xut mt phương
php da trên mô hnh hóa phương thc trên Event-B đ phân tch mt ng dng
EAOP. Đầu tiên, chng ta xc đnh cc thnh phần ca n trong Event-B nơi s dng
các Event- B cơ ch lm mn đ mô hnh cơ bn v chương trnh gim st. Sau đ,
chúng ta khai thác Event – B đ chng minh đưc to ra đ kim tra xem cc hn
ch p dng bi aspect cross-cuts. Cuối cng, phương php đề xut đưc minh họa
chi tit vi mt chương trnh ATM.
1.3. Đóng góp của luận văn
Đng gp ca luận văn liên quan việc mô hình hóa và kim chng EAOP s dng
phương php hnh thc Event-B. Phương php m chng tôi đề xut da trên việc
dch mt chương trnh EAOP thnh cc my ca Event-B, tận dng cc cơ ch lm
mn đ kim chng nhng rng buc trong chương trnh trong mi aspect. Vi mong
muốn kim tra chương trnh c cn lưu gi mt số đnh ngha thuc tnh sau khi đan
chương trnh. Luận văn cũng minh họa phương php mô hnh ha v kim chng
trong mt chương trnh ATM.
1.4. Cu trc luận văn
Cc phần cn li ca luận văn s đưc trnh by bao gm cc phần sau:
CHƯƠNG 2: EAOP VÀ EVENT-B
Gii thiệu khái quát nhng kin thc cơ bn v EAOP. Mô hình kin trúc
EAOP. Trình bày nhng kin thc tổng quan về phương php mô hnh ha Event-B,

6
mô t cu trúc ca mô hình, các thành phần. Trình bày công c kim chng t đng
Rodin.
CHƯƠNG 3: MÔ HÌNH HÓA VÀ KIỂM CHỨNG CÁC PHẦN MỀM
HƯỚNG KHÍA CẠNH.
Tập trung vào việc mô hình hóa và kim chng chương trnh phần mềm hưng
khía cnh đưa ra cch đnh ngha hưng kha cnh hệ thống hưng s kiện trong
Event-B. Mô hnh ha hệ thống lập trnh hưng kha cnh s dng Event-B. Kim
chng hệ thống.
CHƯƠNG 4: ÁP DỤNG BÀI TOÁN.
Áp dng phương php đ trnh by trên đ mô hình hóa và kim chng bài
toán máy ATM.
CHƯƠNG 5: KẾT LUẬN.
Kt luận tổng th các kt qu đt đưc trong luận văn v hưng phát trin ca
luận văn.

7
CHƯƠNG 2. EAOP VÀ EVENT-B
2.1. Event-based Aspect Oriented Programming
Nền tng chung ca EAOP đưc trnh by trong [3]. EAOP ch đn cc s kiện
pht sinh ra trong qu trnh thc hiện chương trnh đc lập vi bt kỳ ngôn ng lập
trnh c th. Tnh năng chnh ca mô hnh l aspect c th đnh ngha mt hnh đng
cho mt chui cc s kiện thay v c nhân ch như mô t trong mô hnh AOP. N c
nhng đc đim chnh sau:
Aspect: đưc đnh ngha về cc s kiện sinh ra trong qu trnh thc hiện
chương trnh.
Cross-cuts: gim chui s kiện, c th bao gm cc trng thi thay đổi, đưc
xc đnh bi mô hnh s kiện đ đưc kt hp trong qu trnh thc hiện chương
trnh.
Mt cross-cuts đưc chọn, mt hnh đng liên quan đưc thc hiện.
2.2. Cc đăc đim của AOP
a. Đim nối (join point)
Join point [13]: có th là bt kỳ đim nào có th xc đnh đưc khi thc hiện chương
trình. C th l li gọi hm đn mt phương thc hoc mt lệnh gn cho mt bin
ca đối tưng. Trong Aspect mọi th đều xoay quanh join point.
b. Hướng cắt (pointcut)
Pointcut [13]: l cu trc chương trnh m n chọn cc join point v ng cnh ti cc
join point đ. V d mt pointcut c th chọn mt join point l mt li gọi đn mọt
phương thc v ly thông tin ng cnh ca phương thc đ như đối tưng cha
phương thc, cc đối số ca phương thc đ.
c. Mã hành vi (advice)
Advice [13]: l m đưc thc hiện ti mt join point mà đưc chọn bi poincut.
Advice tương t cu trc ca hm cung cp cc thc, cc hnh đng đan xen ti cc
join point m n đưc chọn bi pointcut. Poincut v advice s hnh thnh nên cc
luật đan kt cc quan hệ đan xen.

