B n : Các v n đ hi n đ i công ngh ph n m m.
L I C M N Ơ
Đ hoàn thành báo cáo môn h c các v n đ hi n đ i công ngh
ph n m m m t cách hoàn ch nh, chúng em xin bày t lòng c m n chân ơ
thành đ n các th y đã h ng d n chúng em t i tr ng Đ i H c Côngế ướ ườ
Ngh . Đ c bi t th y Đ ng Đ c H nh Di u H ng ươ , th y
đã tr c ti p h ng d n t n tình, s a ch a đóng góp nhi u ý ki n quý ế ướ ế
báu giúp chúng em hoàn thành t t báo cáo môn h c c a mình.
L i c m n chân thành và sâu s c, chúng em xin g i đ n gia đình, đã ơ ế
luôn sát cánh và đ ng viên chúng em trong nh ng giai đo n khó khăn nh t.
Chân thành c m n đ n các b n trong l p đã h tr đ chúng em ơ ế
th hoàn thành t t công vi c đ c giao. ượ
Chúng em xin chân thành bi t n s t n tình d y d c a t t c cácế ơ
quý th y Khoa Công ngh Thông tin Tr ng Đ i h c Công Ngh ườ
Thông Tin – Đ i h c Qu c gia Hà N i .
Chúng cũng xin chân thành g i l i c m n đ n t t c các th y cô đã ơ ế
gi ng d y chúng em th i gian qua, đã truy n đ t trang b cho chúng em
nh ng kinh nghi m, ki n th c chuyên môn, giúp chúng em m r ng t m ế
nhìn khi thâm nh p vào th c t . chúng em xin h a s không ng ng ph n ế
đ u n l c v n lên trong h c t p và công tác sau này. ươ
B n : Các v n đ hi n đ i công ngh ph n m m.
B n : Các v n đ hi n đ i công ngh ph n m m.
CH NG 1ƯƠ
GI I THI U
1.1 Đ t v n đ
Trong các công ty phát tri n ph n m m h u h t công vi c ki m th ế
c a ki m th viên đ c th c hi n th công b ng tay. Trong khi đó s ượ
l ng tình hu ng ki m tra quá nhi u các ki m th viên không th hoànượ
t t b ng tay trong th i gian c th nào đó. Ho c khi nhóm l p trình đ a ra ư
nhi u phiên b n ph n m m liên ti p đ ki m tra. Th c t cho th y vi c ế ế
đ a ra các phiên b n ph n m m th hàng ngày, m i phiên b n baoư
g m nh ng tính năng m i, ho c tính năng đ c s a l i hay nâng c p. ượ
Vi c b sung ho c s a l i code cho nh ng tính năng phiên b n m i
th làm cho nh ng tính năng khác đã ki m tra t t ch y sai m c ph n
code c a không h ch nh s a. Đ kh c ph c đi u này, đ i v i t ng
phiên b n, ki m th viên không ch ki m tra ch c năng m i ho c đ c ượ
s a, ph i ki m tra l i t t c nh ng tính năng đã ki m tra t t tr c đó. ướ
Đi u này khó kh thi v m t th i gian n u ki m tra thông th ng. Đ gi i ế ườ
quy t v n đ này chúng ta áp d ng k thu t ki m th d a trên mô hình choế
quá trình sinh các ca ki m th t đ ng. Nh ng làm sao đ th c hi n đ c ư ượ
quá trình sinh các ca ki m th t đ ng chúng ta ph i áp d ng khá nhi u các
công ngh s n thông d ng nh t. đây chúng em xin gi i thi u
nhúng C vào t Promela trình bày công c Spin đ sinh ra các ca
ki m th t đ ng t đó áp d ng vào m t bài toán c th .
Trong báo cáo này chúng em t p trung trình bày v vi c nghiên c u
ki m th d a trên mô hình và ng d ng công c Spin vào vi c t đ ng sinh
các ca ki m th : Xây d ng mô hình h th ng và th c nghi m. Bên c nh đó
chúng em cũng gi i thi u qua v trình so n th o Emac, m t công c l p
trình khá hay ra đ i t r t s m, ch y đ c trên nhi u h đi u hành ượ
thông d ng.
1.2 N i dung báo cáo môn h c
B n : Các v n đ hi n đ i công ngh ph n m m.
Bài báo cáo trình bày ngôn ng Promela vào thi t k Promela áp ế ế
d ng kĩ thu t s d ng công c Spin là hai n i dung quan trong nh t c a quá
trình sinh ca ki m th t đ ng.
Đ xu t bài toán c th đ th c hi n công vi c Demo m t ch ng ươ
trình nh . T đó đem áp d ng vào ph c v cho vi c ki m ch ng ph n
m m.
Xây d ng tài li u h ng d n v ngôn ng Promela, công c Spin, ướ
trình so n th o Emac ph c v cho vi c nghiên c u, gi ng d y và ng d ng
th c ti n.
1.3 C u trúc báo cáo môn h c
Các ph n còn l i c a khóa lu n có c u trúc nh sau: ư
Ch ng 2:ươ Trình y các khái ni m v ngôn ng mô hình promela,
bao g m các đ nh nghĩa c b n v khai o bi n ki u, đ nh danh, ơ ế
h ng s , bi u th c, ti n trình. ế
Ch ng 3:ươ Gi i thi u công c Spin, c u trúc pháp l nh, tham s
l nh và ch c năng c a nó.
Ch ng 4: ươ Gi i thi u công c so n th o Emacs.
Ch ng 5:ươ Tóm t t các k t qu đã đ t đ c, k t lu n, nh ng h n ế ượ ế
ch và h ng nghiên c u phát tri n trong t ng lai.ế ướ ươ
B n : Các v n đ hi n đ i công ngh ph n m m.
CH NG 2ƯƠ
TNH BÀY KI NI M MÔ NH PROMELA
Ch ng này s l n l t trình bày nh ng khái ni m c b n v ươ ượ ơ
hình Promela. Khái ni m c th v c u trúc pháp l nh, th t c hàm,
cách khai báo bi n trong Promela.ế
2.1 Khái ni m c b n ngôn ng Promela ơ
Xây d ng mô hình h th ng b ng ngôn ng Promela là m t công đo n
quan tr ng trong ki m th d a trên hình, đ t đó th dùng công c
Spin sinh ra các ca ki m th . Ngôn ng hình Promela nhi u nét
t ng đ ng v i ngôn ng C. ươ
Đ nh nghĩa Promela (Process meta language )
Promela là ngôn ng mô hình dùng đ mô t h th ng đ ng th i [ The
Spin Model Checker: Primer and Reference Manual].
d : Giao th c m ng, h th ng đi n tho i, các ch ng trình giao ươ
ti p đa lu ng,…ế
C u trúc ch ng trình Promela ươ
M t ch ng trình Promela c b n g m: ươ ơ
Khai báo ki u.
Khai báo bi n.ế
Khai báo ti n trình.ế
[init process].
// Các khai báo ki u và bi n ế
mtype = {MSG, ACK};
chan toS = ...
chan toR = ...
bool flag;
// M t ti n trình ế
proctype Sender() {
// Thân m t ti n trình ế
...
}