r/the time point is jusK before \the beginning ofthe >.
Trang 1Cheeking tim in g con strain ts in software
sy s te m using A O P
D o T u a n A n h
Faculty of Information Technology
College of Technology Vietnam National University, Hanoi
Trang 2r a b l e o f C o n t e n t s
1.1 M o t i v a t i o n 1
1 2 O b j e c t i v e s 2
1 3 C o n t r i b u t i o n s 3
1.4 O u t l i n e o f t h e t h e s i s 3
B a c k g r o u n d 5 2.1 U M L a n d U M L T i m i n g D i a g r a m 5
2 1 1 O v e r v i e w o f U M L 5
2 1 2 U M L T i m i n g D i a g r a m 6
2 2 A s p e c t O r i e n t e d P r o g r a m m i n g a n d A s p e c t ) 8
2 2 1 A s p e c t O r i e n t e d P r o g r a m m i n g 8
2 2 1 1 T e r m i n o l o g y 9
2 2 1 2 I m p l e m e n t a t i o n 10
2 2 1 3 S o m e l i m i t a t i o n s o f O O P 11
2 2 1 4 B e n e f i t s o f A O P 14
2 / 2 2 A s p e c t , ) 16
2 2 3 R e m a r k s 17
2 3 S u m m a r y 18
C h e c k i n g t h e c o n f o r m a n c e o f t i m i n g c o n s t r a i n t s 1 9 3.1 G e n e r a t i n g v e r i f i c a t i o n a s p e c t s t o c h e c k t h e c o n f o r m a n c e 19
3 2 A c h i e v i n g t i m e f r o m s p e c i f i c a t i o n a n d i m p l e m e n t a t i o n 21
3 2 1 T h e o r d e r o f e v e n t s 21
3 2 1 1 O r d e r o f e v e n t s in a a p p l i c a t i o n 21
3 2 1 2 O r d e r o f e v e n t s in s e v e r a l a p p l i c a t i o n s 22
3 2 2 R e a d i n g t i m i n g c o n s t r a i n t in s p e c i f i c a t i o n .23
3 2 3 C a l c u l a t i n g e x e c u t i o n t i m e f r o m i m p l e m e n t a t i o n 25
Trang 33 2 ‘5.1 T h e b e f o r e a d v i c e 25
3 2 3 2 T h e a f t e r a d v i c e 2(5 3 3 C a s e s t u d i e s 26
3.3.1 A u t o m a t e d T e l l e r M a c h i n e for b a n k i n g p u r p o s e 26
3 3 1 1 O b j e c t i v e o f t h i s c a s e s t u d y 2(5 3 3 1 2 T i m i n g c o n s t r a i n t s in W i t h d r a w a l s c e n a r i o 2 7 3 3 2 T a k i n g o f f p r o c e s s o f a n a i r p l a n e 29
3 3 2 1 O b j e c t i v e o f t h i s c a s e s t u d y 29
3 3 2 2 T i m i n g c o n s t r a i n t s o f t a k i n g o f f p r o c e s s 29
3 4 S u m m a r y .31
4 I m p l e m e n t a t i o n 3 2 4.1 T h e a r c h i t e c t u r e o f t h e s u p p o r t t o o l 32
4 2 O b s t a c l e s in t h e i m p l e m e n t a t i o n o f s u p p o r t t o o l 3 6 4.2 1 D i f f i c u l t i e s in r e a d i n g t i m i n g c o n s t r a i n t f r o m t h e T i m i n g D i a g r a m 3 6 4 2 2 A s p e c t ) c o d e for c h e c k i n g t i m i n g c o n s t r a i n t s 3 7 4 2 3 S o m e r e s u l t s a n d r e m a r k s 38
1.3 S u m m a r y 3 9 5 R e l a t e d W o r k 41 5.1 B u i l d i n g a set o f t o o l a n d m e t h o d s for c h e c k i n g 41
5 /2 B u i l d i n g f o r m a l f a c i l i t i e s f o r c h e c k i n g 42
5 3 C h e c k i n g a n d e v a l u a t i n g in s o m e r e a l - t i m e s y s t e m s 13
6 C o n c l u s i o n a n d p e r s p e c t i v e 4 4 6.1 C o n c l u s i o n 4 4 6 2 F u r t h e r r e s e a r c h 45
Trang 4L i s t o f F i g u r e s
2.1 U M L 2.0 D i a g r a m s 6
2 2 U M L J o n c i s e T i m i n g D i a g r a m 7
2 3 U M L l o b u s t r i m i n g D i a g r a m 8
2 4 A n e x u n p l c o f c o d e t a n g l i n g 12
2 5 A n e x a m p l e o f c o d e s c a t t e r i n g 13
3.1 U M L S e q u e n c e T i m i n g D i a g r a m 20
3 2 T e m p l a t e f o r t h e V e r i f i c a t i o n A s p e c t s 21
3 3 T h e e v e n t E i is s e p a r a t e d f r o m t h e e v e n t E2 22
3 4 T h e e v e n t E i is c o v e r e d b y t h e e v e n t E-2 22
3 5 T h e e v e n t E i is o v e r l a p p e d t o t h e e v e n t E*2 22
3 6 O r d e r r e l a t i o n 23
3 7 T h e r e l a t i o n o v e r l a p 1 ' b e f o r e ’’ 23
3 8 T i m i n g c o n s t r a i n t s a r e r e p r e s e n t e d in a t i m i n g d i a g r a m 24
3 9 U s e r is u s i n g A T M .2 7 3 1 0 U M L S e q u e n c e D i a g r a m o f t h e W i t h d r a w a l s c e n a r i o 28
3 1 1 U M L T i m i n g D i a g r a m o f t h e W i t h d r a w a l s c e n a r i o 28
3 1 2 A n a i r p l a n e is t a k i n g o f f 2 9 3 1 3 T i m i n g D i a g r a m o f a i r p l a n e e a s e s t u d y 3 0 1.1 T h e g e n e r a l c h e c k i n g p r o c e s s 3 3 4 2 T h e t i m e s t a m p s o f t w o p a r t s 34
4 3 T h e a r c h i t e c t u r e o f p r o p o s a l t o o l 34
4 4 A p i e c e o f c o d e t o r e a d t h e t i m i n g c o n s t r a i n t s i n f o r m a t i o n 38
4 5 G e n e r a t e d V e r i f i c a t i o n A s p e c t s 3 9
Trang 15o f m e t h o d s , fo r e x a m p l e , o r just b e f o r e m e t h o d c a lls T h e t y p e s o f l o c a t i o n s w h ere'
h o o k s c a r b e i n t r o d u c e d d e p e n d o n t h e w e a v e r N o t e t h a t h o o k s arc* n o t n e c e s s a r i l y
l o c a t i o n s w h e r e a s p e c t s a p p l y b u t l o c a t i o n s w h e r e a s p e c t s p o t e n t i a l l y a p p l y
A m o n g a ll t h e h o o k s i n t r o d u c e d b y a r u n - t i m e w e a v e r , o n l y a s e l e c t e d s u b s e t will r e d i r e c t t h e e x e c u t i o n H ow t o w a r d a n a s p e c t T h e a s p e c t p r o g r a m m e r d e c i d e s
Trang 19Cleaner "'esonsib Hit,/es of the individual module: A G P a l l o w s a m o d u l e t o t a k e
r e s p o n s i b i l i t / cd v for i t s c o r e c o n c c r n ; a m o d u l e is n o l o n g e r liable' for o t h e r c r o s s c u t
d e s i g n d ec is io n s for fut u r e r e q u i r e m e n t s b e c a u s e it is p o s s i b l e t o i m p l e m e n t t h o s e a,s
Trang 23b e t w / e e n s p e c i f i c a t i o n a n d i m p l e m e n t a t i o n
T h e m a i n s t e p s f u r g e n e r a t i n g a s p e c t a r e s u m m a r i z e d a s follow’s
• T i m i n g c o n s t r a i n t s a r e e x p r e s s e d b y U M L T i m i n g D i a g r a m s e x p o r t e d t o X M L
f o r m a t
Trang 253 2 A c l i e v i n g t i e f r o s p e c i f i c a t i o n a n d i p l m n a t o 21
im p o r t o rg a s p e c tj.la n g J o in P o in t;
va ria b le sVariables arc declared here;
a fte r( ) : (e x e c u tio n (* * * ( ) ) ) & & !w ith in ( AspeetName) {
- Get ¿2; / / the current system time:
- Get method name from X M L tile(taskl, task2, );
- Get lower and upper bound on tim ing from X M L file ( r j , r2 );
- t — t2 - t\;//C a lc u la te the execution tim e of the method;
Trang 27r/the time point is jusK before \the beginning ofthe >
Trang 29I f y o u t h r o w a n e x c e p t i o n in t h e b e f o r e a d v i c e , t h e c a p t u r e d o p e r a t i o n w ill n o t
e x e c u t e F o r e x a m p l e , if t h e a u t h e n t i c a t i o n lo g i c in t h e p r e v i o u s a d v i c e t h r o w s
Trang 32Check_BalanceAcount( ) {bi b2)s
Gtve_M oney( ) {g1 Return( ) {r1,r2}s
Check BalanceATM( ) {a1 ,a2}s
Trang 340» 5 10 IS DO 25 30
F i g u r e 3 1 3 : T i m i n g D i a g r a m o f a i r p l a n e c a s e s t u d y
F i r s t l y , w e c h a r g e t h e fu e l i n t o t h e a i r p l a n e in 5 s e c o n d s A f t e r fu e l is c h a r g e d fully, w e s t a r t o t h e r c o m p o n e n t s T h e e n g i n e s t a r t s a t 5 t h s e c o n d , a n d it s t a r t s in
Trang 35(3) (4) (5)
Trang 38The timing constraints from the first schema
I
F i g u r e 4 3 : T h e a r c h i t e c t u r e o f p r o p o s a l t o o l
Trang 40I ’a r a d i g m h a s m a n y p a r t s a n d i n f o r m a t i o n s , b u t w e p a y a t t e n t i o n t o i m p o r t a n t
i n f o r m a t i o n s t o a c h i e v e e s s e n t i a l i n f o r m a t i o n fo r t h e t i m e o f e a c h t a s k A X M L (lie h a s t w o p a r t s : Models a n d Diagrams. I n t h e p a r t Models E a c h c o m p o n e n t ’s
p r o g r e s s is a L i f e l i n e H e r e is a L i f e l i n e o f F u e l :
< Model, c o m p o s ite~ "true" consider Default P ro p erties— ’'false ” d isp la y M odel Type - ” Lifeline ”
id " T n 5 q tfiF S -y y y R tjl ” m odelT ype- Life L ine ” n a m e - " Fuel" >
Time Unit a n d State Condition. S t a t e C o n d i t i o n r e p r e s e n t s a t a s k o f a n o b j e c t
H e r e is a s m a l l p i e c e in X M L file d e s c r i b i n g S t a t e C o n d i t i o n Fuel charging o f o b j e c t
< Model composite- "truey consider Default Properties = ”false” display ModelType —
State Condition ' i d = ”X 0 7 q e f i F S g y g R i a ” niudelType = ”StateCondition” name
= "Fuel charging">
Trang 41T h e n o d e Fuel charging is a c h i l d n o d e o f Fuel Time Unit r e p r e s e n t s a t i m e
p o i n t H e r e is a p i e c e d e s c r i b i n g a T i m e U n i t a t t i m e p o i n t 0 s e c o n d
< Model composite- "true" consider DefaultProperties- "false" display Model Type
”Time Unit" i d = ”M e P q e f i F S g y g R i h ’1 rnodt IType- Time Unit" name- ’0 V>
W e r e t r i e v e t w o I D o f a T i m e U n i t a n d a S t a t e C o n d i t i o n T h e r e l a t i o n b e t w e e n
T i m e U n i t a n d S t a t e C o n d i t i o n e x p r e s s e s in a Time Instance
< Model composite="true” considerDefaultProperties—”false” display ModelType=” Time In
stance” id-~ ”MePqefiFS-gygRii" modelType - "TimeInstance” name - ” ”>
Trang 42(1) for (i - 0: i CvalucArrLen; i f f ) {(2) Systein.out.printing* Name of task: ” 4 taskNamo2[i] 4
’’ tim e point: M -f timeUnit.Name2[i)):
(20) }
(21) for (i= 0 ; i <i3; i 4 4 ) {(22) System.out.println(taskName3[i] 4 ’’ duration: ” 4 tim eValfi] 4seconds” );
Trang 43a f t e r f j : (executionf* *.*( )))&& !wrt.hin\VAspect) {
m n—thisJoinP oint.getS ignature();// get method name;
t2=System currentTim eM illis();
lb=getM inC onstraint(m n);
ub=getM axC onstraint(nin);
e t= t2- t i; / / t h e execution tim e of the method tt+ = e t;//t h e execution tim e of sequential methods
Trang 46s ta g e o f system d e s ig n in g based on th e Use Case d ia g ra m a n d som e a d d itio n a l in fo r-
m a ttio n c o n c e rn in g th e b e h a v io r o f th e user o f fu tu re syste m T h e a im o f th is w o rk is
to p o i n t o u t t i e p o s s ib ility o f u s in g th e T im in g D ia g ra m to d e s c rib e u ser's b e h a v io r
at tth e fir s t s ta je o f t he s y s te m m o d e lin g : th e d o c u m e n ta tio n o f u s e r’s re q u ire m e n ts
A d d in g a new d a ta d e s c rib in g user's tim e a c t iv it y c h a r a c te r is tic expressed b y th e
U M 1L T im in g D ia g ra m , it is able to e s tim a te th e o v e rlo a d in g o f th e b o u n d a r y Use Casses, i t uses some e s tim a tio n s fo r th e w o rk lo a d a n d s y s te m w o rk lo a d T h e p re
s e n te d a rith m e tic o f T im in g D ia g ra m s in th e a rtic le o f u s in g o n ly one ty p e o f U M L
d ia g r a m s (Use Cases) is n o t enough fo r d e ta il c a lc u la tio n o f th e s y s te m e ffe c tiv e
n e s s H o w e v e r it is s im p le a n d th e e v a lu a tio n is m ade 0 11 th e e a rlie s t leve l o f s y s te m
d e v e lo p m e n t, n o t in r u n -tim e
5 2 B u i l d i n g f o r m a l f a c i l i t i e s f o r c h e c k i n g
D illlo n e t.a l ( D illo n et a l., 1993) p ro p o s e d a te c h n iq u e a n d a p r o to ty p e to o l w h ic h
d e s c r ib e te m p o ra l lo g ics o f a c o n c u rre n t system s b e h a v io rs b y u s in g g ra p h ic a l n o
t a t io n s I t s u p p o rts fo rm a l s p e c ific a tio n and v e rific a tio n o f c o n c u rre n t s o ftw a re
s y s ttc m s T h e o b je c tiv e o f th is a rtic le is to e nable s o ftw a re e n g in e e rs to s p e c ify and reasson a b o u t te m p o ra l p ro p e rtie s o f c o n c u rre n t system s m o re e a s ily b y p ro v id in g
th e irn w it h a lo g ic th a t has an in t u it iv e g ra p h ic a l re p re s e n ta tio n a n d w it h to o ls th a t
s u p > p o rt its use T h e researchers raise an e le v a to r syste m as a case s tu d y in e x p lo r in g
th e to o l H ow ever, th e g ra p h ic a l n o ta tio n s w h ic h are used t o te m p o r a l lo g ic s are
miKch c o m p lic a te d M o re o v e r, th e to o l does not s u p p o rt id e n t if y in g tim e c o n s tra in ts
a lo m g th e system
S A C R E S (B e n v e n is te e t a l., 1998) is a v e rific a tio n e n v iro n m e n t fo r e m b e d d e d
s y s tte m s th a t a llo w s user to g r a p h ic a lly sp e cify p ro p e rtie s as S y m b o lic T im in g D i
a g r a m s Designs are tr a n s la te d in to fin it e s ta te m a ch in e s w h ic h are o p tim iz e d and
th e m v e rifie d b y s y m b o lic m o d e l c h e c k in g T h e a d va n ta g e in th is w o rk is t h a t th e ir
a p p r o a c h can v e rify large , c o m p le x syste m s H ow ever th is w o r k fo cuse d o n ly 0 1 1 th e
d e s iig n levels b u t not a t th e im p le m e n ta tio n level as in o u r a p p ro a c h