Checking timing constraints in software system using AOP

  • Số trang: 51 |
  • Loại file: PDF |
  • Lượt xem: 73 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

Cheeking tim ing constraints in software sy stem using A O P Do Tuan Anh Faculty of Information Technology College of Technology Vietnam National University, Hanoi Supervised by Dr. Truong Ninh Thuan A t h e s i s s u b m i t t e d in f u l f i l l m e n t o f t h e r e q u i r e m e n t s f o r t h e d e g r e e o f M a s te r of In fo rm a tio n T ec h n o lo g y D e c e m b e r, 2009 DAI HOC QUÔC GIA HÀ NÔI VIÊN TRUNG TÂM THÔNG TIN THU i ' L o / 6 (n ...-...... - r a b l e o f C o n t e n t s In tro d u c tio n 1 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 tlin e o f th e th e sis 3 .............................................................................................................. B ackground 2.1 2.2 U M L an d U M L T im in g D iag ra 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 A s p e c t O rie n te d P r o g r a m m in g a n d A sp ect.) ........................................................ 8 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 Som e lim ita tio n s of O O P ............................................................ 11 2 . 2 .1 .4 B e n efits of 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 .2 .1 2 .3 5 S um m ary ....................................................................................................................................... C h e c k in g th e co n fo rm an ce o f tim in g c o n s tra in ts 19 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 ............................ 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 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 iv 18 ...........................................23 19 T A B L 3 .3 E O F 4 O N T E N T S v 3 . 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 C a s e s t u d i e s ................................................................................................................................... 26 3.3.1 26 3 .3 .2 3.4 C 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 .............................. 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 ........................ 27 T a k i n g o ff p r o c e s s o f a n a i r p l a n e .................................................................... 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 ff p r o c e s s S um m ary .......................... 29 .......................................................................................................................................31 Im p le m e n ta tio n 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 ................................................ 36 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 ­ agram 1.3 6 32 4.1 4.2.1 5 29 36 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 .......................................37 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 S um m ary ...................................................................................................................................... 39 R e la te d W ork 5.1 B u i l d i n g a set o f to 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 fo 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 ......................................... C o n c lu sio n a n d p e rs p e c tiv e 6.1 C o n c l u s i o n .......................................................................................................................................44 6 .2 F u r t h e r r e s e a r c h .......................................................................................................................... 45 41 13 44 L ist 2.1 o f F i g u r e s U M L 2.0 D i a g r a m s ................................................................................................................ 2 .2 U M L Jo n c ise T im in g D ia g ra m 2 .3 U M L lo b u st 6 ..................................................................................... 7 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 em p late fo 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 event E i is s e p a r a t e d f r o m t h e e v e n t E 2 ......................................................... 22 3 .4 T h e event E i is c o v e r e d b y t h e e v e n t E -2 3 .5 T h e event 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 re la tio n 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 3.10 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.11 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 ................................................................. 30 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 .......................................................................................... 33 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 rc h ite c t u re o f p r o p o s a l tool 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 ....................................................................................... 39 o v e r l a p 1 ' b e f o r e ’’ .................................................................................. ................................................................................................................27 vi ............................................................................. 34 22 23 C h a p t e r 1 I n t r o d u c t i o n 1.1 M o tiv atio n T h e d e v e lo p m e n t- o f soft w a n ' in r e c e n t y e a r s d e m a n d s s o f t w a r e s y s t e m s m o r e a n d m o r e r e l i a b l e a n d r o b u s t . B e s i d e t h e b e n e f it o f s o f t w a r e , t h e d a m a g e m a y b e s e v e r e if s o f t w a r e e r r o r s a p p e a r in t h e e x e c u t i o n . T h i s c h a l l e n g e r e q u i r e s s o f t w a r e d e v e l o p e r s h a v i n g efficient m e t h o d s t o v e r i f y s o f t w a r e s y s t e m s b e f o r e u s i n g t h e m in p r a c t i c e . S o f t w a r e v e r i f i c a t i o n is t h e p r o c e s s t o e n s u r e t h e c o r r e c t n e s s o f s o f t w a r e . T h e r e a r e m a n y p r o p e r t i e s t o b e v e r i f i e d lik e i n v a r i a n t , p r e / p o s t c o n d i t i o n , p r o t o c o l e x e c u ­ tio n , etc. B e sid e t h e v erific atio n o f o t h e r p r o p e r tie s of s o f tw a r e s y s t e m , t h e tim in g c o n s tr a in ts a r e i m p o r t a n t , p a r ti c u la r l y in e m b e d d e d s o f tw a r e a n d r e a l- tim e s o ftw a re lik e t h e a i r c r a f t flig h t c o n t r o l s y s t e m . T h e c h e c k i n g o f t i m i n g c o n s t r a i n t s in s o f t w a r e s y s t e m m o r e a n d m o r e i m p o r t a n t in s o f t w a r e e n g i n e e r i n g t o d a y . I n s o f t w a r e d e v e l o p m e n t , s p e c i f i c a t i o n is t h e p r o c e s s u s e d t o d e s c r i b e o v e r v i e w s t r u c t u r e a n d c o n s t r a i n t s of so ftw a re s y s te m s . T h i s p ro c e s s allo w s s ta k e h o ld e r s u n ­ d e r s t a n d i n g f u n c t i o n s , t a s k s a n d a c t i v i t ies o f t h e s y s t e m . B a s e d o n t h e s p e c i f i c a t i o n , p r o g r a m m e r s th e n im p lem e n t th e sy s te m u sin g p r o g ra m m in g la n g u ag es. T h e im ­ p l e m e n t a t i o n m a y lead to erro r. A c c o rd in g ly , w e n ee d s o m e a u t o m a t i c m e t h o d s to v e r if y if t h e i m p l e m e n t a t i o n s a t i s f y its s p e c i f i c a t i o n . T i m i n g c o n s t r a i n t s a r e o n e o f t h e m o s t i m p o r t a n t c h a r a c t e r i s t i c s in r e a l - t i m e , e m b e d d e d s y s t e m s . D e s i g n i n g s u c h s y s t e m s r e q u i r e s t i m i n g c o n s t r a i n t s in s p e c i f i c a ­ t i o n d o c u m e n t s , w h i c h a r e s o m e t i m e s r e f e r r e d t o a s c r i t i c a l s e c t i o n s . It is d e s i r a b l e to b e a u to m a tic a lly checked as p ro g ra m are b ein g d ev e lo p e d a n d la te r m a in ta in e d . S o m e s t a t i c an aly sis m e th o d s h av e b een p ro p o s e d (W e g e n e r & G ro c h tm a n n , 1 2 C h a p t e r 1. I n t r o d u c t i o n 1998) t o p red ict t h e w o rs t-c a s e a n d b e s t-e a s e e x e c u tio n tim e s o f a ta s k s c o d e o r to e s t i m a t e t h e t i m e e x e c u t i o n of a p i e c e o f s o u r c e c o d e . T h e s e m e t h o d s a n a l y z e s t h e e x e c u tio n p a th s a n d sim u latin g processor c h a racteristics w ith o u t ever e x e cu tin g th e p r o g r a m oi r e q u i r i n g t h e p r o g r a m s i n p u t . T h e l i m i t a t i o n o f s t a t i c a n a l y s i s is t h a t , t h i s m e t h o d is u n a b l e t o a p p l y t o l a r g e o r c o m p l e x s o f t w a r e s y s t e m s . It c a n w o r k o n l y w i t h s o m e s i m p l e p r e d e f i n e d l a n g u a g e s . In a d d itio n , th e h a r d w a r e co n fig u ratio n m u s t be d esc rib e d b efo re u sin g th e m e th o d . O u r a p p r o a c h is b a s e d o n t h e d y n a m i c c h e c k i n g m e t h o d in w h i c h p r o g r a m s a r e c h e c k e d a t r u n - t i m e a n d t h e t i m i n g a n a l y s i s is p e r f o r m e d w h e n t h e p r o g r a m is e x e c u te d ; th e u ser c a n b e in fo rm ed o f a n y p o te n tia l tim in g c o n s tra in t v io latio n s. T h i s p r o m is e s to so lv e t h e lim ita tio n s of s t a t i c a n a ly s is a p p r o a c h e s . T h e r e a r e s o m e o t h e r w a y s t o c h e c k t i m i n g c o n s t r a i n t s o f a s y s t e m , like u s i n g P e tri n ets (B erth o m ieu D ia z , 1 9 9 1 ) o r r e a l t i m e lo g ic ( A n d r e i e t a L 2 0 0 4 ) . T o d a y w i t h t h e a p p l y i n g U M L in s p e c i f i c a t i o n o f s o f t w a r e s y s t e m , e s p e c i a l l y t h e d e v e l o p ­ m e n t o f U M L 2 , t h e c h e c k i n g o f t i m i n g c o n s t r a i n t s is p e r f o r m e d in U M L d i a g r a m s . U M L is u s e d p a r t i c u l a r l v in s o f t w a r e s y s t e m s b u i l t u s i n g t h e o b j e c t - o r i e n t e d s t y l e . T h e U M L r e p r e s e n ts a co llectio n of th e b e s t e n g in e e rin g p r a c tic e s th a t h a v e p ro v e n s u c c e s s f u l in t h e m o d e l i n g o f l a r g e a n d c o m p l e x s y s t e m s . It is u s e d p a r t i c u l a r l y in s o f t w a r e s y s t e m s b u i l t u s i n g t h e o b j e c t - o r i e n t e d s ty l e . In a w o r k ( T r i n h et a l.. 2 0 0 9 b ) t h e c o m b i n a t i o n b e t w e e n 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 O P ) a n d t h e U M L s p e c i f i c a t i o n is c r e a t e d in o r d e r t o v e r i f y i n g t h e c o n f o r m i t y b e t w e e n t h e i m p l e m e n t a t i o n a n d its s p e c i f i c a t i o n . O b j e c t i n v a r i a n t s a n d p ro to c o l e x e c u tio n o f m e th o d s a re p ro p e rtie s of so ftw are p r o g ra m s w h ich h a v e b ee n c h e c k e d u s in g A O P technology. In t h i s t h e s i s w e p r o p o s e a n a p p r o a c h t o d y n a m i c c h e c k i n g a p r o p e r t y o f r e a l - t i m e s o f t w a r e s y s t e m s , t h e t i m i n g c o n s t r a i n t s . 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 is d i f f i c u l t for so m e so ftw are sy stem s. W e c a n n o t h o o k in to t h e s y s te m , e s p e c ia lly w ith larg e s y s t e m s . F r o m b e n e fit of A O P , w e p r o p o s e a n a p p r o a c h to a c h ie v e th is goal. 1.2 O b jectiv es T h i s t h e s i s a i m s a t c h e c k i n g t h e t i m i n g c o n s t r a i n t s of a s o f t w a r e s y s t e m in A O P , o r m o re d e t a il e d , t h e c o n fo rm a n c e b e tw e e n th e sp e cific atio n a n d th e im p le m e n ta tio n o f a s o f t w a r e s y s t e m . T h e f o llo w in g a r e s p e c i f i c o b j e c t i v e s t h a t w e w ill s t u d y in t h e 1 . 3 . C o n t r i b u t i o n s 3 t h e s i s prcg ress: • S tilly A sp e c t O rie n te d P ro g ra m m in g , a m e th o d o lo g y s u p p o r t O b je c t O rie n te d P ro g r a m m in g to resolve t h e c r o s s c u tti n g c o n c e rn s. • S tu d y U M L S p e c ific a tio n , es p e c ia lly T im i n g D ia g r a m s , a new d ia g ra m of UML2 • P ro p o se a n a p p r o a c h to ch eck in g th e tim in g c o n s tr a in ts o f s o ftw a re s y s te m u sirg A O P • Desi gn s o m e c a s e s t u d i e s t o i l l u s t r a t e a p p r o a c h e s • B u i d a to o l for c h e c k i n g a u t o m a t i c a l l y t h e t i m i n g c o n s t r a i n t s o f s o f t w a r e s y s terns. 1.3 C o n trib u tio n s T h e m a i n c o n t r i b u t i o n o f t h i s t h e s is is p r o p o s i n g a n a p p r o a c h t o c h e c k t h e e x e c u t i o n o f t a s k s in J a v a w i t h t h e i r t i m i n g c o n s t r a i n t s . T h is a p p ro a c h ca n b e s u m m a riz e d b y f o llo w in g s t e p s • S p ecify in g th e tim in g c o n s tr a in ts of ta s k s u sin g U M L T i m i n g D ia g r a m . • A p p ly in g A s p e c t O rie n te d P r o g r a m m in g to c a lc u la te e x e c u tio n tim e o f ta sk s; usin g A s p e c tJ , a n a s p e c t o r ie n te d e x te n s io n for t h e J a v a p r o g r a m m i n g la n ­ guage. • R u n tim e w eav in g th e A sp e c t J c o d e in to th e s o ftw a re s y s te m a n d ch ec k in g w h e t h e r it s a t i s f i e s t i m i n g c o n s t r a i n t . In a d d t i o n , w e h a v e b u i l t a s u p p o r t t o o l t o c h e c k t i m i n g c o n f o r m a n c e b e t w e e n sp e cific atio n a n d im p l e m e n ta tio n a u to m a tic a lly . W e h a v e a lso d e v e lo p e d s o m e ca se stu d ie s to illu s tra te t h e a p p ro a c h . 1.4 O u tlin e o f th e th esis T h e r e m a i n d e r o f t h i s t h e s i s c o n s i s t s of: C h a p t e r • C h a p te r 2 B ackground. 1. I n t r o d u c t i o n T h i s c h a p t e r i n t r o d u c e s s o m e b a s i c c o n c e p t s of A s p e c t O rie n te d P ro g r a m m in g (A O P ) a n d U M L T im in g D ia g ra m s - o n e of n ew d ia g ra m ty p e s of U M L . • C h a p t e r 3 - P r o p o s e d a p p r o a c h o f 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 . In t h e la st o f th is c h a p t e r w e p re se n t tw o ca se s tu d ie s to illu s tra te t h e a p p r o a c h . • C h a p te r 1 - Im p le m en ta tio n . W e show th e a rc h ite c tu re o f o u r to o l b a s e d on t h e a p p r o a c h in c h a p t e r 3 a n d s o m e d i f f i c u l t i e s w h e n w e i m p l e m e n t t h i s t o o l. S o m e e x p e r i m e n t a l r e s u l t s a n d e v a l u a t i o n a r e a lso p r e s e n t e d . • C h a p t e r 5 - R e la te d w ork. C h a p t er 5 d isc u sse s so m e r e la te d w orks. W e a n a ly z e t h e a d v a n t a g e s a n d d isa v an t ages of e a c h w ork. • C h a p t e r 6 - C o n c lu sio n a n d p ersp e ctiv e . T h is c h a p te r sh o w s th e c o n clu sio n of t h e t h e s i s a n d s o m e f u tu r e w orks. C h a p t e r 2 B a c k g r o u n d T h is c h a p t e r g iv e s s o m e c o n c e p ts of t i m e a n d tim in g c o n s tr a in t. F o llo w in g a n o v e r v i e w a b o u t t h e I JML T i m i n g D i a g r a m t h a t b e u s t'd t o s p e c i f y t i m i n g c o n s t r a i n t in t h e p r o p o s e d a p p r o a c h . A f t e r t h a t , w e i n t r o d u c e 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 p r o g r a m m i n g p a r a d i g m th a t in c re a se s m o d u l a r i t y by e n a b l i n g im p r o v e d s e p a r a ti o n o f c o n c e rn s a n d A s p e c t.). a sim p le a n d p ra c tic a l a s p e c t-o rie n te d e x te n sio n to Java. 2.1 U M L a n d U M L T im in g D iag ram 2.1.1 O verview of UML T h e U n i f i e d M o d e l i n g L a n g u a g e ( U M L ) is a s t a n d a r d f r o m t h e O b j e c t M a n a g e m e n t G r o u p ( O M G ) . p r o p o s e d as a se m i-fo rm a l sp e c ific a tio n l a n g u a g e for o b j e c t o r ie n te d s p e c i f i c a t i o n a n d d e s i g n . U M L c o n t a i n s s e v e r a l d i f f e r e n t d i a g r a m t y p e s , for e x a m ­ ple S t a t e D ia g r a m , C o lla b o r a tio n D ia g r a m , S e q u e n c e D ia g r a m , C la s s D ia g r a m a n d o t h e r s . I f U M L 1.x h a s 9 d i a g r a m t y p e s . U M L 2 .0 e x p a n d s t o 13 d i a g r a m t y p e s . It is d i v i d e d i n t o t w o g r o u p s : s t r u c t u r e d i a g r a m s a n d b e h a v i o r d i a g r a m s . F i g u r e 2.1 s h o w s t h e U M L 2 .0 a n d c h a n g e s f r o m t h e U M L 1.5 ( S h i & T o r n g r e n , 2 0 0 5 ) . It s h o w s t w o m a i n p a r t s o f U M L 2.0: s t a t i c p a r t ( S t r u c t u r a l D i a g r a m s ) a n d d y n a m ic p a rt (B eh a v io ral D iag ra m s). • S tr i u c tu r a l D ia g r a m s sh o w t h e b u ild in g b lo c k s of s y s t e m , fe a tu re s t h a t d o not c h a n g e w i t h t i m e . S t r u c t u r a l D i a g r a m s c o n s is t of 6 d i a g r a m s : C l a s s D i a g r a m , O b je c t D ia g r a m . P a c k a g e D ia g r a m , C o m p o s ite S t r u c t u r e D ia g r a m , D ep lo y m em t D iag ra m . C o m p o n e n t D iag ra m 6 C h a p t e r 2 . B a c k g r o u n d F i g u r e 2.1: U M L 2 .0 D i a g r a m s • B eh av io ral D ia g ra m s c o n sist of 7 d iag ram s: A c tiv ity D ia g ra m , S ta te M a c h in e D ia g ra m , U se C a s e D ia g r a m , I n te r a c tio n O v e rv ie w D ia g r a m , S e q u e n c e D ia ­ g ra m , T im in g D ia g ra m a n d C o m m u n ic a tio n D iag ra m . S o m e w o rk s (C h o n o le s from B e h a v io ra l D ia g ra m s. & S c h a rd t, 2003) s e p a ra te In te ra c tio n d ia g ra m gro u p If B e h a v i o r a l D i a g r a m s s h o w h o w s y s t e m r e s p o n d s t o r e q u e s ts o r o th e r w is e evolves o v er tim e . I n te r a c tio n D ia g r a m s d e p ic t t h e e x c h a n g e o f m e s s a g e s w i t h i n a c o l l a b o r a t io n e n r o u t e t o a c c o m p l i s h i n g i t s g o a l . 2.1.2 U M L T im in g D iag ram T i m i n g D i a g r a m is o n e o f t h e n e w d i a g r a m t y p e s a d d e d t o U M L 2 .0 . a l t h o u g h t h e y h a v e b e e n o n e o f th e core d ia g ra m s w ith in th e h a r d w a r e d esig n a n d r e a l-tim e c o m ­ m u n itie s for d e c a d e s. It is b a s e d o n h a r d w a r e t i m i n g d i a g r a m o r i g i n a l l y d e v e l o p e d by electrical en g in eers. I t is a s p e c if ic t y p e o f i n t e r a c t i o n d i a g r a m . It is u s e d t o e x p lo re th e b e h a v io rs of o n e or m o re o b je c ts th ro u g h o u t a g iv en p e rio d of tim e s (A k e rh o lm et al.. 2006). T i m i n g D i a g r a m s h o w s t h e c h a n g e o f o b j e c t ’s s t a t e in a g i v e n t i m e p e r i o d e m p h a s i z i n g t h e t i m i n g c o n s t r a i n t s . A l s o it s h o w s m e s s a g e s w h i c h m o d i f y t h a t s t a t e , l i m i n g d i a g r a m is o f t e n u s e d t o d e s i g n e m b e d d e d s o f t w a r e , s u c h 2 . 1 . as U M L a n d U M L T i m i n g D i a g r a m c o n t r o l s o f t w a r e lo r fuel i n j e c t i o n s y s t e m 7 in a n a u t o m o b i l e , a l t h o u g h it o c c a ­ s io n a lly la v e its uses for b u s in e s s s o ftw a re to o (B a ld w in & S c ra g g . 2004). S o ftw a re m o d e le r s c a n use a T i m i n g D ia g r a m to p rec isely d o c u m e n t a s c h e d u le of in te r a c tio n s o r s t a t e c h a n g e s . T i m i n g D i a g r a m is a l s o a s p e c i a l f o r m o f a s e q u e n c e d i a g r a m . T h e d i f f e r e n c e b e t w e e n t i m i n g d i a g r a m a n d s e q u e n c e d i a g r a m is t h e a x e s a r e r e v e r s e d so t h a t t h e t i m e is i n c r e a s e f r o m left t o r i g h t a n d t h e lif e lin e s a r e s h o w n in s e p a r a t e c o m p a r t m e n t s a r r a n g e d v e r ti c a l ly . T im in g D ia g ra m h a s tw o ty p es: co n cise n o ta tio n a n d r o b u s t n o ta tio n . c o n c i s e n o t a t i o n s h o w s t h e t i m e l i n e q u i t e c le a rly . The T i m i n g D i a g r a m in t h e c o n c i s e n o t a t i o n s h o w s t h e l if e c y c l e o f lif e lin e s o v e r a p e r i o d o f t i m e . I n t h i s n o t a t i o n , t h e T i m i n g D i a g r a m will o n l y s h o w y o u t h e s t a t e s o f t h e lif e lin e s , t h e t r a n s i t i o n p o in t b e t w e e n those» s t a t e s ( a s i n d i c a t e d b y t w o lin e s c r o s s i n g o n e a n o t h e r ) a n d t h e t i m e co n stra in t of th e d ia g ra m . sd Project Management^ {12/2008} Project Create ProjecyCreate Project p|an V F i g u r e 2.2: U M L C o n c i s e T i m i n g D i a g r a m T h e c o n c i s e n o t a t i o n is g o o d t o b e u s e d w h e n y o u n e e d t o e x p l o r e a g e n e r a l b e h a v i o r o f o n e o r m o r e o b j e c t s t h r o u g h o u t a p e r i o d o f t i m e w h i l e o r i g i n a l v ie w is u s e d w h e n y o u n e e d t o d r a w m o r e d e t a i l e d i n f o r m a t i o n a b o u t t h e t r a n s i t i o n s b e t w e e n t h e s t a t e s o f t h e lifelines. T h e robust n o t a t i o n e x p l o r e s t h e d e t a i l s o f w h a t h a p p e n in a life lin e. M ore lif e lin e s a r e m o d e l e d e a s i l y b y a d d i n g o t h e r s e c t i o n t o t h e frame*. B o th n o ta tio n s have th e ir pu rp o ses, a lth o u g h th e robust n o ta tio n seem s th e m ore u s e f u l o f t h e t w o p a r t i c u l a r l y for o b j e c t s t h a t m o v e b a c k a n d f o r t h b e t w e e n s ta te 's . 8 C h a p t e r 2 . B a c k g r o u n d F i g u r e 2.3: U M L R o b u s t T i m i n g D i a g r a m H o w e v e r , t h e m o r e lif e lin e s a r e t r i e d t o m o d e l a t o n c e t h e h a r d e r it is t o d r a w t h e d ia g ra m . 2.2 A sp ect O rien ted P ro g ra m m in g a n d A sp e c tJ 2.2.1 A spect O rien ted P ro g ra m m in g A s o f t w a r e a r c h i t e c t , w h e n a s k e d t o d e s i g n s o m e t h i n g n e w , first a d d r e s s e s t h e p r i ­ m a r y c o r e f u n c t i o n a l i t y , w h i c h in a b u s i n e s s a p p l i c a t i o n is t h e b a s i c b u s i n e s s logic. In a b a n k i n g a p p l i c a t i o n , for i n s t a n c e , c o r e m o d u l e s a r e d e s i g n e d t o m a n a g e t h e b an k in g tra n sa c tio n s th a t each c u s to m e r m akes. In a re ta il a p p lic a tio n , th e core m o d u le s d ea l w ith th e p u r c h a s e s a n d in v e n to ry m a n a g e m e n t . In b o t h a p p lic a tio n s , t h e s y s t e m - w i d e c o n c e r n s i n v o lv e s u c h f e a t u r e s a s l o g g i n g , a u t h o r i z a t i o n , p e r s i s t e n c e , a n d o th e r e le m e n ts c o m m o n to m a n y o f th e co re b u sin ess m o d u le s. L ets look at a n o th e r so ftw are e x a m p le . I f t h e a r c h i t e c t is d e s i g n i n g a r o b o t i c s a p p lic a tio n , th e core co n c ern s a re th e m o tio n m a n a g e m e n t a n d p a th c o m p u ta tio n . T h e c o n c e r n s t h a t a rc c o m m o n t o m a n y of t h e co re m o d u le s in v o lv e f e a tu r e s su c h a s lo gg in g, r e m o t e m a n a g e m e n t , a n d p a t h o p tim iz a tio n . c e rn s t h a t s p a n m u ltip le m o d u le s a r e called T h e se sy ste m -w id e co n ­ crosscutting concerns. A sp e c t-o rien te d 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 J 9 p ro g ram m in g (A O P ) m a n ag e s th ese cro ssc u ttin g concerns. W h i e o b j e c t - o r i e n t e d p r o g r a m m i n g ( O O P ) is t h e m o s t c o m m o n m e t h o d o l o g y e m p l o y e d t o d a y t o m a n a g e c o r e c o n c e r n s , it is n o t s u f f i c i e n t fo r m a n y c r o s s c u t t i n g c o n c e r n s , e s p e c i a l l y in c o m p l e x a p p l i c a t i o n s . S o A O P h a s e m e r g e d a s a n i m p r o v e ­ m e n t to ex istin g so ftw are so ftw are e n g in ee rin g te ch n o lo g ies such as O O P . 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 O P ) is a p r o g r a m m i n g p a r a d i g m t h a t i n c r e a s e s m o d u l a r i t y b y e n a b l i n g i m p r o v e d s e p a r a t i o n o f c o n c e r n s . T h i s e n t a i ls b r e a k i n g d o w n a p r o g ra m in to d is t in c t p a r t s (so -c alled c o n c e rn s, c o h e siv e a r e a s o f fu n c tio n a lity ). A ll p r o g r a m m i n g p a r a d i g m s s u p p o r t s o m e level o f g r o u p i n g a n d e n c a p s u l a t i o n o f c o n c e r n s i n t o s e p a r a t e , i n d e p e n d e n t e n t i t i e s b v p r o v i d i n g a b s t r a c t i o n s (e.g. pro­ ce d u res, m o d u le s, classes, m e th o d s ) t h a t c a n b e u se d to im p le m e n t, a b s t r a c t a n d c o m p o se th ese co n cern s. B u t so m e c o n c e rn s defy th e se fo rm s o f im p le m e n ta tio n a n d a r e c a lle d c r o s s c u t t i n g c o n c e r n s b e c a u s e t h e y c u t across* m u l t i p l e a b s t r a c t i o n s in a program . In c o m p u t e r s c i e n c e , a n a s p e c t is a p a r t of a p r o g r a m t h a t c r o s s - c u t s it s c o r e c o n c e rn s, th e re fo re v io la tin g its s e p a r a ti o n of c o n c e rn s. F o r e x a m p l e , lo g g i n g c o d e c a n c r o s s - c u t m a n y m o d u l e s , vet t h e a s p e c t o f l o g g i n g s h o u l d b e s e p a r a t e f r o m t h e f u n c t i o n a l c o n c e r n s o f t h e m o d u l e it c r o s s - c u t s . I s o l a t i n g s u c h a s p e c t s a s lo g g in g a n d p e r s i s t e n c e f r o m b u s i n e s s lo g ic is t h e a i m o f t h e a s p e c t - o r i e n t e d s o f t w a r e d e v e l ­ o p m e n t ( A O S D ) , o f w h i c h t h e A O P p a r a d i g m is t h e m o s t e s t a b l i s h e d a r e a . 2 .2 .1 .1 T erm in o lo g y T h e f o llo w in g a r e s o m e s t a n d a r d t e r m i n o l o g y u s e d in 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 : • C r o s s - c u t t i n g c o n c e r n s : E v e n t h o u g h m o s t c l a s s e s in a n 0 0 m o d e l w ill p e r f o r m a s in g l e , s p e c if ic f u n c t i o n , t h e y o f t e n s h a r e c o m m o n , s e c o n d a r y r e q u i r e m e n t s w i t h o t h e r c la s s e s . F o r e x a m p l e , w e m a y w a n t t o a d d l o g g i n g t o c l a s s e s w i t h i n t h e d a t a - a c c e s s l a y e r a n d a l s o t o c l a s s e s in t h e UI l a y e r w h e n e v e r a t h r e a d e n te r s or e x its a m e th o d . E v e n th o u g h t h e p r i m a r y f u n c ti o n a lit y of ea ch class is v e r y d i f f e r e n t , t h e c o d e n e e d e d t o p e r f o r m t h e s e c o n d a r y f u n c t i o n a l i t y is o fte n id en tical. • A d v i c e : A d v i c e is t h e ac t i o n a n d d e c i s i o n p a r t o f t h e c r o s s c u t t i n g p u z z l e . h e l p s u s d e f i n e " w h a t t o d o ’\ It A d v i c e is a m e t h o d - l i k e c o n s t r u c t t h a t p r o v i d e s a w ay to e x p re s s c r o s s c u tti n g a c tio n at t h e jo in p o in ts t h a t a r e c a p t u r e d by a p o i n t c u t . T h e t h r e e k i n d s o f a d v i c e arc' a s follow s: 1 0 C — Be-ore — After h a p t e r 2 . B a c k g r o u n d advice e x e c u te s p rio r to th e jo in po in t. a d v i c e e x e c u t e s f o llo w in g t h e j o i n p o i n t . Around advice s u r ro u n d s th e jo in p o in ts ex e c u tio n . T h i s a d v i c e is s p e ­ c ial in t h a t it h a s t h e a b i l i t y t o b y p a s s e x e c u t i o n , c o n t i n u e t h e o r i g i n a l e x e c u t i o n , o r c a u s e exec u t i o n w i t h a n a l t e r e d c o n t e x t . • P o i n t c m : T h i s is t h e t e r m g i v e n t o t h e p o i n t o f e x e c u t i o n in t h e a p p l i c a t i o n at w hich c r o s s - c u ttin g c o n c e rn n e e d s to b e a p p lie d . • A sp ec t: 2 .2 .1 .2 I'he c o m b i n a t i o n o f t h e p o i n t c u t a n d t h e a d v i c e is t e r m e d a n a s p e c t . 1m p l e m e n t a t i o n T h e r e a r e t w o d if f e r e n t w a y s A O P p r o g r a m s c a n a f f e c t o t h e r p r o g r a m s , d e p e n d i n g on th e u n d e rly in g lan g u ag es a n d e n v iro n m en ts: 1. A c o m b i n e d p r o g r a m is p r o d u c e d , v a l i d in t h e o r i g i n a l l a n g u a g e a n d i n d i s t i n ­ g u is h a b le from an o r d in a r y p r o g r a m to th e u lti m a t e in te r p re te r ; 2. T h e u l t i m a t e i n t e r p r e t e r o r e n v i r o n m e n t is u p d a t e d t o u n d e r s t a n d a n d i m ­ p le m e n t A O P fe a tu re s. T h e d ifficu lty o f c h a n g in g e n v i r o n m e n ts m e a n s m o s t im p le m e n ta tio n s p ro d u c e c o m p a tib le c o m b in atio n p ro g ra m s th ro u g h a p ro ­ cess t h a t has co m e to b e k n o w n as w eav in g . T h e s a m e A O P la n g u a g e c a n be i m p l e m e n t e d t h r o u g h a. v a r i e t y o f w e a v i n g t e c h n i q u e s , s o t h e s e m a n t i c s o f a. l a n g u a g e s h o u l d n e v e r b e u n d e r s t o o d in t e r m s o f t h e w e a v i n g i m p l e m e n t a t i o n . O n l y t h e s p e e d o f a n i m p l e m e n t a t i o n a n d it s ( 'a se o f d e p l o y m e n t a r e a f f e c t e d b y w h i c h m e t h o d o f c o m b i n a t io n is u s e d . S o u rce-lev el w e a v in g c a n b e im p le m e n te d u sin g p r e p r o c e s s o r s (as C m w as im p le ­ m e n t e d o r i g i n a l l y in O F r o n t ) t h a t r e q u i r e a c c e s s t o p r o g r a m s o u r c e files. H o w e v e r , J a v a ’s w e l l - d e f i n e d b i n a r y f o r m e n a b l e s b y t e c o d e w e a v e r s t o w o r k w i t h a n y J a v a p r o g r a m in .cllass-file f o r m . B y t e c o d e w e a v e r s c a n b e d e p l o y e d d u r i n g t h e b u i l d p r o ­ c e s s o r , if t h e w e a v e m o d e l is p e r - c l a s s . d u r i n g c l a s s l o a d i n g . A s p e c t J s t a r t e d w i t h s o u r c e - l e v e l w e a v i n g in 2 0 0 1 . d e l i v e r e d a p e r - c l a s s b y t e c o d e w e a v e r in 2 0 0 2 , a n d o f f e r e d a d v a n c e d l o a d - t i m e s u p p o r t a f t e r t h e i n t e g r a t i o n o f A s p e c t W e r k z in 2005. B u t in o u r a p p r o a c h w e u s e a n o t h e r w a y t o w e a v e . It is r u n - t i m e w e a v i n g . W i t h r u n - t i m e w e a v i n g , t h e d i s t i n c t i o n b e t w e e n a p p l i c a t i o n o b j e c t s a n d a s p e c t s is c l e a r l y 2 . 2 . A s j ' C t O r i e n t e d P r o g r a establish* ! d u r in g t h e e x e c u tio n . m m i n g a n d 11 A s p e c t J A r u n - t i m e w e a v e r is a p r o g r a m t h a t is a b l e t o o r c h e s tr a ^ t h e e x e c u t io n o f th e s e tw o ty p e s o f e n titie s . In o t h e r w o rd s , t h e w ea v e r e x e c u t e s it h e i t h e a p p l i c a t i o n c o d e o r t h e a s p e c t c o d e , d e p e n d i n g o n t h e d e f i n e d w e a v i n g cireet ives. T h e jro ce ss o f w e a v i n g a s p e c t s at r u n t i m e c a n b e c o m p a r e d t o m a i n t a i n i n g a r e la tio n s h i p b e t w e e n a set o f a p p l i c a t i o n o b j e c t s a n d a s e t o f a s p e c t i n s t a n c e s . A n a p p l i a t i o n o b j e c t t h a t is b o u n d t o a n a s p e c t i n s t a n c e is a s p e c t i z c d b y t h i s a s p e c t . Ai a s p e c t i n s t a n c e c a n b e b o u n d t o s e v e r a l a p p l i c a t i o n o b j e c t s ( t h e a s p e c t c r o s s c u ts s e v e r a l lo c a tio n s o f t h e a p p lic a tio n ) a n d , co n v ersely , a n a p p l ic a tio n o b je c t c a n b e b ain d to several aspect in sta n c e s (m o re th a n o n e a sp e c t ap p lies to th e sa m e lo catio n ) T h e a d v a n t a g e o f r u n - t i m e w e a v i n g is t h a t t h e r e l a t i o n s h i p s b e t w e e n o b j e c t s a n d a s p e c ts c a n b e d y n a m i c a l l y m a n a g e d . B y a d d i n g o r r e m o v i n g a b in d in g , we c a n weav* o r u n w e a v e a c o n c e r n w h i l e t h e a p p l i c a t i o n is r u n n i n g . T h is d y n am ic q u a lity is -p a rtic u la rly useful for a p p lic a tio n s , su c h as w eb se rv e rs, t h a t m u s t be h i g h l y av a ila b le a n d t h a t c a n n o t b e s t o p p e d for l o n g t i m e f r a m e s . I n m o i t c a s e s , r u n - t i m e w e a v e r s t r a n s f o r m t h e a p p l i c a t i o n ’s c o d e o r i t s b y t e c o d e b e f o r e r u i n i n g it. T h e p u r p o s e o f t h i s a d a p t a t i o n is t o m a k e t h e c l a s s e s r e a d y for r u n - t i m e w e a v i n g . All t h e c o d e e l e m e n t s t h a t c a n b e a d a p t e d a t r u n t i m e a r c m o d i f i e d o i n t r o d u c e h o o k s . A h o o k is a p i e c e o f c o d e t h a t r e d i r e c t s t h e e x e c u t i o n How o f t i c a p p l i c a t i o n t o w a r d a n a s p e c t . H ooks are in tro d u c e d a t th e b eg in n in g s o 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 lo c a tio n s w h e re a s p e c ts a p p ly b u t lo c a tio n s w h e re a s p e c ts p o te n tia lly apply. A m o n g all 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 ir 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 w h ic h h o o k s e f f e c t i v e l y p e r f o r m t h i s r e d i r e c t i o n . 2 .2 .1 .3 S o m e lim ita tio n s o f O O P W h e n wre i m p l e m e n t t h e c r o s s - c o n c e r n i n g b y O O P , s y s t e m h a s t w o m a i n p r o b l e m s : code tan g lin g a n d c o d e s c a tte r in g • Coca tangling: C o d e t a n g l i n g is c a u s e d w h e n a m o d u l e is i m p l e m e n t e d t h a t han d le 's m u l t i p l e c o n c e r n s s i m u l t a n e o u s l y . A d ev e lo p e r o ften co n sid ers co n ­ cerns s u c h a s b u s i n e s s lo g ic , p e r f o r m a n c e , s y n c h r o n i z a t i o n , lo g g in g , s e c u r i t y , 12 C h a p t e r a n d s o fcth w h i l e i m p l e m e n t i n g a m o d u l e . 2. B a c k g r o u n d This le a d s t o t h e s i m u l t a n e o u s p r e s e n c e f e l e m e n t s f r o m e a c h c o n c e r n s i m p l e m e n t a t i o n a n d r e s u l t s in c o d e t a n g l i n g . M g u r e b e l o w i l l u s t r a t e s c o d e t a n g l i n g in a m o d u l e . Businei logic Logging 4- Security Persistence F i g u r e 2.4: A n e x a m p l e o f c o d e t a n g l i n g • Code scatering: C o d e s c a t t e r i n g is c a u s e d w h e n a s i n g l e i s s u e is i m p l e m e n t e d in m u l t i p e m o d u l e s . S in c e c r o s s c u t t i n g c o n c e r n s , b y d e f i n i t i o n , a r e s p r e a d o v e r m a n ; m o d u l e s , r e l a t e d i m p l e m e n t a t i o n s a r e a l s o s c a t t e r e d o v e r all t h o s e m o d u l e s . F o r e x a m p l e , in a s y s t e m u s i n g a d a t a b a s e , p e r f o r m a n c e c o n c e r n s m a y afiec all t h e m o d u l e s a c c e s s i n g t h e d a t a b a s e . W e c a n c a s s if y t h e c o d e s c a t t e r i n g i n t o t w o d i s t i n c t c a t e g o r i e s : c o d e bloccs a n d c o m p l e m e n t a r y c o d e b lo c k s . d u p lic ated T h e f irs t k i n d is c h a r a c t e r i z e d b y r e p e a te d c o d e o f a n e a r l y i d e n t i c a l n a t u r e . F o r e x a m p l e , r e s o u r c e p o o l i n g w ill t y p i a l l y in v o lv e a d d i n g n e a r l y i d e n t i c a l c o d e t o m u l t i p l e m o d u l e s t o f e t c h a r e s o u r a fro m a p o o l a n d r e t u r n t h e re so u rc e b ac k t o t h e pool. F ig u r e below i l l u s t r a t e s t h e s c a t t e r e d d u p l i c a t e d c o d e b lo c k s . C o d e ta n g liig a n d c o d e s c a tte rin g to g e th e r im p a ct so ftw are d esig n a n d d ev el­ o p m e n t in m a n w ay s: p o o r t r a c e a b i l i t v . lo w e r p r o d u c t i v i t y , lo w e r c o d e r e u s e , p o o r q u a l i t y , a n d h a d e r ( 'v o l u t i o n . W h i l e w e will d i s c u s s e a c h i m p l i c a t i o n s e p a r a t e l y , t h e y s t r o n g l y ¿fleet o n e a n o t h e r . For ex am p le , p o o r tra c e a b ilitv c o n trib u te s to lo w e r p r o d u c t i \ i t y a n d p o o r q u a l i t y : • Pour truaubility: S im u lta n e o u s im p le m e n ta tio n of several co n c ern s o b sc u re s t h e m a p p n g of t h e co n c e rn to its im p le m e n ta tio n . T h i s c a u s e s d i f f i c u l t y in 2 . 2 . A s j 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 . ) 1 3 Accounting Internet banking “Check tor author 70(1 access' —1 y \ ; \ \ ... s- Ả X \ V \> \ Teller operations \ F i g u r e 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 t r a c i n g r e q u i r e m e n t s t o t h e i r i m p l e m e n t a t i o n , a n d v ic e v e r s a . F or ex a m p le , von w o u l d h a v e t o p o t e n t i a l l y e x a m i n e all m o d u l e s t o t r a c e t h e i m p l e m e n t a t i o n of an a u th e n tic a tio n concern. • Lower productivity: S i m u l t a n e o u s i m p l e m e n t a t i o n o f m u l t i p l e c o n c e r n s a ls o s h i f t s t h e fo c u s f ro m tin* m a i n c o n c e r n t o t h e p e r i p h e r a l c o n c e r n s . T h e la c k o f f o c u s t h e n le a d s t o lo w e r p r o d u c t i v i t y a s d e v e l o p e r s a r e s i d e t r a c k e d f r o m t h e i r p r i m a r y o b j e c t i v e in o r d e r t o h a n d l e t h e c r o s s c u t t i n g c o n c e r n s . F u r t h e r , s in c e d iffe re n t c o n c e r n i m p l e m e n t a t i o n s m a y n e e d d i f f e r e n t skill s e t s , e i t h e r s e v e r a l p e o p l e w ill h a v e t o c o l l a b o r a t e o n t h e i m p l e m e n t a t i o n o f a m o d u l e o r t h e d e v e l o p e r i m p l e m e n t i n g t h e m o d u l e w ill n e e d k n o w l e d g e o f e a c h d o m a i n . T h e m o r e c o n c e r n s y o u i m p l e m e n t t o g e t h e r , t h e lo w e r y o u r p r o b a b i l i t y o f f o c u s i n g on a n y one thing. • Lower codc reuse: If a m o d u l e is i m p l e m e n t i n g m u l t i p l e c o n c e r n s , o t h e r s y s ­ te m s req u irin g sim ila r f u n c tio n a lity m a y n o t b e a b le to rea d ily use th e m o d u le d u e t o a d if fe r e n t s e t o f c o n c e r n s t h e y m i g h t n e e d t o i m p l e m e n t . C on sid er C h a d a t a b l e a c c e s s m oduli*. a p t e r 2 . B a c k g r o u n d O n e p ro jec t m ay need o n e form of a u t h e n ti c a ­ t i o n to a c e s s t h e d a t a b a s e , a n o t h e r p ro je c t m a y n e e d a d ifferen t form , a n d s t i l l a n o t h e r m a y n e e d n o a u t h e n t i c a t i o n at all. T h e v a r i a t i o n o f c r o s s c u t t i n g re q u ire m e n ts m a y r e n d e r an o th e rw is e useful m o d u le u n u s a b le . • Poor (¡unity: ( ’o d e t a n g l i n g m a k e s it m o r e d if f i c u l t t o e x a m i n e c o d e a n d s p o t p o t e n t i a l p r o b l e m s , a n d p e r f o r m i n g c o d e r e v i e w s o f s u c h i m p l e m e n t a t io n s is h ard er, hi ex a m p le , rev iew in g th e co d e of a m o d u le t h a t im p le m e n ts m u ltip le c o n c e r n s w ill r e q u i r e t h e p a r t i c i p a t i o n o f a n e x p e r t in e a c h o f t h e c o n c e r n s . O f t e n n o a ll o f t h e m a r e a v a i l a b l e a t t h e s a m e t i m e , a n d t h e o n e s w h o a r e m a y n o t >ay s u f f i c i e n t a t t e n t i o n t o t h e c o n c e r n s t h a t a r e o u t s i d e t h e i r a r e a o f ex p e rtise • Difficult evolution: r e s u l t in \ A n in c o m p le te p ersp e ctiv e a n d lim ite d reso u rces o ften d e s ig n t h a t a d d re sse s on ly c u r r e n t co n cern s. W h e n fu tu re re q u ire ­ m e n ts a rse , th e y o ften req u ire rew orking th e im p le m e n ta tio n . B e cau se im ­ p l e m e n t a io n is n o t m o d u l a r i z e d , t h i s m a y m e a n m o d i f y i n g m a n y m o d u l e s . M o d i f y i n g e a c h s u b s y s t e m for s u c h c h a n g e s c a n l e a d t o i n c o n s i s t e n c i e s . It a l s o r e q u i r e s s p e n d i n g c o n s i d e r a b l e t e s t i n g effo rt t o e n s u r e t h a t t h i s i m p l e m e n t a ­ tio n change d o e s not in tr o d u c e regression bugs. A ll o f t h e s e p r o b l e m s l e a d t o a s e a r c h fo r b e t t e r a p p r o a c h e s t o a r c h i t e c t u r e , d e s i g n ai d i m p l e m e n t a t i o n . A s p e c t- o r i e n te d p r o g r a m m i n g offers o n e v ia b le so lu tio n . 2 .2 .1 .4 B e n e fits o f A O P A O P p r o v i d e s s e p a r a t i o n o f c o n c e r n s in s o f t w a r e b y i n t r o d u c i n g t h e c ro ssc u ts o th e r m o d u le s. aspect th a t W i t h A O P w e i m p l e m e n t c r o s s c u t t i n g c o n c e r n s in a s ­ p e c t s i n s t e a d of f u s i n g t h e m in t h e c o r e m o d u l e s . An aspect weaver, w h i c h is a c o m p i l e r - l i k e e n t i t y , c o m p o s e s t h e fin a l s y s t e m b y c o m b i n i n g t h e c o r e a n d c r o s s c u t ­ tin g m o d u le s t h r o u g h a p ro c e s s called weaving. T h e r e s u l t is t h a t A O P m o d u l a r i z e s t h e c r o s s c u t t i n g c o n c e r n s in a c l e a r - c u t f a s h i o n , y i e l d i n g a s y s t e m a r c h i t e c t u r e t h a t is e a s i e r t o d e s i g n , i m p l e m e n t , a n d m a i n t a i n . A O P d e m a n d s th e d e v e lo p e rs th in k in g a b o u t th e sy ste m desig n a n d im p le m e n ­ t a t i o n in a n e w w ay. It h a s m a n y b e n e f i t s a n d a m o n g t h e s e a r e s o m e m a i n b e n e f i t s ( L a d d a d . 2 0 0 3 ): 2 . 2 . A s p e c ( r i e n t e d P r o g r a m m i n g a n d 1 5 A s p e c t J Cleaner "'esonsib Hit,/es of the individual module: A G P allow s a m o d u le to ta k e r e s p o n s i b i l i t / cdv for its 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 ­ tin g concern, o r e x a m p l e . a m o d u l e a c c e s s i n g a d a t a b a s e is n o l o n g e r r e s p o n s i b l e f o r p o o l i n g ia n b a.se c o n n e c t i o n s a s w ell. T h i s r e s u l t s in c l e a n e r a s s i g n m e n t s o f r e s p o n s i b i l i t i e s . l e a d i n g t o i m p r o v e d t r a e e a b i l i t v. Higher noadarization: A O P p ro v id es a m e c h a n is m to a d d re s s each co n c ern s e p a r a t e l y w t h m i n i m a l c o u p l i n g . T h i s r e s u l t s in m o d u l a r i z e d i m p l e m e n t a t i o n e v e n in t h e p r e s e ic c o f c r o s s c u t t i n g c o n c e r n s . w i t h m u c h bss d u p l i c a t e d c o d e . S u c h i m p l e m e n t a t i o n r e s u l t s in a s y s t e m B e c a u s e t h e i m p l e m e n t a t i o n o f e a c h c o n c e r n is s e p a r a t e , i t dse h e l p s a v o i d c o d e c l u t t e r . M o d u l a r i z e d i m p l e m e n t a t i o n r e s u l t s in a n ea sie r-to -u n ce n tan d and e a sie r-to -m a in tain system . Easier systmi evolution: A O P m o d u la rize s th e in d iv id u a l a sp e c ts a n d m akes c o r e m o d u l e s o b liv io u s t o t h e a s p e c t s . A d d i n g a n e w f u n c t i o n a l i t y is n o w a m a t t e r o f i n c l u d i n g a new a s p e c t a n d r e q u i r e s n o c h a n g e t o t h e c o r e m o d u l e s . F u rth e r, w h e n w e add a n e w c o r e m o d u l e t o t h e s y s t e m , t h e e x i s t i n g a s p e c t s c r o s s c u t it. h e l p i n g t o create a c o h e r e n t e v o l u t i o n . T h e o v e r a l l effec t is a f a s t e r r e s p o n s e t o n e w re q u irem en ts Lute binding of design decisions: W it h A O P . t h e a r c h ite c t c a n d e la y m a k in g d e s i g n d ecisions 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 • s e p a r a te f l s p f f K A r c h i t e c t s c a n n o w f o c u s o n t h e c u r r e n t c o r e r e q u i r e m e n t s o f the? s y s t e m . N e w r e q u i r e m e n t s of a c r o s s c u t t i n g n a t u r e c’a n b e h a n d l e d b y c r e a t i n g n e w asp ec ts. IrnfJerne nt in g a f e a t u r e j u s t b e c a u s e y o u m a y n e e d it in t h e f u t u r e o f t e n r e s u l t s in w a i t e d e f f o r t b e c a u s e y o u w o n t a c t u a l l y n e e d it. W i t h A O P , if y o u d o n e e d f u n c t i o n a l i t y l a t e r , y o u c a n i m p l e m e n t it w i t h o u t s y s t e m w i d e m o d if ic a t i o n s . More codc reuse: p le m e n ta tio n T h e k e y t o g r e a t e r c o d e r e u s e is a m o r e l o o s e ly c o u p l e d i m ­ B ecause A O P im p le m e n ts each a s p e c t as a s e p a r a te m o d u le , each m o d u l e is m o r e l o o s e ly c o u p l e d t h a n e q u i v a l e n t c o n v e n t i o n a l i m p l e m e n t a t i o n s . In p a r t i c u l a r , core m o d u l e s a r e n t a w a r e o f e a c h o t h e r o n l y t h e w e a v i n g r u l e s p e c i f i c a t i o n m o d u le s a r e aw are o f an y c o u p lin g . B y s im p ly c h a n g in g t h e w ea v in g sp ecificatio n in s te a d of m u ltip le core m o d u le s , y o u c a n c h a n g e t h e s y s t e m c o n f ig u r a tio n . For e x a m p le , a d a ta b a s e m o d u le c a n b e u se d w ith a d iffe re n t logging im p le m e n ta tio n w ith o u t change to e ith e r o f th e m o d u le s. Improved f inn tn-inarkf t : d e s i g n cy c le . L a te b in d in g of d e s ig n d e c is io n s allo w s a m u c h fa ste r C l e a n e r s e p a r a t i o n o f r e s p o n s i b i l i t i e s a l l o w s b e t t e r m a t c h i n g o f the' m o d u l e to t h e d e v e l o p e r s s k ills , l e a d i n g t o i m p r o v e d p r o d u c t i v i t y . M o r e c o d e r e u s e 1 6 C h le a d s to rd u c e d d ev elo p m en t tim e. a p t e r 2 . B a c k g r o u n d E a s ie r e v o lu tio n allo w s a q u ic k e r r e s p o n s e to n e w r c q u i r m c n t s . All o f t h e s e l e a d t o s y s t e m s t h a t a r c f a s t e r t o d e v e l o p a n d d e p l o y . Raducd costs of feature implementation: B y av o id in g th e c o s t of m o d ify in g m a n y m o d u l e s t< i m p l e m e n t a c r o s s c u t t i n g c o n c e r n . A O P m a k e s it c h e a p e r t o i m p l e m e n t t h e cro ssc u ttin g featu re. B y allo w in g e a c h im p le m e n te r to fo cu s m o re o n th e c o n c e rn o f t h e m o lu le a n d m a k e t h e m o s t o f his o r h er e x p e r tis e , r e q u i r e m e i t s i m p l e m e n t a t i o n is a l s o r e d u c e d . th e cost of t h e core T h e e n d e f f e c t is a c h e a p e r o v e r a ll f e a t u r e ir n )le r n e n t at ion. 2.2.2 A spectJ A O P h a s H'en w id e l y a p p l i e d t o d i f f e r e n t l a n g u a g e s b u t t h e m o s t i n f l u e n t i a l im p l e m c n t a t b n is A s p e c t.] ( K i c z a l c s ct a l., 2 0 0 1 ) . A s p e c t J is a s i m p l e a n d p r a c t i c a l a s p e c t - o r i e n t e d e x t e n s i o n t o J a v a (E< l i p s e . o r g , 2 0 0 9 ) . It is a s e a m l e s s a s p e c t - o r i e n t e d e x t e n s i o n )f t h e J a v a p r o g r a m m i n g l a n g u a g e t h a t e n a b l e s c l e a n m o d u l a r i z a t i o n o f t h e s e c r o s s c u t t i n g c o n c e r n s . A n A s p e c t J c o m p i l e r p r o d u c e s c l a s s files t h a t c o n f o r m to t h e Java b y tc -c o d e s p e c ific a tio n , allo w in g a n y c o m p lia n t J a v a v ir tu a l m a c h in e ( J V M ) t o e x e c u t e t h o s e c l a s s files. B y usin g Ja v a as th e b a s e la n g u ag e , A s p e c tJ p a s s e s o n all t h e b e n e f i t s o f J a v a a n d m a k e s it e a s y for J a v a p r o g r a m m e r s t o u n d e r ­ s ta n d th e A sp ec tJ la n g u ag e . T h e ta s k o f in te g ra tin g th e c r o s s c u ttin g co n c ern co d e a n d t h e p r i m a r y a p p l i c a t i o n t o r u n a s a c o m p l e t e s y s t e m is c a l l e d weaving. A s p e c t J is d e s i g n e d a-s a c o m p a t ib l e e x t e n s i o n t o J a v a s o t h a t it will f a c i l i t a t e a d o p t i o n by c u r r e n t J a v a p r o g r a m m e r s . T h e c o m p a t i b l e m e a n s f o u r t h i n g s : • U p w a r d c o m p a t i b i l i t y - all le g a l J a v a p r o g r a m s m u s t b e le g a l A s p e c t J p r o ­ gram s. • P l a t f o r m c o m p a t i b i l i t y - all le g a l A s p e c t J p r o g r a m s m u s t r u n o n s t a n d a r d J a v a v irtu a l m ach in es. • T o o l c o m p a t i b i l i t y - it m u s t b e p o s s i b l e t o e x t e n d e x i s t i n g t o o l s t o s u p p o r t A s p e c t J in a n a t u r a l w a y : t h i s i n c l u d e s I D E s , d o c u m e n t a t i o n t o o l s a n d d e s i g n t ools. • P r o g r a m m e r c o m p a t i b i l i t y - p r o g r a m m i n g w i t h A s p e c t J m u s t feel like a n a t ­ ural ex ten sio n of p r o g r a m m in g w ith Ja v a
- Xem thêm -