The requirem ents w ritten in term s of Fuzzy If-T hen rules can be an adequate representation, b u t require fu rth er techniques for checking properties formally, which may elucidate
Trang 3PHÀN I THÔNG TIN CHUNG
1 1 T ê n đ ề t à i : P h ư ơ n g p h á p k i ể m c h ứ n g s ự t ư ơ n g đ ư ơ n g g i ữ a c á c m ô h ì n h p h ầ n m ề m
1.2 M ã số: Q G 14.07
1 3 D a n h s á c h c h ủ t r ì , t h à n h v i ê n t h a m g i a t h ự c h i ệ n đ ề t à i
T T C h ứ c d a n h , h ọ c v ị , h ọ v à t ê n Đ ơ n v ị c ô n g t á c V a i t r ò t h ự c h i ệ n đ ề t à i
(Vê mục tiêu, nội dung, phương pháp, kết quà nghiên cứu và tố chức thực hiện; Nguyên nhân; Ỷ
kiến của Cơ quan quàn lý)
1.7 T ổ n g k in h p h í đ ư ợ c p h ê d u y ệ t c ủ a đề tà i: 200 triệu đồng
Trang 41 Đ ặ t v ấ n đ ề
N g à y n a y , c ô n g n g h iệ p p h â n m ề m đ ã trở th à n h m ộ t th à n h p h ầ n q u a n trọ n g củ a n ề n
k in h tê to à n c ầ u , ứ n g d ụ n g p h ầ n m ề m v à o tiế n trìn h q u ả n lý v à sả n x u ấ t c ủ a các d o a n h
n g h iệ p đ ã tạ o ra tỷ su ấ t lợi n h u ậ n lớ n h ơ n rấ t n h iề u so v ớ i trư ớ c đ ây T ro n g tiế n trìn h to à n
c ầ u h ó a, b ê n c ạ n h sự tiế n bộ về m ặ t c ô n g n g h ệ th ì v iệ c n g h iê n c ứ u v à đề x u ấ t cá c p h ư ơ n g
p h á p m ớ i v ề p h á t triể n p h ầ n m ề m c ũ n g có ý n g h ĩa h ết sứ c q u a n trọ n g Đ ể đ ư a ra đ ư ợ c g iải
p h á p h ữ u h iệ u c h o m ộ t v ấ n đề th ự c tế c ầ n sự h iể u b iết cả v ề c ơ s ở lý th u y ế t lẫn cá c p h ư ơ n g tiệ n k ỹ th u ậ t V ớ i tố c độ p h á t triể n c ủ a cá c d o a n h n g h iệ p p h ầ n m ề m tạ i V iệ t N a m , d ịc h v ụ
g ia tă n g c h ấ t lư ợ n g p h ầ n m ề m đ a n g là m ộ t tro n g n h ữ n g x u h ư ớ n g c h ín h c ủ a c ô n g n g h iệ p
p h ầ n m ềm
T h e o h ư ớ n g tiế p c ậ n tiế n h ó a c ủ a q u y trìn h p h á t triể n p h ầ n m ềm , p h á t triể n p h ầ n
m ề m là tiế n trìn h x â y d ự n g m ộ t p h iê n b ả n k h ở i đ ầu , sa u đ ó liê n tụ c c ậ p n h ậ t th ê m các ch ứ c
n ă n g m ớ i, q u á trìn h n à y đ ư ợ c th ự c h iệ n lặp đi lặp lại ch o đ ế n k h i c ó đ ư ợ c p h ầ n m ề m v ớ i các tín h n ă n g n h ư m o n g m u ố n P h ầ n m ề m c ầ n đ ư ợ c cậ p n h ậ t đ ể đ á p ứ n g các m ụ c tiê u n h ư sử a
c h ữ a sa i só t, tiế t k iệm n h ữ n g n ỗ lự c tro n g v iệ c tíc h h ọ p h a y c ả i th iệ n c h ấ t lư ợ n g p h ầ n
m ê m K ỹ th u ậ t th ư ờ n g đ ư ợ c sử d ụ n g tro n g q u á trìn h là tá i c ấ u trú c (re fa c to rin g ) m ô h ìn h
n h iề u tìn h h u ố n g k h á c n h a u C ác m ẫ u th iế t k ế th ư ờ n g th ể h iệ n m ố i q u a n h ệ g iữ a các lớp
h o ặ c c á c đ ố i tư ợ n g , c h ứ k h ô n g p h ả i đ ặc tả m ộ t th ể h iệ n c ủ a ứ n g d ụ n g c ụ th ể n ào cả
V ớ i cá c ư u đ iể m c ủ a tá i c ấ u trú c v à đ ặc đ iể m c ủ a m ẫ u th iế t k ế, v iệ c áp d ụ n g m ẫ u
th iẻ t k ế tro n g tiế n trìn h tá i c ấ u trú c p h ầ n m ề m h ứ a h ẹ n sẽ m a n g lạ i m ộ t g iả i p h á p tố t tro n g lĩrùi v ự c c ả i ti ế n c h ấ t lư ự iig p h ầ n m ề m T a y n h iê n , liến Lành Ìiày c ầ n đ ư ợ c th ự c th i m ộ t c á c h
c â n th ậ n v ì n ó d ễ d à n g là m p h á t s in h n h ữ n g lỗi k h ô n g m o n g m u ố n N ó i c á c h k h á c , m ộ t tro n g n h ữ n g b à i to á n c ầ n q u a n tâ m , n g h iê n c ứ u tro n g q u á trìn h n à y là, "hệ th ố n g p h ầ n m ề m
trư ớ c v à s a u k h i tái c ấ u trú c có b ả o to à n về m ặ t h à n h vi (n h ấ t q u á n vớ i n h a u ) h a y k h ô n g ? "
PHÀN II TỐNG QUAN KÉT QUẢ NGHIÊN c ử u
2
Trang 5M ộ t số p h ư ơ n g p h á p đ ã đ ư ợ c đ ề x u ấ t để k iể m tra tín h n h ấ t q u á n g iữ a các m ô h ìn h
n h ư k ỹ th u ậ t c h u y ể n đổi m ô h in h [3, 4], m ô tả h ệ th ố n g b ằ n g k h u n g n h ìn lo g ic [5], h o ặc trao
đ ô i siê u d ữ liệ u X M L T ro n g n g h iê n c ứ u n ày , c h ú n g tô i đề x u ấ t c á c h tiế p c ậ n m ớ i để k iểm
c h ứ n g tín h n h ấ t q u á n củ a h ệ th ố n g p h ầ n m ề m tro n g tiế n trìn h tá i c ấ u trú c có sừ d ụ n g các
m â u th iế t kế N ộ i d u n g c h ín h c ủ a đề tài là 1) đ ề x u ấ t p h ư ơ n g p h á p kiểm c h ứ n g tín h n h ấ t
q u á n về m ặ t h à n h v i c ủ a cá c h ệ th ố n g p h ầ n m ề m th ô n g q u a v iệ c x á c đ ịn h tiề n và h ậ u đ iều
k iệ n (p r e /p o s t-c o n d itio n ) củ a m o i c ặ p k ịc h b ả n tư ơ n g ứ n g tr o n g c á c h ệ th ố n g tr ư ớ c và sa u
k h i tá i c á u trú c ; 2) x â y d ự n g tậ p lu ậ t (ru les) là c ơ s ở ỉỷ th u y ế t c h o q u á tr ìn h kiểm c h ứ n g ; 3)
m in h h ọ a c h i tiế t p h ư ơ n g p h á p đ ã đ ề x u ấ t trê n h ệ th ố n g đ iề u k h iể n lư u lư ợ n g g ia o th ô n g
đ ư ờ n g b ộ (A d a p tiv e R o a d T ra ffic C o n tr o l S y ste m - A R T C ).
T ắ c n g h ẽ n g ia o th ô n g là m ộ t v ấ n đề n g à y c à n g tă n g tại c á c th ị trấ n v à th à n h p h ố trê n
to à n thế g iớ i N g ư ờ i đ iề u k h iể n g ia o th ô n g p h ả i liê n tụ c làm v iệ c để tố i đ a h ó a h iệ u n ă n g sừ
d ụ n g c ủ a m ạ n g lư ớ i g ia o th ô n g đ ư ờ n g bộ v à g iả m th iể u b ất k ỳ s ự g iá n đ o ạ n n à o (g â y ra b ở i
ta i n ạ n h o ặ c c á c sự k iệ n b ấ t th ư ờ n g , ) T ro n g đề tà i n ày , c h ú n g tô i sử d ụ n g lại m ộ t ví d ụ về
p h â n tíc h v à th iế t k ế hệ th ố n g đ iề u k h iể n lư u lư ợ n g g ia o th ô n g đ ư ờ n g b ộ (A d a p tiv e R o a d
T ra ffic C o n tro l S y ste m - A R T C ) [6] đ ể m in h h ọ a c h o p h ư ơ n g p h á p k iể m ch ứ n g
3.1 Mô hình hóa hệ thống ARTC
T ừ c á c h n h ìn p h â n tíc h v à th iế t k ế h ệ th ố n g h ư ớ n g đ ố i tư ợ n g v ớ i m ộ t h ệ th ố n g p h ầ n
m ề m , c h ú n g tô i x â y d ự n g b iể u đồ lớ p b a n đ ầ u ch o h ệ th ố n g A R T C B iể u đ ồ n à y b ao g ồ m
b ô n l ó p T r a f f i c C o n t r o l l e r , D e t e c t o r , R o a d v à O p t i m i z e r S t r a t e g y đ ư ợ c m ô t ả n h ư t r o n g
H ình 1
T r a f f i c C o n t r o I l e r là lớ p đ ó n g vai trò tru n g tâ m , đ iề u k h iể n tấ t c ả cá c lớ p c ò n lại
t r o n g hệ th ố n g N ó th u n h ậ n lu ô n g tín h iệ u g ia o th ô n g từ lớ p D e t e c t o r sa u đ ó tru y ề n d ữ liệu
n à y đ ế n lớ p O p t i m i z e r ; k ế t q u ả từ lớ p O p t i m i z e r đ ư ợ c sử d ụ n g là th a m số đ ầ u v ào c h o lớp
T r a f f i c C o n t r o l l e r để đ iể u c h ỉn h n g ư ợ c trở lại tín h iệ u g ia o th ô n g trê n đ ư ờ n g phố
Trang 6Detector -deiectorlD: Strins
- traffic F low: IR A FF I c FTL o w +setTrafĩícController() -f-eetT rafficControllerQ -i-2etlnformation0
+amlyzeTrqffìcị)
-i-setlnformationQ
Road -roadID: s trine -roadName: String +setRoad() +getRoad()
Optimizer -state: STATE -signal: SIGNAL -signalTime: iut -direction: DIRECTION +setOptmiizer() +getOptimizer()
+ o p ỉim 'iz e T ra Jjìc()
H ình 1 Biểu đồ lớp khở i đầu cho hệ thống A R T C
B iê u đ ô tu ầ n tự h iể n th ị c á c h th ứ c các đ ố i tư ợ n g tư ơ n g tá c v ớ i n h a u tro n g m ộ t k ịc h
b ả n à ch ỉ ra th ứ tự th ự c h iệ n c á c p h ư ơ n g th ứ c có tro n g k ịc h b ả n th e o th ờ i gian T ro n g đề tài
n à y , c h ú n g tô i ch ỉ m in h h ọ a v iệ c m ô tả k ịc h b ả n đ iề u k h iể n tố i ư u tín h iệ u đ è n g iao th ô n g
c ủ a h ệ th ò n g A R T C VỚI c á c c h ứ c n ă n g c h ín h , b ao g ồ m g e tT r a ffic F lo w (), a n a ly ze T ra ffic Q ,
a n a ly z e S ig n a l(), a n a ly z e T im e L im it() v à a n a ly z e A d ja c e n tS ig n a l().
K ịc h b ả n n à y c ủ a h ệ th ố n g đ ư ợ c m ô tả b ở i b iể u đ ồ tu ầ n tự n h ư H ình 2
H ình 2 Biêu đô tuân tự cùa kịch bản điêu khiển tối m i tín hiệu đèn
4
Trang 7lớ p m ớ i kê th ừ a từ lớ p O p t i m iz e r sẽ x u ấ t h iện V à n h ư v ậ y , lớ p c o n đ ó p h ải k ế th ừ a
tâ t c ả n h ữ n e gì lớ p O p t i m iz e r đ a n g có Đ â y là n h ữ n g đ iề u rấ t c ầ n trá n h tro n g x ây
d ự n g p h ẩ n m ềm
- M ã n g u ồ n tro n g p h ư ơ n g th ứ c o p tim iz e T ra jfic O rấ t k h ó để có th ể sử d ụ n g lại đ ư ợ c.
Đ ê k h ắ c p h ụ c c á c k h ó k h ă n trê n , n g ư ờ i th iế t k ế hệ th ố n g có th ể sử d ụ n g m ẫ u th iế t kế
S tra te g y đ ể tiế n h à n h tái c ấ u trú c lại lớ p O p t i m iz e r M ầ u th iế t k ế S tra te g y đ ó n g v à đ ịn h
n g h ĩa m ộ t tậ p cá c th u ậ t to án , đ ồ n g th ờ i c h o p h é p n ó h o á n đ ổ i vị trí m ộ t c á c h lin h hoạt
N h ư m in h h ọ a tro n g H ìn h 3, c h ú n g tô i p h â n rã p h ư ơ n g th ứ c o p tim iz e T ra ffic () th à n h b a
th u ậ t to á n c o n (S ig n a lO p tim iz e S tr a te g y , T im e L im itO p tim ize S tra te g y ,
A d ja c e n tO p tim iz e S tr a te g y ) từ lớ p Optimizer sa u đó h ìn h th à n h m ộ t h ệ th ố n g cá c lớp
g iả i th u ậ t c ó c h ia sẻ g ia o d iệ n O p tim iz e rS tra te g y
H ĩnh 3 B iếu đồ lớp cho hệ thống A R T C sau tái cấu trúc
B â y g iờ , s a u k h i tá i c ấ u trú c , k ịc h b ả n đ iề u k h iể n tố i ư u tín h iệ u đ è n c ủ a h ệ th ố n g c ũ n g đ ư ợ c
v ẽ lại n h ư H ình 4
Trang 8:Detector :TraữĩcController
getTrafficFlowQ
analyzeTrafficO
optimizeTrafficO
:SÌ2nalODtimize :T lineOotimize :AdiaceatODtimize
optimizeTrafficO optimizeTrafficO
- K h i g ia o th ô n g đ a n g ớ trạ n g th á i bị á c h tăc (h e a v y T ra ffic ), tín h iệ u đ è n x a n h đ ã đ ư ợ c
b ật lên , th ì th ờ i g ia n (tim e ) d à n h c h o tín h iệ u n ày c ầ n đ ư ợ c g ia tăn g
- K h i g ia o th ô n g đ a n e ở trạ n g th á i th ô n g th o á n g , tín h iệ u đ è n đỏ đ ã đ ư ợ c b ậ t lên, thì
th ờ i g ia n (tim e ) d à n h c h o tín h iệ u n à y c ầ n đ ư ợ c g ia tăn g
- T ại m ộ t h ư ớ n g g ia o lộ n à o đ ó , k h i g ia o th ô n g đ a n g ở trạ n g th á i v ớ i lư u lư ợ n g cao
( h ig h T ra ffic ), tín h iệ u đ è n x a n h đ a n g đ ư ợ c b ật, th ì p h ư ơ n g tiệ n g ia o th ô n g n ê n lự a
c h ọ n th e o h ư ớ n g đi n à y , c ò n v ớ i tấ t c ả c á c trạ n g th á i c ò n lại, g iả i p h á p n o C h o o s e n ên
đ ư ợ c th ự c hiện
Đ e p h ụ c v ụ c h o m ụ c tiê u k iể m c h ứ n g tín h n h ấ t q u á n c ủ a h ệ th ố n g , c h ú n g tô i đ ã tiế n h à n
b iê u d iễ n c á c rà n g b u ộ c trê n b ằ n g O C L v à JM L
4 T ô n g q u a n v ề q u y t r ì n h k i ế m c h ứ n g t í n h n h ấ t q u á n t r o n g t á i c ấ u t r ú c m ô h ì n h p h ầ n mềm
H ìn h 5 m ô tả q u y trìn h v ớ i b a tiế n trìn h c h ín h : (1) ta i c ấ u tr ú c , (2) tín h to á n tiền và
h ậ u đ iề u k iệ n c ù a c á c k ịc h b ả n v à (3) th ự c h iệ n kiểm ch ứ n g C h ú ý rằ n g , tro n g đề tài n ày
c h ú n g ta đ ặ c b iệ t q u a n tâ m đ ế n k iể m c h ứ n g tín h n h ấ t q u á n của hệ th ố n g p h ầ n m ề m tạ i h ai
g ia i đ o ạ n k h á c n h a u c ủ a q u á trìn h p h á t triể n p h ầ n m ềm , g ia i đ o ạ n th iế t k ế v à g ia i đ o ạ n cà i
đ ặ t p h ầ n m ề m
Trang 9Đ e k iê m c h ứ n g tín h n h ấ t q u á n tro n g tái c ấ u trú c h ệ th ố n g p h ầ n m ề m tạ i g ia i đ o ạ n
th iê t k ế, c h ú n g tôi sử d ụ n g cá c b iể u đ ồ lớ p , b iể u đ ồ tu ầ n tự tro n g U M L để m ô h ìn h h ó a hệ
th ố n g , n g ô n n g ữ rà n g b u ộ c đ ố i tư ợ n g O C L m ô tả các rà n g b u ộ c (b a o g ồ m cá c b ấ t b iế n , tiề n
v à h ậ u đ iề u k iệ n ) T ại m ứ c n ày , tiế n trìn h tá i c ấ u trú c b ả n c h ấ t là sự p h â n bố lại cá c ló p v à
c á c p h ư ơ n g th ứ c , vì v ậ y d ự a trê n tậ p lu ậ t đ ã x â y d ự n g , c h ú n g tô i tín h to á n lại các rà n g b u ộ c
n à y trê n m ô h ìn h m ớ i C u ố i c ù n g là b ư ớ c so sá n h để rú t ra đ ư ợ c k ế t lu ận liệu m ô h ìn h hệ
th ô n g có b ả o to à n cá c h à n h v i m o n g m u ố n n à y h ay k h ô n g ?
Đ ê k iê m c h ứ n g tín h n h ấ t q u á n tro n g tá i c ấ u trú c hệ th ố n g p h ầ n m ề m ở g iai đ o ạ n th ự c
th i c h ú n g tô i đ ã tiế n h à n h cà i đ ặ t h ệ th ố n g b à n g n g ô n n g ữ lập trìn h Jav a H iệ n n a y c ó k h á
n h iê u n g ô n n g ữ lập trìn h có để d ù n g x â y d ự n g hệ th ố n g th e o p h ư ơ n g p h á p h ư ớ n g đ ố i tư ợ n g ,
tu y n h iê n c h ú n g tô i c h ọ n J a v a v ì sự h ỗ trợ đ ặ c b iệ t c ủ a n g ô n n g ữ đ ặc tả JM L đ ố i v ớ i nó
H ơ n th ê n ữ a , v ớ i c á c c ô n g c ụ đ ã có [7, 8], tíc h h ợ p v ào n ề n tả n g E c lip s e c h ú n g tô i có thể
th ự c h iệ n k iể m c h ứ n g tín h n h ấ t q u á n c ủ a h ệ th ố n g ở m ứ c m ã n g u ồ n m ộ t c á c h tự đ ộ n g
Hình 5 Tông quan về quy trình kiểm chímg
Trang 105.1 Mô hình hóa hệ thong phần mềm bằng UML
bộ-3 CiM =(OPCiM,ACiM,I CiM) ở đ â y OPCiM là tậ p h ợ p cá c p h ư ơ n g th ứ c c ô n g k h a i, AciM là tập
h ợ p các th u ộ c tín h , v à IClM là tậ p trạ n g th á i c á c b ấ t b iế n c ủ a lớp.
Đ ịn h n g h ĩa 3 (T iề n đ iề u k iệ n c ủ a p h ư ơ n g th ứ c trừ u tư ợ n g ) T iề n đ iề u k iệ n PREop
c u a p h ư ơ n g th ứ c opei tro n g lớ p trừ u tư ợ n g CiM đ ư ợ c h iệ n th ự c h ó a b ở i N p h ư ơ n g th ứ c opei
tro n g các ló p c o n C k siM đ ư ợ c tín h b ằ n g h ợ p tiề n đ iề u k iệ n c ủ a tấ t c ả các p h ư ơ n g th ứ c opei
tro n g cac lớ p c o n CksiM
G iả sử Pi{opei) b iể u d iễ n tiề n đ iề u k iệ n c ủ a p h ư ơ n g th ứ c opei tro n g các lớ p c o n , k h i
đ ó c h ú n g ta tín h tiề n đ iề u k iệ n th e o c ô n g th ứ c PRE = \JPị (opei) c h o p h ư ơ n g th ứ c ope i, ở
Trang 11đây opei eC ksiM là các p h ư ơ n g th ứ c h iệ n th ự c h ó a, v à p là m ệ n h đề b iế u d iễ n tiề n đ iề u k iệ n
củ a cá c phương th ứ c ope i.
Đ ịn h n g h ĩ a 4 (H ậ u đ iề u k iệ n cù a p h ư ơ n g th ứ c trừ u tư ợ n g ) H ậ u đ iề u k iệ n POSTop
củ a p h ư ơ n g th ứ c opei-tro n g lớp trừ u tư ợ n a CiM đ ư ợ c h iệ n th ự c h ó a b ở i N p h ư ơ n g th ứ c
opei tro n g cá c ló p c o n CksiM đ ư ợ c tín h b ằ n g h ọ p h ậ u đ iề u k iệ n c ủ a tấ t c ả các p h ư ơ n g th ứ c opei tro n g các lớ p c o n CksiM
T ư ơ n g tự n h ư c á c h tín h tiề n đ iề u k iệ n c ủ a p h ư ơ n g th ứ c tro n g lớ p trừ u tư ợ n g , dễ th ấ y
POSTop = \JPi(opei), ở đ â y opei e Cksiự là c á c p h ư ơ n g th ứ c h iệ n th ự c h ó a , v à p là cá c m ệ n h
đề b iê u d iễ n h ậ u đ iề u k iệ n c ủ a các p h ư ơ n g th ứ c opei tro n g cá c lớ p con.
H à n h v i c ủ a m ộ t m ô h ìn h p h ầ n m ề m đ ư ợ c b iể u d iễ n th ô n g q u a h à n h v i c ủ a c á c k ịc h
b ả n có tro n g m ô h ìn h T ro n g đề tà i n à y , m ỗ i m ộ t k ịc h b ả n c ủ a hệ th ố n g tư ơ n g ứ n g v ớ i m ộ t
b iểu đ ồ tu ầ n tự tro n g Ư M L
Đ ịn h n g h ĩa 5 (K ịc h b ản ) M ộ t k ịc h b ả n SiM đ ư ợ c b iê u d iễ n b ở i b ộ -4
={CiSiM,PRESịM,ESiM,POSTSiM) , ở đ â y CISiM C CiM b iể u d iễ n c h o tậ p h ọ p cá c lớ p th a m g ia vào k ịc h b ả n , PRESiM là tiề n đ iề u k iệ n c ủ a k ịc h b ả n , ESiM là tậ p có th ứ tự các p h ư ơ n g th ứ c
đ ư ợ c th ự c th i tro n g k ịc h b ả n , v à POSTSiM là h ậ u đ iề u k iệ n c ủ a k ịc h b ả n đó.
Định nghĩa 6 (Phương thức của kịch bản) Một phương thức của kịch bản dược biểu
d iễ n b ở i b ộ -4 Ekm = (pR £E km ,OPE k m ,POSTEksiM,k ) , ở đ â y PREEksM là tiề n đ iề u k iệ n c ủ a các
b ản , v í dụ, PR£EkS[M = AjP(-^cijA/)> tr o n g đó A c ^ e A c ị M là cá c th u ộ c tín h , CiM C CỈSlM v à p là
các v ị từ M ộ t k ịc h b ả n b a o g ồ m m ộ t c h u ỗ i c á c h o ạ t đ ộ n g , d o đó tiề n v à h ậ u đ iề u k iệ n c ủ a
m ộ t p h ư ơ n g th ứ c đ ư ợ c h ìn h th à n h b ở i b iể u th ứ c tiề n v à h ậ u đ iề u k iệ n c ủ a p h ư ơ n g th ứ c th ự c
h iệ n n g a y trư ớ c đó L ư u ý rằ n g , m ộ t p h ư ơ n g th ứ c c ô n g k h a i c ủ a m ộ t lớ p tro n g các k ịc h b ản
k h ác n h a u có th ể c ỏ tiê n v à h ậ u đ iề u k iệ n k h á c n h a u T iề n v à h ậ u đ iề u k iệ n c ủ a m ộ t k ịc h
b ả n đ ư ợ c x á c đ ịn h d ự a trê n tiề n v à h ậ u đ iề u k iệ n c ủ a tấ t c ả cá c p h ư ơ n g th ứ c có th a m g ia v à
k ịc h b ản C h ú n g đ ư ợ c đ ịn h n g h ĩa n h ư sau:
Trang 12Đ ịn h n g h ĩ a 7 (T iề n đ iề u k iệ n c ủ a k ịc h bản) T iề n đ iề u k iệ n c ủ a m ộ t k ịc h b ản k ý h iệ u
là PRE sìm x á c đ ịn h bở i tiề n đ iề u k iệ n c ủ a p h ư ơ n g th ứ c đ ầ u tiê n đ ư ợ c th ự c th i tro n g k ịc h b ản
T iê n đ iề u k iệ n c ủ a p h ư ơ n g th ứ c đ ầ u tiê n tro n g k ịc h b ả n đ ư ợ c đ ặc bở i c á c rà n g b u ộ c trê n tấ t c ả c á c th u ộ c tín h c ô n g k h a i c ủ a k ịc h bản
Đ ịn h n g h ĩa 8 (H ậ u đ iề u k iệ n c ủ a k ịc h b ản ) H ậ u đ iề u k iệ n c ủ a m ộ t k ịc h b ả n ký h iệ u
POSTSlM đ ư ợ c x á c đ ịn h b ở i h ợ p c ủ a các rà n g b u ộ c trê n các th u ộ c tín h c ô n g k h a i củ a
h ậ u đ iêu k iệ n c ủ a p h ư ơ n g th ứ c P O ST Ek d iễ n ra sa u c ù n g tro n g ESiM
C h o m ộ t k ịc h b ả n s = (eh e2, ,e„ ) , tro n g đó ei , i = \ n là p h ư ơ n g th ứ c th ứ i th ự c thi
tro n g k ịc h b ả n đ ó T h e o đ ịn h n g h ĩa 6, c h ú n g ta có e, = (p reei,p o stei,i) v à postụ^ = A Pk {AkC ),
ờ đ â y Pk là cá c lo g ic vị tỪAkC , b iể u d iễ n c h o th u ộ c tín h c ủ a lớ p c có liên q u a n đ ến k ịc h b ản
n ày G iả sử rằ n g k ịc h b ả n s ch ỉ có d u y n h ấ t m ộ t th u ộ c tín h c ô n g k h a i A q c ù n g x u ấ t h iệ n
tro n g b iể u th ứ c h ậ u đ iề u k iệ n c ủ a e, v à ẽj sao c h o 1 < ỉ' < j < n N h ư v ậy , c h ú n g ta sẽ có
postei =P' (AC ) v à postej =Pj {Ac ) N e u e, th ự c th i trư ớ c ẽ j , P j ( A c ) c ần p h ả i đ ư ợ c d u y trì ch o
đ ế n khi p h ư ơ n g th ứ c th ứ j đ ư ợ c th ự c thi.
Đ ịn h n g h ĩ a 9 (T á i c ấ u trú c ) M ộ t tiế n trìn h tá i c ấ u trú c R s ử d ụ n g m ẫ u th iế t kế D
được biển diễn như sau: R: M ° — — >A/', trong đó M và M’ theo thứ tự tương ứng
b iể u thị c h o cá c m ô h ìn h trư ớ c v à sa u k h i th ự c h iệ n tá i c ấ u trú c , D là tê n c ủ a m ẫ u th iế t kế
đ ư ợ c ứ n g d ụ n g , v à SƯB ms C S M là tậ p cá c k ịc h b ả n th a m g ia v à o tiế n trìn h tái c ấ u trú c này.
V ớ i m ụ c tiê u g iả m đ ộ p h ứ c tạ p ch o q u á trìn h k iể m c h ứ n g , cá c th u ộ c tín h c ầ n k iể m
c h ứ n g sẽ đ ư ợ c p h â n th à n h h a i lo ại (i) C á c th u ộ c tín h tĩn h (sta tic ), v à (ii) cá c th u ộ c tín h đ ộ n g (d y n a m ic ) Đ ố i v ớ i lo ạ i th u ộ c tín h th ứ n h ấ t, p h ư ơ n g p h á p k iể m c h ứ n g d ự a trê n các b ấ t b iế n
c ủ a lớp, v ớ i lo ại th u ộ c tín h th ứ h ai, q u á trìn h k iể m c h ứ n g sẽ th a o tác trê n tiề n /h ậ u đ iề u k iệ n
c ủ a các k ịc h bản
Q u á trìn h k iể m c h ứ n g sẽ đ ư ợ c th ự c h iệ n m ộ t c á c h lần lư ợ t, d ự a trê n sự tu â n th ủ các
M ệ n h đ ề c h i tiế t sa u đây
5.2 Kiêm chứng các thuộc tính tĩnh trong mô hình
V iệ c á p d ụ n g các m au th iế t k ế tro n g lá i trú c p h ẩ n m ề m th ư ờ n g d ẫ n đ ế n lliav đổi cá c
c ấ u trú c b ê n tro n g c ủ a m ô h ìn h T u y n h iê n , lu ô n có m ộ t v à i c á c rà n g b u ộ c tĩn h c ầ n đ ư ợ c d u y trì tro n g s u ố t tiê n trìn h n ày C h ú n g tô i đề x u ấ t k iể m c h ứ n g cá c th u ộ c tín h tĩn h d ự a trê n k h ái
n iệ m b â t b iê n c ủ a lớ p (c la s s in v a ria n ts) T ro n g trư ờ n g h ọ p đặc b iệt, n ế u c á c ló p th a m gia v à
10
Trang 13tiế n tr ìn h tá i c ấ u trú c c ủ a m ô h ìn h k h ô n g bị th a v đ ổ i, đ iề u h iể n n h iê n cá c b ất b iế n c ủ a các lớp đ ó sẽ đ ư ợ c d u y trì.
M ệ n h đ ề 1 (B ả o to à n các tín h c h ấ t tĩn h ) Q u á trìn h tá i c ấ u trú c m ộ t m ô h ìn h p h ầ n
m ềm đ ư ợ c c o i là b ả o to à n các th u ộ c tín h tĩn h n ếu các b ấ t b iế n c ủ a cá c lớ p trê n m ô h ìn h h iệ n
tại tư ơ n g đ ư ơ n g lo g ic vớ i các b ấ t b iế n c ủ a cá c lớ p trê n m ô h ìn h b an đầu
C h ú n g ta c ó th ể h ìn h th ứ c h ó a m ệ n h đề trê n cụ th ể n h ư sa u C h o
R: M —£ẤẼ£ẼMẵÌ >M ' là tiế n trìn h tá i c ấ u trú c , M ' đ ư ợ c g ọ i là b ả o to à n các th u ộ c tín h tĩn h VỚI M n ê u VC iM \CiM € CM A CiM £ C'M => ICiM = I CiM’.
5.3 Kiêm chứng các thuộc tính động trong mô hình
Y ê u c ầ u q u a n trọ n g đ ố i v ớ i tiế n trìn h tái c ấ u trú c s ừ d ụ n g cá c m ẫ u th iế t kế là sự
k h ô n g th a y đ ô i (b ả o to à n ) cá c h à n h vi b ê n n g o à i c ủ a m ô h ìn h p h ầ n m ềm T ro n g đ ề tài này, các h à n h v i c ủ a hệ th ố n g đ ư ợ c m ô tả th ô n g q u a các k ịc h b ả n (sc e n a rio ) B ở i v ậ y , c h ú n s ta
câ n p h ả i k iê m tr a liệ u tậ p h ợ p các k ịc h b ả n th a m g ia v à o tiế n trìn h tái c ấ u trú c c ó b ảo to à n
cá c h à n h vi c ủ a n ó h a y k h ô n g
M ệ n h đ ề 2 (N h ấ t q u á n to à n p h ầ n trê n các th u ộ c tín h đ ộ n g ) M ộ t tiế n trìn h tá i c ấ u trú c tr ê n m ô h ìn h p h ầ n m ê m đ ư ợ c g ọ i là n h ấ t q u á n to à n p h ầ n trê n các th u ộ c tín h đ ộ n g (v ớ i
m ô h ìn h b a n đ ầ u ), n ế u v ớ i m ỗ i k ịc h b ả n trê n m ô h ìn h h iệ n tạ i, tiề n v à h ậ u đ iề u k iệ n củ a nó
đ ề u tư ơ n g đ ư ơ n g lo g ic v ớ i tiề n v à h ậ u đ iề u k iệ n c ủ a k ịc h b ả n tư ơ n g ứ n g trê n m ô h ìn h b an
M ộ t c á c h h ìn h th ứ c h ó a , c h o R : M — ° (SUBms) > M ' là m ộ t tiế n trìn h tái c ấ u trú c , M '
g ọ i là n h ấ t q u á n to à n p h â n trê n cá c th u ộ c tín h đ ộ n g v ớ i M n ếu
VSịM e SUBm A PREs m = PRESlM a POSTSìM = POSTSiM'
M ệ n h đ ề 3 (N h ấ t q u á n b ộ p h ậ n trê n các th u ộ c tín h đ ộ n g ) M ộ t tiế n trìn h tái c ấ u trú c
m ô h ìn h p h â n m ề m đ ư ợ c g ọ i là n h ấ t q u á n b ộ p h ậ n trê n c á c th u ộ c tín h đ ộ n g (so v ớ i m ô h ìn h
b a n đ â u ) n ế u tiề n đ iề u k iệ n c ủ a các k ịc h b ả n trê n m ô h ìn h h iệ n tại (m ô h ìn h sa u k h i đ ã tái
c â u trú c ) k h ô n g h ề th a y đ ổ i, h ậu đ iề u k iệ n c ủ a cá c k ịc h b ả n ch ì th ỏ a m ã n m ộ t p h ầ n so vớ i tiề n /h ậ u đ iề u k iệ n c ủ a cá c k ịc h b ản tư ơ n g ứ n g tro n g m ô h ìn h gốc
M ộ t c á c h h ìn h th ứ c h ó a , c h o R : M — D-^SUB-^ -s '> - >A/' là m ộ t tiế n trìn h tá i c ấ u trú c , M '
đ ư ợ c e ọ i là n h ấ t q u á n b ộ p h ậ n trê n cá c th u ộ c tín h đ ộ n g so v ớ i m ỗ h ìn h M n ếu
v s /w e SUBm a PRESiM = PRESiM' A POSTSiM => POSTSiư
T r o n g trư ờ n g h ọ p n à y , n ế u POSTSiM => POSTSịM’, n h ư v ậ y g iá trị c ủ a các rà n g b u ộ c
trê n c á c k ịc h b ả n trê n các th u ộ c tín h c ô n g k h a i v ẫn n ằ m tro n g m iề n k ỳ v ọ n g
Trang 14M ệ n h đ ề 4 (K h ô n g n h â t q u á n ) M ộ t tiế n trìn h tái c ấ u trú c m ô h ìn h p h ầ n m ềm đ ư ợ c
g ọ i là k h ô n g n h ât q u á n n ê u n ó đ ồ n g th ờ i k h ô n g th ỏ a m ã n c ả n h ấ t q u á n to à n p h ầ n v à n h ất
q u á n bộ p h ậ n trê n cá c th u ộ c tín h độn g
5.4 Kiêm chứng tính nhất quán của hệ thống ARTC trên các mô hình phần mềm
T ừ c á c tiê u ch í th ể h iệ n q u a các m ệ n h đ ề v ề k iể m c h ứ n g tín h n h ấ t q u á n , c h ú n g tô i đ ã
á p d ụ n g c h o m ô h ìn h Ư M L /O C L c ủ a h ệ th ố n g A R T C v à k iể m c h ứ n g tín h n h ấ t q u á n c ủ a
k ịc h b ả n c a lc u la tin g o p tim a l c o n tr o l đ ư ợ c đ ặc tả tro n g m ô h ìn h k h ở i đ ầ u (H ìn h 1 v à H ìn h
2 ) v à m ô h ìn h tá i c ấ u trú c (H ìn h 3 v à H ìn h 4)
6 Kiếm chứng tính nhất quán trong tái cấu trúc chương trình phần mềm
6.1 Các luật kiếm chứng tính nhất quán trong tái cấu trúc chương trình phần mềm
M ệ n h đ ề 5 [B ảo to à n sự th ự c th i c ủ a c h ư ơ n g trìn h n g u ồ n ] M ộ t c h ư ơ n g trìn h p đ ư ợ c
g ọ i là b ả o to à n th ự c th i n ế u v ớ i m ỗi k ịc h b ả n , trư ớ c v à s a u k h i th ự c thi c h ư ơ n g trìn h tiề n v à
h ậ u đ iề u k iệ n củ a nó đ ều đ ư ợ c b ảo to àn
C h ú n g ta có th ể b iể u d iễ n m ộ t c á c h h in h th ứ c h ó a m ệ n h đ ề n à y n h ư sau:
P R E Sp [S p ]POST sp
M ệ n h đ ề 6 [S ự b ảo to à n th ự c thi c ủ a c h ư ơ n g trìn h tá i c ấ u trú c] M ộ t c h ư ơ n g trìn h tái
c â u trú c p ' đ ư ợ c g ọ i là b ả o to à n th ự c th i v ớ i c h ư ơ n g trìn h n g u ồ n p n ế u v ớ i c ù n g m ộ t k ịc h
bản, tiền và hậu điều kiện của nó đều được bảo toàn sau khi thực hiện tái cấu trúc.
C h ú n g ta b iể u d iễ n m ệ n h đề n à y b ằ n g c ô n g th ứ c h ìn h th ứ c n h ư sau,
p R E Sp [SPI] P 0 S T SP,
6.2 Áp dụng phương pháp kiểm chúng vào hệ thống A RTC tại giai đoạn cài đặt
B à i to á n A R T C đ ã đ ư ợ c m ô tà tro n g p h ầ n 3, tạ i đ ó , c h ú n g ta c ũ n g đ ã x e m x é t đ ế n
m ộ t số h à n h v i c ầ n b ả o to à n c ủ a h ệ th ố n g trư ớ c k h i tiế n h à n h tá i c ấ u trú c b ằ n g c á c h sử d ụ n g
p h â n m ê m O p e n J M L tíc h h ợ p v ào m ôi trư ờ n g E c lip s e S a u đ â y , c h ú n g ta sẽ áp d ụ n g tậ p lu ật
đ ã x â y d ự n g đ ê k iê m c h ứ n g sự b ả o to à n c ủ a c á c h à n h v i tr ê n tro n g c h ư ơ n g trìn h đ ã đ ư ợ c tái
c ấ u tr ú c
T h ô n g q u a q u á trìn h th ự c n g h iệ m , c h ú n g tô i đ ã th ự c h iệ n c à i đ ặ t m ã n g u ồ n ch o hệ
th ô n g A R T C trư ớ c v à s a u k h i th ự c h iệ n tá i c ấ u trú c K e t q u ả c ủ a q u á trìn h k iể m c h ứ n g đ ư ợ c
th ê h iệ n tr o n g H ìn h 6
12
Trang 15I Static Checks fo r 02
"7tf02
A tF02.O ptim izer
[VALID] O p tim Ì2 e r(tFỌ 2 TrafficC o n troller^lG N AtTtF02.TraffĩcController.STATE,tF02JrafficC ontroller.DIRECT10N) [0.38 cvc4]
re d ) A N D (g re e n T im e < = 60)) else if (s ta te = h ig h T ra ffic ) th e n (d ire c tio n = CHOOSE) else (d ire c tio n = NO_CHOOSE) end'rf e n d if e nd rf
E v o lu tio n
P o s tc o n d itio n s
i f (s ta te = h ea vyT ra ffic.) th e n ((s ig n a l =
g re e n ) A N D (g re e n T im e > 60)) else if (sta te = lo w T ra ffic ) th e n ((s ig n a l
= re d ) A N D (g re e n T im e < = 60)) else if (s ta te = h ig h T ra ffic ) th e n (d ire c tio n = CHOOSE)
else (direction = NO_CHOOSE) endif endif endif
In itia l P o s tc o n d itio n V ariables 1E v o lu tio n P o s tc o n d itio n Variables
H ình 7 Giao diện của chương trình kiếm chứng p h â n mềm
n h iê u c ô n g cụ h ỗ trợ ch o tiế n tr in h tá i c ấ u trú c v à cá c c ô n g c ụ n ày đ a p h ầ n đ ề u hỗ trợ ở g iai
đ o ạ n cài đ ặ t m ã n g u ồ n C ác c ô n g c ụ n à y có th ể h ỗ trợ m ộ t p h ầ n (s e m i-a u to m a tic ) h o ặc to à n
Trang 16p h â n (fu lly -a u to m a tic ) c h o tiế n trìn h tái c ấ u trú c T ro n g p h ạ m v i n g h iê n c ứ u c ủ a đề tài này,
c h ú n g tô i q u a n tâ m đ ế n v iệ c x â y d ự n g c ô n g c ụ hỗ trợ k iể m c h ứ n g tín h n h ấ t q u á n c ủ a hệ
th ô n g p h ầ n m ề m tại g ia i đ o ạ n th iế t kế v ớ i tiế n trìn h tái c ấ u trú c có sử d ụ n g m ẫ u th iế t kế Ý
tư ở n e c h ín h c ủ a c h ú n g tô i k h i tiế n h à n h x â y d ự n g bộ c ô n g c ụ h ỗ trợ k iể m c h ứ n g là v ớ i m ỗ i
c ặ p k ịc h b ả n tư ơ n g ứ n g tro n g m ô h ìn h n g u ồ n v à m ô h ìn h tái c ấ u trú c , b ấ t b iến , tiề n /h ậ u đ iề u
k iệ n c ủ a n ó sẽ đ ư ợ c b iể u d iễ n b ở i O C L C ác rà n g b u ộ c n à y c ũ n g đ ư ợ c s ử d ụ n g làm bộ d ữ
liệ u đ ầ u v à o c ủ a c ô n g cụ S a u q u á trìn h k iể m c h ứ n g , bộ c ô n g c ụ sẽ trả lại k ế t q u ả n h ấ t q u á n
h o ặ c k h ô n g đ ổ i v ớ i c ặ p k ịc h b ả n đ ã k iể m c h ứ n g n à y C ô n g c ụ đ ư ợ c x â y d ự n g trê n n ề n tả n g
c ủ a n g ô n n g ữ lập trìn h Ja v a , sử d ụ n g W in d o w s B u ild e r đ ể tạ o g iao d iệ n v à Z3 J a v a A P I
(A p p lic a tio n P ro g ra m In te rfa c e ) đ ể k iể m tra tín h logic c ủ a c á c rà n g b u ộ c g iữ a cá c c ặ p k ịc h
b ả n tư ơ n g ứ n g c ủ a h ai m ô hình
G ia o d iệ n c h ín h c ủ a c ô n g c ụ k iể m c h ứ n g sẽ b ắ t đ ầ u b à n g m ộ t m à n h ìn h để n h ậ p v ào
b ấ t b iế n , tiề n v à h ậ u đ iề u k iệ n c ủ a k ịc h b ả n c ầ n k iế m c h ứ n g tro n g m ô h ìn h p h ầ n m ềm
T ro n g c ử a sô n à y có cá c n ú t đ iê u k h iê n th ự c h iệ n cá c c h ứ c n ă n g k h ác n h a u b a o g ô m In itia l
I n v a r ia n ts , E v o lu tio n In v a r ia n ts , I n itia l P r e c o n d itio n V a r ia b le s , E v o lu tio n P r e c o n d itio n
V a r ia b le s , In itia l P o stc o n d itio n V a ria b le s v à E v o lu tio n P o s t-c o n d itio n V a ria b les, đ ê k iêm
tra k ie u c ủ a từ n g b iế n h a y từ n g b iể u th ứ c có tro n g k ịc h b ả n c ầ n k iể m tra G ia o d iệ n đ ư ợ c
m in h h ọ a n h ư tro n g H ìn h 7 Q u á trìn h k iể m c h ứ n g đ ư ợ c lặ p đ i lặp lại v ớ i m ỗ i c ặ p k ịc h b ả n
tư ơ n g ứ n g c ủ a c á c m ô h ìn h p h ầ n m ề m (m ô h ìn h trư ớ c tái c ấ u trú c v à m ô h ìn h tá i c ấ u trú c
tương ứng của nó) Ncu tất cả các cặp kịch bản đều trả về kết quả nhất quán thì khi đỏ
T ro n g đề tà i n ày , c h ú n g tô i đ ã đề x u ấ t p h ư ơ n g p h á p k iể m c h ứ n g tín h n h ấ t q u á n c ủ a
h ệ th ố n g p h ầ n m ề m trư ớ c v à sau k h i tá i cấ u trú c b ằ n g c á c h áp d ụ n g m ẫ u th iế t kế P h ư ơ n g
p h á p k iể m c h ứ n g c ủ a c h ú n g tô i đ ư ợ c th ự c h iệ n m ộ t c á c h tu ầ n tự tạ i các g iai đ o ạ n th iế t kế v à
cà i đ ặt h ệ th ô n g Đ e k iê m c h ứ n g tạ i g ia i đ o ạ n th iế t kế, c h ú n g tô i m ô h ìn h h ó a hệ th ố n g b ằ n g
U M L v à d ù n g O C L đ ể b iể u d iễ n cá c h à n h v i c ầ n b ả o to àn Đ e k iể m c h ứ n g tạ i g ia i đ o ạ n c à i
d ặ t, c h u n g tô i m ã h o a h ệ th ố n g b ằ n g n s ô n n g ư ỉập ti ìn h J a v a , b iế u d iễ n h à n h vi b a n g JIvIL
v à th ự c h iệ n k iể m c h ứ n g m ộ t c á c h tự đ ộ n g b ằ n g p h ầ n m e m O p e n JM L tíc h h ợ p v à o m ô i trư ờ n g E c lip se
P h ư ơ n g p h á p c ủ a c h ú n g tô i th ế h iệ n tín h th ố n g n h ấ t về m ặ t lý lu ậ n (x u y ê n su ố t h ai
g ia i đ o ạ n c ủ a q u á trìn h p h á t triế n p h ầ n m ề m ), đ ồ n g th ờ i k h ả th i về m ặ t th ự c tiễ n (ở g iai
14
Trang 17đ o ạ n th iế t kê c h ú n g tô i đ ã tự x â y d ự n g c ô n g c ụ hỗ trợ , ở g iai đ o ạ n cà i đ ặ t c h ú n g tô i sử d ụ n g
p h â n m e m O p e n JM L đ ã có sẵn ) N h ư v ậ y , tiế n trìn h k iể m c h ứ n g tín h n h ấ t q u á n c ủ a h ệ
th ô n g p h â n m ề m tro n g tiế n trìn h tái c ấ u trú c đ ư ợ c c h ia th à n h h a i p h a riê n g biệt K ế t q u ả
k iể m c h ứ n g ở p h a th ứ n h ấ t (p h a th iế t k ế ) sẽ đ ư ợ c co i là c ơ sở k h o a học đ ể tiế p tụ c k iể m
c h ứ n g ở p h a th ứ 2 (p h a cà i đ ặt) N e u n g a y tại p h a đ ầ u tiên , k ế t q u ả k iể m c h ứ n g đ ã trả về là
k h ô n g n h ấ t q u án , th ì các n h à p h á t triể n p h ầ n m ề m có th ể p h á t h iệ n lỗi c ủ a tiế n trìn h tái c ấ u
trú c n g a y tạ i g iai đ o ạ n n à y Đ â y là m ộ t tro n g n h ữ n g ư u đ iể m tro n g p h ư ơ n g p h á p m à c h ú n g
tô i đ ê x u â t vì nó có th ể g iả m c h i p h í n s a y từ n h ữ n g g ia i đ o ạ n đ ầ u c ủ a tiế n trìn h tá i c ấ u trú c
p h ầ n m ề m
Đ ã có n h iê u c ô n g trìn h n g h iê n c ứ u th ự c h iệ n kiểm tra tín h n h ấ t q u á n trong các m ô
h ìn h p h â n m ê m , tu y n h iê n , n h ữ n g c ô n g trìn h n à y c h ù y ế u tậ p tru n g v à o sự n h ấ t q u á n g iữ a
c á c g ia i đ o ạ n k h á c n h a u tro n g s ự c h u k ỳ p h á t triể n c ủ a m ô h ìn h p h ầ n m ề m (k iể m tra tín h
n h â t q u á n g iữ a g ia i đ o ạ n cài đ ặ t v à g iai đ o ạ n th iế t k ế ) h o ặc g iữ a n h iề u loại sơ đ ồ k h á c n h a u
tro n g m ộ t m ô h ìn h (k iể m tra tín h n h ấ t q u á n g iữ a b iể u đ ồ trạ n g th á i v à b iể u đồ trìn h tự ), tro n g k h i đ ó n g h iê n c ứ u c ù a c h ú n g tô i lại c h ú trọ n g tro n g v iệ c k iể m tra tín h n h ấ t q u á n g iữ a
h a i m ô h ìn h hệ th ố n g p h ầ n m ề m (m ô h ìn h trư ớ c v à sa u k h i tá i c ấ u trú c ) tại các g iai đ o ạ n
th iế t k ế v à c à i đ ặ t h ệ th ố n g p h ầ n m ề m [9 ,1 0 ]
Đ ê m in h h ọ a ch o p h ư ơ n g p h á p đ ã đ ề x u ấ t, c h ú n g tô i c ũ n g x â y d ự n g m ộ t m ô h ìn h c ủ a
m ộ t h ệ th ố n g đ iề u k h iể n lư u lư ợ n g g ia o th ô n g đ ư ờ n g b ộ (A d a p tiv e R o a d T ra fic C o n tro l -
A T R C ) tro n g U M L T ro n g v í d ụ n à y , c h ú n g tô i c h ỉ m in h h ọ a c h ỉ v iệ c k iê m c h ứ n g tín h n h â t
q u á n k h i á p d ụ n g m ẫ u S tra te g y tro n g m ô h ìn h trê n m ộ t b ộ k ịc h b ả n (b iể u d iễ n c h o c ù n g m ộ t
c h ứ c n ă n g tư ơ n g ứ n g g iữ a h a i m ô h ìn h ), c á c k ịc h b ả n k h á c có th ể đ ư ợ c th ự c h iệ n m ộ t c á c h
tư ơ n g t ự d ố i v ớ i cá c h ệ th ố n g p h ứ c tạ p h ơ n K e t q u ả c u ố i c ù n g c ủ a v iệ c k iể m tra tín h n h ấ t
q u á n c ủ a c á c h à n h v i b ê n n g o à i g iữ a c á c h ệ th ố n g p h ụ th u ộ c trê n sự k ế t h ợ p c ủ a tấ t c ả cá c
k ế t q u ả k iể m tra tro n g m ỗ i c ặ p k ịc h b ả n tư ơ n g ứ n g g iữ a ch ú n g N ế u c h ỉ c h ỉ tồ n tạ i m ộ t k ế t
q u ả k h ô n g n h ấ t q u á n , th ì k ế t q u ả k iể m tra g iữ a h a i h ệ th ố n g đ ư ợ c c o i là k h ô n g n h ấ t q u á n
h o ặ c c h ỉ n h ấ t q u á n m ộ t p h ầ n
N h ư đ ã đ ề c ậ p trư ớ c đó, q u á trìn h k iể m tra s ự n h ấ t q u á n đ ã đ ư ợ c tiế n h à n h m ộ t c á c h
tự đ ộ n g tại c ả h a i g ia i đ o ạ n , tu y n h iê n q u á trìn h tín h to á n cá c rà n g b u ộ c trê n h ệ th ố n g s a u tá i
c â u trú c v ẫ n c ò n th ự c h iệ n m ộ t c á c h th ủ c ô n g Đ iề u n à y , d ẫ n đ ế n v iệ c tiê u tố n th ờ i g ia n v à
k h ả n ă n g p h á t s in h lỗi T ro n g c á c n g h iê n c ứ u tiế p th e o , c h ú n g tô i sẽ x â y d ự n g các c ô n g c ụ
h ỗ trợ đ ể th ự c h iẹ n c a c c ô n g v iệ c n à y m ọ t c á c h tụ d ộ n g
Trang 18Tài liệu th a m khảo
[1] E J C hikofsky, J H Cross, et al., Reverse engineering and design recovery: A taxonom y, Softw are, IEEE 7 (1) (1990) 13-17
[2] E Gam m a, R Helm , R Johnson, J V lissides, D esign patterns: elem ents o f reusable object- oriented languages and system s (1994)
[3] P Bottoni, F Parisi-Presicce, G Taentzer, C oordinated distributed diagram transform ation for softw are evolution, Electronic N otes in Theoretical C om puter Science 72 (4) (2003) 59-70
[4] c Zhao, J Kong, K Z hang, D esign pattern evolution and verification using graph transform ation, in: HICSS 2007 40th A nnual H aw aii International C onference on System Sciences,
2007, pp 290a-2 9 0 a
[5] N V Eetvelde, D Janssens, A hierarchical program representation for refactoring, Electronic
N otes in T heoretical C om puter Science 82 (7) (2003) 91 - 104, uN IG R A ’03, Uniform A pproaches
to G raphical P rocess Specification T echniques (Satellite Event for ETA PS 2003)
[6] K R anjini, A K anthim athi, Y Y asm ine, Article: D esign o f adaptive road traffic control system through unified m odeling language, International Journal o f C om puter A pplications 14 (7) (2011)
3 6 -4 1 , full text available
[7] c M arché, c P aulin-M ohring, X Urbain, T he krakatoa tool for certification o f java/javacard program s annotated in jm l, The Journal o f Logic and A lgebraic Program m ing 58 (1) (2004) 89-106.[8] D R C ok, O penjm l: Jm l for ja v a 7 by extending openjdk, in: N A S A Form al M ethods Sym posium , Springer, 2011, pp 472^479
[9] H ong A nh Le, Shin N akajim a, N inh Thuan Truong F orm al analysis o f im precise system
requirem ents w ith Event-B, SpringerPlus (2016) 5:1000 ISI journal
[10] T hi-H uong Dao, Hong-A nh Le, N inh-T huan T ruong, A n approach to analyzing execution preserva tio n in Ja v a program refactoring, International C onference on C ontext-A w are System s and
A pplications (IC C A S A ) 2016
9 T ó m t ắ t k ế t q u ả ( tiế n g V iệ t v à tiế n g A n h )
S au th ờ i g ia n n g h iê n c ứ u v à triể n k h ai, đ ề tà i đ ã đ ạ t đ ư ợ c m ộ t số k ế t q u ả c ụ th ể n h ư
Trang 19- U tiliz in g O C L a n d JM L to s p e c ify a n d c h e c k in g th e c o n s is te n c y o f s o ftw a re d e sig n
and J a v a p ro g ra m s re s p e c tiv e ly , an d
- Illu stra tin g th e p ro p o s e d a p p ro a c h w ith a c a se s tu d y o f A R T C sy stem
B u ild in g th e s u p p o rt to o l ’’C o n s is te n c y V a lid a to r”
ĐAI HỌC QUỐC GIA HÀ NỘI Ị
TRUNG TÂM THÔNG TIN THƯ VIỆN !
DŨŨẺŨŨQŨ4ỈÙ L
Trang 20PHẦN III SẢN PHẤM, CÔNG BÓ VÀ KÉT QUA ĐÀO TẠO CỦA ĐÈ TÀI
- Đầu vào là các mô hình biểu diễn dưới dạng biểu đồ
UM L của mô hình ban đầu
và mô hình tái cấu trúc
- Đ ầu ra là kết quà về sự bảo toàn các hành vi cùa mô hình tái cấu trúc
1 Công trình công bô trên tạp chí khoa học quôc tê theo hệ thông ISI/Scopus
1.1 H ong A nh L e , Shin N a k a j i m a ,
analysis o f im precise system
requirem ents w ith E vent-B,
quốc gia hoặc báo cáo khoa học đăng trong kỷ yếu hội nghị quốc tế
N inh-Thuan Truong, A n approach
Trang 21C onference on C ontext-A w are
System s and A pplications
Cột sản p h à m khoa học cô n g nghệ: L iệt kê các thông tin các sà n p h á m K H C N theo thứ tự
<tèn tác giã, tên công trình, tên tạp chí/nhà xu ấ t bàn, số p h á t hành, năm p h á t hành, trang đăng cóng trình, m ã công trình đủng tạp chí/sách chuvên khảo (DOI), loại tạp ch í ISI/Scopus>
Các ấn p h ẩ m khoa học (bài báo, báo cáo KH, sách chuyên kh á o ) ch ỉ đươc chấp nhân nếu
có g h i nhặn địa ch ỉ và cảm ơn tài trợ cùa Đ H Q G H N theo đúng quy định.
Ban p h ô tỏ toàn văn các ân p h ã m này p h ả i đư a vào p h ụ lục các m inh chím g cùa báo cáo
R iên g sách chuyên khảo cân có bàn p h ô tô bìa, trang đầu và trang cuối có g h i thông tin m ã số xu ấ t
3.3 K et q u ả đ ào tạo
T h ờ i gian v à
k in h p h í th a m gia đ ề tà i
(sổ tháng/số tiền)
C ô n g tr ìn h công bố liên q u a n
(Sàn phãm KHCN, luận án, luận văn) Đ ã bảơ vệ
N ghiên cứu sinh
T huan Truong Form al analysis o f
im precise system requirem ents w ith
E vent-B , SpringerPlus (2016)
5:1000
2 T hi-H uong Dao, H ong-A nh Le,
N inh-T huan Truong, An approach to analyzing execution preservation in Java program refactoring,
T ruong, A n approach to analyzing execution preserva tio n in Ja va p rogram refactoring, International C onference on
Chưa bào vệ
Trang 22C ontext-A w are System s and A pplications (IC C A SA ) 2006.
Hoc viên cao hoc
T rư òng, K20
T ên luận văn: Kiểm chứng giao diện phần
m ềm bằng phưong pháp mô hình hóa Event- B
T ên khóa luận: Phát triển công cụ kiểm chúng mô hình sử dụng m ẫu thiết kế
Đã bào vệ
Ghi chú:
G ử i kèm bản photo trang bìa luận á n / luận vă n / khóa luận và bang hoặc giấy chứ ng nhận
n ghiên c ứ u sinh/thạc sỹ nếu học viên đ ã bảo vệ thành công luận á n / luận văn;
C ộ t công trình công bố g h i n h ư m ục III 1.
Trang 235 Sô lượng bài báo trên các tạp chí khoa học của Đ H Q G H N ,
tạp chí khoa học chuyên ngành quốc gia hoặc báo cáo khoa
học đăng trong kỷ yếu hội nghị quốc tế
hàng của đơn vị sử dụng
7 Kêt quả dự kiên được ứng dụng tại các cơ quan hoạch định
chính sách hoặc cơ sở ứng dựng KH& CN
2 Nguyên, nhiên vật liệu, cây con
Trang 24P H A N V K IẼ N N G H Ị (vê p h á t triên các kết quả nghiên cứu của đẽ tài; về quàn lý, tô chức thực hiện ở các cấp)
Các kết quả của đề tài liên quan đến nghiên cứu cơ bản về C ông nghệ phần m ềm , có giá trị cà trong
lý thuyết và thực tiễn phát triển phần m ềm , có thể được ứng dụng trong giảng dạy và nghiên cứu
C ông nghệ phần mềm, Phân tích thiết kế hướng đối tượng, Các phương pháp hình thức trong phát triển phần m ềm H ướng nghiên cứu và kinh phí của đề tài đã trợ giúp hiệu quả cho các N CS và học viên cao học, sinh viên thực hiện luận án, luận văn và khóa luận tốt nghiệp N hóm nghiên cứu kiến nghị Đ H Q G H N tiếp tục tài trợ để nhóm hoàn thiện các sàn phẩm nghiên cứu cũng như phát triển các kết quà mới liên quan đến hướng mô hình hóa và kiểm chứng hệ thống phần mềm
22
Trang 25P H A N VI P H Ụ L Ụ C (m inh chícng các sàn p h á m nêu ở Phán III)
1 Bài báo: H ong A nh Le, Shin N akajim a, N inh Thuan Truong F orm al analysis o f imprecise system requirem ents w ith E vent-B , SpringerPlus (2016) 5:1000.
2 B ài báo: T hi-H uong Dao, H ong-A nh Le, N inh-T huan Truong, A n approach to analyzing execution p reserva tio n in Ja v a p ro g ra m refactoring, International C onference on Context-
A w are System s and A pplications (IC C A SA ) 2006 Springer
3 Q uyết định cap bang của N C S Lê H ong A nh
4 Q uyết định vể đổi tên để tài và G VH D của N C S Đào Thị H ư ờng
5 Trang bìa luận văn thạc s ĩ N guyên X uân Trưcmg
6 Trang bìa luận văn thạc s ĩ P hạm N h ư Uyến
7 Trang bìa luận văn thạc s ĩ B ùi Thị Thúy
8 Trang bìa khóa luận tốt nghiệp của sinh viên N guyên H oàng A nh
9 Trang bìa khóa luận tốt nghiệp của sinh viên N guyên A nh Tuấn
10 Thuyết m inh để cư ơ ng đề tài
Trang 26DOI 10.1186/S40064-016 -26 5 7 -8 0 SpringerPlus
Formal analysis of imprecise system
Hong Anh L e 1*, Shin Nakajima2 and Ninh Thuan Truong3
v a g u e o r fu z z y te rm s, h e n c e fo rm a l fra m e w o rk s fo r m o d e lin g a n d v e rify in g such
re q u ire m e n ts are d e sira b le T he Fuzzy If-T h e n rules have b e e n used fo r im p re c is e
re q u ire m e n ts re p re s e n ta tio n , b u t v e rify in g th e ir fu n c tio n a l p ro p e rtie s still n e e ds
n e w m e th o d s In th is p a per, w e p ro p o s e a re fin e m e n t-b a s e d m o d e lin g a p p ro a c h fo r
s p e c ific a tio n a n d v e rific a tio n o f su ch re q u ire m e n ts First, w e in tro d u c e a re p re s e n ta tio n
o f im p re c is e re q u ire m e n ts in th e set th e o ry T h e n w e m a ke use o f Event-B re fin e m e n t
p ro v id in g a set o f tra n s la tio n rules fro m Fuzzy If-T h e n rules to Event-B n o ta tio n s A fte r
th a t, w e s h o w h o w to v e rify b o th sa fe ty and e v e n tu a lity p ro p e rtie s w ith R O D IN /E vent-
B Finally, w e illu s tra te th e p ro p o s e d m e th o d o n th e e x a m p le o f C ra ne C o n tro lle r.
Keyw o rd s: Im p re cise re q u ire m e n ts , Event-B, A nalysis
Introduction
R equirem ent engineering is a process of specifying, analyzing, and checking provided services and constraints of a system It is one of the m ost significant steps in software developm ent System requirem ents aim to take into account various dem ands of all the stakeholders, w here detecting and resolving conflicts is im portant The requirem ents som etim es include im precise descriptions w here am biguous, vague or fuzzy term s, such
as "very good" “far" or “less im p o rta n t”, are used This is because the stakeholders do not care m uch abo u t describing the system precisely or im precise requirem ents are more suitable in som e contexts In softw are developm ent, im precision in the requirem ent specification also causes m any problem s Formal specification m ethodologies, however, require the requirem ents to be described precisely Hence, there is a gap betw een im pre cise requirem ents and form al specification m ethods Therefore, fram ew orks which are formal enough to be used for analyzing as well as representing im precise requirem ents are desirable.
The m ethod w ith Fuzzy sets, proposed by Zadeh (1965), is one such form al fram e work, w here the Fuzzy If-T h en rules are som etim es em ployed to represent im precise system icq airem en is Inform al statem en ts expressed in natural languages such ai> "very far” or “too close” can be naturally captured using Fuzzy sets, which enables further
Springer Open © 2016 The Author(s) This article is distribu ted under the terms o f th e Creative Comm ons A ttrib u tio n 4.0 International License (hưpy/creatỉvecom m ons.org/llcenses/by/4.0/), w hich permits unrestricted use, distribution, and reproduction in any medium,
provided you give appropriate credit to th e original author(s) and th e source, provide a link to the Creative Comm ons license, and indicate if changes were made.
Trang 27analysis on the specifications The analysis involves continuous num erical reasoning
since the Fuzzy set is essentially based on the idea of representing the fuzziness degree
in term s of Real num bers betw een 0 and 1.
In general, system requirem ents include functional specifications, whose various
p roperties are checked at this sam e level of abstraction before starting further develop
m ent steps The requirem ents w ritten in term s of Fuzzy If-T hen rules can be an ade
quate representation, b u t require fu rth er techniques for checking properties formally,
which may elucidate perspectives different from those for detecting and resolving con
flicts of the requirem ents The Fuzzy If-T hen rules have been translated into o ther for
mal fram ew orks such as P etriN et (Intrigila et al 2005; Yang et al 2003) or z notation
(Chris and Paul 2003) U nfortunately, these existing approaches have disadvantage in
that they do n o t provide adequate verification m ethods for tem poral properties such as
safety or eventuality The existing approaches are discussed in m ore detail in “Related
work" section.
This paper em ploys Event-B and its refinem ent-based m odeling approach for specifi
cation and verification o f b oth safety and eventuality properties w hen the requirem ents
are represented by the Fuzzy If-T hen rules In particular, we apply th e proof m ethods
proposed in H oang and Abrial (2011) to verify the eventuality properties O ur prior
work (Le et ai 2014) initially proposed to use Event-B to form alize im precise req u ire
m ent It provided the basic result of checking safety property of im precise requirem ent
using Event-B This p aper reports the concrete results of form al checking of both safety
and eventuality properties for im precise system requứ em ents The contributions of the
paper are as follows: (1) providing a presentation o f fuzzy term s in classical set theory,
(2) providing a set of translation rules from Fuzzy I f-'lh e n rules to Event-B language
co n stru cts, w hich makes use of the refinem ent m odeling approach th a t Event-B sup
ports, and (3) dem onstrating how b oth safety and eventuality properties of a set of the
Fuzzy If-T h en rules can be verified using RODIN (Abrial et al 2010), a supporting tool
for Event-B.
The rest o f the paper is stru ctu red as follows Section “B ackgrounds” provides some
background of fuzzy sets, fuzzy If-T hen rules, and Event-B In “Im precise requirem ents
analysis w ith Event-B” section, we give a representation of fuzzy sets in classical sets
Using such representation, we first introduce a set of translation rules to m odel fuzzy I f-
Then rules by Event-B Then, we propose a refinem ent-based m odeling m ethod to spec
ify an d check eventuality properties In fourth section presents the exam ple of a crane
controller to illustrate the proposed m ethod in detail We sum m arize "Related w ork” in
fifth section "C onclusions'’ are given in final section.
Backgrounds
In th is section, we briefly introduce an overview of fuzzy logics (in the broad sense)
that m ainly serve for lies'.I i’ning and analyzing imprecisene.-vs 'X'c also sum m arize basic
know ledge of Event-B.
Trang 28Fuzzy sets and fuzzy If-T h e n rules
In o rder to deal w ith systems which are too com plex or too ill-defined to adm it of pre
cise descriptions, Z adeh (1965) introduces a logical fram ew ork w hich is not traditional
tw o-valued, b u t m ulti-valued logics w hose values are interpreted by Fuzzy sets.
Fuzzy sets are actually functions that m ap a value th a t m ight be a m em ber of a set to a num ber betw een zero and one indicating its actual degree of m em bership A fuzzy set F
defined on a universal set X is a set, each elem ent of w hich is a pair of values (X, ụ fix )),
w h ere X e X and f j f (x) : X —»• [0 ,1 ].
Fuzzy sets use so-cailed linguistic variables in addition to num erical variables The val
ues of a linguistic variable are labels of fuzzy subsets of X w hich have the form of phrases
or sentences in a natural or artificial language For example, height is a linguistic variable
labeled X, and the values of X m ight be “tall” “n ot tall”, “very tall” or “tall b u t not very tall”
Generally, a value of a linguistic variable is a concatenation of atom ic term s that can be
divided into m ain categories show n below:
♦ Prim ary terms: w hich are labels of specified fuzzy subsets of the universal set (for
instance: tall in the above example).
♦ Hedges: such as “very”, "slightly’’, etc.
♦ N egation and connectives symbols (i.e not, and, or).
A fuzzy hedge is an o perator w hich transform s the fuzzy set F(x) into the fuzzy set F{hx)
The hedges are the functions that generate a larger set of values for linguistic variables
For instance, using hedge very along w ith negation not applied to the term tall, we can
have very tall or not very tall.
A m ore general concept, w hich plays an im p o rta n t role in the fuzzy sets approach to analyzing im precise description, is Fuzzy If-T hen rules They are m ainly used for speci
fying behavior of the system It has a form: IF X is A TH EN y is B where A and B are
fuzzy sets; X and y are linguistic variables Here is an example: IF the weather is bad
TH EN th e speed is slow.
Event-B a n d Rodin
Event-B
Event-B Abrial (2010) is a form al m eth o d for system -level m odeling and analysis Key
features of Event-B are the use of set theory as a m odeling notation, the use of refine
m ent to represent system s at different abstraction levels and the use of m athem atical
proofs to verify consistency betw een refinem ent levels A basic stru ctu re of an Event-B
m odel consists of M A C H IN E and CONTEXT.
An Event B C O N TEX T describes a static p art w here all the relevant properties and hypotheses are defined A C O N TEX T consists of carrier sets, constants, axioms C arrier
sets, denoted by s, are renrpsented by their nam es, and are non-em pty Different carrier
sets are com pletely independent The constants c are defined by m eans of a num ber of
axiom s P{s, c) also depending on the carrier sets s.
A M A C H IN E is defined by a set of clauses A m achine is com posed of variables, invar
iants, th e o re m s and events Variables V are representing states of the model Invariants
l (v) y ie ld t h e la w s t h a t s t a t e v a r ia b le s V m u s t a lw a y s s a tisfy T h e s e la w s are f o r m a liz e d
Trang 29by m eans of predicates expressed w ithin the language of First O rder Predicate Calculus
with Equality extended by Set Theory Events £(v) present transitions betw een states
Each event has the form evt = any X w h ere G{x, v) th e n A(x, V, v') end, where X are local
variables of the event, G(x, v) is a guard condition and A(x, V, v') is an action An event is
enabled w hen its guard condition is satisfied The event action consists of one or m ore
assignm ents We have three kinds of assignm ents for expressing the actions associated
w ith an ev en t: (1) a d e te rm in is tic m u ltip le a ss ig n m e n t (V : = £ ( i , v)), (2) an em p ty assig n
m e n t (skip), o r (3) a non-determ inistic m u ltip le assignm ent (v : IP (t, V, x')).
To deal with com plexity in m odeling systems, Event-B provides a refinem ent m echa
nism th a t allows us to build the system gradually by adding m ore details to get a m ore
precise model A concrete Event-B m achine can refine at m ost one abstract m achine A
refined m achine usually has m ore variables than its abstraction as we have new variables
to represent m ore details of the model In superposition refinem ent, the abstract vari
ables are retained in th e concrete m achine, w ith possibly som e additional variables In
data refinem ent, the abstract variables V are replaced by concrete ones w Subsequently,
th e c o n n e c ti o n s b e tw e e n th e m a re r e p r e s e n te d b y th e r e la tio n s h ip b e tw e e n V a n d w , i.e
gluing invariants J(v, w).
In order to check if a m achine satisfies a collection of specified properties, Event-B
defines p ro o f obligations (POs) which we m ust discharge Some of the p roof obligations
relevant to discussion here are invariant preservation (INV), convergence (VAR), dead-
lock-freeness (DLF) INV PO m eans th at we m ust prove that invariants hold after event's
execution The proof obligation is as follows: /(v ), G(x, v), A (x, V, v') h- I(v'), w here v' is
value of variable V after executing the event VAR PO m eans th at events ca n n o t take
control forever To prove this, we use a variant V which is m apped to a finite set, then
this variant is proved to be decreased in each convergent event It is described as follows.
I(v ),G (x , v),A {x , V, v') h V {v') c V(v) D eadlock-freeness for a m achine ensures
th a t there are always som e enabled events during its execution A ssum e that a m achine
contains a set o f n even ts e;( 1 < i < n) o f the follow ing form: evt = any X where G(x, V)
then A( x, V, v') end The proof obligation rule for deadlock-freeness is as follows:
Hv ) H V ? = i P * « - G ( * i , v ) )
Event-B provides ways to express safety properties directly by using the invariants
W hile safety p roperties guarantee th a t bad things do n ot happen, an eventuality pro p
erty is one of liveness p ro p ertie s assuring th at th e system will reach a defined good state
Event-B does not su p p o rt to specify liveness properties directly b u t we can follow the
approach (Hoang and A brial 2011) to verify properties such as existence (DO/3), progress
(□(.Pi = > ỘP 2 )), or persistence (OOP), w here p is any first order logic formula, 0 and
□ are stan d ard operators of Linear Tem poral Logic (LTL), under weak-fairness assum p
tion We will discuss here in detail existence property Assume th at a given m achine M
w ith n events e,( 1 < i < n), e, = any X where G{x, v) then A (x, V, 1/ ) end They claim that
if M is convergent in -■p and M is deadlock-free ir —P, then no /1is-satisfied in M This
approach uses the variant clause to prove convergence of a m achine and we introduce an
auxiliary refined m achine at the last refinem ent step to apply this proof m ethod.
Trang 30Rodin, an extension of the Eclipse platform , allows to create Event-B models w ith an
editor It also autom atically generates the proof obligations of a m odel that can be dis
charged autom atically or interactively The architecture of die tool is illustrated in Fig 1
Event'B ƯI provides users interfaces to edit Event-B models Event-B Core has th ree
com ponents: static checker (checking the syntax of Event-B models), the proof obliga
tion generator (producing sim plified p roof obligations that make them easier to dis
charge autom atically), and the p roof obligation m anager (m anging p roof obligations and
the associated proofs) The Rodin Core consists of two com ponents: the Rodin reposi
tory (m anaging persistence of data elem ents) and the Rodin builder (scheduling jobs
depending on changes m ade to files in the Rodin repository).
Imprecise requirements analysis with Event-B
First, this section presents an approach to specifying im precise requirem ents in classi
cal set theory This representation is the basis of its form alization in Event-B After that,
we introduce a new refinem ent-based approach to analyzing eventuality properties of
im precise system requirem ents.
Presentation o f im precise requirem ents in classical sets
As stated above, fuzzy sets can be used as the foundation for representing im precise
requirem ents The behavior of such requirem ents can be described by Fuzzy If-T hen
rules We will show that im precise requirem ents, which are described by Fuzzy If-T hen
rules, can be represented in classical sets.
First, the general form FR, also called well-defined form, of an im precise requirem ent
can be represented as:
IF * is (5 Yi TH EN m is YPi
w here X and y are linguistic variables, Yi € Y and p t 6 p are fuzzy values, and s and Y are
fuzzy hedges which are applied on the fuzzy sets Y and p respectively.
D e fin itio n 1 (Imprecise requirem ent) An im precise requirem ent is defined as a 6-tuple
FR = (x, m, s, y, Yi, Pi), where X and m are linguistic variables, 5 and Y are fuzzy hedges,
and Yi and Piare fuzzy values.
Event-B UI Event-B Core
K u d in Core b v e n t -B Library
Eclipse platform
Fig 1 R o d in t o o l a r c h ite c tu r e
Trang 31Recall that, in classical set theory, sets can be com bined in a num ber of different ways
to produce another set such as Union, Intersection, Difference, or C artesian product
Below we recall some definitions related to C artesian p roduct of m ultiple sets is also
defined using the concept of n-tuple.
D efin itio n 2 (ordered n-tuple) An ordered n-tuple is a set of n objects with an order
associated w ith them If n objects are represented by X\, XT, x„, then we write the
o r d e r e d n - t u p le a s (X\,X2, ,x„).
D efin itio n 3 (Cartesian product) Let A1, ,A„ be n sets Then the set of all ordered
n-tuples ( * ! , ,x„) , w here Xi 6 A i, Vi, 1 < i < n, is called the C artesian p roduct of
A1, , A n, and is d en oted by A \ X ■ ■ X A„.
P ro p o s itio n 1 A set o f well-defined, imprecise requirem ents can be specified by classical
P roof Suppose that, im precise requirem ents of a system are specified by FR = (Fi?,),
FRi = (%;, 1 < i < n Clearly that, Xi.nti are considered as eleưients of
variables sets, Yi and Pi belong to fuzzy sets W e consider if SịYi can be specified by a
classical set in which <5, is a hedge and Yi is a value in fuzzy set Y As m entioned in “Fuzzy
sets and fuzzy If-T hen rules” section, Si transform s fuzzy set Y to another fuzzy set
M oreover, according to the Definition 3, SiYi is a m em bership of the C artesian p roduct
of two sets ẵ X Y Similarly w ith the case of specifying YiPi- Consequently, every elem ent
M o d e lin g im precise requirem ents
We will explain how im precise requirem ents described by Fuzzy If-T h en rules are m o d
eled based on their new representation Suppose that, a system is specified by a set of
requirem ents F R ,:
if Xị is <5, Y, th e n m; is YiPi end
A ccording to the P roposition 1, the above requirem ents can be represented by classi
cal sets Next, we take into account th e sem antic of Fuzzy If-T hen rules In fact, these
rules can be in terpreted in various ways In this paper, we define the sem antic of a rule
as follows:
'ixị.yi o (Xi = <5, Yi) = > (yi = Yi !-»• Pi)
w here Xi and m, are linguistic variables, Yi and 5; are hedges, and Yj and Pi are fuzzy sets
It is inform ally interp reted as if Xi is equal to pair (Si, Yi), th e n y, is equal to pair (Yi, Pi).
Since Event'B is a language based on the classical set theory, wtd propose an appioai_li
to m odeling the system w ith Event-B m ethod A system consisting a collection of
requirem ents FRi, 1 < i < n, is m odeled by an Event-B m odel FR b = (FR_C,FR_M),
w here FR_C and FR_M are Event-B context and m achine respectively We propose below
translation rules to m ap im precise requirem ents to Event-B's elem ents The im p o rtan t
principle of the translation process is that we can preserve the stru ctu re and represent
Trang 32all im precise requirem ents using the Event-B notation M oreover, safety properties m ust
be preserved by actions of th e system.
Translation rules
• Rule 1: All hedges <5, and Yu fuzzy values Y, and p t in the set of requirem ents are tran s
lated to three sets H, Y, and p respectively They are stated in the SETS clause of FR_C.
• Rule 2: Linguistic variables Xj and m, in each FRt are mapped to variables Xị and m, of the Event-B m achine FR_M.
• Rule 3: Each variable Xj is described as a m em ber of a C artesian product of two sets
H X Y; mi is described as a m em ber of a Cartesian product of two sets H X p (Prop
osition 1).
• Rule 4: Each req u irem en t FR, is modeled by an event ev, in Event-B machine FR_M
If-part of the requirem ent becom es guard of the event, th e n -p a rt is translated to event’s action.
• Rule 5: Safety properties of the system are m odeled as invariants I of the machine
FR_M.
Translation correctness
Let FRi = {xi,w ii, 8 i,y i,Y i,P i} be a Fuzzy If-T h en rule According to Rule 1, 2,
3 and 4, it is translated to an event w h en Xi = Si I—>• Yi th e n m, := Xi I—>- Pi, i.e.,
Xi = Si (-> Yi = > m ị := Yi Pi- As a consequence, the translation rules preserve the
sem antic o f a Fuzzy If-T h en rule.
N ote that, these are only partial transform ation rules, we need to give m ore additional parts to ob tain the com pleted Event-B specification (Fig 2).
P ro p o s itio n 2 W ith the m odeling proposed in translation rules, the safety properties
are preserved by all actions o f imprecise system requirements.
'
M A C H IN E FR _M SEES F R - C
Trang 33Proof Suppose that, a collection of im precise requirem ents FR = {FK,}, 1 < i < n, are
translated to n corresponding events evt, Safety properties of the system are specified
in the invariant X We have to prove that safety constraints are preserved through all
req uirem ents by showing th at it rem ains tru e before and after firing (executing) each
event This is obviously achieved through proof obligations of the Event-B m achines
which is used to preserve their invariants.
W ithout loss of generality, we assum e th a t the im precise requirem ents and constraints
c o n ta in o n e variable V, h e n c e w e n e e d to prove:
l { v ) A e v t i ( v , v ) h X ( v ')
This predicate allows us to ensure the safety properties after executing th e events in
model, w hich is exactly the form o f INV p roof obligation generated from Event-B
m achine Therefore, th e safety p roperties stated in requirem ents are show n preserved if
M o d e lin g e v e n tu a lity p ro perties w ith refinem ent
H oang and Abrial (2011) in troduced reasoning techniques to prove classes of liveness
p roperties such as existence, progress, persistence They claims that with a state formula
R w hich is a first-order logic form ula and an Event-B m achine M that is convergent and
deadlock-free in R then —■/? will always eventually (DO->R) hold.
In order to reason about eventuality properties on a set of fuzzy If-T h en rules, we initially p resented the m ethod (Le et al 2015) following the techniques introduced in
H oang an d Abrial (2011) W e first m ap fuzzy values to N atural num bers Sincc fuzzy sets
can be rep resen ted by classical sets consisting of discrete values ("Presentation of im pre
cise requ irem en ts in classical sets” section), th e m apping on N atural num bers instead of
a continuous range [0 1] is acceptable Therefore, we give a new definition of fuzzy sets
as follows
D e fin itio n 4 (Fuzzy set) A fuzzy set is a pair (U, fi), where Li is a set and fx is the m em
bership degree function, can be represented as a pair {p , Us), where p is a crisp set, ỊXS is a
total fu n ctio n such th at ụ,s : p - » N
Similarly, we also use a total function ụ.H : / / —*• N as m apping values of fuzzy hedges
Recall th a t, a system is specified by a collection of requirem ents FR,:
if Xi is 8jYi then m, is SjPi
W e propose a refinem ent-based approach to m odeling with an in troduction of addi
tional translation rules to extend the context and to refine the m achine of the abstract
m odel as follows
• Rule 6: Fuzzy values of each elem ent in p, Y and hedges s are translated to total func
tions degp : p —> ■ N, degY : y —> N, and degH : H —» N respectively.
• Rule 7: Adds a variant m apping to linguistic variable Xi that appears in eventuality
property expression Q(x,).
Trang 34♦ Rule 8: Refines each event representing one Fuzzy If-Then rule by two events: a con
vergent and an ordinary one.
♦ Rule 9: Adds a clause —IQ{x,) to the guards of each convergent event, and a clause
Q (xi) to the ordinary one.
A partial Event-B specification for these rules is depicted in Fig 3.
Before showing th at if a collection of requirem ents satisfy a eventuality p roperty Q(x),
we introduce definitions relating to som e properties of fuzzy rules.
D efin itio n 5 (Convergence) A set of fuzzy rules are convergent from a state C(*) if each
rule decreases value of variable X It is form ally defined as: FRi, C (x) b x ' < X, where x ' is
value after executing rule FRt.
D efin itio n 6 (Deadlock-freeness) A set of fuzzy rules are deadlock-free in a state R(x) if IF
clause of at least one rule is satisfied It is formally defined as R(x) ==> ViLi (3x, Jt; = SYi).
P ro p o s itio n 3 I f a collection o f Fuzzy If-T hen rules [FR] are convergent a n d deadlock-
fr e e fr o m a first-o rd e r logic s ta te fo r m u la R(x), where X is a linguistic variable, then the
state property —‘R (x) will always eventually holds Formally, we have {FR} h
CONTEXT F R C 1 EXTENDS FR_CD
CONSTANTS
degp
ic g y (leys
in v 4 : y € N
VARIANT
ire
EVENTS Event e v i - C E —
S t a t u s convergent
e x t e n d s cvti
When
g r d l : rt = ỗ, t—* Y , grd.2 : -» Q (xt )
Trang 35Proof Suppose that, a set of fuzzy If-T hen rules FR = jFRj), 1 < i < n, is first form al
ized bv an ab stract m achine M _ 0, then is refined by an o th er m achine A i_l containing a
set of convergent events evtf
Applying Rule 8, each fuzzy rule is represented by a convergent event evti with guard
G(x) Following Rule 9, a new clause -^R(x) is added to the guard condition of each co n
vergent event.
According to the translation Rule 6 and 7, approxim ation of a linguistic variable
X is a natural nu m b er and is m apped to an variant V(x) F urtherm ore, each fuzzy rule
decreases d ie fuzzy variable X (Definition 5), i.e V (x ') < V(x) Hence, we have
l , G ( x ) , - R ( x ) \~ V ( x ) < V (x).
This predicate is th e form of VAR proof obligation generated from Event-B m achine to
prove th a t all events of the m achine A i_l are convergent (*).
We already state th a t fuzzy rules are deadlock free in R(x), according to Rule 8, Rule 9
An exam ple: Container Crane Control
In this section, first WP introduce an exam ple of C ontainer C rane Control (Fuzzytech
2012), th e n follow th e proposed m ethod in "Im precise requirem ents analysis with Event-
B” section to m odel and verify the safety and eventualities properties.
Exam ple description
C ontainer cranes are used to load and unload containers on a ship in m ost harbors They
pick up single containers w ith cables th a t are m ounted on the crane head (Fig 4).
The crane head moves on a horizontal track from a startin g position The speed of the
crane head is controlled by a m otor pow er with a speed level We start the m otor w ith
a fast speed If the crane head is still far away from th e container, we adjust the m otor
pow er to a m edium speed If the crane head is in a distance nearer to the target, we
reduce th e speed to slow W hen the container is close to the target position, the speed