. . . r . . é . . % . ~ t 2 e 5 l . , M l . . fi A . . . A . f i A . A s a A . “ A . 2 . 1 fi L 5 r I w : r l A . . A . A . . } . . v . t ? 3 . w . . . m N . A 1 . N “ m I ‘ V M T ? e 5 . . A G . 3 m . . x $ . w . z a A 1 . a A g . fi . A n m i a A . . c A . . . , . n A L A . . “ . . . s 4 “ . a . A ‘ c . : 7 : ” M . H a . . , . . 3 z J . . A A . . . . A . . A A n . A , A , . ? . 1 o J . 3 t ? fl h i , ” n i { é ? z u 5 L s x : ? C 3 n m : fi . 5 fi K T . ? . 5 A . A a 7 : A _ k a « r . 1 _ # . . r . y A r . . . . . . v . . A a . . A . A . . y : a 3 A . m : E 1 u ~ n . U A : 4 . A 1 . ? . . , ? . . \ 3 ( . : . 5 d . n v a 6 ~ . 1 . 5 . x n ? ? 2 w A m 1 i A fl 3 6 d L 1 l . 1 m « 1 » E . . . . . N $ . m m “ . u “ “ r : . V . . ? h A . V . 5 . % , fi l . a g g L r 3 e r . u fi “ 6 f m a h t a : 9 . ‘ g r 3 m 3 u . A .. 1 . 9 . l . . a ) fi a . 3 R , . u . T w % a 5 z s . ‘ 3 w . 3 . “ fi " . 1 f fi m . . » . . - M - y . \ . $ 1 . » ; . n . ‘ 1 . r . 1 ) , r £ 4 3 3 . . . 3 . . 2 7 ( 0 ) L c U i h n a i i g v E a e A s n r n S i t t v y a M i t e T H E ' T h i s i s t o c e r t i f y t h a t t h e d i s s e r t a t i o n e n t i t l e d A G e n e r i c F r a m e w o r k f o r F o r m a l i z i n g O b j e c t O r i e n t e d M o d e l i n g N o t a t i o n s f o r E m b e d d e d S y s t e m s D e v e l o p m e n t p r e s e n t e d b y W i l l i a m E u g e n e M c U m b e r h a s b e e n a c c e p t e d t o w a r d s f u l fi 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 P h D . d e g r e e i n C o m p u t e r S c i e n c e a n d E n g i n e e r i n g M ” { i f / M a w M a j o r p r o f e s s o r 0 D a t e 8 / 1 ! / 0 0 M S U i s a n A f fi r m a t i v e A c t i o n / E q u a l O p p o r t u n i t y I n s t i t u t i o n 0 - 1 2 7 7 1 P L A C E l N R E I ' U R N B O X t o r e m o v e t h i s c h e c k o u t f r o m y o u r r e c o r d . T O A V O I D F I N E r e t u r n o n o r b e f o r e d a t e d u e . M A Y B E R E C A L L E D w i t h e a r l i e r d u e d a t e i f r e q u e s t e d . D A T E D U E D A T E D U E D A T E D U E m o o c I C I R C J D m D m p G S - p . “ M O E A G E N E R I C F R A M E W O R K F O R F O R M A L I Z I N G O B J E C T - O R I E N T E D M O D E L I N G N O T A T I O N S F O R E M B E D D E D S Y S T E M S D E V E L O P M E N T B y W i l l i a m E u g e n e M c U m b e r A D I S S E R T A T I O N S u b m i t t e d t o M i c h i g a n S t a t e U n i v e r s i t y i n p a r t i a l f u l fi 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 D O C T O R O F P H I L O S O P H Y D e p a r t m e n t o f C o m p u t e r S c i e n c e a n d E n g i n e e e r i n g A u g u s t 8 , 2 0 0 0 A G E N E m i l e d i s p l a y s d e v e l o p ; A p p l i i r a i g r a p h i c a fi l i n g L a i p r o v i d e s { D i w a l i z C h e c k i n g t h e d e n : h U H l I i ' A i n u j f o r m a l 1 i n O r d e r A B S T R A C T A G E N E R I C F R A M E W O R K F O R F O R M A L I Z I N G O B J E C T - O R I E N T E D M O D E L I N G N O T A T I O N S F O R E M B E D D E D S Y S T E M S D E V E L O P M E N T B y W i l l i a m E u g e n e M C U m b e r E m b e d d e d s y s t e m s a r e 1 0 t o 1 0 0 t i m e s m o r e n u m e r o u s t h a n t r a d i t i o n a l s y s t e m s w i t h d i s p l a y s a n d k e y b o a r d s B u t e v e n t h o u g h t h e o b j e c t - o r i e n t e d p a r a d i g m h a s b e e n u s e d t o d e v e l o p m a n y t r a d i t i o n a l s y s t e m s , i t h a s n o t b e e n w i d e l y a p p l i e d t o e m b e d d e d s y s t e m s . A p p l i c a t i o n o f t h e o b j e c t - o r i e n t e d p a r a d i g m i n i n d u s t r y i s e n c o u r a g e d a n d r e i n f o r c e d b y g r a p h i c a l m e t h o d s s u c h a s t h e O b j e c t M o d e l i n g T e c h n i q u e ( O M T ) a n d t h e U n i v e r s a l M o d - e l i n g L a n g u a g e ( U M L ) , b u t t h e s e m a n t i c s o f t h e d i a g r a m s a r e n o t r i g o r o u s . T h i s r e s e a r c h p r o v i d e s f o r m a l s e m a n t i c s f o r U M L m o d e l s i n o r d e r t o b u i l d e m b e d d e d s y s t e m s . T h i s f o r m a l i z a t i o n e n a b l e s t h e a u t o m a t e d a n a l y s i s o f d i a g r a m s , s u c h a s s i m u l a t i o n a n d m o d e l c h e c k i n g , w h i c h a r e p a r t i c u l a r l y c r i t i c a l f o r t h e d e v e l o p m e n t o f e m b e d d e d s y s t e m s , g i v e n t h e d e m a n d f o r s p e c i f y i n g t e m p o r a l a n d c o n c u r r e n c y p r o p e r t i e s . T h i s r e s e a r c h c o n s t r u c t s h o m o m o r p h i s m s b e t w e e n m e t a m o d e l s o f t h e s o u r c e s e m i — f o r m a l l a n g u a g e a n d t h e t a r g e t f o r m a l l a n g u a g e , s o t h a t c o n s i s t e n c y o f f o r m a l i z a t i o n r u l e s c a n b e m e c h a n i c a l l y e s t a b l i s h e d i n o r d e r t o p r o v i d e p r e c i s e s e m a n t i c s t o t h e s e m i — f o r m a l n o t a t i o n . © C o p y r i g h t A u g u s t 8 , 2 0 0 0 b y W i l l i a m E u g e n e M c U m b e r A l l R i g h t s R e s e r v e d T o m y v ( b r o u g h t T o m y w i f e , C h e r y l , a n d m y s o n s , R o b b i e a n d W e s t o n , w h o h a v e s u p p o r t e d m e t h r o u g h o u t w h i l e e n d u r i n g m y l o n g h o u r s a n d l a c k o f a v a i l a b i l i t y i v l h a r e k n f a m i l y . a n e x r e l l e i i t : W U l l l d n o t s t u d e n t a . I t W m 3 5 3 M t h e a n d I i f “ : I ' l l e h ‘ l m m u o i f f « ‘ T l fl fi l l l t l l 3 0 m 2 H i g h i i i S u n - T a l i F i n a ] t h i f j i l g h L , . l z l f j 5 a m . ” A C K N O W L E D G M E N T S I h a v e k n o w n D r . B e t t y H . C . C h e n g f o r q u i t e s o m e t i m e b e c a u s e w o r k i n g , c a r i n g f o r f a m i l y , a n d e a r n i n g a P h . D . a l l a t o n c e , t a k e s a l o n g t i m e . W i t h o u t h e r e x t r e m e p a t i e n c e , e x c e l l e n t a d v i c e , f r e q u e n t e n c o u r a g e m e n t , a n d e x p e r t e d i t i n g c a p a b i l i t i e s , t h i s d i s s e r t a t i o n w o u l d n o t h a v e o c c u r r e d . I ’ l l b e t s h e ’ l l b e c a r e f u l a b o u t t a k i n g a “ n o n - t r a d i t i o n a l ” P h . D . s t u d e n t a g a i n . I t w a s d u r i n g m y f r i e n d E n o c h W a n g ’ s d i s s e r t a t i o n d e f e n s e , t h a t D r . A n t h o n y W o j c i k a s k e d t h e c r i t i c a l q u e s t i o n t h a t b e c a m e c e n t r a l t o t h i s d i s s e r t a t i o n . I t w a s a g o o d q u e s t i o n a n d I t r i e d t o b u i l d o n E n o c h ’ s w o r k t o a n s w e r t h a t q u e s t i o n . I w i s h a l s o t o t h a n k D r . K u r t S t i r e w a l t f o r o u r m a n y d i s c u s s i o n s a b o u t m a n y t h i n g s f r o m h o m o m o r p h i c m a p p i n g s , t o s e m a n t i c s . D r . S t i r e w a l t w a s e x t r e m e l y h e l p f u l f o r m u l a t i n g t h e f o r m a l i t i e s a n d m e a n i n g s o f t h e h o m o m o r p h i s m s . S o m a n y o t h e r s p r o v i d e d h e l p a l o n g t h e w a y i t i s i m p o s s i b l e t o l i s t t h e m a l l i n t h i s s p a c e . I w i s h t o t h a n k m y c o m m i t t e e m e m b e r s : D r . B e t t y H . C . C h e n g ( c h a i r p e r s o n ) , D r . K u r t S t i r e w a l t , D r . A n t h o n y W o j c i k , a n d D r . J a c o b P l o t k i n . F i n a l l y , m y w i f e , C h e r y l , a n d m y s o n s R o b a n d W e s t o n , s h a r e d , a n d a t t i m e s s u f f e r e d , t h r o u g h t h i s l o n g p r o c e s s . I c o u l d n ’ t h a v e d o n e i t w i t h o u t t h e m a n d I d e e p l y a p p r e c i a t e t h e s a c r i fi c e s t h e y m a d e b e c a u s e I d i d n ’ t h a v e t i m e f o r t h i s o r t h a t . I d o n o w . l I S T 0 F 1 I n t r o d i 1 . 1 P h i l i l t 1 . 2 R 9 5 8 3 : 1 . 3 “ 1 0 5 1 : 1 . 4 O r g a i : l B a c k g r 2 . 1 1 . 3 1 1 . 2 . 2 1 1 1 0 1 2 . 2 1 S m 2 . 2 . 2 S i m 2 . 2 . 3 S i g ] 2 - 3 1 4 D a l 3 - 3 P r o m 2 ~ 3 - 1 S i r 2 . 3 . 2 C h ; 1 3 . 3 D i i 2 . 4 1 1 0 d . 2 . 4 . 1 C T 2 . 4 . ? 3 p A ) D * 9 F o r m S T O L 1 1 1 1 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b g T m e m p o F s e a D a t i i t h o a n x o i s u n a P m L fi d r r g g f l s f r u n l i a n t a I a h a m e F e O a a l o c c c z c n m S v O t a t l l r C d d l n r e o n p p m m t R m c o a d s I a n i r g n N n e i n T . n e a F C y f i m s i t a t I h u a s e h c l T e a e l U a g a i a r P i e i D n G r r e l e M . e r M e l F o e d e e c u s p d e n i s k U r n s s i . n P o t t a S o D L v a L I n h t o v r e l p s i r d e a S c d i c g t e u d u a o t v / B y l n n n i t n u r s i u u n n d r f L e l t i n n L o o g e N M i a l a m o d E i e C s d n e c f r d d a C c e o w g F n l o t a r C m u l r g L . r o r M H o o d p e s g k S S S S D C D C S r a i F a E M E I H H T r h e r c t l r o a o n n t P R T O U V a I B 1 2 3 4 1 2 3 1 2 P M C F M U M e 1 1 2 3 4 2 3 4 1 2 3 4 1 2 2 2 2 3 4 2 3 3 3 5 4 4 1 1 1 1 1 2 2 2 2 2 3 . . . . . . . . . . . . . . . . . S t p a n f i . n . . e . . . . . t . . t n , . i y l . . . . n o . . . t S . u . s a a e l . o . . R f o G s s g f a n i a a z l m h . . . . . . . . . F i . . i e . . . . M z r m o g v n i i a . l t t a e i n e . . . . . . . . . . . . . . n . s n r . r i z o a e s i a M . . . . . . . . . . . . p t . . l . e . i i . . t s a d a n a t s p e n t c . . . . . . . . . e n . . D . . . o . . . . . . i a M M e . . . . . . . . i . . . w . . . . . L . . . . g t o t r n d n e m e d m i t o v a e . . . . . . . . n . . . . . . . . . . . . . . o . a a d . . . . . . . . . . . . . . . . . r . . r . . . g r . s u k l o o F e m m . . . . . . . . . . . . . . . . a . . . . . a . s d . d . . . . . . . . . . . . . . . . . . . . . . . e . . e l l g e m e . . . . . . . . s . . . . . . . . . . w . . . . s . . o . . . . . . . . . . . . . . . . . . . . . . . . . . r . . . . . . . . . . . . . . . . . . . k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 6 1 4 8 5 6 9 8 0 0 3 5 5 7 X 1 1 8 9 2 3 4 0 7 2 3 6 7 0 8 1 1 1 2 2 2 2 2 2 2 2 2 2 3 2 3 3 3 3 4 4 4 4 4 4 5 t n n t l c r a e e e . . . . a . . d p . w i . e r i m t s o F a n y i l o . r g i t f m o s D p D . e . . l r a n p l i i m s s — o t C D r s . n m L a l . S . m S v s d o M t C s s o . . . M . a a m t t m e o m . a t i a F r o . M l l a r a u e s . v . n . z t t m i . s s n s u O l a o r o a a u r g s i k p l . . . . m m s . h . . F . c o t n p t o i e n r i t i a m i e e u c t p s . m l i T n e d w o O o u o d s o w m C c a T A B L E O F C O N T E N T S v i 4 D e fl g n 1 1 D % M 1 1 H i s i n Y E 1 H 0 % 1 . 1 . 4 C 1 3 5 H i R m 1 % D n i 1 H S m 1 . 2 C h u u s 1 3 1 : 8 1 : 1 1 ) ; H h h m S U M L t i l f M L i H H m } fl U M L E 1 G a 5 2 . ? D y n 5 . 2 . 3 . l O l E 2 3 E m m 3 % Y R i n B A H 3 D E 6 U M L i M f M L “ 1 H m 6 - 2 1 7 l e 4 D e s i g n P r o c e s s 4 . 1 D e s i g n P r o c e s s D a t a F l o w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 1 . 1 U s e C a s e a n d C o n t e x t M o d e l . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 1 . 2 U s e C a s e S c e n a r i o s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 1 . 3 C l a s s M o d e l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 1 . 4 C l a s s R e s p o n s i b i l i t y L i s t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 1 . 5 S e q u e n c e D i a g r a m s 4 . 1 . 6 D y n a m i c M o d e l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 1 . 7 S i m u l a t i o n a n d M o d e l C h e c k i n g 4 . 2 C h o o s i n g S e m a n t i c s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 3 F e e d b a c k L o o p s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 4 R e l a t i o n o f t h e m e t h o d o l o g y t o F o r m a l i z a t i o n I n t e g r a t i o n . . . . . . . . . . . . 5 U M L t o V H D L M a p p i n g R u l e s 5 . 1 U M L t o V H D L D i a g r a m H o m o m o r p h i s m s . . . . . . . . . . . . . . . . . . . . . 5 . 1 . 1 H o m o m o r p h i c M a p p i n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 2 U M L t o V H D L M a p p i n g R u l e s . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 2 . 1 C l a s s D i a g r a m F o r m a l i z a t i o n s . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 2 . 2 D y n a m i c M o d e l F o r m a l i z a t i o n s . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 2 . 3 J o i n i n g C o n c u r r e n t T h r e a d s . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 3 E x a m p l e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 3 . 1 V H D L S p e c i fi c a t i o n s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 3 . 2 B e h a v i o r V a l i d a t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 3 . 3 D i s c u s s i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 U M L t o P r o m e l a / S P I N M a p p i n g R u l e s 6 . 1 U M L t o P r o m e l a D i a g r a m H o m o m o r p h i s m s . . . . . . . . . . . . . . . . . . . . 6 . 1 . 1 H o m o m o r p h i c M a p p i n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 2 U M L t o P r o m e l a M a p p i n g R u l e s . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 2 . 1 G l o b a l R e q u i r e m e n t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 2 . 2 C l a s s D i a g r a m F o r m a l i z a t i o n s . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 2 . 3 D y n a m i c M o d e l F o r m a l i z a t i o n s . . . . . . . . . . . . . . . . . . . . . . . . . . 7 R e l a t e d W o r k 7 . 1 E m b e d d e d S y s t e m s M e t h o d o l o g i e s . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 1 . 1 A d H o c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 1 . 2 S t r u c t u r e d M e t h o d s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 1 . 3 R T O O S A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 1 . 4 R O O M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 1 . 5 R e a l - T i m e U M L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 2 G r a p h i c a l L a n g u a g e s f o r E m b e d d e d S y s t e m s . . . . . . . . . . . . . . . . . . . 7 . 2 . 1 D F D - C F D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 2 . 2 F l o w c h a r t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 2 . 3 F i n i t e S t a t e M a c h i n e s F S A . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 2 . 4 E x t e n d e d F i n i t e S t a t e M a c h i n e . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 2 . 5 S t a t e c h a r t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 2 . 6 S p e c c h a r t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 2 . 7 P e t r i N e t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v i i 5 3 5 3 5 4 5 7 5 7 5 8 5 8 6 0 6 0 6 1 6 2 6 3 6 4 6 4 6 7 7 0 7 0 7 7 8 8 9 2 9 4 9 4 9 8 1 0 0 1 0 0 1 0 1 1 0 4 1 0 6 1 0 7 1 1 4 1 4 0 1 4 1 7 . 3 F o r ! 7 3 1 0 L i H u i 7 1 1 H 1 4 2 I 7 . 4 . 3 F r i l l E 8 I b o ] i 1 O r e 3 . 2 H y t : 3 3 H y c l l L a m 8 4 1 0 5 4 2 R 5 4 3 T 9 I n d u 9 . 1 D e s 9 1 1 R 9 1 2 S 9 1 3 S 2 2 I n k 2 2 1 L 2 3 C h i 2 4 ( 1 a 2 1 1 S 7 . 3 F o r m a l i z a t i o n o f U M L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . _ . 1 5 8 7 . 3 . 1 O C L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 0 7 . 4 F o r m a l i z a t i o n o f O O a n d O t h e r N o t a t i o n s . . . . . . . . . . . . . . . . . . . . . 1 6 2 7 . 4 . 1 F u s i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 2 7 . 4 . 2 T R O L L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 4 7 . 4 . 3 F o r m a l i z e d O M T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 6 7 . 4 . 4 E x t e n d e d H i e r a r c h i c a l F i n i t e S t a t e M a c h i n e s . . . . . . . . . . . . . . . . . . 1 6 9 8 T o o l D e v e l o p m e n t 1 7 1 8 . 1 O v e r v i e w o f H y d r a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 1 8 . 2 H y d r a L a n g u a g e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 2 8 . 3 H y d r a T o o l S t r u c t u r e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 9 8 . 4 L a n g u a g e — S p e c i fi c C l a s s L i b r a r y . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8 0 8 . 4 . 1 O p e r a t i o n o f t h e L S C L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8 4 8 . 4 . 2 R e s o l v i n g T T a n s i t i o n s C r o s s i n g C o m p o s i t e S t a t e B o u n d a r i e s . . . . . . . . . . 1 8 4 8 . 4 . 3 T a r g e t S p e c i fi c a t i o n G e n e r a t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8 7 9 I n d u s t r i a l C a s e S t u d y 1 8 9 9 . 1 D e s c r i p t i o n o f “ S m a r t C r u i s e ” . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 0 9 . 1 . 1 R e q u i r e m e n t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 1 9 . 1 . 2 S y s t e m E n v i r o n m e n t a n d U s e C a s e . . . . . . . . . . . . . . . . . . . . . . . . 1 9 1 9 . 1 . 3 S y s t e m C o m p o n e n t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 4 9 . 2 I n i t i a l S y s t e m D e s i g n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 4 9 . 2 . 1 U s e C a s e S c e n a r i o s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 6 9 . 3 C l a s s D i a g r a m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 7 9 . 4 C l a s s R e s p o n s i b i l i t i e s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 9 9 . 4 . 1 S e q u e n c e D i a g r a m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 2 9 . 5 D y n a m i c B e h a v i o r D e s i g n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 3 9 . 5 . 1 C a l c u l a t i o n a n d T i m i n g C o n v e n t i o n s . . . . . . . . . . . . . . . . . . . . . . . 2 0 4 9 . 5 . 2 N o t a t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 5 9 . 5 . 3 C l a s s R a d a r D y n a m i c M o d e l . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 5 9 . 5 . 4 C l a s s C a r D y n a m i c M o d e l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 6 9 . 5 . 5 V e r s i o n 1 C l a s s C o n t r o l D y n a m i c M o d e l . . . . . . . . . . . . . . . . . . . . . 2 0 8 9 . 5 . 6 S Y S T E M C l a s s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 1 9 . 6 I n i t i a l S i m u l a t i o n T e s t i n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 2 9 . 6 . 1 R e fi n e d C o n t r o l C l a s s D y n a m i c M o d e l . . . . . . . . . . . . . . . . . . . . . . 2 1 4 9 . 6 . 2 S u m m a r y o f S i m u l a t i o n - B a s e d R e fi n e m e n t s . . . . . . . . . . . . . . . . . . . 2 1 7 9 . 7 S P I N - B a s e d M o d e l C h e c k i n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 8 9 . 7 . 1 S t a t e E x p l o s i o n P r o b l e m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 8 9 . 7 . 2 C o m m o n l y C h e c k e d P r o p e r t i e s . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 0 9 . 7 . 3 S t a t e A s s e r t i o n s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 1 9 . 7 . 4 S t a t e R e a c h a b i l i t y A n a l y s i s . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 4 9 . 7 . 5 P r o g r e s s S t a t e A n a l y s i s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 5 9 . 7 . 6 N e v e r C l a i m s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 8 9 . 7 . 7 A c c e p t a n c e C y c l e s i n N e v e r C l a i m s . . . . . . . . . . . . . . . . . . . . . . . 2 3 2 9 . 7 . 8 A n a l y s i s W i t h N o n - D e t e r m i n i s t i c T r a n s i t i o n s . . . . . . . . . . . . . . . . . . 2 3 5 9 . 8 D i s c u s s i o n o f U s i n g S P I N f o r A n a l y s i s . . . . . . . . . . . . . . . . . . . . . . . 2 3 9 9 . 8 . 1 B u g s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 9 v i i i 9 . 5 . 2 C h ; 9 . 8 . 3 L a t 9 . 8 . 1 N e ‘ 1 0 C o n c 1 ' 1 1 1 . 1 5 1 1 1 1 1 1 1 1 1 . 2 1 q u A V H D 1 B H y d r a C P r o m D Y a c c E U M L F U M L G V H D H S P I N 9 . 8 . 2 C h a l l e n g e s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 0 9 . 8 . 3 L a c k o f F a i r n e s s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 0 9 . 8 . 4 N e v e r C l a i m s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 2 1 0 C o n c l u s i o n s a n d fi x t u r e I n v e s t i g a t i o n s 2 4 4 1 0 . 1 S u m m a r y o f C o n t r i b u t i o n s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 5 1 0 . 2 F u t u r e R e s e a r c h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 8 A V H D L f o r F u r n a c e E x a m p l e 2 5 7 B H y d r a L a n g u a g e I n p u t f o r t h e S m a r t C r u i s e C a s e S t u d y 2 6 5 C P r o m e l a S p e c i fi c a t i o n s f o r S m a r t C r u i s e 2 7 0 D Y a c c G r a m m a r f o r t h e H y d r a L a n g u a g e 2 7 9 E U M L t o V H D L M a p p i n g R u l e s 2 8 2 F U M L t o P r o m e l a M a p p i n g R u l e s 2 9 3 G V H D L L C S F i l e s 3 0 7 H S P I N L C S F i l e s 3 3 1 i x 2 . 1 2 . 2 2 . 3 2 . 4 2 . 6 2 . 7 3 . 1 3 . 2 3 . 3 3 . 4 2 . 1 2 . 2 2 . 3 2 . 4 2 . 5 2 . 6 2 . 7 3 . 1 3 . 2 3 . 3 3 . 4 3 . 5 3 . 6 3 . 7 3 . 8 3 . 9 3 . 1 0 3 . 1 1 4 . 1 4 . 2 4 . 3 4 . 4 5 . 1 5 . 2 5 . 3 5 . 4 5 . 5 5 . 6 5 . 7 L I S T O F F I G U R E S S t a t e t r a n s i t i o n e v e n t s y n t a x c o n v e n t i o n s . . . . . . . . . . . . . . . . . . . . . . A n e x a m p l e o f a s e q u e n c e d i a g r a m . . . . . . . . . . . . . . . . . . . . . . . . . . M e t a m o d e l o f a U M L d y n a m i c m o d e l . . . . . . . . . . . . . . . . . . . . . . . . A V H D L e n t i t y s p e c i fi c a t i o n f o r a s i m p l e s t a t e m a c h i n e i m p l e m e n t a t i o n o f p o r - t i o n o f a C D p l a y e r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V H D L s p e c i fi c a t i o n f o r a s i m p l e s t a t e m a c h i n e i m p l e m e n t i n g a C D P l a y e r . P r o m e l a m o d e l f o r a s i m p l e c l i e n t — s e r v e r s y s t e m . . . . . . . . . . . . . . . . . . F r a s e r ’ s t a x o n o m y o f i n t e g r a t i o n m e t h o d o l o g i e s . . . . . . . . . . . . . . . . . . B o u r d e a u a n d C h e n g ’ s b a s i c a p p r o a c h t o f o r m a l i z a t i o n . . . . . . . . . . . . . . M e t a m o d e l o f a U M L d y n a m i c m o d e l . . . . . . . . . . . . . . . . . . . . . . . . T h e f o u r b a s i s r e l a t i o n s f r o m w h i c h a l l o t h e r a s s o c i a t i o n r e l a t i o n s h i p s c a n b e f o r m e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E x a m p l e s h o w i n g h o w m u l t i p l i c i t i e s 0 . . 1 a n d l . . * a r e d e c o m p o s e d t o f i n d t h e s e t o f c o n s t r a i n t s f o r a n a s s o c i a t i o n . . . . . . . . . . . . . . . . . . . . . . . . . A s m a l l m e t a m o d e l t o d e m o n s t r a t e t h e p r e d i c a t e c o n s t r a i n t s . . . . . . . . . . . E x a m p l e o f d e p e n d e n c i e s b e t w e e n c l a s s e s a n d a s s o c i a t i o n s . . . . . . . . . . . . E x a m p l e o f a n a m b i g u o u s s e c t i o n o f a U M L d i a g r a m . . . . . . . . . . . . . . . T h e r e l a t i o n s h i p b e t w e e n t h e s e m i - f o r m a l s o u r c e l a n g u a g e , t h e f o r m a l t a r g e t l a n g u a g e , t h e h o m o m o r p h i c b i n d i n g a n d t h e i n s t a n c e - s p e c i fi c m a p p i n g r u l e s . A g g r e g a t i o n s b e t w e e n A ’ a n d B ’ a r e i n f e r r e d . . . . . . . . . . . . . . . . . . . U M L c l a s s m e t a m o d e l w i t h b e h a v i o r i n c l u d e d a s a r e l a t i o n t o a c l a s s . . . . . . T h e u n i fi e d c l a s s / d y n a m i c U M L m e t a m o d e l . . . . . . . . . . . . . . . . . . . . D e s i g n p r o c e s s d a t a fl o w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S a m p l e u s e c a s e f o r a h e a t i n g a n d c o o l i n g s y s t e m . . . . . . . . . . . . . . . . . S y s t e m C o n t e x t M o d e l f o r a h y p o t h e t i c a l h e a t i n g / c o o l i n g s y s t e m . . . . . . . . S a m p l e s e q u e n c e d i a g r a m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . U n i fi e d U M L c l a s s / d y n a m i c d i a g r a m m e t a m o d e l . . . . . . . . . . . . . . . . . . T h e l i s t o f n o n - a g g r e g a t e a n d n o n - g e n e r a l i z a t i o n r e l a t i o n s h i p p r e d i c a t e s f r o m t h e f o r m a l i z e d r e p r e s e n t a t i o n o f t h e U M L m e t a m o d e l . . . . . . . . . . . . . T h e l i s t a g g r e g a t i o n r e l a t i o n s h i p s p r e d i c a t e s f r o m t h e f o r m a l i z e d r e p r e s e n t a t i o n o f t h e U M L m e t a m o d e l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M e t a m o d e l f o r V H D L m o d e l s . . . . . . . . . . . . . . . . . . . . . . . . . . . . T h e d e fi n i t i o n o f t h e h o m o m o r p h i c m a p p i n g o f c l a s s e s f r o m t h e U M L m e t a m o d e l t o t h e V H D L m e t a m o d e l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T h e d e fi n i t i o n o f t h e h o m o m o r p h i c m a p p i n g o f r e l a t i o n s h i p p r e d i c a t e s f r o m t h e U M L m e t a m o d e l t o t h e V H D L m e t a m o d e l . . . . . . . . . . . . . . . . . . . T h e p r e s e r v e d h a s C o m p a n d h a s P a r t r e l a t i o n s h i p p r e d i c a t e s . . . . . . . . . . . X 1 2 1 3 1 6 1 7 2 4 3 1 3 3 3 6 3 8 3 9 4 0 4 2 4 4 4 6 4 9 5 1 5 2 5 5 5 6 5 7 5 9 6 5 6 6 6 7 6 8 6 9 Tp 5 3 8 a : 5 . 9 I t 5 . 1 0 E 1 1 5 1 1 V 1 5 . 1 2 5 3 5 . 1 3 E x 5 1 4 E N 6 . 1 5 1 1 5 . 1 6 T i 5 . 1 7 E ) 3 . 1 8 E : 5 . 1 9 T 1 5 . 2 0 T I 5 . 2 1 I : 5 . 2 2 I ; 5 . 2 3 0 5 . 2 4 E ; . 5 3 2 5 s . 6 . 1 T 6 . 2 6 . 3 . _ 3 6 . 4 T 6 . 5 T 6 . 6 ' I 5 . 8 S a m p l e c l a s s m o d e l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1 5 . 9 T h e V H D L p a c k a g e s t a t e m e n t s g e n e r a t e d f o r e a c h c l a s s . . . . . . . . . . . . . . 7 5 5 . 1 0 E n t i t y / A r c h i t e c t u r e p a i r f r o m d i a g r a m 5 . 8 c l a s s A . . . . . . . . . . . . . . . . 7 6 5 . 1 1 V H D L g e n e r a t e d f o r a n i n s t a n c e o f c l a s s D f r o m F i g u r e 5 . 8 . . . . . . . . . . . 7 6 5 . 1 2 S a m p l e d y n a m i c m o d e l t o i l l u s t r a t e t h e m a p p i n g o f d y n a m i c m o d e l c o m p o n e n t s . 7 9 5 . 1 3 E x a m p l e o f t h e g e n e r a t e d s t a t e D 2 . . . . . . . . . . . . . . . . . . . . . . . . . 8 2 5 . 1 4 E x a m p l e e n t i t y a n d a r c h i t e c t u r e f o r c o m p o s i t e s t a t e D . . . . . . . . . . . . . . 8 6 5 . 1 5 T h e i n s t a n t i a t i o n o f c o m p o s i t e s t a t e D a s c o n t a i n e d i n p a r e n t s t a t e 0 P 2 . L i n e 3 s h o w s t h e m a p p i n g f o r t h e ’ i n s t a t e ’ p r e d i c a t e f o r s t a t e 0 P 2 . . . . . . . . 8 6 5 . 1 6 T h i s e x a m p l e i l l u s t r a t e s t h e m a p p i n g f r o m R u l e V H D L 8 t o g e n e r a t e t w o c o n - c u r r e n t c o m p o s i t e s t a t e s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 5 . 1 7 E x a m p l e o f t h e j o i n p s e u d o - s t a t e g e n e r a t e d b y R u l e V H D L 9 i n s t a t e T O P . . 9 0 5 . 1 8 E x a m p l e o f t h e g e n e r a t e d h i s t o r y i n i t i a l s t a t e g e n e r a t e d b y R u l e V H D L 1 1 . N o n - h i s t o r y i n i t i a l s t a t e s , p e r R u l e V H D L 1 0 , a r e t h e s a m e e x c e p t t h e a s s i g n m e n t o n l i n e 1 1 i s a c o n s t a n t a n d l i n e s 2 a n d 6 a r e n o t n e e d e d . . . . . . . . . . . 9 1 5 . 1 9 T h e c l a s s d i a g r a m f o r a h e a t i n g a n d c o o l i n g s y s t e m . . . . . . . . . . . . . . . . 9 3 5 . 2 0 T h e d y n a m i c m o d e l f o r t h e c o n t r o l l e r c l a s s f o r t h e h e a t i n g — c o o l i n g s y s t e m . . . 9 3 5 . 2 1 T h e e n t i t y s e c t i o n f r o m t h e F u r n a c e R e l a y c o m p o n e n t o f t h e t o p s t a t e f r o m F i g u r e 5 . 2 0 . T h e m a t c h i n g a r c h i t e c t u r e i s i n F i g u r e 5 . 2 2 . . . . . . . . . . . 9 4 5 . 2 2 T h e a r c h i t e c t u r e s e c t i o n f r o m t h e P h r n a c e R e l a y c o m p o n e n t o f t h e t o p s t a t e f r o m F i g u r e 5 . 2 0 T h e m a t c h i n g e n t i t y i s i n F i g u r e 5 . 2 1 . . . . . . . . . . . . . . . 9 5 5 . 2 3 O u t p u t f r o m d r i v e r s c e n a r i o o n e . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 6 5 . 2 4 E x e c u t i o n o u t p u t f o r s c e n a r i o t w o . T u r n i n g o n t h e h e a t a f t e r t h e t h e r m o s t a t d e m a n d s h e a t s h o u l d r e s u l t i n t h e f u r n a c e s t a r t i n g . T h i s s e q u e n c e s h o w s i t d o e s n o t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 6 5 . 2 5 S c e n a r i o t h r e e . D r i v i n g t h e c o n t r o l l e r i n t o a f u r n a c e o n a n d A C o n c o n d i t i o n . . 9 8 6 . 1 T h e u n i fi e d c l a s s / d y n a m i c m e t a m o d e l f o r U M L . R e p e a t e d f r o m F i g u r e 5 . 1 . . . 1 0 2 6 . 2 T h e m e t a m o d e l f o r S P I N / P r o m e l a m e t a m o d e l s . . . . . . . . . . . . . . . . . . . 1 0 3 6 . 3 T h e l i s t o f n o n - a g g r e g a t e a n d n o n - g e n e r a l i z a t i o n r e l a t i o n s h i p p r e d i c a t e s f r o m t h e f o r m a l i z e d r e p r e s e n t a t i o n o f t h e U M L m e t a m o d e l . . . . . . . . . . . . . 1 0 4 6 . 4 T h e l i s t o f n o n - a g g r e g a t e a n d n o n - g e n e r a l i z a t i o n r e l a t i o n s h i p p r e d i c a t e s f r o m t h e f o r m a l i z e d r e p r e s e n t a t i o n o f t h e U M L m e t a m o d e l . . . . . . . . . . . . . 1 0 4 6 . 5 T h e d e fi n i t i o n o f t h e h o m o m o r p h i c m a p p i n g o f c l a s s e s f r o m t h e U M L m e t a m o d e l t o t h e P r o m e l a m e t a m o d e l . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 5 6 . 6 T h e d e fi n i t i o n o f t h e h o m o m o r p h i c m a p p i n g o f r e l a t i o n s h i p p r e d i c a t e s f r o m t h e U M L m e t a m o d e l t o t h e P r o m e l a m e t a m o d e l . . . . . . . . . . . . . . . . . . 1 0 5 6 . 7 T h e p r e s e r v e d h a s C o m p a n d h a s P a r t r e l a t i o n s h i p p r e d i c a t e s . . . . . . . . . . . 1 0 6 6 . 8 S a m p l e c l a s s m o d e l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 8 6 . 9 P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d f o r c l a s s A i n F i g u r e 6 . 8 . . . . . . . . . . . . . 1 1 0 6 . 1 0 A s a m p l e d y n a m i c m o d e l f o r c l a s s A f r o m F i g u r e 6 . 8 . . . . . . . . . . . . . . . 1 1 4 6 . 1 1 T h e P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d f o r O b j e c t A i n F i g u r e 6 . 1 0 ( t h e t o p l e v e l o f t h e m o d e l ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 6 6 . 1 2 P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d b y R u l e P r o m e l a 8 f r o m F i g u r e 6 . 1 0 f o r c o m - p o s i t e s t a t e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 0 6 . 1 3 P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d b y R u l e P r o m e l a 8 f r o m F i g u r e 6 . 1 0 f o r t h e t r a n s i t i o n t o s t a t e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 1 6 . 1 4 P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d f o r c l a s s A i n F i g u r e 6 . 8 . . . . . . . . . . . . . 1 2 4 x i i : 6 . 1 6 P r o m 6 . 1 6 C o m 5 . 1 7 S t a t e . I 6 . 1 6 A n e E 6 . 1 9 T h e 6 . 2 0 T h e I 6 . 2 1 T h e u 6 . 2 2 H i s t 8 . 1 T h e 8 . 2 T h e 8 3 R 9 5 1 ; T 3 . 9 T 1 1 1 : 3 9 . 1 S y s t 9 . 2 S y s t 9 . 3 T a x i . 4 M a i 9 . 5 E X C I 9 9 E x c . 9 7 E l m 9 - 3 S m a 9 - 9 T h e 6 . 1 5 6 . 1 6 6 . 1 7 6 . 1 8 6 . 1 9 6 . 2 0 6 . 2 1 6 . 2 2 8 . 1 8 . 2 8 . 3 8 . 4 9 . 1 9 . 2 9 . 3 9 . 4 9 . 5 9 . 6 9 . 7 9 . 8 9 . 9 9 . 1 0 9 . 1 1 9 . 1 2 9 . 1 3 9 . 1 4 9 . 1 5 9 . 1 6 9 . 1 7 9 . 1 8 9 . 1 9 9 . 2 0 9 . 2 1 9 . 2 2 9 . 2 3 9 . 2 4 P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d f o r s t a t e a i n F i g u r e 6 . 1 0 . . . . . . . . . . . . 1 2 6 C o m p o s i t e s t a t e c p 2 f r o m d i a g r a m F i g u r e 6 . 1 0 . . . . . . . . . . . . . . . . . . . 1 3 1 S t a t e d 2 f r o m F i g u r e 6 . 1 0 i l l u s t r a t i n g t h e s t a t e m e n t s g e n e r a t e d b y R u l e P r o m e l a 1 5 f o r a n u p w a r d t r a n s i t i o n . . . . . . . . . . . . . . . . . . . . . . . 1 3 1 A n e x t r e m e e x a m p l e o f m u l t i p l e t r a n s i t i o n s o n a s i n g l e e v e n t g u a r d e d b y v a r y i n g g u a r d s . T h e b o t t o m h a l f o f t h e fi g u r e s h o w s e v e n t l e s s g u a r d e d t r a n s i t i o n s . . 1 3 3 T h e P r o m e l a g e n e r a t e d b y R u l e P r o m e l a 1 6 f o r s t a t e S i n t h e t O p h a l f o f F i g u r e 6 . 1 8 1 3 4 T h e P r o m e l a g e n e r a t e d b y R u l e P r o m e l a 1 6 f o r s t a t e S i n t h e b o t t o m h a l f o f F i g u r e 6 . 1 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 4 T h e P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d b y R u l e P r o m e l a 1 8 f o r t h e j o i n i n F i g - u r e 6 . 1 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 7 H i s t o r y s t a t e s t a t e m e n t s g e n e r a t e d b y R u l e P r o m e l a 2 0 f o r c o m p o s i t e s t a t e c p l i n F i g u r e 6 . 1 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 9 T h e d a t a fl o w m o d e l f o r t h e H y d r a t r a n s l a t i o n s y s t e m . . . . . . . . . . . . . . . 1 7 3 T h e g e n e r i c c l a s s m o d e l f o r t h e L S C L . D o t t e d l i n e s r e p r e s e n t m e t h o d c a l l s . . . 1 8 1 R e s o l v i n g a t r a n s i t i o n d e s t i n a t i o n i n a c o m p o s i t e s t a t e h i e r a r c h y . T h e o v a l s r e p r e s e n t c o m p o s i t e s t a t e s . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8 6 T h r e e d i f f e r e n t p o r t i o n s o f g e n e r a t e d s p e c i fi c a t i o n s w r i t t e n b y m e t h o d s O u t p u t a n d L c l O u t p u t f r o m s t a t e s O b j e c t , I n i t , a n d S t a t e , r e s p e c t i v e l y . . . . . . . . 1 8 8 S y s t e m C l a s s C o n t e x t M o d e l f o r S m a r t C r u i s e . . . . . . . . . . . . . . . . . . . 1 9 2 S y s t e m U s e C a s e M o d e l f o r S m a r t C r u i s e . . . . . . . . . . . . . . . . . . . . . . 1 9 3 V a r i o u s d i s t a n c e s i n v o l v e d t o c l o s e o n a n d m a i n t a i n a s a f e t r a i l i n g d i s t a n c e . . . 1 9 5 M a i n fl o w o f e v e n t s f r o m U s e C a s e “ M a i n t a i n C r u i s e ” . . . . . . . . . . . . . . 1 9 6 E x c e p t i o n “ C a r g o i n g t o o f a s t ” f r o m U s e C a s e “ M a i n t a i n C r u i s e ” . . . . . . . . 1 9 7 E x c e p t i o n “ T a r g e t fi r m ” f r o m U s e C a s e “ M a i n t a i n C r u i s e ” . . . . . . . . . . . 1 9 8 E x c e p t i o n “ B r a k e s A p p l i e d ” f r o m U s e C a s e “ M a i n t a i n C r u i s e ” . . . . . . . . . . 1 9 8 S m a r t C r u i s e c l a s s d i a g r a m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 9 T h e d a t a d i c t i o n a r y f o r S m a r t C r u i s e . D e fi n i t i o n o f t h e i n s t a n c e v a r i a b l e s i s i n F i g u r e 9 . 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 0 S e q u e n c e d i a g r a m f o r i n i t i a l s e q u e n c e u n t i l t a r g e t i s w i t h i n r a n g e . . . . . . . . 2 0 3 S t a t e t r a n s i t i o n e v e n t s y n t a x c o n v e n t i o n s . . . . . . . . . . . . . . . . . . . . . . 2 0 5 T h e r a d a r c l a s s d y n a m i c m o d e l . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 7 T h e c a r c l a s s d y n a m i c m o d e l . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 9 V e r s i o n 1 o f t h e C o n t r o l c l a s s d y n a m i c m o d e l . . . . . . . . . . . . . . . . . . . . 2 1 0 T h e S Y S T E M c l a s s d y n a m i c m o d e l . . . . . . . . . . . . . . . . . . . . . . . . 2 1 1 T h e P r o m e l a s t a t e m e n t s e q u i v a l e n t t o t h e m o d e l i n F i g u r e 9 . 1 5 . . . . . . . . . 2 1 1 T h e r e fi n e d C a r c l a s s d y n a m i c m o d e l . . . . . . . . . . . . . . . . . . . . . . . . 2 1 5 S t a t e s “ g e t s p d ” a n d “ c a l c ” f r o m c l a s s C o n t r o l p r i o r t o m o d i f y i n g t h e o r d e r o f o b t a i n i n g c a r s p e e d a n d n e x t d i s t a n c e . . . . . . . . . . . . . . . . . . . . . . 2 1 7 D a t a fl o w d i g r a m f o r b u i l d i n g a S P I N a n a l y z e r . . . . . . . . . . . . . . . . . . 2 2 0 M o d i fi c a t i o n o f s t a t e “ c a l c ” t o i n c l u d e a n a s s e r t i o n s t a t e m e n t . . . . . . . . . . . 2 2 2 p a n o u t p u t f r o m t h e m o d e l w i t h n o a s s e r t i o n v i o l a t i o n . . . . . . . . . . . . . . 2 2 3 p a n o u t p u t f r o m t h e m o d e l w i t h a t a r g e t s p e e d o f 8 0 f t / s e c a n d a c a r s p e e d o f 1 1 0 f t / s e c p r o d u c i n g a n a s s e r t i o n v i o l a t i o n . . . . . . . . . . . . . . . . . . . 2 2 3 L a s t p a r t o f S P I N o u t p u t w h e n c l o s i n g v e l o c i t y i s t o o h i g h . . . . . . . . . . . . 2 2 6 p a n a n a l y s i s r u n s h o w i n g a n o n - p r o g r e s s c y c l e i n t h e t a r g e t t r a i l l o o p . . . . . . 2 2 7 x i i 9 . 2 5 T h e s 9 . 2 6 A m e 9 . 2 7 A n : 9 2 % l i e v 9 . 2 9 1 1 0 : 9 . 3 0 . 4 1 1 2 9 . 3 1 S t a 9 . 3 2 T r a 9 . 3 3 S t a 9 . 3 4 T h 9 . 3 5 A i 9 . 2 5 9 . 2 6 9 . 2 7 9 . 2 8 9 . 2 9 9 . 3 0 9 . 3 1 9 . 3 2 9 . 3 3 9 . 3 4 9 . 3 5 T h e s a m e a n a l y s i s a s s h o w n i n F i g u r e 9 . 2 4 b u t w i t h a p r o g r e s s l a b e l a t t a c h e d t o s t a t e “ c a l c ” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A n e v e r c l a i m S p e c i f y i n g t h a t s t a t e “ i d l e ” i s o n l y e n t e r e d o n c e , a t t h e s t a r t o f e x e c u t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A n a n a l y s i s r u n u s i n g t h e n e v e r c l a i m f r o m F i g u r e 9 . 2 6 . . . . . . . . . . . . . . N e v e r c l a i m t o c h e c k f o r t h e i s s u a n c e o f a n a c k n o w l e d g m e n t w h e n a t a r g e t m e s - s a g e i s s e n t . T h i s c l a i m w a s g e n e r a t e d b y t h e i n p u t t o S P I N s e e n o n l i n e 1 . L i n e 1 w a s d e r i v e d f r o m F o r m u l a ( 9 . 2 ) . . . . . . . . . . . . . . . . . . . . . . M o d i fi c a t i o n o f t h e t r a n s i t i o n t o r e m o v e t h e a c k n o w l e d g e m e s s a g e . . . . . . . . A n a l y z e r o u t p u t u s i n g t h e n e v e r c l a i m i n F i g u r e 9 . 3 0 a n d a m o d i fi e d m o d e l t o d i s a b l e m e s s a g e a c k n o w l e d g e m e n t . . . . . . . . . . . . . . . . . . . . . . . . S t a t e “ r 3 ” a f t e r a d d i n g a n o t h e r t r a n s i t i o n t o c a u s e a b r a k e s m e s s a g e t o b e g e n — e r a t e d n o n - d e t e r m i n i s t i c a l l y . T h e d a s h e d l i n e s S h o w t h e e x i s t i n g t r a n s i t i o n s a n d t h e s o l i d l i n e s h o w s t h e n e w t r a n s i t i o n . . . . . . . . . . . . . . . . . . . T r a c e o u t p u t s h o w i n g a c c e p t a n c e c y c l e i n n e v e r c l a i m u s e d t o v e r i f y b e h a v i o r o f “ b r a k e s ” m e s s a g e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S t a t e s g e t s p d , c a l c , a n d c a r o fi f r o m o b j e c t C o n t r o l . . . . . . . . . . . . . . . . . T h e t h r e e s t a t e s f r o m F i g u r e 9 . 3 3 m o d i fi e d t o a d d c a r s p e e d ( v c ) t r a n s i t i o n t o s t a t e “ c a r o f f ” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A e a r l i e r v e r s i o n o f t h e d y n a m i c m o d e l f o r c l a s s R a d a r u s i n g c o n c u r r e n t s u b - s t a t e s . T h e m o d e l f a i l s d u e t o l a c k o f f a i r n e s s . . . . . . . . . . . . . . . . . . x i i i 2 2 8 2 3 0 2 3 0 2 3 3 2 3 4 2 3 4 2 3 5 2 3 7 2 3 8 2 3 8 2 4 1 C h a ] I n t I E m h r d d e p a r t s [ 1 ] . s o f t w a r e ; s i t u a t i o n : e m b e d d e . 1 9 9 1 ' ( ' o n ' i n a C h i a n d 1 1 1 5 0 ! C ‘ l r r e n t h E m b e d d e : 1 9 9 6 3 1 . D H ; l a n g u a g e i ” a n d r e 1 & 1 i n H 1 2 1 1 . C h a p t e r 1 I n t r o d u c t i o n E m b e d d e d s y s t e m s a r e t y p i c a l l y 1 0 t o 1 0 0 t i m e s m o r e c o m m o n t h a n t h e i r d e s k t o p c o u n t e r - p a r t s [ 1 ] , r e s i d i n g i n s y s t e m s r a n g i n g f r o m e n g i n e s y s t e m s , t o t o a s t e r s , t o a u t o p i l o t s . T h e s o f t w a r e f o r e m b e d d e d s y s t e m s i s , i n g e n e r a l , m o r e d i f fi c u l t t o w r i t e a n d d e b u g b e c a u s e e m - b e d d e d s y s t e m s s o f t w a r e u s u a l l y i n v o l v e s t i m e — d e p e n d e n t s e c t i o n s i n d i f fi c u l t t o i n s t r u m e n t S i t u a t i o n s . F o r e x a m p l e , e m b e d d e d s y s t e m s r a r e l y h a v e a k e y b o a r d o r d i s p l a y . N o n e t h e l e s s , e m b e d d e d s y s t e m s u s u a l l y m u s t a c h i e v e a h i g h e r l e v e l o f r o b u s t n e s s a n d r e l i a b i l i t y b e c a u s e t h e y c o n t r o l r e a l - w o r l d p h y s i c a l p r o c e s s e s o r d e v i c e s u p o n w h i c h w e d e p e n d , f r e q u e n t l y , i n a c r i t i c a l w a y . C o n s e q u e n t l y , m e t h o d s f o r d e v e l o p i n g a n d m o d e l i n g e m b e d d e d s y s t e m s a n d r i g o r o u s l y v e r i f y i n g b e h a v i o r b e f o r e c o m m i t t i n g t o c o d e , a r e i n c r e a s i n g l y i m p o r t a n t . C u r r e n t l y , m u c h o f t h e e m b e d d e d s y s t e m s i n d u s t r y u s e a d h o c a p p r o a c h e s f o r d e v e I O p i n g e m b e d d e d s y s t e m s [ 2 ] . F r e q u e n t l y , t h e r e a r e f e w , i f a n y , i n t e r m e d i a t e s t e p s b e t w e e n h i g h - l e v e l , p r o s e d e s c r i p t i o n s o f r e q u i r e m e n t s a n d c o d e w r i t t e n i n t h e t a r g e t i m p l e m e n t a t i o n l a n g u a g e , s u c h a s C . W i t h a u t o m o t i v e a n d a p p l i a n c e a p p l i c a t i o n s , r e q u i r e m e n t s t r a c e a b i l - i t y a n d r e u s e a r e t w o i m p o r t a n t t a s k s , b u t t h e y a r e d i f fi c u l t t o a c c o m p l i s h w h e n u s i n g o n l y i n f o r m a l d e v e l o p m e n t t e c h n i q u e s . O b j e c t - i o f e m b e d d c i n e fi c i e n t i b e t w e e n r e h a m w l t h r o u g h 1 1 ; A m i n i r e c e n d y . 1 1 o b j e c t - 0 n . a n d g a i n 1 a d d i t i o n . h o w o b j e A t p r e s e i l fl d l fi d u g d i a g r a m s M i l l . 1 m t e s t i n g , 1 1 1 o r l a n g u fl g , r C ‘ S E a r c h 1 1 8 9 W i d e 3 5 t h e t . e n a b l e a O b j e c t - o r i e n t e d d e v e l o p m e n t m e t h o d s h a v e n o t b e e n w i d e l y u s e d f o r t h e d e v e I O p m e n t o f e m b e d d e d s y s t e m s , p e r h a p s b e c a u s e o f t h e p e r c e p t i o n t h a t o b j e c t - o r i e n t a t i o n p r o d u c e s i n e f fi c i e n t c o d e . O n t h e o t h e r h a n d , e s p e c i a l l y i n a n e m b e d d e d s y s t e m , t h e c o r r e l a t i o n b e t w e e n r e a l c o m p o n e n t s i n t h e p h y s i c a l s y s t e m a n d s o f t w a r e o b j e c t s i s o f t e n v e r y g o o d . A s a r e s u l t , o u r p r e m i s e i s t h a t t h e b e n e fi t s i n s o f t w a r e q u a l i t y g a i n e d i n o t h e r d o m a i n s t h r o u g h t h e u s e o f o b j e c t - o r i e n t a t i o n s h o u l d a l s o a p p l y t o e m b e d d e d s y s t e m s . A n u m b e r o f o b j e c t - o r i e n t e d t e c h n i q u e s a n d n o t a t i o n s h a v e b e e n i n t r o d u c e d [ 3 , 4 , 5 ] , b u t r e c e n t l y , i t a p p e a r s t h a t t h e U n i fi e d M o d e l i n g L a n g u a g e ( U M L ) [ 6 ] c o u l d b e a n a p p r o a c h t o o b j e c t - o r i e n t e d m o d e l i n g t h a t i s b r o a d e n o u g h i n s c o p e t o r e p r e s e n t a v a r i e t y o f d o m a i n s a n d g a i n w i d e s p r e a d u s e . C u r r e n t l y , U M L c o m p r i s e s s e v e r a l d i f f e r e n t n o t a t i o n s [ 6 , 7 , 8 ] . I n a d d i t i o n , t h e r e a p p e a r s t o b e i n t e r e s t f r o m t h e e m b e d d e d s y s t e m s c o m m u n i t y i n e x p l o r i n g h o w o b j e c t - o r i e n t e d m o d e l i n g , s p e c i fi c a l l y U M L , c a n b e u s e d f o r e m b e d d e d s y s t e m s [ 1 ] . A t p r e s e n t , h o w e v e r , U M L i s o n l y a n o t a t i o n , w i t h n o f o r m a l s e m a n t i c s a t t a c h e d t o t h e i n d i v i d u a l d i a g r a m s , n o r i s t h e r e a f o r m a l l y d e fi n e d s e m a n t i c s f o r t h e i n t e g r a t i o n o f t h e d i a g r a m s . T h e r e f o r e , i t i s n o t p o s s i b l e t o a p p l y r i g o r o u s a u t o m a t e d a n a l y s i s o r t o e x e c u t e a U M L m o d e l i n o r d e r t o t e s t i t s b e h a v i o r , s h o r t o f w r i t i n g c o d e a n d p e r f o r m i n g e x h a u s t i v e t e s t i n g . I n o r d e r t o a d d r e s s t h i s p r o b l e m , w e h a v e d e v e l o p e d a f r a m e w o r k f o r d e r i v i n g f o r m a l l a n g u a g e s p e c i fi c a t i o n s f r o m a s u b s e t o f t h e U M L m o d e l s . O n e o v e r a r c h i n g g o a l o f t h i s r e s e a r c h , m o t i v a t e d b y t e c h n o l o g y t r a n s f e r o b j e c t i v e s , i s t o e n a b l e d e v e l o p e r s t o c o n t i n u e t o u s e w i d e l y a c c e p t e d d e v e l o p m e n t t e c h n i q u e s , b o t h i n t e r m s o f t h e m o d e l i n g l a n g u a g e a s w e l l a s t h e t a r g e t s p e c i fi c a t i o n l a n g u a g e . W e h a v e d e v e l o p e d a s e t o f f o r m a l i z a t i o n r u l e s t h a t e n a b l e a u t o m a t e d t e c h n i q u e s t o g e n e r a t e s p e c i f i c a t i o n s f r o m t h e i n d i v i d u a l U M L n o t a t i o n s . W h i l e U M L o f f e r s s e v e r a l d i f f e r e n t n o t a t i o n s , o u r p r e l i m i n a r y i n v e s t i g a t i o n s i n d i c a t e t h a t f o r m o d d i n g r e m o d d i n g 9 . 1 f o r m a h z a t i o f e m b e d d m e t a m o d e l . w r i t t e n i n 1 m o d e l i n g 1 . s e m i - f o r n n 9 1 1 3 1 1 1 9 u s ' 1 . 1 P A u m p b , l e m ' s a h s t i n t u i t i v e 1 s e m i - f o r m c e r t a i n C c 2 9 2 1 3 a r e e P fi h n , 1 h , l O H g b e l l y } T h r e e 1 1 1 6 ‘ s ; g m ] 1 2 1 8 6 1 5 6 3 1 ) . 3 g e n e r a ] m o d e l i n g r e q u i r e m e n t s a n d h i g h - l e v e l d e s i g n , t h e c l a s s a n d s t a t e d i a g r a m s a r e s u f fi c i e n t f o r m o d e l i n g e m b e d d e d s y s t e m s . T h i s d i s s e r t a t i o n p r e s e n t s r e s u l t s f r o m i n v e s t i g a t i o n s i n t o t h e f o r m a l i z a t i o n o f t h e c l a s s a n d s t a t e d i a g r a m s f o r c a p t u r i n g t h e s t r u c t u r e a n d t h e b e h a v i o r o f e m b e d d e d s y s t e m s , r e s p e c t i v e l y . T h e f o r m a l i z a t i o n s a r e b a s e d o n m a p p i n g s b e t w e e n m e t a m o d e l s o f t h e m o d e l i n g n o t a t i o n . A m e t a m o d e l i s a m o d e l o f t h e n o t a t i o n i t s e l f , w r i t t e n i n t h e c l a s s - s t r u c t u r e n o t a t i o n w h e r e “ c l a s s e s ” r e p r e s e n t s y n t a c t i c c o m p o n e n t s o f t h e m o d e l i n g l a n g u a g e . H o m o m o r p h i c m a p p i n g s a r e e s t a b l i s h e d b e t w e e n t h e m e t a m o d e l s o f t h e s e m i - f o r m a l ( s o u r c e ) a n d t h e f o r m a l ( t a r g e t ) l a n g u a g e s . T h e s e h o m o m o r p h i c r e l a t i o n s h i p s e n a b l e u s t o r i g o r o u s l y e s t a b l i s h t h e c o n s i s t e n c y o f t h e f o r m a l i z a t i o n r u l e s . 1 . 1 P r o b l e m D e s c r i p t i o n A s i m p l e , i n t u i t i v e n o t a t i o n f o r d e s c r i b i n g a s y s t e m t h a t a l s o a c c u r a t e l y c a p t u r e s t h e s y s - t e m ’ s a b s t r a c t b e h a v i o r h a s l o n g b e e n a g o a l i n t h e S o f t w a r e E n g i n e e r i n g C o m m u n i t y [ 9 , 1 0 ] . I n t u i t i v e n o t a t i o n s s u c h a s t h o s e i n c l u d e d i n U M L a r e g a i n i n g w i d e s p r e a d u s e , w h e r e t h e i r s e m i - f o r m a l i t y i s p r o b a b l y o n e o f t h e r e a s o n s f o r t h e i r p O p u l a r i t y . A b s t r a c t i o n r e q u i r e s t h a t c e r t a i n c o m p o n e n t s a n d c o n c e p t s n o t b e s p e c i fi e d t o o t i g h t l y b e c a u s e t h e a p p r o p r i a t e d e - t a i l s a r e e i t h e r n o t k n o w n o r b e c a u s e t h e d e t a i l i s “ i m p l e m e n t a t i o n s p e c i fi c ” . B u t , a t s o m e p o i n t , t h e s p e c i fi c b e h a v i o r o f t h e s y s t e m b e i n g d e s i g n e d m u s t b e a s c e r t a i n e d , h o p e f u l l y l o n g b e f o r e t h e s y s t e m i s a c t u a l l y i m p l e m e n t e d i n c o d e . T h r e e m a j o r o b j e c t i v e s g u i d e t h i s r e s e a r c h . F i r s t , w e w a n t e d t o e n a b l e t h e u s e o f i n t u - i t i v e , g r a p h i c a l n o t a t i o n s f o r t h e d e s i g n o f e m b e d d e d s y s t e m s w h i l e p r o v i d i n g a m e a n s o f p r e c i s e l y s p e c i f y i n g t h e s e m a n t i c s o f t h e w r i t t e n d i a g r a m s . S e c o n d , w e w a n t e d t o d e v e l o p a g e n e r a l f r a m e w o r k f o r c r e a t i n g m a p p i n g s f r o m d i a g r a m c o m p o n e n t s t o e l e m e n t s o f t h e t a r g e t f o r m a l s p e c i fi c a t i o n l a n g u a g e . T h e g e n e r a l f r a m e w o r k p r o v i d e s t h e r i g o r t o e n s u r e T o n s i s t e r r a i l ; e n s e x e r c i s e n e r i fi e a c a n b e 1 t h e i r r e s 1 . 2 1 A S a m e i n d t t s t r i a B e c a u s e 1 a n g n a g e T h e i S t a H d a r d e M u t e d S t r a i g h t f t h E h a t ' i 0 r a n d { h i t s P r e c i s e t i i n m a n y ( i n 0 r d 0 2 t h e C 0 1 - { 9 5 9 1 t h 1 1 e x “ M i l a n c o n s i s t e n c y b e t w e e n t h e d i a g r a m s a n d f o r m a l s p e c i fi c a t i o n . I n a d d i t i o n , t h e g e n e r a l f r a m e - w o r k e n a b l e s u s t o a l t e r t h e s e m a n t i c s o f t h e d i a g r a m . T h e t h i r d o b j e c t i v e w a s t o e n a b l e a n d e x e r c i s e c o m p l e m e n t a r y a n a l y s i s t e c h n i q u e s f o r t h e s e m i - f o r m a l d i a g r a m v i a t h e i r f o r m a l s p e c i fi c a t i o n s . S p e c i fi c a l l y , w e w a n t e d t o i n v e s t i g a t e h o w m o d e l c h e c k i n g a n d s i m u l a t i o n c a n b e u s e d i n d e p e n d e n t l y a n d i n a n i n t e g r a t e d f a s h i o n t o a n a l y z e t h e U M L m o d e l s v i a t h e i r r e s p e c t i v e s p e c i fi c a t i o n s . 1 . 2 R e s e a r c h P r o g r a m A s a m e a n s t o f a c i l i t a t e t e c h n o l o g y t r a n s f e r f o r o u r r e s u l t s , w e u s e n o t a t i o n s a l r e a d y i n i n d u s t r i a l u s e , b o t h i n t e r m s o f s o u r c e s e m i - f o r m a l l a n g u a g e a n d t a r g e t f o r m a l l a n g u a g e s . B e c a u s e U M L i s t h e d e f a c t o s t a n d a r d f o r o b j e c t - o r i e n t e d m o d e l i n g , w e u s e i t a s t h e s o u r c e l a n g u a g e . T h e i n i t i a l f o r m a l t a r g e t l a n g u a g e w e c h o s e i s V H D L [ 1 1 , 1 2 , 1 3 ] . V H D L i s a n I E E E s t a n d a r d [ 1 4 ] a n d i s c o m m o n l y u s e d i n i n d u s t r y . S i n c e V H D L s p e c i fi c a t i o n s c a n b e d i r e c t l y e x e c u t e d , t h e y p r o v i d e p r e c i s e s e m a n t i c s . I n a d d i t i o n , s i m u l a t i o n o f a V H D L m o d e l i s s t r a i g h t f o r w a r d , t h e r e f o r e , a s y s t e m m a p p e d t o V H D L a l l o w s r a p i d e x a m i n a t i o n o f s y s t e m b e h a v i o r w i t h o u t d i r e c t l y w r i t i n g c o d e . V H D L w a s i n i t i a l l y d e s i g n e d t o m o d e l h a r d w a r e , a n d t h u s h a s a r i c h s e t o f c o n s t r u c t s f o r s p e c i f y i n g t i m i n g p r O p e r t i e s . T h e a b i l i t y t o m o d e l p r e c i s e t i m i n g c o n s t r a i n t s i n a n e m b e d d e d s y s t e m s m o d e l i s v e r y u s e f u l , a n d i s n o t p r e s e n t i n m a n y o t h e r f o r m a l l a n g u a g e s . I n o r d e r t o e x p l o r e c o m p l e m e n t a r y a n a l y s i s t e c h n i q u e s , w e a l s o f o r m a l i z e d U M L i n t e r m s o f t h e c o m m o n l y u s e d l a n g u a g e P r o m e l a / S P I N [ 1 5 , 1 6 ] . P r o m e l a i s t h e l a n g u a g e u s e d t o d e s c r i b e m o d e l s t h a t a r e a n a l y z e d w i t h S P I N . S P I N a n a l y s e s a l s o i n c l u d e s i m u l a t i o n t h r o u g h e x e c u t i o n b u t , i n a d d i t i o n , s t a t e r e a c h a b i l i t y a n d m o d e l c h e c k i n g a n a l y s e s c a n b e p e r f o r m e d . t h e s e m i - f . M o d e l C h f a s y s t e m 1 F a u n a 2 9 . 2 1 . 2 ' 2 f r a m e w o r l h a v e d i s t i e r a r n i n e t l ‘ i n ' c o r r e c t q u e n t l y . t l a n g u a g e 1 W e i n t c a s e ) t h r c w h i c h i o n - m a p p i n g , C O D S t r n e t s b e t w e e n S , 1 . 3 T T h i s 1 9 3 9 ; ] O b j e c t O r “ ’ 9 h i n d ] I l l : - T h e S i s S t M o d e l c h e c k i n g p r o v i d e s t h e a n a l y s t w i t h a s e t o f t o o l s f o r c h e c k i n g t e m p o r a l p r o p e r t i e s o f a s y s t e m t h r o u g h e x h a u s t i v e s t a t e e x p l o r a t i o n . F o r m a l s e m a n t i c s h a v e b e e n a d d e d t o g r a p h i c a l 0 0 l a n g u a g e s p r e v i o u s l y [ 5 , 1 7 , 1 8 , 1 9 , 2 0 , 2 1 , 2 2 , 2 3 ] , b u t t h e m a p p i n g f r o m s e m i - f o r m a l t o f o r m a l w a s n o t b a s e d o n a g e n e r a l f r a m e w o r k . T h e r e i s , o f c o u r s e , n o o n e “ c o r r e c t ” m a p p i n g o f s e m a n t i c s ; b u t s o m e m a p p i n g s h a v e d i s t i n c t a d v a n t a g e s o v e r o t h e r s i n p r o v i d i n g p e r s p e c t i v e s o n s y s t e m p r o p e r t i e s t o b e e x a m i n e d o r a n a l y s i s t o b e p e r f o r m e d . O n t h e o t h e r h a n d , i t i s p o s s i b l e t o d e s c r i b e a n “ i n c o r r e c t ” m a p p i n g t h a t p r o d u c e s i n c o n s i s t e n t , o r e v e n c o n t r a d i c t o r y , s e m a n t i c s . C o n s e - q u e n t l y , t h e m e a n s u s e d t o a c h i e v e a m a p p i n g f r o m a s e m i - f o r m a l l a n g u a g e t o a f o r m a l l a n g u a g e i s r e l e v a n t a n d i m p o r t a n t . W e i n t r o d u c e f o r m a l s e m a n t i c s t o a s e m i - f o r m a l l a n g u a g e ( h a v i n g c h o s e n U M L i n t h i s c a s e ) t h r o u g h a m e t a m o d e l m a p p i n g t h a t d i c t a t e s w h i c h s e m i - f o r m a l c o n s t r u c t s m a p t o w h i c h f o r m a l t a r g e t l a n g u a g e c o n s t r u c t s . W e u s e a h o m o m o r p h i c m a p p i n g t o a c h i e v e t h i s m a p p i n g , t h u s t h e h o m o m o r p h i c m a p p i n g p r o v i d e s a b i n d i n g o f s e m i - f o r m a l s o u r c e l a n g u a g e c o n s t r u c t s t o t h e f o r m a l l a n g u a g e . C o n s t r u c t i o n o f t h e h o m o m o r p h i s m ( t h a t i s , t h e m a p p i n g b e t w e e n s e m i - f o r m a l c o m p o n e n t s a n d f o r m a l c o m p o n e n t s ) d i c t a t e s t h e s e m a n t i c s g i v e n t o t h e s e m i - f o r m a l l a n g u a g e . 1 . 3 T h e s i s S t a t e m e n t T h i s r e s e a r c h i s i n t e n d e d t o d e fi n e a m e t h o d o l o g y f o r d e s i g n i n g e m b e d d e d s y s t e m s u s i n g O b j e c t O r i e n t e d ( O O ) n o t a t i o n . T h e a p p r o a c h r e l i e s o n a fl e x i b l e f o r m a l i z a t i o n f r a m e w o r k f o r b i n d i n g s e m a n t i c s t o s e m i - f o r m a l g r a p h i c a l 0 0 m o d e l s . T h e s i s S t a t e m e n t C o n s t r u c t i n g a h o m o m o r p h i c m a p p i n g b e t w e e n m e t a m o d e l s o f a n T h e t e n g r o u n d 1 t e m p o r a s e m i - 1 0 1 m o r p h i s n o t a t i o n a r i g o r m designing tailed m e x a m p l e f o r m a l i n ing. I n t H y d r a th. g e n e r a t e ' Study of t 1 . 4 o b j e c t - o r i e n t e d m o d e l i n g n o t a t i o n a n d a f o r m a l l a n g u a g e p r o v i d e s t h e b a s i s f o r p r e c i s e m a p p i n g r u l e s t h a t e n a b l e s a u t o m a t e d g e n e r a t i o n o f s p e c i fi c a t i o n s i n a f o r m a l l a n - g u a g e . A n y o n e o f s e v e r a l f o r m a l l a n g u a g e s c a n p r o v i d e t h e t a r g e t , w h e r e t h e d o m a i n b e i n g m o d e l e d d e t e r m i n e s t h e r e q u i r e m e n t s f o r t h e t a r g e t l a n g u a g e . T h e c o n s i s t e n c y o f t h e m a p p i n g r u l e s i s e s t a b l i s h e d b y t h e f o r m a l i s m o f t h e h o m o m o r p h i c m a p p i n g b e t w e e n m e t a m o d e l s . A u t o m a t i c a l l y g e n e r a t e d f o r m a l s p e c i fi c a t i o n s e n a b l e a u t o m a t e d a n a l y s i s o f t h e d i a g r a m s , s p e c i fi c a l l y m o d e l c h e c k i n g a n d s i m u l a t i o n . 1 . 4 O r g a n i z a t i o n o f D i s s e r t a t i o n T h e r e m a i n d e r o f t h i s d i s s e r t a t i o n i s o r g a n i z e d a s f o l l o w s . I n C h a p t e r 2 w e r e v i e w b a c k - g r o u n d m a t e r i a l r e g a r d i n g U M L , V H D L , P r o m e l a / S P I N , m o d e l c h e c k i n g a n d t h e r e s p e c t i v e t e m p o r a l l o g i c s t h e y u s e . T h i s c h a p t e r a l s o d i s c u s s e s t h e r e l a t i o n s h i p s b e t w e e n i n f o r m a l , s e m i - f o r m a l , a n d f o r m a l m o d e l i n g n o t a t i o n s . C h a p t e r 3 d e s c r i b e s m e t a m o d e l s a n d h o m o - m o r p h i s m s b e t w e e n m e t a m o d e l s . S i n c e m e t a m o d e l n o t a t i o n i s b a s e d o n t h e c l a s s m o d e l n o t a t i o n , t h i s c h a p t e r a l s o d i s c u s s e s f o r m a l i z a t i o n o f t h e c l a s s m o d e l i n o r d e r t o p r o v i d e a r i g o r o u s b a s i s f o r t h e h o m o m o r p h i c m a p p i n g . C h a p t e r 4 p r e s e n t s o u r m e t h o d o l o g y f o r d e s i g n i n g e m b e d d e d s y s t e m s u s i n g o u r f o r m a l i z a t i o n t e c h n i q u e . C h a p t e r 5 c o n t a i n s d e - t a i l e d r u l e s f o r f o r m a l i z i n g t h e U M L c l a s s a n d d y n a m i c m o d e l s a n d i s i l l u s t r a t e d b y a s m a l l e x a m p l e o f a s y s t e m d e s i g n e d u s i n g t h e s e r u l e s . C h a p t e r 6 c o n t a i n s t h e d e t a i l e d r u l e s f o r f o r m a l i z i n g a s e c o n d l a n g u a g e , P r o m e l a , w h i c h c a n b e u s e d f o r s i m u l a t i o n a n d m o d e l c h e c k - i n g . I n C h a p t e r 7 w e r e v i e w r e l a t e d w o r k . C h a p t e r 8 d e s c r i b e s a p r o t o t y p e t o o l c a l l e d H y d r a t h a t h a s b e e n d e v e l o p e d t o i m p l e m e n t t h e d e t a i l e d m a p p i n g r u l e s a n d a u t o m a t i c a l l y g e n e r a t e V H D L a n d P r o m e l a s p e c i fi c a t i o n s . C h a p t e r 9 p r e s e n t s a n e x t e n d e d i n d u s t r i a l c a s e s t u d y o f t h e d e s i g n o f a n e m b e d d e d s y s t e m . T h i s c h a p t e r a l s o c o n t a i n s a d e t a i l e d a c c o u n t o f m o d e l C h e t p r e s e n t s C t m o d e l c h e c k i n g a n d s i m u l a t i o n u s e d t o g e t h e r o n a n i n d u s t r i a l s y s t e m . F i n a l l y , C h a p t e r 1 0 p r e s e n t s c o n c l u s i o n s , s u m m a r i z e s c o n t r i b u t i o n s , a n d d i s c u s s e s f u t u r e w o r k . C h a B a r T h i s ( ‘ 1 1 . : o v e r v i e w 1 1 5 9 ( 1 t h r t h e t o r n : C h e c k i n g t h e s l u m b e C h e e k C h e c k i n g S i n c e l l K W ? p r o r i ” 1 9 1 1 6 1 5 a 2 . 1 l T h e U n i t ; I n f - ” 1 9 1 1 1 1 2 t C h a p t e r 2 B a c k g r o u n d T h i s c h a p t e r p r o v i d e s o v e r v i e w s O n fi v e t o p i c s c e n t r a l t o t h e r e s e a r c h . W e fi r s t p r o v i d e a n o v e r v i e w o f U M L b e c a u s e i t i s t h e s o u r c e s e m i - f o r m a l o b j e c t - o r i e n t e d m o d e l i n g l a n g u a g e u s e d t h r o u g h o u t o u r r e s e a r c h . N e x t , t h e V H D L l a n g u a g e i s d e s c r i b e d b e c a u s e i t i s o n e o f t h e f o r m a l l a n g u a g e s t o w h i c h U M L i s m a p p e d . W e t h e n d i s c u s s P r o m e l a / S P I N a n d m o d e l c h e c k i n g f o r t w o r e a s o n s : fi r s t , m o d e l c h e c k i n g i s a n a n a l y s i s t e c h n i q u e c o m p l e m e n t a r y t o t h e s i m u l a t i o n c a p a b i l i t i e s p r o v i d e d b y a l a n g u a g e s u c h a s V H D L . S e c o n d l y , t h e m o d e l t o b e c h e c k e d i s fi r s t e n c o d e d i n t o a f o r m a l l a n g u a g e , s u c h a s P r o m e l a , f r o m w h i c h t h e m o d e l c h e c k i n g p r o c e d u r e ( S P I N ) c a n d e t e r m i n e t h e v a l i d i t y o f a s s e r t i o n s m a d e a b o u t t h e m o d e l . S i n c e t h e m o d e l c h e c k i n g l a n g u a g e i s f o r m a l , w e u s e i t a s a t a r g e t f o r m a l l a n g u a g e . F i n a l l y , w e p r o v i d e a n o v e r v i e w o f p r e v i o u s w o r k o n i n t e g r a t i n g f o r m a l , s e m i - f o r m a l a n d i n f o r m a l m o d e l s a n d m o r e p r e c i s e l y d e f i n e t h e m e a n i n g s o f t h e s e t h r e e t e r m s . 2 . 1 U M L O v e r v i e w T h e U n i fi e d M o d e l i n g L a n g u a g e ( U M L ) [ 7 , 8 ] i s d e s c r i b e d a s a “ g e n e r a l - p u r p o s e v i s u a l m o d e l i n g l a n g u a g e t h a t i s d e s i g n e d t o s p e c i f y , v i s u a l i z e , c o n s t r u c t , a n d d o c u m e n t t h e a r t i - f a c t s . o f a s t r u c t u r e s y s t e m . 1 O b j e c t . \ n a m i e [ 1 1 1 m o d e l t o 1 7 1 1 1 . D y n a m i c C 0 1 1 1 p 0 1 1 ( w e d e a l i i C l a s s D C l a : a n t : c l a ' s 3 8 5 . 1 s t a t m a n 9 9 9 ( 1 1 2 1 1 t r l a I ‘ i ’ l a 9 1 1 1 ] p a r t C 0 1 1 4 f a c t s o f a s o f t w a r e s y s t e m ” [ 2 4 ] . U M L i s b a s e d o n a s e r i e s o f d i a g r a m s t h a t d e p i c t t h e c l a s s s t r u c t u r e , d y n a m i c p r o p e r t i e s , a n d e v e n t s e q u e n c i n g f o r a n o b j e c t - o r i e n t e d ( 0 0 ) s o f t w a r e s y s t e m . U M L i s a n e x t e n s i o n a n d m e l d i n g o f s e v e r a l m o d e l i n g l a n g u a g e s , m o s t n o t a b l y t h e O b j e c t M o d e l i n g T e c h n i q u e [ 3 ] ( O M T ) a n d S t a t e C h a r t s [ 2 5 ] . U M L c l a s s d i a g r a m s a n d d y - n a m i c m o d e l d i a g r a m s u s e n o t a t i o n s i m i l a r t o O M T . U n l i k e O M T , U M L h a s n o f u n c t i o n a l m o d e l t o d e p i c t d a t a fl o w . U M L c o n t a i n s s e v e n d i s t i n c t t y p e s o f d i a g r a m s : C l a s s D i a g r a m s , U s e C a s e D i a g r a m s , D y n a m i c M o d e l s ( s t a t e d i a g r a m s ) , I n t e r a c t i o n D i a g r a m s ( s e q u e n c e a n d a c t i v i t y d i a g r a m s ) , C o m p o n e n t D i a g r a m s , C o l l a b o r a t i o n D i a g r a m s , a n d D e p l o y m e n t D i a g r a m s . I n t h i s t h e s i s w e d e a l w i t h t h e c l a s s , d y n a m i c , u s e c a s e , a n d i n t e r a c t i o n d i a g r a m s . C l a s s D i a g r a m : T h e c l a s s d i a g r a m d e p i c t s t h e c l a s s e s a n d t h e i n t e r r e l a t i o n s b e t w e e n t h e c l a s s e s . C l a s s e s a r e d r a w n a s r e c t a n g l e s w i t h r e l a t i o n s h i p s b e t w e e n c l a s s e s d r a w n a s a n n o t a t e d l i n e s b e t w e e n t h e r e c t a n g l e s . T h e r e a r e f o u r t y p e s o f r e l a t i o n s h i p s b e t w e e n c l a s s e s . A s s o c i a t i o n i s a b i n a r y r e l a t i o n s h i p b e t w e e n t w o c l a s s e s . M u l t i p l i c i t i e s o n a s s o c i a t i o n s a r e w r i t t e n a s a n u m b e r a t e a c h e n d , w i t h t h e n u m b e r a p p l y i n g t o i n - “ * ” i n d i c a t e s s t a n c e s a t t h a t e n d o f t h e l i n e . A n o p t i o n a l i n s t a n c e i s d e n o t e d b y “ 0 . . 1 ” , m a n y , a n d “ 1 . . * ” d e n o t e s o n e o r m a n y . T h r e e a d d i t i o n a l r e l a t i o n s h i p s a r e s u b t y p e , a g g r e g a t i o n , a n d c o m p o s i t i o n , w h i c h a r e d r a w n a s a s m a l l h o l l o w t r i a n g l e , a n e m p t y d i a m o n d , a n d a fi l l e d d i a m o n d , r e s p e c t i v e l y . S u b t y p i n g i s d e n o t e d b y a s m a l l h o l l o w t r i a n g l e o n t h e s u p e r c l a s s e n d o f t h e a s s o c i a t i o n . T h e d e r i v e d c l a s s e n d o f t h e s u b t y p e r e l a t i o n s h i p i s n o t m a r k e d . F i l l e d a n d e m p t y d i a m o n d s a r e p l a c e d o n t h e a g g r e g a t e e n d o f c o m p o s i t i o n a n d a g g r e g a t i o n r e l a t i o n s h i p s , w h i l e t h e c l a s s e s t h a t c o n s t i t u t e t h e p a r t s o f t h e a g g r e g a t i o n a r e n o t m a r k e d . B o t h a g g r e g a t i o n a n d c o m p o s i t i o n i n d i c a t e c o l l e c t i o n s w h e r e t h e p a r t p l a y s a r o l e i n t h e b e h a v i o r o f t h e w h o l e b u t c o m p o s i t i o n i s t h e s o f t h D y n a m i c s c r i l : a r e u C 0 1 1 ? 0 1 1 9 s t a t U s e C a s r e q - A n C 0 1 1 d i a , w i t C a n t h e u s e 1 1 3 9 t h e s t r o n g e r r e l a t i o n s h i p b e c a u s e t h e e x i s t e n c e o f t h e p a r t d e p e n d s o n t h e e x i s t e n c e o f t h e w h o l e . I n a g g r e g a t i o n , t h i s d e p e n d e n c y d o e s n o t h o l d . D y n a m i c M o d e l : T h e d y n a m i c m o d e l i s b a s e d o n S t a t e c h a r t [ 2 5 ] c o n v e n t i o n s a n d d e — s c r i b e s d y n a m i c b e h a v i o r o f o b j e c t s t h r o u g h t h e u s e o f S t a t e c h a r t - l i k e n o t a t i o n . S t a t e s a r e d r a w n a s b o x e s w i t h r o u n d e d c o r n e r s w i t h t r a n s i t i o n s b e t w e e n s t a t e s d r a w n a s a r r o w s b e t w e e n t h e b o x e s , w h e r e t h e a r r o w i n d i c a t e s t h e d i r e c t i o n o f t h e t r a n s i t i o n . T r a n s i t i o n s a r e l a b e l e d w i t h t h e t r a n s i t i o n e v e n t , w h i c h h a s i t s o w n s y n t a x a s s h o w n i n F i g u r e 2 . 1 . C o m p o s i t e s t a t e s a r e d r a w n a s a l a r g e r o u n d e d c o r n e r r e c t a n g l e c o n t a i n i n g a s u b - s t a t e d i a g r a m . T h i s c o n s t r u c t i o n m a y c o n t i n u e r e c u r s i v e l y t o a n a r b i t r a r y n e s t - i n g l e v e l . C o n c u r r e n c y o f c o m p o s i t e s t a t e m a c h i n e s i s i n d i c a t e d b y p a r t i t i o n i n g t h e c o m p o s i t e s t a t e s w i t h d o t t e d l i n e s . E a c h r e c t a n g u l a r c o m p o n e n t b o r d e r e d o n a t l e a s t o n e s i d e w i t h a d o t t e d l i n e e x e c u t e s c o n c u r r e n t l y w i t h t h e o t h e r d e n o t e d c o m p o s i t e s t a t e s . U s e C a s e : T h e u s e c a s e d i a g r a m d o c u m e n t s U s e C a s e s a n d i s u s e d t o c a p t u r e s y s t e m r e q u i r e m e n t s . A u s e c a s e c o n t a i n s a c t o r s , t h e s y s t e m , a n d t h e u s e c a s e s t h e m s e l v e s . A n a c t o r i s a n i d e a l i z a t i o n o f a n e x t e r n a l p r o c e s s , a p e r s o n , a s y s t e m , o r s o m e e x t e r n a l c o m p o n e n t t h a t i n t e r a c t s w i t h t h e s y s t e m . T h e s y s t e m i s r e p r e s e n t e d i n t h e u s e c a s e d i a g r a m a s a l a r g e r e c t a n g l e c o n t a i n i n g o v a l u s e c a s e s . E a c h u s e c a s e i s c o n n e c t e d w i t h l i n e s t o l a b e l e d a c t o r s o n t h e o u t s i d e o f t h e s y s t e m r e c t a n g l e . E a c h u s e c a s e c a n b e i n s t a n t i a t e d a s a s c e n a r i o , o f t e n p r e s e n t e d a s a s e q u e n c e d i a g r a m , w h i c h g i v e s t h e s p e c i fi c a c t i o n s f o r a c t o r s a n d t h e s y s t e m i n a p a r t i c u l a r s i t u a t i o n . U s e c a s e s a r e u s e f u l f o r c a p t u r i n g h i g h l e v e l r e q u i r e m e n t s a n d t h e g o a l s o f t h e s y s t e m . I n c r e a s i n g l y , u s e c a s e s a r e p r o v i d i n g i n f o r m a t i o n u s e f u l f o r v a l i d a t i n g t h e s y s t e m d u r i n g s y s t e m 1 0 w w ' l n t e r a c t i o w i t h i m m : m m : m d m g : d e e p m m T h 5 9 4 5 ' 1 2 6 ] O f t h e h . “ a n d a n a l y s i s . I n t e r a c t i o n D i a g r a m s : I n t e r a c t i o n d i a g r a m s d e p i c t t h e i n t e r a c t i o n b e t w e e n o b j e c t s w i t h i n t h e s y s t e m , a n d w i t h a c t o r s o u t s i d e o f t h e s y s t e m . I n t e r a c t i o n d i a g r a m s v i s u - a l l y s h o w o b j e c t s a n d t h e fl o w o f m e s s a g e s b e t w e e n o b j e c t s f o r a p a r t i c u l a r s c e n a r i o o f s y s t e m O p e r a t i o n . T h e i n t e r a c t i o n d i a g r a m w e u s e i n t h i s w o r k i s t h e S e q u e n c e D i - a g r a m . F i g u r e 2 . 2 s h o w s a s e q u e n c e d i a g r a m l i s t i n g o b j e c t s c a r , r a d a r , a n d c o n t r o l a c r o s s t h e t o p a l o n g w i t h o n e e x t e r n a l a c t o r . T h e v e r t i c a l l i n e s d e p i c t t i m e d o w n w a r d a n d t h e h o r i z o n t a l l i n e s S h o w m e s s a g e i n t e r a c t i o n b e t w e e n t h e o b j e c t s . I n t e r a c t i o n d i a g r a m s a r e u s e f u l f o r s h o w i n g t h e o p e r a t i o n o f t h e s y s t e m a t a l e v e l h i g h e r t h a n t h e d e e p v i e w p r o v i d e d b y d y n a m i c m o d e l s . A s m e n t i o n e d a b o v e , i n t e r a c t i o n d i a g r a m s p r o v i d e s n a p s h o t s o f s y s t e m b e h a v i o r t h a t c a n b e v e r i fi e d w i t h a n a l y s i s t o o l s . S e q u e n c e o i a c t i o n s p a r l o r m o d d u r i n g t r a n s i t i o n . M a y b e a s e q u e n c e o i [ E v e n t t r i g g e r i n g t r a n s i t i o n j 3 0 9 ° “ 3 W “ 8 8 1 / a c t i o n t ; a c t i o n z ; a c t i o n s E v e n t [ 7 a r d 1 1 A c t i o n L i s t A m e s s a g e , A m e s s a g e , A . . . " m e s s a g e n G u a r d c h e c k e d w h e n e v e n t o c c u r s . M e s s a g e s s e n t d u r i n g t r a n s i t i o n . F o r m a t i s e i t h e r s i m p l e e v e n t n a m e o r O b j e c t . E v e n t n o t a t i o n . F i g u r e 2 . 1 : S t a t e t r a n s i t i o n e v e n t s y n t a x c o n v e n t i o n s . T h e s y n t a x o f U M L d i a g r a m s i s d e s c r i b e d i n a s m a l l s u b s e t o f U M L i t s e l f u s i n g m e t a m o d - e l s [ 2 6 ] . A m e t a m o d e l i s a c l a s s d i a g r a m w h e r e t h e c l a s s e s d e s c r i b e s y n t a c t i c c o m p o n e n t s o f t h e t y p e o f d i a g r a m b e i n g d e s c r i b e d . A n i n s t a n c e o f a m e t a m o d e l i s a U M L d i a g r a m j u s t a s a n i n s t a n c e o f a U M L c l a s s d i a g r a m i s a s e t o f s p e c i fi c o b j e c t s i n a s y s t e m . F i g u r e 2 . 3 i s a m e t a m o d e l o f t h e U M L d y n a m i c m o d e l . T h e m e t a m o d e l d e s c r i b e s t h e i n t e r r e l a t i o n - 1 1 s h i p b e t “ C l a s s e s ( 1 . t e n t s i n ; S i g n i fi e s 2 0 r S u b h j P M i n a S U b h ‘ I a c A d i a d e i ' O r a t r x B o t h S p e S t r o n g p r 0 f t h e C o “ H I P O S i t I n F l 5 : c o n t r o l S e t c r u i s e r e p e a t e d : { u n t i l w i t h i n 4 0 0 m . . . . . . . . . . . . . . . . . . . . . . . . - 1 _ _ _ ; _ L o o k f o r t a r g e t v e h i c l e ( i n d e fi n i t e p e r i o d o f t i m e u n t i l t a r g e t a c q u i r e d ) B e g i n c l o s i n g o n v e h i c l e F i g u r e 2 . 2 : A n e x a m p l e o f a s e q u e n c e d i a g r a m . s h i p b e t w e e n s t a t e s , t r a n s i t i o n s , e v e n t s a n d t h e o t h e r p a r t s o f t h e U M L d y n a m i c m o d e l . C l a s s e s d e c o r a t e d w i t h i t a l i c s a r e a b s t r a c t , a n d t h e r e f o r e a r e n o t r e a l i z e d b y a c t u a l c o m p o - n e n t s i n a U M L d y n a m i c m o d e l d i a g r a m . T h e e m p t y a r r o w o n c l a s s S t a t e i n F i g u r e 2 . 3 s i g n i fi e s a s p e c i a l i z a t i o n a s s o c i a t i o n b e t w e e n S t a t e a n d C o m p o s i t e S t a t e , S i m p l e S t a t e , o r S u b M a c h i n e S t a t e . S i n c e S t a t e i s a b s t r a c t , c o m p o n e n t s o f t y p e S t a t e w i l l n o t a p - p e a r i n a d y n a m i c m o d e l b u t c o m p o n e n t s o f t y p e s C o m p o s i t e S t a t e , S i m p l e S t a t e , o r S u b M a c h i n e S t a t e c a n a p p e a r w h e r e v e r a t y p e S t a t e i s r e q u i r e d . A d i a m o n d o n a n a s s o c i a t i o n e n d s p e c i fi e s a c o l l e c t i o n w i t h t h e a g g r e g a t e c l a s s o n t h e d e c o r a t e d e n d . U M L d i s t i n g u i s h e s t w o t y p e s o f c o l l e c t i o n s , a g g r e g a t i o n a n d c o m p o s i t i o n . B o t h s p e c i f y t h a t t h e p a r t p l a y s a r o l e i n t h e b e h a v i o r o f t h e c o l l e c t i o n b u t c o m p o s i t i o n i s a s t r o n g e r r e l a t i o n s h i p c h a r a c t e r i z e d b y d e p e n d e n c e o f t h e e x i s t e n c e o f t h e p a r t u p o n e x i s t e n c e o f t h e c o l l e c t i o n . A g g r e g a t i o n i s s i g n i fi e d i n U M L d i a g r a m s w i t h a h o l l o w d i a m o n d w h i l e c o m p o s i t i o n i s d e n o t e d w i t h a fi l l e d d i a m o n d . I n F i g u r e 2 . 3 t y p e S t a t e ( a n d i t s s u b t y p e s ) c o n t a i n c o m p o s i t i o n s o f A c t i o n S e q u e n c e 1 2 0 . . 1 S t a t e M a c h i n e . — — — G u a r d 9 , 0 . . 1 . t 1 s o u r c e o u t g o m g S U D S t a t e S l a t e V e r t e x 1 - - 1 T r a n s i t ' o n . 1 ” . m i n c o m i n g _ ' i ‘ ‘ P s e u d o s t a t e S t a r e b 0 . . 1 e x i t A c t i o n S e q u e n c e A L 0 . . 1 p a r e n t , 0 . . . 1 C o m p o s i t e S t a t e S i m p l e S t a t e S u b m a c h i n e S t a t e A c t i o n I l i B r a n c h S t a r t F i n a l . t r i g g e r S t a t e M a c h m e E v e n : 0 . . 1 > — - < F o r k T - J o i n S i g n a l E v e n t C a l l E v e n t T i m e E v e n t C h a i n Q B E V e m ; — H i s t o r y F i g u r e 2 . 3 : M e t a m o d e l o f a U M L d y n a m i c m o d e l . 1 3 u n d e r m w i t h 8 9 1 5 . I n i n n r e f e r e n c e s c o n t a i n t i n e f e s s a r i l A n o t t p a r t . C o r : b e m e n r b i h i d d e n r e e x a m p l e . ; a n d q a r e S i d e e f i e c t p o t e n t i a l l B a s e d t i o n o f S t ; C h i n e s . A 9 3 d } 0 f w } S t a t e v e r - u n d e r t w o d i f f e r e n t r o l e s . C o l l e c t i o n r e l a t i o n s h i p s a r e s i m i l a r t o m e m b e r s h i p r e l a t i o n s h i p s w i t h s e t s , w i t h c o m p o s i t i o n c l o s e l y m i m i c k i n g s e t m e m b e r s h i p . I n i m p l e m e n t a t i o n s , s i m p l e a g g r e g a t i o n m i g h t b e t h e r e l a t i o n s h i p w h e r e a n o b j e c t h o l d s r e f e r e n c e s t o o t h e r ( c h i l d ) o b j e c t s . I n a c o m p o s i t i o n r e l a t i o n s h i p , t h e p a r e n t o b j e c t w o u l d c o n t a i n t h e c h i l d d a t a t y p e s u c h t h a t i f t h e p a r e n t w e r e d e s t r o y e d , t h e c h i l d o b j e c t w o u l d n e c e s s a r i l y a l s o b e d e s t r o y e d . A n o t h e r d i s t i n c t i o n c a n b e m a d e b y t h e n u m b e r o f c o l l e c t i o n s t h a t c a n h o l d a g i v e n p a r t . C o m p o s e d p a r t s c a n o n l y b e a m e m b e r o f o n e c o l l e c t i o n , w h e r e a g g r e g a t e d p a r t s c a n b e m e m b e r s o f m o r e t h a n o n e c o l l e c t i o n . I f t h i s w e r e n o t t r u e f o r c o m p o s i t i o n , v e r y c o m p l e x h i d d e n r e l a t i o n s w o u l d e x i s t b e t w e e n c o l l e c t i o n c l a s s e s b y v i r t u e o f t h e i r a g g r e g a t i o n s . F o r e x a m p l e , s u p p o s e o b j e c t s p a n d q c o n t a i n e d c a s a c o m p o s i t i o n c o m p o n e n t ( t h e t y p e s o f p a n d q a r e n o t i m p o r t a n t ) . N o w s u p p o s e o b j e c t p i s d e s t r o y e d . T h i s n e c e s s a r i l y i m p l i e s t h e s i d e e f f e c t o f d e s t r o y i n g c , t h u s d e s t r o y i n g t h e c o m p o s i t i o n r e l a t i o n b e t w e e n c a n d q a n d p o t e n t i a l l y a l t e r i n g t h e b e h a v i o r o f q . B a s e d o n t h e m e t a m o d e l i n F i g u r e 2 . 3 a S t a t e M a c h i n e i s c o n s t r a i n e d t o b e a n a g g r e g a - t i o n o f S t a t e s , w h i c h a r e r e a l i z e d a s C o m p o s i t e S t a t e s , S i m p l e S t a t e s , o r S u b S t a t e M a - c h i n e s . A C o m p o s i t e S t a t e i s f u r t h e r s p e c i fi e d t o b e a n a g g r e g a t i o n o f S t a t e V e r t i c e s , e a c h o f w h i c h i s e i t h e r a S t a t e o r a P s e u d o S t a t e , t h u s f o r m i n g a r e c u r s i v e r e l a t i o n s h i p . S t a t e V e r t e x h a s t w o r e q u i r e d a s s o c i a t i o n s w i t h t r a n s i t i o n s , o n e i n a n o u t g o i n g r o l e a n d a n o t h e r i n a n i n c o m i n g r o l e . 1 4 2 . 2 V ] m m . 1 i s a d o p t e d b y d a r d a s a d T h i s r e s e a r l n f o r n : V e r y H i g h l a n g u a g e 1 c l o s e r e x a r C O l l l l n l l l l l C S y n t a x . V a n d c o m n : A l l h o i p e r h a p s , . d i s c r e t e t 3 s e r i e s o f e E l ' e m s S C l a r e e r C U . t r a n s i i i C t i c \ " T h e m a : { m e - g r a t e d . 2 . 2 V H D L O v e r v i e w V H D L 1 i s a l a n g u a g e f o r d e s c r i b i n g d i g i t a l e l e c t r o n i c h a r d w a r e s y s t e m s a n d h a s b e e n a d o p t e d b y t h e I E E E a s S t a n d a r d 1 0 7 6 [ 1 4 ] . T w o v e r s i o n s a r e c o m m o n l y a v a i l a b l e : t h e s t a n - d a r d a s a d o p t e d i n 1 9 8 7 ( V H D L ’ 8 7 ) a n d a n u p d a t e d v e r s i o n a d o p t e d i n 1 9 9 3 ( V H D L ’ 9 3 ) . T h i s r e s e a r c h a s s u m e s t h e u s e o f V H D L ’ 9 3 . I n f o r m , V H D L r e s e m b l e s A d a , l i k e l y b e c a u s e V H D L a r o s e o u t o f t h e U S . G o v e r n m e n t ’ s V e r y H i g h S p e e d I n t e g r a t e d C i r c u i t s ( V H S I C ) p r o g r a m . V H D L i s a h a r d w a r e d e s c r i p t i o n l a n g u a g e p r i m a r i l y i n t e n d e d f o r d e s c r i p t i o n o f h a r d w a r e c o m p o n e n t b e h a v i o r . H o w e v e r , o n c l o s e r e x a m i n a t i o n , i t i s e v i d e n t t h a t V H D L i s a l a n g u a g e f o r d e s c r i b i n g m u l t i p l y c o n c u r r e n t , c o m m u n i c a t i n g p r o c e s s e s s i m i l a r t o C S P [ 2 7 ] o r L O T O S [ 2 8 ] . I n s t e a d o f a p r o c e s s a l g e b r a s y n t a x , V H D L u s e s a n A d a - l i k e s y n t a x w i t h p r o c e d u r e s a n d s i g n a l s t o d e s c r i b e p r o c e s s e s a n d c o m m u n i c a t i o n c h a n n e l s . A l t h o u g h V H D L i s u s e f u l f o r d e s c r i b i n g t h e b e h a v i o r a n d s t r u c t u r e o f h a r d w a r e s y s t e m s , p e r h a p s i t s m o s t u s e f u l a s p e c t i s t h e a b i l i t y t o e x e c u t e a V H D L s p e c i fi c a t i o n . V H D L d i s c r e t e t i m e s i m u l a t o r s s i m u l a t e t h e b e h a v i o r o f a m o d e l t h r o u g h t i m e b y s c h e d u l i n g a s e r i e s o f e v e n t s b a s e d o n t h e V H D L m o d e l s t a t e m e n t s . A t e a c h s i m u l a t e d t i m e s t e p , a l l e v e n t s s c h e d u l e d f o r t h a t t i m e a r e c a r r i e d o u t ( i n z e r o s i m u l a t e d t i m e ) . A s s t a t e m e n t s a r e e x e c u t e d , m o r e t r a n s a c t i o n s a r e s c h e d u l e d f o r f u t u r e s i m u l a t e d t i m e s . W h e n n o m o r e t r a n s a c t i o n s a r e a v a i l a b l e , t h e s i m u l a t i o n e n d s . 1 T h e n a m e V H D L i s a d o u b l e a c r o n y m w i t h t h e V d e r i v e d f r o m V H S I C , w h i c h d e n o t e s V e r y H i g h S p e e d I n t e g r a t e d C i r c u i t , a n d H D L d e r i v e d f r o m H a r d w a r e D e s c r i p t i o n L a n g u a g e . 1 5 2 . 2 . 1 5 ' A 5 i n A d d i n t e r f a c e . d e s c r i p t i o r i m p l e m e n t a w fi d fi t h e o u t s i r l r e p r e s e n t , 1 - D e . 3 u s e i u s e i e n t i t ; L o o o w b a c h — h w e n d l . \ F l a m e 2 P o r t i o n 0 i T h e b t h a t r e f e r d e d i i f a l i c l fl g b t ’ l i a r P l a y e r S t . - d g fi n fi i a 1 S i i s ' n é i l s d , a r c h i t e c t 2 . 2 . 1 S t r u c t u r e a n d S t a t e m e n t s A s i n A d a , m o s t b l o c k s o f V H D L m o d e l s t a t e m e n t s h a v e t w o p a r t s : a d e c l a r a t i o n o f t h e i n t e r f a c e , a n d a s e p a r a t e d e s c r i p t i o n o f b e h a v i o r . T h e b a s i c b u i l d i n g b l o c k o f a V H D L d e s c r i p t i o n i s t h e e n t i t y . F i g u r e 2 . 4 s h o w s a V H D L e n t i t y d e c l a r a t i o n f o r a s t a t e m a c h i n e i m p l e m e n t i n g a s i m p l e C D P l a y e r . E n t i t i e s b e g i n w i t h a d e c l a r a t i o n o f t h e e n t i t y n a m e a n d a p o r t d e s c r i p t i o n . T h e p o r t d e s c r i p t i o n d e c l a r e s t h e s i g n a l s p a s s e d i n t o t h e e n t i t y f r o m t h e o u t s i d e , a n a l o g o u s t o f o r m a l p a r a m e t e r s o n a p r o c e d u r e . I n h a r d w a r e , p o r t s e s s e n t i a l l y r e p r e s e n t “ p i n s ” o n a c o m p o n e n t , b u t i n V H D L t h e i r s e m a n t i c s a r e m u c h r i c h e r . 1 — D e fi n e t h e C D P l a y e r e n t i t y . E n t i t y d e s c r i p t i o n i s d e c l a r e d fi r s t 2 u s e s t d . t e x t i o . a l l ; 3 u s e w o r k . e a s y i o . a 1 1 ; 4 e n t i t y c d p l a y e r i s 5 p o r t ( e - o n : i n b o o l e a n ; — o n b u t t o n e v e n t . 6 e - o f f : b o o l e a n ; — o f f b u t t o n e v e n t . 7 p l a y : i n b o o l e a n ; — p l a y b u t t o n 8 s t o p : b o o l e a n ) ; - s t o p b u t t o n 9 e n d c d p l a y e r ; F i g u r e 2 . 4 : A V H D L e n t i t y s p e c i fi c a t i o n f o r a s i m p l e s t a t e m a c h i n e i m p l e m e n t a t i o n o f p o r t i o n o f a C D p l a y e r T h e b e h a v i o r d e s c r i p t i o n o f a n e n t i t y i s c o n t a i n e d i n a s e p a r a t e a r c h i t e c t u r e s e c t i o n t h a t r e f e r e n c e s t h e e n t i t y d e c l a r a t i o n . T h e a r c h i t e c t u r e s e c t i o n i t s e l f m a y a l s o c o n t a i n d e c l a r a t i o n s f o r l o c a l v a r i a b l e s a n d s i g n a l s , a n d c o n t a i n s a s e t o f V H D L s t a t e m e n t s d e s c r i b - i n g b e h a v i o r . F i g u r e 2 . 5 c o n t a i n s a n e x c e r p t o f t h e a r c h i t e c t u r e d e s c r i p t i o n f o r t h e C D P l a y e r s t a t e m a c h i n e ( t h e i n i t i a l s t a t e s a n d o n e s t a t e a r e s h o w n ) . T h e p r o c e s s s t a t e m e n t d e f i n e s a n i n d e p e n d e n t , c o n c u r r e n t p r o c e s s f o r t h e e n t i t y . I n p u t t o t h e p r o c e s s c o m e s f r o m s i g n a l s d e c l a r e d i n t h e e n t i t y s t a t e m e n t a n d f r o m o t h e r v a r i a b l e s a n d s i g n a l s w i t h i n t h e a r c h i t e c t u r e . 1 6 2 a r c h i 3 - S t c 4 S 6 r = ‘ 8 - i n t . i 9 s : 1 0 i 1 1 g 1 2 b e g i n : 1 3 1 4 - l m l 1 1 5 j . 1 6 t 1 7 1 8 £ 1 9 ‘ 2 0 e i n . { 2 2 b 2 3 2 4 2 5 2 6 ‘ 2 7 e : 1 — B e h a v i o r a l p o r t i o n o f t h e C D P l a y e r 2 a r c h i t e c t u r e o n e o f c d p l a y e r i s 3 — S t a n d a r d s t a t e s u p p o r t h e a d e r 4 t y p e s t a t e s : i s ( n o n e : , r 1 , r 2 ) ; 5 t y p e s t a t e s : i s ( n o n e - c , c 1 , c 2 , c 3 ) ; 6 s i g n a l s t a t e : : s t a t e s : ; 7 s i g n a l s t a t e : : s t a t e s _ c ; 8 — i n t e r n a l e v e n t s b e t w e e n s u b s t a t e s 9 s i g n a l i _ o n , i _ o f f , i _ p l a y , i - s t o p : b o o l e a n ; 1 0 s i g n a l i n s t a t e : : s t a t e s : ; 1 1 s i g n a l i n s t a t e - c : s t a t e s _ c ; 1 2 b e g i n 1 3 1 4 — I n i t i a l p r o c e s s t h a t s t a r t s t h e o t h e r p r o c e s s e s . 1 5 i n i t i a l : p r o c e s s 1 6 b e g i n 1 7 s t a t e : < 2 r 1 , n o n e : a f t e r 1 f s ; 1 8 s t a t e : < = c 1 , n o w : a f t e r 1 f s ; 1 9 w a i t ; 2 0 a n d p r o c e s s ; 2 1 s t a t e : 1 : p r o c e s s 2 2 b e g i n 2 3 w a i t u n t i l s t a t e : = I 1 ; 2 4 s a y ( " i n s t a t e r 1 " ) ; 2 5 w a i t u n t i l e - o n ; 2 6 L o u < = t r u e , f a l s e a f t e r 1 f s ; — i n t e r n a l e v e n t 2 7 s t a t e : < = r 2 , n o n e : a f t e r 1 £ 8 ; 2 8 a n d p r o c e s s ; F i g u r e 2 . 5 : V H D L s p e c i fi c a t i o n f o r a s i m p l e s t a t e m a c h i n e i m p l e m e n t i n g a C D P l a y e r . 1 7 E n t i t i n s t a n t i a i n s t a n t i a w i t h t h e V H D a n d C o n s u g g e s t s . z e r o S l l l l l c o n s t r u c t i n p r o c e t s t a t e t n e n C A S E . a : A s t n e n t i t h e s u s p t ' \ p r i C u r r e n t . l D i o c e s s l m e r i t b l o t h e m o m D G ‘ i ’ e r i t ’ r W a i t : 7 1 E n t i t i e s c a n i n c o r p o r a t e o t h e r e n t i t i e s t h r o u g h a n i n s t a n t i a t i o n p r o c e s s . I n o r d e r t o i n s t a n t i a t e a n e n t i t y , a p o r t m a p m u s t b e s p e c i fi e d t o d e s c r i b e h o w t h e s i g n a l s i n t h e i n s t a n t i a t i n g e n t i t y a r e c o n n e c t e d t o s i g n a l s i n t h e i n s t a n t i a t e d e n t i t y . C o m m u n i c a t i o n w i t h t h e i n s t a n t i a t e d e n t i t y i s s t r i c t l y t h r o u g h t h e i n s t a n t i a t e d e n t i t y ’ s p o r t s . V H D L “ e x e c u t a b l e ” s t a t e m e n t s a r e d i v i d e d i n t o t w o g r o u p s : S e q u e n t i a l s t a t e m e n t s a n d C o n c u r r e n t s t a t e m e n t s . C o n c u r r e n t s t a t e m e n t s a r e e x e c u t e d i n p a r a l l e l , a s t h e n a m e s u g g e s t s , a n d g e n e r a l l y r e f e r e n c e a s i g n a l i n s o m e w a y . S e q u e n t i a l s t a t e m e n t s e x e c u t e i n z e r o s i m u l a t e d t i m e a n d a r e w r i t t e n i n b l o c k s i n s i d e p r o c e d u r e — l i k e c o n c u r r e n t s t a t e m e n t c o n s t r u c t s . S e q u e n t i a l s t a t e m e n t s a r e a n a l o g o u s t o c o m m o n p r o g r a m m i n g s t a t e m e n t s f o u n d i n p r o c e d u r a l l a n g u a g e s a n d p r o v i d e t h e m a j o r s o u r c e o f b e h a v i o r s p e c i fi c a t i o n . S e q u e n t i a l s t a t e m e n t s i n c l u d e a l l t h e s t a t e m e n t s c o m m o n l y f o u n d i n a p r o c e d u r a l l a n g u a g e s u c h a s I F , C A S E , a s s i g n m e n t s t a t e m e n t , f u n c t i o n d e fi n i t i o n s a n d c a l l s , a n d a v a r i e t y o f l o o p c o n s t r u c t s . A s m e n t i o n e d e a r l i e r , t h e w a i t s t a t e m e n t i s a n i m p o r t a n t s e q u e n t i a l s t a t e m e n t t h a t c a u s e s t h e s u s p e n s i o n o f t h e c u r r e n t s e c t i o n o f t h e m o d e l u n t i l t h e s p e c i fi e d e v e n t o c c u r s . A p r i m a r y c o n c u r r e n t s t a t e m e n t i s t h e p r o c e s s s t a t e m e n t . E a c h p r o c e s s d e fi n e s a c o n - c u r r e n t p r o c e d u r e w i t h i t s o w n v a r i a b l e s a n d s e q u e n t i a l s t a t e m e n t s . T h e s t a t e m e n t s i n a p r o c e s s b l o c k a r e c o n t a i n e d i n a n i m p l i c i t l o o p . A t t h e l o g i c a l c o n c l u s i o n o f a p r o c e s s s t a t e - m e n t b l o c k , w h e r e a p r o c e d u r a l l a n g u a g e s u b - p r o g r a m n o r m a l l y e x e c u t e s a n i m p l i c i t r e t u r n , t h e p r o c e s s s t a t e m e n t r e s t a r t s f r o m t h e b e g i n n i n g . C o n s e q u e n t l y , o n c e s t a r t e d , p r o c e s s e s n e v e r t e r m i n a t e , a l t h o u g h a p r o c e s s c a n b e m a d e t o s u s p e n d i n d e fi n i t e l y b y e x e c u t i n g a “ t r a i t ; ” s t a t e m e n t , w a i t i n g e s s e n t i a l l y f o r n o e v e n t . 1 8 2 . 2 . 2 O n e o f t i s t h e s t t y p e . T i s c a l l e c f t ‘ t ‘ n l i s O t t ‘ u r s . i u s i n g t h v a l u e , V a r i a b l e : S l a t e r . S i g n . l a t i o n e r i n t h e w S i b p e n s i N o t i c e t j s s t a t e m c S i g n ; l i l t ‘ r g n l E I t h e W i l l i e “ 1 8 5 a t r O n l y C h a t w o f o r S 2 . 2 . 2 S i g n a l s a n d C o m m u n i c a t i o n s O n e o f t h e i m p o r t a n t f e a t u r e s o f V H D L t h a t m a k e s i t u s e f u l f o r e m b e d d e d s y s t e m s m o d e l i n g i s t h e s i g n a l . S i g n a l s a r e V H D L d i s t i n g u i s h e d v a r i a b l e s t h a t c a n a s s u m e a n y a r b i t r a r y d a t a t y p e . T h e s i g n a l m e c h a n i s m w o r k s a s f o l l o w s : E a c h w r i t e t o a v a r i a b l e d e c l a r e d a s a s i g n a l i s c a l l e d a t r a n s a c t i o n . I f t h e v a r i a b l e ’ s v a l u e i s c h a n g e d b e c a u s e o f t h e a s s i g n m e n t , a n e v e n t i s s c h e d u l e d f o r t h e s i m u l a t e d t i m e w h e n t h e e v e n t i s t o fi r e . W h e n a n e v e n t ’ s t i m e o c c u r s , e v e r y r e f e r e n c e t o t h e s i g n a l , u s u a l l y t h r o u g h a V H D L w a i t s t a t e m e n t , i s e x e c u t e d u s i n g t h e n e w s i g n a l v a l u e . A s p e c i a l k i n d o f a s s i g n m e n t s t a t e m e n t o f t h e f o r m s i g n a l < = v a l u e , [ v a l u e . . . ] i s u s e d f o r s i g n a l s t o d e n o t e t h e i r f u n d a m e n t a l d i f f e r e n c e f r o m r e g u l a r v a r i a b l e s . S t a t e m e n t s 1 7 a n d 1 8 i n F i g u r e 2 . 5 s h o w a s s i g n m e n t s t o t h e s i g n a l s s t a t e : a n d s t a t e _ c , r e s p e c t i v e l y . S i g n a l s a r e t h e i m p l i c i t o r e x p l i c i t o b j e c t s o f a V H D L w a i t s t a t e m e n t . W h e n t h e s i m u - l a t i o n e n c o u n t e r s a w a i t , e x e c u t i o n o f t h e e n c l o s e d u n i t “ s u s p e n d s ” u n t i l t h e e v e n t s p e c i fi e d i n t h e w a i t o c c u r s . F o r e x a m p l e , t h e s t a t e m e n t “ w a i t u n t i l s t a t e = m y _ s t a t e ; ” c a u s e s s u s p e n s i o n o f t h e c o n t a i n i n g p r o c e s s u n t i l t h e s i g n a l s t a t e n e x t a s s u m e s t h e v a l u e m y - s t a t e . N o t i c e t h a t e x e c u t i o n s t o p s e v e n i f s t a t e a l r e a d y h a s t h e v a l u e m y _ s t a t e b e c a u s e t h e w a i t s s t a t e m e n t i s w a i t i n g f o r a n e v e n t t o o c c u r ( t h e c h a n g i n g o f s i g n a l s t a t e ) . S i g n a l a s s i g n m e n t s a l l o w s e v e r a l v a l u e s t o b e s p e c i fi e d i n o n e s t a t e m e n t , e a c h w i t h a n i n c r e m e n t a l t i m e s p e c i fi c a t i o n . F o r e x a m p l e , s i g _ x < = a l p h a , b e t a a f t e r 1 n s ; a s s i g n s t h e v a l u e a l p h a t o s i g l n o w ( w i t h a p p r o p r i a t e t r a n s a c t i o n — e v e n t p r o c e s s i n g ) , a n d s c h e d - u l e s a t r a n s a c t i o n t o a s s i g n b e t a t o s i g _ x o n e n a n o s e c o n d i n t h e s i m u l a t e d f u t u r e . S i n c e o n l y c h a n g e s p r o d u c e e v e n t s , t h i s s t a t e m e n t w i l l p r o d u c e a t l e a s t o n e e v e n t , a n d p e r h a p s t w o f o r s i g n a l s i g _ x d e p e n d i n g o n t h e c u r r e n t v a l u e o f s i g _ X . 1 9 2 . 2 . 3 5 O f t e n a 5 p r e s e n c e t h e r e s u l b u s i n t p l c o r n p u t a t d r i v e r s i n r e s u l t s i n d i c t a t e s l m u l t i p l e c f u n c t i o n l t a l u e o f a d a t a t y p e S i g n a l b y t h e d r i v e r a n d r e t n o n u 1 1 a f t . l e m l O s e c m ( W e n t t o l ) C o m p l i ‘ i e g 2 . 2 4 D V H D L ’ S d é 2 . 2 . 3 S i g n a l B u s s e s - — M u l t i p l e S i g n a l D r i v e r s O f t e n a s i g n a l i s u s e d t o r e p r e s e n t a h a r d w a r e b u s . T h e d i s t i n g u i s h i n g f e a t u r e o f a b u s i s t h e p r e s e n c e o f m u l t i p l e d r i v e r s ( m u l t i p l e a s s i g n m e n t s t o t h e s i g n a l ) . I n h a r d w a r e s i t u a t i o n s , t h e r e s u l t o f d r i v i n g a b u s w i t h m o r e t h a n o n e s o u r c e d e p e n d s o n t h e s p e c i fi c s o f t h e b u s i m p l e m e n t a t i o n , a n d t h u s , t h e a p p r o p r i a t e fi n a l s i g n a l v a l u e r e q u i r e s s o m e s o r t o f c o m p u t a t i o n f o r r e s o l u t i o n . I n o u r U M L t o V H D L m a p p i n g , w e f r e q u e n t l y u s e m u l t i p l e d r i v e r s f o r a s i g n a l i n o r d e r t o s i m u l a t e m e s s a g e s a n d e v e n t s , h o w e v e r o u r m a p p i n g r a r e l y r e s u l t s i n t w o a c t i v e s i g n a l d r i v e r s a t o n c e . N o n e t h e l e s s , g o o d V H D L m o d e l i n g p r a c t i c e d i c t a t e s h a n d l i n g t h e m u l t i p l e d r i v e r s i t u a t i o n . T h e a p p r o p r i a t e V H D L f a c i l i t y t o r e s o l v e m u l t i p l e d r i v e r s i s c a l l e d a r e s o l v e d s i g n a l . I n e s s e n c e , a r e s o l v e d s i g n a l i n s e r t s a u s e r - d e fi n e d f u n c t i o n b e t w e e n s i g n a l a s s i g n m e n t a n d t r a n s a c t i o n p r o c e s s i n g t o c a l c u l a t e t h e d e s i r e d fi n a l v a l u e o f a s i g n a l . I n p r a c t i c e , t h e u s e r f u n c t i o n i s p a s s e d a n a r r a y o f v a l u e s f o r t h e s i g n a l d a t a t y p e w i t h e a c h e l e m e n t o f t h e a r r a y s e t t o t h e c u r r e n t v a l u e b e i n g c o n t r i b u t e d t o t h e s i g n a l b y s o m e d r i v e r s t a t e m e n t . A s p e c i a l a s s i g n m e n t v a l u e c a l l e d n u l l , “ d i s c o n n e c t s ” t h e d r i v e r f r o m t h e s i g n a l , e f f e c t i v e l y e l i m i n a t i n g t h i s d r i v e r ’ s c o n t r i b u t i o n t o t h e s i g n a l a n d r e m o v i n g i t s v a l u e f r o m t h e a r r a y . A s t a t e m e n t o f t h e f o r m s t a t e < = n e w _ s t a t e , n u l l a f t e r 1 f s ; a s s i g n s a n e w v a l u e t o s t a t e , t h e n d i s c o n n e c t s f r o m t h e s i g n a l a f t e r 1 f e m t o s e c o n d ( t h e s h o r t e s t p o s s i b l e s i m u l a t e d t i m e i n c r e m e n t ) . S u c h a c o n s t r u c t c a u s e s a n e v e n t t o b e s c h e d u l e d f o r s t a t e a n d d i s c o n n e c t s t h e d r i v e r f r o m f u r t h e r c o n t r i b u t i o n s . T h e c o m p l e t e s e m a n t i c s o f s i g n a l s c a n b e c o m p l e x a n d i s c o v e r e d i n [ 1 1 ] . 2 . 2 . 4 D a t a T y p i n g V H D L ’ s d a t a t y p i n g m o d e l c l o s e l y p a r a l l e l s t h a t u s e d i n A d a . A r b i t r a r y d a t a t y p e s i n c l u d - i n g s t r i n g s , v a r i o u s f o r m s o f n u m b e r s , b o o l e a n ( l o g i c a l ) , a n d b i t s t r i n g s a r e a l l p r o v i d e d . 2 0 2 . 3 . 1 5 A r r a y s a t t p e s c a t c o n t a i n s d e fi n e d 1 2 . 3 l S P I N [ 1 : 3 i n g l a n g t P r o m e l a t i r e s t a t e m o r e d e t T h e 5 0 f p r o c e s . g l o b a l 0 b ! i a r i a b l e s F i g u r e 2 t i n t e n d e d , a n d a r e l i t E v e r y a C o n d i t i o ; b l o t - 1 , 5 . l f i ' S U c h a s V " A r r a y s a n d e n u m e r a t e d t y p e s a r e a c o m m o n t o o l i n a V H D L m o d e l a n d n e w a g g r e g a t e s u b - t y p e s c a n b e e a s i l y f o r m e d t h r o u g h t y p i n g a n d s u b t y p i n g m e c h a n i s m s . I n a d d i t i o n , V H D L c o n t a i n s s p e c i a l d a t a t y p e s f o r u n i t s , i n c l u d i n g t i m e , s o t h a t n e w u n i t s o f m e a s u r e c a n b e d e fi n e d f o r s p e c i a l i z e d p u r p o s e s . 2 . 3 P r o m e l a / S P I N O v e r v i e w S P I N [ 1 5 , 1 6 ] i s a t o o l f o r a n a l y z i n g c o n c u r r e n t s y s t e m s , s p e c i fi c a l l y p r o t o c o l s . T h e m o d e l - i n g l a n g u a g e f o r S P I N i s c a l l e d P r o m e l a . S P I N c a n e i t h e r p e r f o r m r a n d o m s i m u l a t i o n s o n P r o m e l a m o d e l s o r g e n e r a t e a C p r o g r a m t o p e r f o r m a v a r i e t y o f a n a l y s e s b a s e d o n e x h a u s - t i v e s t a t e e x p l o r a t i o n s . S e c t i o n s 2 . 4 a n d 9 . 7 d e s c r i b e S P I N ’ s m o d e l c h e c k i n g c a p a b i l i t i e s i n m o r e d e t a i l . T h e s y n t a x o f P r o m e l a i s l o o s e l y b a s e d o n t h e l a n g u a g e C . P r o m e l a p r o g r a m s c o n s i s t o f p r o c e s s e s , c h a n n e l s , a n d v a r i a b l e s . P r o c e s s e s , w h i c h a r e c a l l e d c a l l e d p r o c t y p e s , a r e g l o b a l o b j e c t s t h a t e x e c u t e a s y n c h r o n o u s l y a n d c a n b e c r e a t e d d y n a m i c a l l y . C h a n n e l s a n d v a r i a b l e s m a y e i t h e r b e l o c a l o r g l o b a l . 2 . 3 . 1 S t r u c t u r e a n d S t a t e m e n t s F i g u r e 2 . 6 s h o w s a n e x a m p l e o f a m o d e l w r i t t e n i n P r o m e l a . T h e s p e c i fi c a t i o n i s o n l y i n t e n d e d t o i l l u s t r a t e P r o m e l a s t a t e m e n t s . T h e l i n e n u m b e r s h a v e b e e n a d d e d f o r c l a r i t y a n d a r e n o t p a r t o f t h e l a n g u a g e . E v e r y P r o m e l a s t a t e m e n t i n a m o d e l p o t e n t i a l l y h a s a d u a l r o l e . E v e r y s t a t e m e n t i s a c o n d i t i o n t h a t i s e v a l u a t e d p r i o r t o e x e c u t i o n . I f t h e r e s u l t i s f a l s e , t h e n t h e s t a t e m e n t b l o c k s . I f t h e r e s u l t i s t r u e , t h e n t h e s t a t e m e n t e x e c u t e s w i t h i t s a s s o c i a t e d s i d e - e f f e c t ( s u c h a s v a r i a b l e a s s i g n m e n t ) , i f a n y . T h e r e f o r e , a n y s t a t e m e n t b e c o m e s a g u a r d f o r t h e 2 1 s t a t e n t e n e i t h e r b y T h e t F i g u r e ‘ 2 . a r e s t a r t t i n i t i a l p m 1 1 . f o r c e s w i t h i n a t . A d o - l o n g a s 0 i n c l u d e a o n l i n e 1 . t r u e . t h e : C h o o s e s 0 i n i t s t a t e m e n t f o l l o w i n g i t . T o m a k e t h e s y n t a x e a s i e r t o r e a d , s t a t e m e n t s m a y b e s e p a r a t e d e i t h e r b y s e m i c o l o n s o r - > . T h e p r i m a r y s t r u c t u r i n g e l e m e n t i n P r o m e l a i s t h e p r o c t y p e . L i n e s 1 0 — 1 4 a n d 1 5 — 3 0 i n F i g u r e 2 . 6 a r e c o m p l e t e p r o c e s s e s , c a l l e d p r o c t y p e s i n P r o m e l a . O n e o r m o r e p r o c t y p e s a r e s t a r t e d b y t h e r u n s t a t e m e n t , a s o n l i n e 1 3 . T h e i n i t p r o c t y p e i s d i s t i n g u i s h e d a s t h e i n i t i a l p r o c e s s s t a r t e d d u r i n g a P r o m e l a e x e c u t i o n . T h e a t o m i c c o n s t r u c t i o n , s h o w n o n l i n e 1 1 , f o r c e s a l l s t a t e m e n t s w i t h i n i t s c o n t e x t t o e x e c u t e a s o n e . N o i n t e r l e a v i n g i s p e r m i t t e d w i t h i n a n a t o m i c b l o c k . A d o - o d c o n s t r u c t i s s h o w n o n l i n e s 1 8 — 2 0 . T h e d o - o d “ l o o p ” c o n t i n u e s e x e c u t i n g a s “ u ” l o n g a s o n e o f t h e c o n d i t i o n s , d e l i m i t e d b y , i s t r u e . C o n s t r u c t s a f t e r a “ : z ” t y p i c a l l y i n c l u d e a g u a r d a n d a n e x e c u t a b l e s t a t e m e n t , a l t h o u g h t h i s i s n o t r e q u i r e d . T h e c o n d i t i o n o n l i n e 1 8 g u a r d s t h e a s s i g n m e n t s t a t e m e n t s o n t h e s a m e l i n e . I f n o g u a r d i n t h e l o o p i s t r u e , t h e n t h e d o - o d b l o c k a s a w h o l e b l o c k s . I f m o r e t h a n o n e g u a r d i s t r u e , t h e n P r o m e l a c h o o s e s o n e o f t h e t r u e g u a r d s n o n d e t e r m i n i s t i c a l l y a n d e x e c u t e s t h a t s t a t e m e n t . A n i f - f i c o n s t r u c t i s s h o w n o n l i n e s 2 2 — 2 6 . T h e s e m a n t i c s o f t h e g u a r d s a n d s t a t e m e n t e x e c u t i o n a r e t h e s a m e a s i n t h e d o - o d b l o c k , e x c e p t t h e i f - f i b l o c k i s o n l y e x e c u t e d o n c e . A s s i g n m e n t s t a t e m e n t s a n d l o g i c a l e x p r e s s i o n s a r e t h e s a m e a s i n C . P r o m e l a h a s m a n y o f t h e “ f e a t u r e s ” o f C , i n c l u d i n g t h e i n c r e m e n t ( i + + ) a n d d e c r e m e n t ( i - - ) s t a t e m e n t s . V a r i a b l e s i n P r o m e l a i n c l u d e i n t e g e r s , b o o l e a n , b i t ( t h e s a m e a s b o o l e a n ) a n d m t y p e , w h i c h i s a n e n u m e r a t i o n t y p e . L i n e 9 d e fi n e s t h r e e e n u m e r a t i o n v a l u e s , o n , o f f , a n d n o n e . P r o m e l a a l l o w s f o r t h e c r e a t i o n o f C - t y p e d a t a s t r u c t u r e s t h r o u g h t h e u s e o f t y p d e f s t a t e m e n t s . L i n e s 1 — 6 d e fi n e a t y p e d e f n a m e d A . . t y p e . T h e s t r u c t u r e i s a c t u a l l y i n s t a n t i - a t e d i n l i n e 8 . R e f e r e n c e s t o e l e m e n t s o f t h e s t r u c t u r e a r e t h e s a m e a s i n C , a s s e e n i n l i n e s 1 2 a n d 1 9 . 2 2 2 . 3 . 2 P r o m e l a a n d s e t n z c h a n n e l : o p e r a t i o r t h r e e h o l c o n t a i n 1 R e e d fi e l d . W : a m e s s a g s t a t e t n e n W h e n a l m a t c h e d t h e \ " d t i a s w i t C h a t h r e e C o n C U p i e d t o 2 . 3 . 2 C h a n n e l s a n d C o m m u n i c a t i o n s P r o m e l a u s e s c h a n n e l s f o r c o m m u n i c a t i n g b e t w e e n , a n d e v e n w i t h i n , p r o c e s s e s . T h e s y n t a x a n d s e m a n t i c s o f c h a n n e l s a r e s i m i l a r t o C S P [ 2 7 ] . L i n e 2 1 i n F i g u r e 2 . 6 s h o w s a s e n d o n t h e c h a n n e l n a m e d q u e u e . T h e v a l u e s e n t i s t h e e n u m e r a t i o n c o n s t a n t o n . L i n e 2 3 i s a r e c e i v e o p e r a t i o n o n c h a n n e l q u e u e . C h a n n e l q u e u e i s d e c l a r e d o n l i n e 7 a s a q u e u e o f d e p t h o f t h r e e h o l d i n g m e s s a g e s o f t y p e m t y p e . C h a n n e l s c a n b e a n y d e p t h , i n c l u d i n g z e r o , a n d c a n c o n t a i n m e s s a g e s o f a r b i t r a r y l e n g t h a n d t y p e . R e c e i v e o p e r a t i o n s o n a c h a n n e l m a y h a v e e i t h e r c o n s t a n t v a l u e s o r v a r i a b l e s i n e a c h fi e l d . W h e n a c h a n n e l r e c e i v e c o n t a i n s a c o n s t a n t , t h e v a l u e i s c o n s i d e r e d t o b e a p a t t e r n a m e s s a g e m u s t m a t c h i n o r d e r t o b e r e c e i v e d . L i n e 2 9 i n F i g u r e 2 . 6 i s a n e x a m p l e . T h i s s t a t e m e n t b l o c k s u n t i l t h e m e s s a g e o f f i s a t t h e h e a d o f t h e m e s s a g e q u e u e n a m e d q u e u e . W h e n a c o m b i n a t i o n o f v a r i a b l e s a n d c o n s t a n t s i s u s e d i n a r e c e i v e O p e r a t i o n , a m e s s a g e i s m a t c h e d b y t h e c o n s t a n t v a l u e s , t h e n t h e r e m a i n i n g v a l u e s i n t h e m e s s a g e a r e c o p i e d i n t o t h e v a r i a b l e s i n t h e r e c e i v e s t a t e m e n t . T h e s t a t e m e n t x y z ? o n , x , s w i t c h , y , w h e r e o n a n d s w i t c h a r e c o n s t a n t s , a n d x a n d y a r e v a r i a b l e s , r e c e i v e s a m e s s a g e w h e r e fi e l d s o n e a n d t h r e e c o n t a i n o n a n d s w i t c h , r e s p e c t i v e l y . F i e l d s t w o a n d f o u r o f t h e m a t c h e d m e s s a g e a r e c o p i e d t o v a r i a b l e s x a n d y , r e s p e c t i v e l y . 2 3 N M “ 5 t u n s u n g : t y p e d e f A i n : x ; i n t y ; : b o o l u n u s : a t y p e v a l } ( D i - 0 ‘ * - ‘ h a n q u e u 2 l _ t y p e A ; C D m Y P e = t o n E 1 0 : i n i t I l l : { 1 3 a t o m i c { 1 3 r u n a b c ( 1 4 : } 1 5 : p r o c t y p e 1 6 : { 1 7 : i n t i ; 1 8 1 d o I : L ! ) 2 0 3 0 d ; 2 q u e u e l o n 2 2 : i f : : i n e u e ? . I ‘ y ) ' 2 5 : 3 3 l . y ) 7 6 2 : 1 ; : ' k i p l z p i S h i n ; F ' q u e u \ 1 : t y p e d e f A _ t y p e { 2 : i n t x ; 3 : i n t y ; 4 : h e e l u n u s e d ; 5 : m t y p e v a l e ; 6 : } 7 : c h a n q u e u s = [ 3 ] o f { m t y p e } ; 8 : A _ t y p e A ; 9 : m t y p e = { o n , o f f , n o n e } ; 1 0 : i n i t 1 1 : { 1 2 : a t o m i c { A . x a 1 ; A . y = 2 } 1 3 : r u n s b c ( ) 1 4 : } 1 5 : p r o c t y p e a b c ( ) 1 6 : { 1 7 : i n t i ; 1 8 : d o 1 9 : ' : A . x > 1 - > A . y = A . y + 1 ; A . x = A . x + 1 2 0 : e d ; 2 1 : q u e u e l o n ; 2 2 : i f 2 3 : : q u e u e ? v a 1 s ; 2 4 : ' : A . y > 4 — > g o t o s k i p 1 2 5 : : : A . y > 6 - > g o t o s k i p 2 2 6 : f i ; 2 7 : s k i p 1 : p r i n t f ( " v e a r e a t s k i p 1 " ) - > i = 1 2 ; 2 8 : s k i p 2 : p r i n t ! ( " a s a r e a t s k i p 2 " ) ; 2 9 : q u e u e ? o f f 3 0 : } F i g u r e 2 . 6 : P r o m e l a m o d e l f o r a s i m p l e c l i e n t - s e r v e r s y s t e m 2 4 2 . 3 . 3 1 3 P r o m e l a i t s t r a [ ‘ 2 9 ] a t D i j k s t r a ' s c l u s t v e l y 0 { c h a n n e l d t i o n o f m e i n g u a r d s : T h e s e o t h e r g u a r a r e f a l s e . I a n d h e n c e 2 . 4 M T h e b e h a t ' a r e O f t e n I a r e f r e q u e t . W H I D l e x a n o f a c c u f a t e 0 H t h e 1 1 3 9 r e q u i r e a g , i n t h e I 1 3 1 1 m m ] [ 0 ’ 2 . 3 . 3 D i f f e r e n c e s F r o m O t h e r G u a r d e d L a n g u a g e s P r o m e l a w a s i n fl u e n c e d s i g n i fi c a n t l y b y t h e “ g u a r d e d c o m m a n d l a n g u a g e s ” o f E . W . D i j k - s t r a [ 2 9 ] a n d C . A . R . H o a r e ’ s C S P [ 2 7 ] l a n g u a g e . T h e r e a r e , h o w e v e r , i m p o r t a n t d i f f e r e n c e s . D i j k s t r a ’ s l a n g u a g e h a s n o p r i m i t i v e s f o r p r o c e s s i n t e r a c t i o n . H o a r e ’ s l a n g u a g e w a s b a s e d e x - c l u s i v e l y o n s y n c h r o n o u s c o m m u n i c a t i o n , c o n s t r u c t e d i n P r o m e l a a s a n u n b u f f e r e d c h a n n e l ( c h a n n e l d e p t h o f z e r o ) , b u t P r o m e l a a l s o p e r m i t s b u f f e r e d c h a n n e l s , a l l o w i n g t h e c o n s t r u c - t i o n o f m e s s a g e q u e u e s . A l s o i n H o a r e ’ s l a n g u a g e , t h e t y p e o f s t a t e m e n t s t h a t c a n a p p e a r i n g u a r d s i s r e s t r i c t e d , w h i l e P r o m e l a h a s n o r e s t r i c t i o n s . T h e s e m a n t i c s o f t h e d o - o d a n d i f - f i s t a t e m e n t s i n P r o m e l a a r e a l s o d i f f e r e n t f r o m o t h e r g u a r d e d c o m m a n d l a n g u a g e s i n t h a t t h e s e s t a t e m e n t s a r e n o t a b o r t e d w h e n a l l g u a r d s a r e f a l s e . I n s t e a d , a f a l s e g u a r d b l o c k s e x e c u t i o n u n t i l t r u e . I n f a c t , a n y s t a t e m e n t c a n b l o c k a n d h e n c e c a n b e c o m e a g u a r d . 2 . 4 M o d e l C h e c k i n g T h e b e h a v i o r o f o b j e c t s a r e d e s c r i b e d i n U M L b y fi n i t e s t a t e m a c h i n e s a n d s i n c e t h e r e a r e o f t e n m a n y o c c u r r e n c e s o f o b j e c t s i n a r e a l s y s t e m , c o n c u r r e n t fi n i t e s t a t e m a c h i n e s a r e f r e q u e n t l y f o u n d i n a s y s t e m d e s i g n . T h e b e h a v i o r o f s u c h a s y s t e m c a n b e e x t r e m e l y c o m p l e x a n d v e r i fi c a t i o n t h r o u g h t e s t i n g i s n o t o r i o u s l y t r o u b l e s o m e b e c a u s e o f t h e d i f fi c u l t y o f a c c u r a t e l y r e p r o d u c i n g e v e n t s e q u e n c e s . A l t h o u g h t h e r e h a s b e e n c o n s i d e r a b l e r e s e a r c h o n t h e u s e o f a u t o m a t e d t h e o r e m p r o v e r s , t h e s e t e c h n i q u e s a r e t i m e c o n s u m i n g a n d o f t e n r e q u i r e a g r e a t d e a l o f m a n u a l i n t e r v e n t i o n . I n t h e m o d e l c h e c k i n g a p p r o a c h , s y s t e m s p e c i fi c a t i o n s a r e e x p r e s s e d i n p r o p o s i t i o n a l t e m p o r a l l o g i c a n d t h e s y s t e m i t s e l f i s e x p r e s s e d a s a s t a t e t r a n s i t i o n s y s t e m . E f fi c i e n t s e a r c h 2 5 o p e r a t o r s t p r o c e d u t m a m a l e m p o r a A c o n u n t X a n d l ' t e m p o r a l E x p r e s t y l e o f t e a t o m i c p n t r u e i n t h t ' X g : O F g : ' ] 0 n i l l t . G 9 : i s . 9 ] W W : 3 5 5 1 1 1 1 1 p r o c e d u r e s a r e u s e d t o d e t e r m i n e i f t h e s p e c i fi c a t i o n i s t r u e O f t h e g i v e n t r a n s i t i o n s y s t e m . I n a s p e c i fi c a t i o n , p r o p o s i t i o n a l l o g i c e x p r e s s e s c o n d i t i o n s t h a t m u s t b e t r u e i n a g i v e n s t a t e . T e m p o r a l l o g i c e x p r e s s e s h o w e x p r e s s i o n s c h a n g e t h r o u g h o u t t h e s t a t e t r a n s i t i o n p r o c e s s . A c o m m o n e x a m p l e m i g h t s t a t e t h a t w h e n X i s t r u e , t h e n e v e n t u a l l y Y m u s t b e c o m e t r u e . X a n d Y a r e e a c h p r o p o s i t i o n a l p h r a s e s w h i l e t h e “ e v e n t u a l l y ” p o r t i o n i s e x p r e s s e d w i t h t e m p o r a l l o g i c . E x p r e s s i o n s d e fi n e a c o n d i t i o n e i t h e r r e l a t i v e t o a s t a t e o r t o a p a t h , d e p e n d i n g o n t h e s t y l e o f t e m p o r a l l o g i c u s e d . A p a t h i s a s e q u e n c e O f s t a t e s s t a r t i n g a t a d e fi n e d s t a t e . A n a t o m i c p r o p o s i t i o n , p , i s s a i d t o b e t r u e i n a g i v e n s t a t e , o r i f p i s t r u e O f a p a t h , t h e n i t i s t r u e i n t h e fi r s t s t a t e o f t h e p a t h . G i v e n a t o m i c p r o p o s i t i o n s g a n d h , t h e t e m p o r a l p a t h o p e r a t o r s c o m m o n t o t h e l o g i c s d e s c r i b e d a r e : X g : T h e “ n e x t ” o p e r a t o r . T r u e i f g i s t r u e i n t h e n e x t s t a t e o n t h e p a t h . 0 F 9 : T h e “ e v e n t u a l l y ” o p e r a t o r . T r u e i f g e v e n t u a l l y b e c o m e s t r u e , t h a t i s , s o m e w h e r e o n t h e p a t h 9 i s t r u e . 0 G 9 : T h e “ a l w a y s ” o r “ g l o b a l ” o p e r a t o r . T r u e i f g i s t r u e n o w a n d h e n c e f o r t h , t h a t i s , g i s t r u e a t a l l s t a t e s h e n c e f o r t h o n t h e p a t h . 0 g U h : T h e “ u n t i l ” O p e r a t o r . T r u e i f g i s t r u e u n t i l h i s t r u e . T h e s e m a n t i c s u s u a l l y a s s u m e s h w i l l e v e n t u a l l y o c c u r ( t h i s i s c a l l e d “ s t r o n g u n t i l ” ) . 0 t h : T h e “ r e l e a s e s ” O p e r a t o r . T r u e i f h i s t r u e a l l a l o n g t h e p a t h u p t o a n d i n c l u d i n g t h e s t a t e w h e r e g i s t r u e . 2 6 W h e r e 6 i s l e R . t r l u g m s f o r ; 2 . 4 . 1 C ' T e m p o r a l l o r b r a n c h i t a n d p a t h f t a p a t h f o r t w h i l e a a l o e x i s t a r e c : a d d i t i o n t o e n a m e l f o r m u l a . F t h e n c e n e s u O p e r a t o r s : ' A X p ' A F p ' A G p ' A p t } . A P R t C T L e x ; l l l e t r e e r e “ i t h e r e a r t u i m p o r t ] 1 . . 2 . 4 . 1 C T L a n d L T L L o g i c s T e m p o r a l l o g i c s a r e o f t e n c l a s s i fi e d a c c o r d i n g t o w h e t h e r t i m e i s a s s u m e d t o h a v e a l i n e a r o r b r a n c h i n g s t r u c t u r e . P r o p o s i t i o n a l t e m p o r a l l o g i c s i n c l u d e d e fi n i t i o n s f o r s t a t e f o r m u l a s a n d p a t h f o r m u l a s . A s t a t e f o r m u l a i s a p r o p o s i t i o n a l s t a t e m e n t t h a t i s t r u e i n a s t a t e w h i l e a p a t h f o r m u l a e x p r e s s e s c o n d i t i o n s a l o n g a p a t h . F o r e x a m p l e , a n i s a p a t h f o r m u l a w h i l e a a l o n e c o u l d b e e i t h e r . T w o t e m p o r a l l o g i c s f o r w h i c h c o m p u t a t i o n a l p r o c e d u r e s e x i s t a r e c a l l e d L i n e a r T e m p o r a l L o g i c ( L T L ) a n d C o m p u t a t i o n a l T r e e L o g i c ( C T L ) 2 . I n a d d i t i o n t o t h e t e m p o r a l o p e r a t o r s a b o v e , C T L c o n t a i n s u n i v e r s a l p a t h q u a n t i fi e r A a n d e x i s t e n t i a l p a t h q u a n t i fi e r E , e a c h o f w h i c h r e q u i r e s a p a t h f o r m u l a a n d p r o d u c e s a s t a t e f o r m u l a . F u r t h e r m o r e , C T L l i m i t s t h e o p e r a n d o f a t e m p o r a l o p e r a t o r t o a s t a t e f o r m u l a , h e n c e n e s t e d t e m p o r a l o p e r a t o r s a r e n o t p e r m i t t e d . E f f e c t i v e l y , t h i s p r o d u c e s t e n C T L o p e r a t o r s : 0 A X p ( a n d E X p ) — f o r a l l ( t h e r e e x i s t s ) p a t h s , i n t h e n e x t s t a t e p i s t r u e . A F p ( a n d E F p ) — f o r a l l ( t h e r e e x i s t s ) p a t h s , e v e n t u a l l y p b e c o m e s t r u e . A G p ( a n d E G p ) — f o r a l l ( t h e r e e x i s t s ) p a t h s , p i s a l w a y s t r u e . A p U q ( a n d E p U q ) — f o r a l l ( t h e r e e x i s t s ) p a t h s , p i s t r u e u n t i l q . A q u ( a n d E q u ) — f o r a l l ( t h e r e e x i s t s ) p a t h s , p r e l e a s e s q . C T L e x p r e s s e s t h e p o s s i b l e n e x t s t a t e s i n t h e f o r m o f a b r a n c h i n g t r e e w i t h e a c h p a t h i n t h e t r e e r e p r e s e n t i n g o n e p o s s i b l e c o m p u t a t i o n p a t h . T h e C T L f o r m u l a A G ( E F e ) e x p r e s s e s t h e s t a t e m e n t , o n a l l p a t h s , f r o m e v e r y s t a t e , t h e r e e x i s t s a p a t h o n w h i c h t h e r e i s a s t a t e w h e r e e i s t r u e . I n o t h e r w o r d s , i t i s a l w a y s p o s s i b l e t o r e a c h a s t a t e w h e r e e i s t r u e . 2 T h e r e a r e m a n y t e m p o r a l l o g i c s b a s e d o n h o w p a t h q u a n t i fi e r s a n d t e m p o r a l o p e r a t o r s a r e c o m b i n e d . T h e l o g i c s f o r m a c o m p l e x r e l a t i o n o f r e l a t i v e e x p r e s s i v e n e s s . S e e [ 3 0 ] f o r a d i s c u s s i o n o f t h e r e l a t i v e p o w e r s o f t e m p o r a l l o g i c s . 2 7 T h e S P i n m i t t I e N n . C o r r e c t . W 5 o f m i n e w h e n t P h O e s b V s i t e c h n i q u e s . e a . S i n c e C i r l e ‘ V l t a b l e d 3 8 9 . T h e a s s e r t I n a b o v e p a t h s . L T L a r p a t h t o p b a c o n f o r m u l a i s a s t a t e w h i c h o n t h i s i s n o 2 . 4 . 2 S P T O m e l a I n c o n t r a s t , L T L f o r m u l a s a r e w r i t t e n r e l a t i v e t o p a t h s u s i n g o n l y t h e p a t h o p e r a t o r s a b o v e a n d a t o m i c p r o p o s i t i o n s . I n e f f e c t , e v e r y L T L f o r m u l a i s p r e fi x e d w i t h A , f o r a l l p a t h s , b e c a u s e t h e r e i s n o s e n s e o f b r a n c h i n g i n L T L . T h e e x p r e s s i v e p o w e r o f C T L a n d L T L a r e n o t c o m p a r a b l e [ 3 0 ] b e c a u s e o n e a p p l i e s t o s t a t e f o r m u l a s w h i l e t h e o t h e r a p p l i e s t o p a t h f o r m u l a s . T h e L T L f o r m u l a A F G p , m e a n i n g e v e n t u a l l y ( o n a l l e x e c u t i o n s e q u e n c e s ) p b e c o m e s , a n d s t a y s t r u e , i s n o t e x p r e s s i b l e i n C T L . O n t h e o t h e r h a n d , c o n s i d e r t h e C T L f o r m u l a A G ( E F e ) , m e a n i n g o n a l l p a t h s , f r o m e v e r y s t a t e , t h e r e e x i s t s a p a t h w h e r e t h e r e i s a s t a t e i n w h i c h e i s e v e n t u a l l y t r u e . T h e E q u a n t i fi e r p e r m i t s t w o b r a n c h i n g p a t h s d o w n w h i c h o n o n e 6 n e v e r b e c o m e s t r u e a n d a n o t h e r o n w h i c h i t d o e s b e c o m e s t r u e . C l e a r l y , t h i s i s n o t e x p r e s s i b l e i n L T L . 2 . 4 . 2 S P I N T h e S P I N s y s t e m i s u s e d t o v e r i f y p r o p e r t i e s e x p r e s s i b l e i n L T L . T h e s y s t e m t o b e v e r i fi e d i n w r i t t e n i n S P I N ’ s p r o c e d u r a l l y b a s e d l a n g u a g e c a l l e d P r o m e l a , a s d e s c r i b e d a b o v e . C o r r e c t n e s s c l a i m s a b o u t t h e b e h a v i o r o f a P r o m e l a m o d e l a r e f o r m a l i z e d i n S P I N . T w o t y p e s o f b e h a v i o r s a r e g e n e r a l l y t h a t a b e h a v i o r i s i n e v i t a b l e , t o i m p o s s i b l e . T o d e t e r - m i n e t h e v a l i d i t y o f a c l a i m , S P I N e x h a u s t i v e l y s e a r c h e s t h e e n t i r e s t a t e s p a c e o f a m o d e l , w h e n p o s s i b l e . W h e n t h e s t a t e s p a c e i s t o o l a r g e , b o t h a p p r o x i m a t i o n a n d s t a t e r e d u c t i o n t e c h n i q u e s a r e a v a i l a b l e f o r p a r t i a l s e a r c h i n g o f t h e s t a t e s p a c e . S i n c e c h e c k i n g f o r a n i m p o s s i b l e b e h a v i o r i s e a s i e r a n d f a s t e r t h a n c h e c k i n g f o r a n i n e v i t a b l e c l a i m , S P I N c l a i m s g e n e r a l l y e x p r e s s a n e g a t i v e b e h a v i o r t h a t w e n o n o t w i s h t o s e e . P r o m e l a h a s s e v e r a l t y p e s o f c o n s t r u c t s f o r m a k i n g c o r r e c t n e s s c l a i m s a b o u t a m o d e l . T h e a s s e r t ( p ) s t a t e m e n t c a n b e p l a c e d a n y w h e r e , a n d w h e n e x e c u t e d , v e r i fi e s t h a t c o n - 2 8 d i t i o 3 5 8 6 I n h a i r s . t h e 1 s t a t e a r e P a s s e r n e v e r T h e . o n l y P r o d : f t p r e : d i t i o n p i s t r u e i n t h e c u r r e n t g l o b a l s t a t e . G l o b a l i n v a r i a n t s c a n b e c h e c k e d b y p l a c i n g a n a s s e r t s t a t e m e n t a l o n e i n a p r o c e s s s u c h t h a t t h e c o n d i t i o n i s c o n t i n u o u s l y c h e c k e d . S P I N c a n a l s o c h e c k f o r s t a t e r e a c h a b i l i t y i n s e v e r a l f o r m s . T h e m o s t g e n e r a l , i s a n e x - h a u s t i v e s e a r c h t o d e t e r m i n e w h i c h s t a t e s a r e u n r e a c h e d . S P I N a n a l y s e s c a n a l s o d e t e r m i n e t h e p r e s e n c e o r a b s e n c e o f c y c l e s , o r l o o p s i n t h e m o d e l . D e p e n d i n g o n h o w t h e P r o m e l a s t a t e m e n t s a r e m a r k e d , t h e l o o p i s c o n s i d e r e d a c c e p t a b l e b e h a v i o r o r i n c o r r e c t b e h a v i o r . T h e m o s t p o w e r f u l f o r m o f t h e c l a i m s p e c i fi c a t i o n i s c a l l e d a n e v e r c l a i m . N e v e r c l a i m s a r e P r o m e l a s t a t e m e n t s c o n t a i n e d i n a b l o c k d e l i m i t e d b y n e v e r { . . . } . T h e n e v e r c l a i m a s s e r t s t h a t t h e s t a t e m e n t s i n t h e n e v e r b l o c k s h o u l d n o t e x e c u t e t o c o m p l e t i o n . F o r m a l l y , n e v e r c l a i m s a r e b a s e d o n t h e a b i l i t y t o t r a n s l a t e L T L e x p r e s s i o n s i n t o B u c h i a u t o m a t a 3 . T h e a u t o m a t a r e p r e s e n t i n g t h e p r o d u c t o f t h e L T L a u t o m a t a a n d t h e m o d e l i t s e l f a c c e p t s o n l y s t a t e s f o r w h i c h t h e L T L c l a i m i s t r u e . S i n c e i t i s m u c h e a s i e r t o c h e c k f o r a n e m p t y l a n g u a g e , n o r m a l l y t h e L T L f o r m u l a i s fi r s t n e g a t e d , h e n c e t h e t e r m “ n e v e r c l a i m ” . T h e p r o d u c t o f t h e B u c h i a u t o m a t a f r o m t h e n e g a t e d L T L c l a i m a n d t h e m o d e l s h o u l d t h e n r e p r e s e n t a n e m p t y l a n g u a g e . 2 . 5 F o r m a l a n d I n f o r m a l m o d e l s A f o r m a l s o f t w a r e s p e c i fi c a t i o n i s a s y s t e m b e h a v i o r c o n s t r a i n t e x p r e s s e d i n a f o r m a l s p e c - i fi c a t i o n l a n g u a g e w h o s e v o c a b u l a r y , s y n t a x a n d s e m a n t i c s a r e r i g o r o u s l y d e fi n e d i n m a t h - e m a t i c a l t e r m s . P r e d i c a t e l o g i c , L O T O S [ 3 1 ] a n d C S P [ 2 7 ] a r e e x a m p l e s o f f o r m a l s p e c i - fi c a t i o n l a n g u a g e s , a s a r e c o m p u t e r l a n g u a g e s s u c h a s J a v a . S o f t w a r e s p e c i fi c a t i o n s s t a r t a s i n f o r m a l d e s c r i p t i o n s o f t h e t a s k s t o b e p e r f o r m e d , o f t e n e x p r e s s e d i n i m p r e c i s e n a t u r a l 3 B u c h i a u t o m a t a a r e fi n i t e s t a t e a u t o m a t a t h a t c a n a c c e p t i n fi n i t e i n p u t s e q u e n c e s . B u c h i - a c c e p t a n c e i s d e fi n e d a s p a s s i n g t h r o u g h a n a c c e p t a n c e s t a t e a n i n fi n i t e n u m b e r o f t i m e s . I n t h e c a s e o f a t e r m i n a t i n g fi n a l s t a t e , S P I N ( a n d o t h e r s ) s t u t t e r t h a t s t a t e , e f f e c t i v e l y t r a n s i t i o n i n g t o t h e s a m e s t a t e e n d l e s s l y , t h u s f o r m i n g a n i n fi n i t e s e q u e n c e . 2 9 l a n g u t h a v e t c o r n p n m e n t r t o f o r n F r a : g i e s t h e f o r m a l i s I n f o r m : c a n S e m i - f o r m a t a r e 2 F o r m ] ; j d e r l y ‘ H O t a r p i e s . t h e i r F r e s e t . d i a r y s e e m ) . a l l “ ( 1 5 8 d y i i ; t h 9 a p p r g a . l ' l l E I h e r l 0 1 * l a n g u a g e . I f t h e p r o j e c t i s fi n a l l y r e a l i z e d i n e x e c u t a b l e c o d e , t h e n t h e s p e c i fi c a t i o n w i l l h a v e b e e n t r a n s l a t e d , b y d e fi n i t i o n , t o a f o r m a l s p e c i fi c a t i o n l a n g u a g e , n a m e l y t h e t a r g e t c o m p u t e r l a n g u a g e i n w h i c h t h e p r o j e c t i s i m p l e m e n t e d . S o m e w h e r e d u r i n g t h e d e v e l o p - m e n t p r o c e s s t h e i m p r e c i s e s p e c i fi c a t i o n w i l l n e c e s s a r i l y c r o s s t h e b o u n d a r y f r o m i n f o r m a l t o f o r m a l . F r a s e r e t a l . [ 3 2 ] s u g g e s t a t a x o n o m y f o r c l a s s i f y i n g s o f t w a r e d e v e l o p m e n t m e t h o d o l o - g i e s t h a t i n t e g r a t e i n f o r m a l a n d f o r m a l s p e c i fi c a t i o n s . T h e a u t h o r s c l a s s i f y c a t e g o r i e s o f f o r m a l i s m a s f o l l o w s : I n f o r m a l : T e c h n i q u e s t h a t d o n o t h a v e c o m p l e t e s e t s o f r u l e s t o c o n s t r a i n t h e m o d e l s t h a t c a n b e c r e a t e d . N a t u r a l l a n g u a g e a n d u n s t r u c t u r e d p i c t u r e s a r e e x a m p l e s . S e m i - f o r m a l : T e c h n i q u e s t h a t h a v e a d e fi n e d s y n t a x . T y p i c a l i n s t a n c e s i n c l u d e d i a g r a m - m a t i c t e c h n i q u e s w i t h p r e c i s e r u l e s t h a t s p e c i fi c c o n d i t i o n s u n d e r w h i c h c o n s t r u c t s a r e a l l o w e d . O M T a n d U M L fi t i n t h i s c a t e g o r y . F o r m a l : T e c h n i q u e s t h a t h a v e a r i g o r o u s l y d e fi n e d s y n t a x a n d s e m a n t i c s . T h e r e i s a n u n - d e r l y i n g t h e o r e t i c a l m o d e l a g a i n s t w h i c h a d e s c r i p t i o n e x p r e s s e d i n a m a t h e m a t i c a l n o t a t i o n c a n b e v e r i fi e d . S p e c i fi c a t i o n l a n g u a g e s b a s e d o n p r e d i c a t e l o g i c a r e e x a m - p l e s , a s a r e a c t u a l p r o g r a m m i n g l a n g u a g e s , w h i c h h a v e p r e c i s e s e m a n t i c s b y v i r t u e o f t h e i r e x e c u t i o n b e h a v i o r . F r a s e r , e t a l . f u r t h e r c l a s s i f y t h e i n t e g r a t i o n o f i n f o r m a l a n d f o r m a l b y t h e u s e o f i n t e r m e - d i a r y s e m i - f o r m a l s p e c i fi c a t i o n s a s b r i d g i n g m e c h a n i s m s . W h e n s e m i - f o r m a l s p e c i fi c a t i o n s a r e u s e d , t h e a p p r o a c h i s t e r m e d t r a n s i t i o n a l . W h e n s e m i - f o r m a l s p e c i fi c a t i o n s a r e n o t u s e d , t h e a p p r o a c h i s c a l l e d d i r e c t . T h e t r a n s i t i o n a l a p p r o a c h i s f u r t h e r d e c o m p o s e d b a s e d o n w h e t h e r f o r m a l s p e c i fi c a t i o n s a r e p r o d u c e d d i r e c t l y f r o m s e m i - f o r m a l s p e c i fi c a t i o n s o r s e m i - 3 0 a f o r m a l l a f o r ] s e q m e n S U C C a p p r c m e t h e s e m i - f t p r o v i d i a s e t o r f o r a l l t . r e s e a r c h . d i a g r a m r w e a b l e f t t h e e o n s i s a p p r o a c h ( \ f o r m a l a n d f o r m a l a r e p r o d u c e d s u c c e s s i v e l y i n p a r a l l e l . T h e f o r m e r a p p r o a c h i s t e r m e d s e q u e n t i a l w h i l e t h e l a t t e r i s t e r m e d p a r a l l e l - s u c c e s s i v e . A l l a p p r o a c h e s b i f u r c a t e o n t h e d i - m e n s i o n o f c o m p u t e r - a s s i s t e d s u p p o r t , c o n s e q u e n t l y w e h a v e b o t h t h e t r a n s i t i o n a l p a r a l l e l - s u c c e s s i v e a s s i s t e d a n d t r a n s i t i o n a l p a r a l l e l - s u c c e s s i v e u n a s s i s t e d a p p r o a c h e s . F i g u r e 2 . 7 s u m m a r i z e s t h e t a x o n o m y . F r a s e r n o t e s n o e x a m p l e s o f t h e t r a n s i t i o n a l p a r a l l e l a s s i s t e d a p p r o a c h . S u b s e q u e n t l y , W a n g a n d C h e n g [ 1 7 ] d e s c r i b e d a n o b j e c t - o r i e n t e d d e v e 1 0 p m e n t m e t h o d o l o g y u s i n g O M T b a s e d o n t h e t r a n s i t i o n a l p a r a l l e l a s s i s t e d a p p r o a c h . I n t h a t w o r k , s e m i - f o r m a l s p e c i fi c a t i o n s w r i t t e n i n O M T a r e t r a n s l a t e d i n t o L O T O S [ 1 8 , 1 9 , 2 0 , 3 3 ] , t h u s p r o v i d i n g p r e c i s e s e m a n t i c s f o r O M T m o d e l s . T h e e m p h a s i s o f t h a t p r o j e c t w a s t o d e v e l o p a s e t o f r u l e s a n d a p r o c e s s t o e n a b l e t h e a u t o m a t e d g e n e r a t i o n o f f o r m a l s p e c i fi c a t i o n s f o r a l l t h r e e t y p e s o f O M T d i a g r a m s t h a t c o u l d b e a n a l y z e d u s i n g e x i s t i n g t o o l s . I n t h i s r e s e a r c h , w e b u i l d o n t h a t a p p r o a c h b y d e s c r i b i n g a m e t h o d t o a t t a c h s e m a n t i c s t o a n y d i a g r a m m a t i c s e m i - f o r m a l m o d e l i n a p r e c i s e a n d r i g o r o u s m a n n e r . T h a t i s , n o t o n l y a r e w e a b l e t o a s s i g n f o r m a l s e m a n t i c s t o t h e d i a g r a m s , w e a r e a l s o a b l e t o f o r m a l l y e s t a b l i s h t h e c o n s i s t e n c y o f t h e f o r m a l i z a t i o n r u l e s t h e m s e l v e s . I n o r d e r t o p r o v i d e s e m a n t i c s , t h i s a p p r o a c h d e v e l o p s a h o m o m o r p h i s m b e t w e e n m e t a m o d e l s o f t h e s e m i - f o r m a l n o t a t i o n a n d a f o r m a l l a n g u a g e . M c t h d o l o g i e s D i r e c t T r a n s i t i o n a l A s s i s t e d U n a s s r s t c d S e q u n u ' a l P a r a l l c l - u c c c s s i v c A s s i s t e d U n a s s i s t c d A s s i s t e d U n a s s i s t e d F i g u r e 2 . 7 : F r a s e r ’ s t a x o n o m y o f i n t e g r a t i o n m e t h o d o l o g i e s . 3 1 C h a p t e r 3 M e t a m o d e l s a n d M a p p i n g F r a m e w o r k A s d e s c r i b e d i n S e c t i o n 2 . 1 , a U M L m e t a m o d e l i s a t y p e o f c l a s s m o d e l t h a t d e s c r i b e s t h e s y n t a x o f m o d e l s w r i t t e n i n U M L n o t a t i o n . U n l e s s t h e c l a s s m o d e l i t s e l f i s f o r m a l i z e d , t h e m a p p i n g s d e v e l o p e d b e t w e e n m e t a m o d e l s w i l l n o t r e s t u p o n a r i g o r o u s b a s i s . T h i s c h a p t e r p r e s e n t s a f o r m a l i z a t i o n o f t h e c l a s s m o d e l , w h i c h e n a b l e s t h e f o r m a l d e s c r i p t i o n o f h o m o m o r p h i c m a p p i n g s b e t w e e n m e t a m o d e l s . U s i n g a f o r m a l i z a t i o n o f t h e c l a s s m o d e l , t h e m a p p i n g f r a m e w o r k c e n t r a l t o g e n e r a t i n g s e m a n t i c s f o r U M L m o d e l s i s t h e n p r e s e n t e d . 3 . 1 C l a s s M o d e l F o r m a l i z a t i o n T h e c l a s s m o d e l , u p o n w h i c h t h e m e t a m o d e l i s b u i l t , h a s b e e n f o r m a l i z e d b y B o u r d e a u a n d C h e n g [ 1 8 ] . B o u r d e a u a n d C h e n g s h o w e d t h a t a c l a s s m o d e l 1 c a n b e f o r m a l i z e d u s i n g a l g e b r a i c s p e c i fi c a t i o n s a n d s p e c i fi c a l g e b r a s r e l a t e d t o o b j e c t i n s t a n c e d i a g r a m s . W e d r a w 1 B o u r d e a u a n d C h e n g ’ s w o r k p e r t a i n e d t o O M T c l a s s m o d e l s b u t t h e d i f f e r e n c e b e t w e e n O M T a n d U M L c l a s s m o d e l s a r e v e r y s l i g h t a n d m o s t s y m b o l s a r e c o m m o n b e t w e e n U M L a n d O M T . 3 2 c o n s i s t e n t l \ f o r 3 . 1 A l l h o w t h a t I r i l l - l l s p e e i f s e t o f i E a c h i t t o t h e . i n F i g u a p p r o a e . d i a g r a m : t h e S e t 0 ] I n t h i s u p o n B o u r d e a u a n d C h e n g ’ s f o r m a l i z a t i o n w i t h t h e i n t e n t o f p r o v i d i n g a c l a s s f o r m a l i z a t i o n f o r m e t a m o d e l s t o s u p p o r t a m a p p i n g b e t w e e n m e t a m o d e l s . 3 . 1 . 1 F o u n d a t i o n t o C l a s s F o r m a l i z a t i o n A n a l g e b r a i c s p e c i fi c a t i o n c o n s i s t s o f a s e t o f t y p e s o r s o r t s , a s e t o f s i g n a t u r e s t h a t d e s c r i b e s h o w f u n c t i o n s i n t h e s p e c i fi c a t i o n m a p t y p e s t o t y p e s , a n d a s e t o f a x i o m s o r c o n s t r a i n t s t h a t d e s c r i b e t h e i n t e r r e l a t i o n s h i p b e t w e e n t h e t y p e s a n d f u n c t i o n s . I n B o u r d e a u a n d C h e n g ’ s c l a s s d i a g r a m f o r m a l i z a t i o n , a n o b j e c t m o d e l ( t h e s a m e a s a U M L c l a s s m o d e l ) i s f o r m a l i z e d a s a n a l g e b r a i c s p e c i fi c a t i o n . T h e s e m a n t i c s o f t h e a l g e b r a i c s p e c i fi c a t i o n a r e d e r i v e d f r o m t h e i r c o r r e s p o n d i n g a l g e b r a s . I n s t a n c e d i a g r a m s , o n e p o s s i b l e s e t o f i n s t a n t i a t i o n s o f o b j e c t s f r o m t h e o b j e c t d i a g r a m , r e p r e s e n t a l g e b r a s i n t h e i r a p p r o a c h . E a c h i n s t a n c e d i a g r a m c o n s i s t e n t w i t h t h e o b j e c t m o d e l g e n e r a t e s a n a l g e b r a t h a t c o n f o r m s t o t h e a l g e b r a i c s p e c i fi c a t i o n d e r i v e d f r o m t h e o b j e c t d i a g r a m . T h e c o m m u t i n g d i a g r a m i n F i g u r e 3 . 1 i s a d a p t e d f r o m t h a t u s e d b y B o u r d e a u a n d C h e n g [ 1 8 ] a n d s h o w s t h e i r a p p r o a c h t o f o r m a l i z a t i o n . T h e r e a r e t w o w a y s t o g e n e r a t e t h e a l g e b r a s f o r a n i n s t a n c e d i a g r a m : c o m p u t e t h e t h e a l g e b r a i c s p e c i fi c a t i o n f r o m t h e o b j e c t d i a g r a m a n d e x a m i n e t h e s e t o f a l g e b r a s t h a t s a t i s f y t h e s p e c i fi c a t i o n , o r d e t e r m i n e t h e s e t o f i n s t a n c e d i a g r a m s c o n s i s t e n t w i t h t h e o b j e c t m o d e l a n d c o m p u t e t h e c o r r e s p o n d i n g s e t o f a l g e b r a s . d i a g r a m s e m a n t i c s o b j e c t m o d e l s % I n s t a n c e D i a g r a m s f o r m a l i z e d a s ] [ f o r m a l i z e d a s A l g e b r a i c S p e c i fi c a t i o n s > A l g e b r a s a l g e b r a i c s e m a n t i c s F i g u r e 3 . 1 : B o u r d e a u a n d C h e n g ’ s b a s i c a p p r o a c h t o f o r m a l i z a t i o n . I n t h i s a p p r o a c h , a c l a s s i s c o n s i d e r e d a t y p e , o r s o r t i n a n a l g e b r a i c s p e c i fi c a t i o n . R e - 3 3 i n t o f a a n d C h l a t i o n s . P h i l l y ( 3 0 ‘ ” C l a s s h u t W e a h a f l a g s l S l a t i o n s h i p s b e t w e e n c l a s s e s a r e r e p r e s e n t e d a s b i n a r y r e l a t i o n s b e t w e e n t y p e s a n d a p p e a r i n t h e s i g n a t u r e s e c t i o n o f t h e a l g e b r a i c s p e c i fi c a t i o n . T h e S p e c i a l r e l a t i o n s h i p a g g r e g a - t i o n i s r e p r e s e n t e d a s a p r e d i c a t e h a s P a r t ( A g g r e g a t e , P a r t ) , t r u e e x a c t l y w h e n P a r t i s a m e m b e r o f t h e A g g r e g a t e a g g r e g a t i o n . M u l t i p l i c i t y c o n s t r a i n t s m o d i f y t h e t y p e o f b i n a r y r e l a t i o n s h i p d e p e n d i n g o n t h e c o n s t r a i n t s a t e a c h e n d o f t h e a s s o c i a t i o n . B o u r d e a u a n d C h e n g f o r m a l i z e m u l t i p l i c i t y c o n s t r a i n t s o n a s s o c i a t i o n s b e t w e e n o b j e c t s i n t e r m s o f f o u r r e l a t i o n a l p r o p e r t i e s : f u n c t i o n a l , i n j e c t i v e , s u r j e c t i v e , a n d t o t a l . I n t e r m s o f a r e l a t i o n p r e d i c a t e R , e a c h i s d e fi n e d a s f o l l o w s : F u n c t i o n a l : V x , y , z ( R ( a : , y ) / \ R ( c r , 2 ) = > y = z ) ( 3 . 1 ) I n j e c t i v e : V 9 3 , y , z ( R ( a : , z ) A R ( y , 2 ) = > : 1 ; = y ) ( 3 . 2 ) S u r j e c t i v e : V y E l x R ( a : , y ) ( 3 . 3 ) T o t a l : V z E l y R ( : r , y ) ( 3 . 4 ) T h i s g e n e r a t e s fi f t e e n p o s s i b l e c o n s t r a i n t s o n e a c h r e l a t i o n b e t w e e n c l a s s e s . B o u r d e a u a n d C h e n g ’ s w o r k e n u m e r a t e d s e v e n r e l a t i o n s t h a t i n c o m b i n a t i o n r e p r e s e n t a l l fi f t e e n r e - l a t i o n s . I n S e c t i o n 3 . 1 . 3 w e s h o w t h a t f o u r r e l a t i o n s a r e s u f fi c i e n t t o g e n e r a t e a l l t h e m u l t i - p l i c i t y c o n s t r a i n t s . 3 . 1 . 2 E n h a n c e d C l a s s F o r m a l i z a t i o n O u r c l a s s f o r m a l i z a t i o n d r a w s o n m a n y o f t h e i d e a s i n B o u r d e a u a n d C h e n g ’ s f o r m a l i z a t i o n , b u t w e a b a n d o n t h e a l g e b r a i c s p e c i fi c a t i o n a n d r e s u l t i n g a l g e b r a s . W e r e t a i n t h e i d e a t h a t a c l a s s i s a t y p e a n d t h a t r e l a t i o n s h i p s a r e r e p r e s e n t e d a s b i n a r y r e l a t i o n s , h o w e v e r o u r c o n c e p t o f a t y p e v a r i e s s l i g h t l y f r o m B o u r d e a u a n d C h e n g ’ s i n t h a t w e c o n s i d e r t y p e t o 3 4 s t r i c t t o b e a s s o c i I n c l a s s ( w i t h a r . i n c . C I n F o r e r a t o r e l a t i t t i l e s . n c i s d ( p o s i t i o n . m O d e l , a n n o “ c O m m d e fi n i t i o n S i n c e p 1 5 ' ” l l - ( T i l i t W h i c h i s f ? ) s t r i c t l y r e l y o n a t y p i n g p r e d i c a t e a n d n o t f o r m a s i g n a t u r e . W e c o n s i d e r a l l t h e o b j e c t s t o b e t h e u n i v e r s e o f a m o d e l f o r a p r e d i c a t e c a l c u l u s , o v e r w h i c h w e c a n d e fi n e p r e d i c a t e s a s s o c i a t e d w i t h c l a s s r e l a t i o n s h i p s . I n o u r f o r m a l i z a t i o n , a c l a s s m o d e l i s f o r m a l i z e d a s a s e t o f t y p e d c o m p o n e n t s w h e r e t h e c l a s s o f t h e c o m p o n e n t c o r r e s p o n d s t o t h e c o m p o n e n t t y p e . C l a s s m e m b e r s h i p i s e x p r e s s e d w i t h a t y p i n g p r e d i c a t e . W e w r i t e T c l a s s f o r a c l a s s p r e d i c a t e , a n d t h e r e f o r e f o r a c o m p o n e n t : 5 , i n c l a s s y , T y ( a : ) i s t r u e . C l a s s r e l a t i o n s h i p s a r e f o r m a l i z e d a s 2 - a r y p r e d i c a t e s b e t w e e n m e m b e r s o f e a c h c l a s s . F o r e x a m p l e , i n F i g u r e 3 . 2 a m o d e l c o m p o n e n t a : o f t y p e S t a t e V e r t e x a n d a c o m p o n e n t y o f t y p e T r a n s i t i o n a r e r e l a t e d b y t h e p r e d i c a t e s s o u r c e ( : r , y ) a n d o u t g o i n g ( y , a s ) . A s a s h o r t h a n d , w e w i l l o c c a s i o n a l l y w r i t e t y p e s , o r c l a s s n a m e s , a s t h e a r g u m e n t s t o r e l a t i o n s h i p p r e d i c a t e s , f o r e x a m p l e s o u r c e ( S ' t a t e V e r t e z r , T r a n s i t i o n ) . E l e m e n t s o f t h e t y p e s , n o t t h e e n t i r e t y p e t h e m s e l v e s , a r e r e l a t e d b y t h e r e l a t i o n s h i p p r e d i c a t e s . A s d e s c r i b e d p r e v i o u s l y , U M L h a s t w o a g g r e g a t i o n r e l a t i o n s h i p s , a g g r e g a t i o n a n d c o m - p o s i t i o n . W e d e s c r i b e a g g r e g a t i o n w i t h t h e h a s P a r t p r e d i c a t e a s i n B o u r d e a u a n d C h e n g ’ s m o d e l , a n d e x t e n d t h e d e s c r i p t i o n w i t h t h e h a s C o m p p r e d i c a t e f o r c o m p o s i t i o n ( O M T h a s n o “ c o m p o s i t i o n ” c o n c e p t ) . F o r c l a s s e s W a n d P , a n d c o m p o n e n t s w E W a n d p E P , t h e d e fi n i t i o n o f h a s P a r t ( w , p ) r e q u i r e s p t o b e a p a r t ( a n a g g r e g a t e , n o t a c o m p o n e n t ) o f w . S i n c e p a r t s o f c o m p o s i t i o n s c a n o n l y b e m e m b e r s o f o n e c o l l e c t i o n , t h e h a s C o m p r e l a t i o n i s i n j e c t i v e . F o r a g g r e g a t e s a : a n d y a n d p a r t p , w e h a v e : h a s C o m p ( a : , p ) / \ h a s C o m p ( y , p ) = > : 1 : = y w h i c h i s e x a c t l y t h e c o n s t r a i n t t h a t h a s C o m p i s i n j e c t i v e . F u r t h e r m o r e , b o t h h a s P a r t a n d 3 5 0 . . 1 S t a t e M a c h i n e G u a r d 0 . . 1 1 b t a t s o u r c e o u t g o i n g ' 1 s u s e 1 1 . . ' 1 ” . S t a t e V e r t e x m i n c o m i n g T r a n s fl l o n [ G i ‘ ‘ J 1 > P s e u d o s t a r e S t a t e m u l e x i t A c t i o n S e q u e n o e A l 0 . . 1 p a r e n t “ 0 . . 1 C o m p o s i t e S t a t e S i m p l e S t a t e S u b m a c h i n e S t a t e A c t i o n I l 1 B r a n c h S t a r t F i n a l . t r i g g e r S t a t e M a c h i n e E v e n , 0 . . 1 — d F o r k T F " J o i n S i g n a l E v e n t C a l l E v e n t T i m e E v e n t C h a n g e E v e n t L — H i s t o r y F i g u r e 3 . 2 : M e t a m o d e l o f a U M L d y n a m i c m o d e l . 3 6 T l E x p r e s t h e n i s e i n P a t h 3 . 1 3 W e a l l t i p a n d S h o w h a s C o m p a r e t r a n s i t i v e . I f c l a s s B i s a c o m p o n e n t o f c l a s s A , a n d c l a s s C i s a c o m p o n e n t o f B , t h e n c l e a r l y C i s a c o m p o n e n t o f A . F o r m a l l y : h a s C o m p ( A , B ) / \ h a s C o m p ( B , C ) = > h a s C o m p ( A , C ) . T h e h a s P a r t p r e d i c a t e i s s i m i l a r l y t r a n s i t i v e . I f c l a s s B i s a c o m p o n e n t o f A t h e n i t i s a l s o a p a r t o f A , h o w e v e r t h e c o n v e r s e i s n o t t r u e f o r t w o r e a s o n s : F i r s t , i n t h e h a s P a r t r e l a t i o n , B c a n s t i l l e x i s t w h e n A s d e s t r o y e d . T h i s i s n o t t r u e f o r h a s C o m p . S e c o n d l y , B c o u l d b e a p a r t o f s e v e r a l c l a s s e s b u t i t c a n n o t s i m u l t a n e o u s l y b e a c o m p o n e n t o f s e v e r a l c l a s s e s . C l a s s s p e c i a l i z a t i o n , a l s o c a l l e d s u b t y p i n g , i s c o n s t r a i n e d b y r e q u i r i n g t h e s u b t y p e o f a s u p e r t y p e t o b e a m e m b e r o f t h e s u p e r t y p e c l a s s . F o r m a l l y , f o r s u b t y p e C a n d s u p e r t y p e P , V I E ( T c ( $ ) - — — — > T p ( $ ) ) . ( 3 . 5 ) E x p r e s s i o n ( 3 . 5 ) a l s o e x p r e s s e s t h e r e l a t i o n b e t w e e n v i r t u a l c l a s s e s , c o n t a i n i n g n o o b j e c t s t h e m s e l v e s , a n d s u b c l a s s e s . U n l i k e B o u r d e a u - C h e n g , w e d o n o t r e q u i r e a n “ e r r o r o b j e c t ” i n e a c h c l a s s . 3 . 1 . 3 M u l t i p l i c i t y C o n s t r a i n t s , R e v i s i t e d W e a d o p t B o u r d e a u a n d C h e n g ’ s m u l t i p l i c i t y c o n s t r a i n t s o n a s s o c i a t i o n s b e t w e e n o b j e c t s a n d s h o w t h e b a s i s s e t . W e a l s o s h o w h o w t h e b a s i s s e t c a n b e u s e d t o f o r m t h e c o n s t r a i n t 3 7 f o r 2 H A s a t i o n . l h e f o r m f u n c t i o n r e v e r s e r a n d t h e 1 A n d i n j e r P a f t n t h c . ‘ \ f o r a n y m u l t i p l i c i t y . A g a i n , t h e f o u r c o n s t r a i n t s a r e : F u n c t i o n a l : V a s , y , z ( R ( a : , y ) / \ R ( a : , 2 ) = > y = z ) ( 3 . 6 ) I n j e c t i v e : V r r , y , z ( R ( : c , z ) A R ( y , 2 ) = > 1 : = y ) ( 3 . 7 ) S u r j e c t i v e : V y 3 : r R ( : r , y ) ( 3 . 8 ) T o t a l : V a r E l y R ( a : , y ) ( 3 . 9 ) A s m e n t i o n e d a b o v e , t h e r e a r e fi f t e e n p o s s i b l e r e l a t i o n c h a r a c t e r i z a t i o n s f o r a n a s s o c i - a t i o n , b u t F i g u r e 3 . 3 s h o w s t h e b a s i s s e t f r o m w h i c h a n y a s s o c i a t i o n c h a r a c t e r i z a t i o n c a n b e f o r m e d . I n t h e fi g u r e , t h e a s s o c i a t i o n i s l a b e l e d w i t h t h e l e t t e r s F , I , S a n d T t o d e n o t e f u n c t i o n a l , i n j e c t i v e , s u r j e c t i v e a n d t o t a l p r o p e r t i e s o f t h e r e l a t i o n . T h e p r o p e r t i e s o f t h e r e v e r s e r e l a t i o n s , i . e . , R ’ ( y , : 1 3 ) , f o r m e d b y e x c h a n g i n g t h e p o s i t i o n s o f t h e “ 1 ” o n t h e r i g h t a n d t h e m u l t i p l i c i t i e s l i s t e d o n t h e l e f t a r e p r o d u c e d b y i n t e r c h a n g i n g t h e r o l e s o f f u n c t i o n a l a n d i n j e c t i v e , a n d i n t e r c h a n g i n g s u r j e c t i u e a n d t o t a l . I n F i g u r e 3 . 3 t h e i t a l i c i z e d l a b e l s i n p a r e n t h e s i s d e n o t e t h e r e v e r s e r e l a t i o n s h i p . l R ( x . y ) l F I S T ( F I S T ) 1 R ( x . y ) 0 . . 1 F I S ( F I T ) l R ( x . y ) O . . " ' [ S ( F T ) l R ( x . y ) l . . " ‘ l S T ( F S T ) F i g u r e 3 . 3 : T h e f o u r b a s i s r e l a t i o n s f r o m w h i c h a l l o t h e r a s s o c i a t i o n r e l a t i o n s h i p s c a n b e f o r m e d . 3 8 t i t F . 5 : 9 . 5 3 t 9 m 1 , a 8 : 3 " 2 8 { C o n s t r a i n ‘ 1 ' ” o n e a o f t h e i o n i n t e r s e c t i c w i t h p r o p i n j e c l i i r e 3 U M L l l n l t i p l i c i f a n d e s c r i i n f o r p R l . r p l f d l t j a t e I t A n y a s s o c i a t i o n c a n b e c h a r a c t e r i z e d b y r e d u c i n g i t t o t w o a s s o c i a t i o n s w i t h m u l t i p l i c i t y “ 1 ” o n e a c h e n d . T h e n e w c h a r a c t e r i z a t i o n i s f o r m e d b y t a k i n g t h e l e a s t c o n s t r a i n i n g s e t o f t h e f o u r p r o p e r t i e s t h a t c h a r a c t e r i z e s t h e r e l a t i o n . T h i s e f f e c t i v e l y m e a n s t a k i n g t h e i n t e r s e c t i o n o f t h e p r o p e r t i e s . F o r e x a m p l e , F i g u r e 3 . 4 s h o w s h o w m u l t i p l i c i t i e s 1 t o 1 . . * w i t h p r o p e r t i e s I S T a n d 0 . . 1 t o 1 w i t h p r o p e r t i e s F I T a r e c o m b i n e d t o f o r m t h e c o n s t r a i n t s i n j e c t i u e a n d t o t a l ( t h e i n t e r s e c t i o n o f I S T a n d F I T ) . 1 l . . " ‘ x Y [ S T 0 . . 1 R , l . . * + , x ( x y ) y I T . . 1 l x 0 Y F I T F i g u r e 3 . 4 : E x a m p l e s h o w i n g h o w m u l t i p l i c i t i e s 0 . . 1 a n d 1 . . * a r e d e c o m p o s e d t o fi n d t h e s e t o f c o n s t r a i n t s f o r a n a s s o c i a t i o n . U M L a l s o i n c l u d e s c a r d i n a l m u l t i p l i c i t i e s w i t h l i m i t s o f t h e f o r m m . . n w h e r e m < n . M u l t i p l i c i t i e s a r e s t a t i c a l l y s e t i n b o t h c l a s s a n d m e t a m o d e l s , t h e r e f o r e , fi r s t o r d e r p r e d i c a t e s c a n d e s c r i b e t h e s e c o n s t r a i n t s . E x p r e s s i n g t h e u p p e r b o u n d o n a m u l t i p l i c i t y n , s u c h a s i n 1 . . n f o r p r e d i c a t e R i s a c c o m p l i s h e d w i t h a c o n s t r a i n t p r e d i c a t e o f t h e f o r m R h i n e / 1 ) / \ R ( : v , y 2 ) / \ . - - R ( $ , y n + 1 ) = > y 1 = 3 1 2 V i n : y a V - - - y n = y n + 1 - ( 3 - 1 0 ) C o n s t r a i n i n g t h e l o w e r b o u n d t o b e a t l e a s t m , f o r e x a m p l e m . . n i s a c c o m p l i s h e d w i t h a p r e d i c a t e o f t h e f o r m R ( a = , y 1 ) A R ( $ , y 2 ) / \ - - - R ( w , y m ) / \ 3 1 1 7 5 3 1 2 / \ 1 1 1 7 5 y a A - - - y n — l ¢ y n - ( 3 - 1 1 ) S e t t i n g a s p e c i fi c r a n g e o f c a r d i n a l i t i e s i s a c c o m p l i s h e d b y c o n j u n c t i n g a p r e d i c a t e o f t h e 3 9 f o r m o f E l p r e s s i o n n o n e t h e l r 3 . 1 . 4 I A s a n e x ; l l l t ‘ i i l l l l O d t d o s t a t e , w i t h t h e l i \ t F i f o r m o f E x p r e s s i o n ( 3 . 1 0 ) w i t h E x p r e s s i o n ( 3 . 1 1 ) . W h i l e p r e d i c a t e s o f t h e f o r m o f E x - p r e s s i o n ( 3 . 1 0 ) a n d E x p r e s s i o n ( 3 . 1 1 ) c a n b e c o m p l e x , c o n s t r a i n i n g s p e c i fi c c a r d i n a l i t i e s i s n o n e t h e l e s s p o s s i b l e . 3 . 1 . 4 E x a m p l e o f a C l a s s F o r m a l i z a t i o n A s a n e x a m p l e , F i g u r e 3 . 5 s h o w s a s m a l l m o d e l t a k e n f r o m a p a r t o f t h e U M L d y n a m i c m e t a m o d e l . F o r c o n c i s e n e s s , c l a s s S V r e f e r s t o S t a t e V e r t e x , S t o S t a t e , P S t o P s e u - d o s t a t e , S S t o S i m p l e S t a t e , a n d T t o T r a n s i t i o n . T h e m e t a m o d e l i s f u l l y c h a r a c t e r i z e d w i t h t h e f o l l o w i n g p r e d i c a t e s : S V l I n c o m i n g 1 P S S > T — — — ( L L c s 5 3 F i g u r e 3 . 5 : A s m a l l m e t a m o d e l t o d e m o n s t r a t e t h e p r e d i c a t e c o n s t r a i n t s . 4 0 P r e d i c [ O T C l a s s t P r e d i c a t e . W ( 3 . 1 . ? C O m P O H G I i ‘ l l l l r i n g a l l . t 0 W a r d t l . l i t e . S l u r P l t ‘ d i c a t e O n e - t 0 ‘ 0 1 ] ; V 2 : ( T o s h ? ) = > T s t w ) = > T s v ( $ ) ) ( 3 - 1 2 ) V 3 : ( T s s ( : v ) = > T s ( : v ) = > T s v ( $ ) ) ( 3 - 1 3 ) v 2 : ( T p s = T s v ( fl ? ) ) ( 3 - 1 4 ) V a r , y , z ( T 5 V ( x ) A T c s w ) A 7 2 3 5 ( 2 ) A h a s C o m p ( : r . , y ) A h a s C o m p ( a : , 2 ) = > y = z ) ( 3 . 1 5 ) V 2 1 3 3 ; ( T m / ( 3 3 ) A T o s ( y ) A h a s C o m fl w , 3 1 ) ) ( 3 - 1 6 ) V a r , y , z ( T C - 5 ( a r ) A T C S ( y ) A T 5 v ( z ) A h a s C o m p ( : r , z ) A h a s C o m p ( y , 2 ) = > : 1 : = y ) ( 3 . 1 7 ) V Z , y , z ( T 5 ( : r ) / \ T T ( y ) A T T ( z ) A i n c o m i n g ( a : , y ) A i n c o m i n g ( a ; , z ) = > y = z ) ( 3 . 1 8 ) V a r , y , z ( T 5 ( a : ) A T T ( y ) A T T ( z ) A i n c o m i n g ( : r , z ) A i n c o m i n g ( y , 2 ) = > : 1 : = y ) ( 3 . 1 9 ) V y E l a : ( T 3 ( : r ) A T T ( y ) A i n c o m i n g ( a : , y ) ) ( 3 . 2 0 ) V 3 3 3 3 ; ( T 3 ( : c ) A T T ( y ) A i n c o m i n g ( a : , y ) ) ( 3 . 2 1 ) P r e d i c a t e s 3 . 1 2 a n d 3 . 1 3 c o n v e y i n h e r i t a n c e b y e x p r e s s i n g t h a t a n y o b j e c t t h a t i s t y p e ( o r c l a s s ) C S o r S S i s a l s o t y p e ( o r c l a s s ) S , a n d o b j e c t s o f t y p e S a r e a l s o t y p e S V . P r e d i c a t e ( 3 . 1 4 ) e x p r e s s e s t h e i n h e r i t a n c e r e l a t i o n s h i p b e t w e e n c l a s s e s P S a n d S V . P r e d - i c a t e ( 3 . 1 5 ) s a y s i f t h e r e i s a C S c o m p o n e n t f o r a n S V o b j e c t , t h e n t h e r e i s o n l y o n e S V c o m p o n e n t . P r e d i c a t e ( 3 . 1 6 ) e x p r e s s e s t h e a g g r e g a t i o n r e l a t i o n i n t h e o t h e r d i r e c t i o n , r e - q u i r i n g a n o b j e c t o f t y p e S V f o r e a c h C S o b j e c t . T h e h a s C o m p p r e d i c a t e i s d i r e c t i o n a l t o w a r d t h e c o l l e c t i o n f o r t h e p u r p o s e o f s e t t i n g p r o p e r t i e s s u c h a s f u n c t i o n a l a n d i n j e c - t i v e . S i n c e t h i s a g g r e g a t i o n i s c o m p o s i t i o n , t h e i n j e c t i v e c o n s t r a i n t h a s b e e n a d d e d a s P r e d i c a t e ( 3 . 1 7 ) . P r e d i c a t e s ( 3 . 1 8 ) t h r o u g h ( 3 . 2 1 ) c o n s t r a i n t h e r e l a t i o n I n c o m i n g t o b e o n e - t o — o n e a n d o n t o , t h a t i s , f o r e v e r y S - t y p e o b j e c t t h e r e i s a T — t y p e o b j e c t , a n d v i c e 4 1 D t O E v e r s a . U M L c o n t a i n s t h e c o n c e p t o f a d e p e n d e n c y e i t h e r b e t w e e n c l a s s e s o r b e t w e e n r e l a t i o n s . D e p e n d e n c i e s a r e d r a w n i n U M L a s a d o t t e d l i n e b e t w e e n t h e e l e m e n t s a n d d e n o t e t h a t o n e a s s o c i a t i o n ( c l a s s ) i s d e p e n d e n t o n t h e o t h e r . F o r e x a m p l e , i n F i g u r e 3 . 6 t h e d i a g r a m i n d i c a t e s t h a t a n y A a s s o c i a t e d t o C b y r e l a t i o n R 1 h a s a d e p e n d e n t i n s t a n c e o f B a s s o c i a t e d b y R 2 . S i m i l a r l y , f o r e a c h D a s s o c i a t e d w i t h E t h e r e i s a d u a l r e l a t i o n , R 3 a n d R 4 t o t h e i n s t a n c e ( s ) o f E . W e f o r m a l i z e t h e d e p e n d e n c y r e l a t i o n b y i n c l u d i n g a l l c o m p o n e n t s i n a s i n g l e p r e d i c a t e . T h e r e f o r e , t h e r e l a t i o n b e t w e e n D a n d B w o u l d b e f o r m a l i z e d a s 1 2 3 4 ( 1 ) , E ) . R ] A 1 . . * D 1 1 1 C R 3 . . . . . . . . . . R 4 1 1 . . * 1 * B R 2 E 1 . . * F i g u r e 3 . 6 : E x a m p l e o f d e p e n d e n c i e s b e t w e e n c l a s s e s a n d a s s o c i a t i o n s . 3 . 2 M a p p i n g F r a m e w o r k A s d e s c r i b e d i n [ 3 2 ] , t r a n s f o r m i n g a s e m i - f o r m a l m o d e l s u c h a s a U M L d y n a m i c m o d e l t o a f o r m a l m o d e l i s l a r g e l y a m a t t e r o f g e n e r a t i n g p r e c i s e s e m a n t i c s . G e n e r a t i n g s e m a n t i c s i s a c c o m p l i s h e d b y a r i g o r o u s m a p p i n g f r o m t h e s e m i - f o r m a l l a n g u a g e t o a f o r m a l l y d e fi n e d l a n g u a g e p o s s e s s i n g p r e c i s e s e m a n t i c s . W e c a l l t h e s e m i - f o r m a l l a n g u a g e t h e s o u r c e l a n g u a g e a n d t h e f o r m a l l a n g u a g e t h e t a r g e t l a n g u a g e . T h e c o m b i n a t i o n o f a s e t o f m a p p i n g r u l e s p l u s a l a n g u a g e t h a t h a s f o r m a l s e m a n t i c s g e n e r a t e s t h e s e m a n t i c s f o r U M L . T o e n s u r e 4 2 ( ‘ 0 1 l l l f 1 1 1 C C o : l l E f i l l 5 1 ' C l : C 1 3 w e c o n s i s t e n c y a n d r i g o r , t h e m a p p i n g r u l e s r e s t u p o n a h o m o m o r p h i c m a p p i n g b e t w e e n t h e m e t a m o d e l o f t h e s o u r c e l a n g u a g e ( U M L ) a n d a m e t a m o d e l o f t h e t a r g e t l a n g u a g e . 3 . 2 . 1 I n f o r m a l D i s c u s s i o n o f t h e M a p p i n g F r a m e w o r k U M L d o e s n o t h a v e a p r e c i s e s e m a n t i c s . I n o t h e r w o r d s , t h e r e a r e d i a g r a m m a t i c c o n s t r u c t s f o r w h i c h t h e i n t e r p r e t a t i o n i s a m b i g u o u s . F o r e x a m p l e , c o n s i d e r t h e s e c t i o n o f a d y n a m i c m o d e l s h o w n i n F i g u r e 3 . 7 . T h e fi g u r e s h o w s t w o c o n c u r r e n t c o m p o s i t e s t a t e s C o n c u r l a n d C o n c u r 2 e a c h c o n t a i n i n g t w o s i m p l e s t a t e s . N o r m a l l y , o n e w o u l d e x p e c t t h e s e c o n c u r r e n t s t a t e s t o r u n i n p a r a l l e l a s t w o s e p a r a t e t h r e a d s , s o w h a t e x a c t l y i s t h e m e a n i n g o f t h e t r a n s i t i o n w i t h t h e e v e n t S t a r t e n d i n g o n s t a t e O n l ? S h o u l d o n l y t h e t o p c o n c u r r e n t c o m p o s i t e s t a t e b e g i n , o r s h o u l d b o t h c o n c u r r e n t s t a t e s b e g i n ? S h o u l d t h i s t r a n s i t i o n b e s y n t a c t i c a l l y v a l i d a t a l l ? T h e p u r p o s e o f t h e m a p p i n g f r a m e w o r k d e s c r i b e d i n t h i s s e c t i o n i s t o s o l v e p r o b l e m s l i k e t h i s b y a s s i g n i n g s p e c i fi c m e a n i n g t o e a c h c o n s t r u c t i n U M L . T h i s i s a c c o m p l i s h e d b y e s s e n t i a l l y “ d e fi n i n g ” a U M L c o n s t r u c t i n t e r m s o f s o m e o t h e r , w e l l - d e fi n e d , f o r m a l l a n g u a g e . O n c e a m a p p i n g o f t h i s t y p e i s c o m p l e t e , t h e q u e s t i o n “ w h a t d o e s t h i s U M L c o n s t r u c t m e a n ? ” c a n b e a n s w e r e d w i t h “ i t m e a n s t h e s a m e a s t h i s c o n s t r u c t i n t h e f o r m a l l a n g u a g e ” . T h i s a p p r o a c h i t s e l f i s n o t n e w . D e n o t a t i o n a l s e m a n t i c s i s l a r g e l y c o n c e r n e d w i t h p r e - c i s e l y d e fi n i n g t h e m e a n i n g o f a s y n t a c t i c c o n s t r u c t t h r o u g h a s e t o f r u l e s t h a t c o v e r t h e c o n s t r u c t . P e r h a p s a m o r e i n t u i t i v e d e s c r i p t i o n c a n b e d r a w n f r o m t h e a c t i o n s o f a c o m - p i l e r . F o r e x a m p l e , a “ C ” c o m p i l e r p r e c i s e l y d e fi n e s t h e m e a n i n g o f a p a r t i c u l a r C - l a n g u a g e s t a t e m e n t b y p r o d u c i n g a s e t o f m a c h i n e i n s t r u c t i o n s t h a t i m p l e m e n t t h e s e m a n t i c s o f t h e s t a t e m e n t . F o r e x a m p l e , o n e m a y w r i t e t h e s t a t e m e n t s : i = 0 ; f o o ( + + i , + + i ) ; . W h a t w i l l b e t h e v a l u e s o f t h e t w o p a r a m e t e r s p a s s e d t o f u n c t i o n f o o ( ) ? D e p e n d i n g o n h o w t h e 4 3 C o n c u r 1 O n 1 E v e n t I S t a r t > r O f t 1 O f f 1 E v e n t O n 1 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ C o n c u r 2 O n Z E v e n t 0 t h O t f 1 E v e n t O n 2 F i g u r e 3 . 7 : E x a m p l e o f a n a m b i g u o u s s e c t i o n o f a U M L d i a g r a m . c o m p i l e r p u s h e s a r g u m e n t s o n t o t h e s t a c k f o r t h e p r o c e d u r e c a l l , o r i n d e e d , w h e t h e r i t u s e s r e g i s t e r s i n s t e a d o f t h e s t a c k , a n d d e p e n d i n g o n h o w t h e i n c r e m e n t O p e r a t o r i s i m p l e m e n t e d , t h e p o s s i b i l i t i e s i n c l u d e f o o ( 1 , 2 ) , f o o ( 2 , 1 ) , a n d f o o ( 1 , 1 ) , a l t h o u g h t h e l a s t o n e s e e m s l e a s t l i k e l y . T h e e x a c t m e a n i n g o f t h e t w o s t a t e m e n t s a b o v e a r e g i v e n b y a s p e c i fi c m a p p i n g f r o m t h e s y n t a c t i c a l s t r u c t u r e 1 = 0 ; f o o ( + + i , + + i ) ; t o a f o r m a l l a n g u a g e , n a m e l y , a m a c h i n e l a n g u a g e . A c t u a l e x e c u t i o n o f t h i s s t a t e m e n t p r o v i d e s a c o n c r e t e m e a n i n g f o r t h e s y n t a c t i c a l c o n s t r u c t . S i m i l a r l y , o u r f r a m e w o r k “ c o m p i l e s ” U M L t o a f o r m a l l a n g u a g e t h a t h a s a p r e c i s e d e fi - n i t i o n , e i t h e r b y v i r t u e o f b e i n g e x e c u t a b l e o r b e c a u s e t h e f o r m a l l a n g u a g e i s w e l l - d e fi n e d . I n o u r c a s e , t h e “ c o m p i l e r s e m a n t i c s ” a r e a p r e c i s e s e t o f r u l e s f o r m a p p i n g U M L t o a f o r m a l t a r g e t l a n g u a g e . T h e q u e s t i o n o f “ h o w d o w e k n o w t h e m a p p i n g m a k e s s e n s e ? ” i s a n s w e r e d b y r e f e r r i n g t o t h e h o m o m o r p h i s m b e t w e e n t h e l a n g u a g e m e t a m o d e l s . T h e U M L m e t a m o d e l d e s c r i b e s t h e s y n t a x o f U M L i n a g r a p h i c a l f o r m . S i m i l a r l y , w e c o n s t r u c t a m e t a m o d e l o f t h e t a r g e t f o r m a l l a n g u a g e . T o c o n n e c t t h e t w o l a n g u a g e s , w e c o n s t r u c t a h o m o m o r p h i c m a p p i n g b e t w e e n t h e m e t a m o d e l s a n d c o n s t r a i n t h e m a p p i n g 4 4 u l e s i t h ' w r v e s e s o f S t e e n t l e s e a s t s w r m a l l y 12' r p c b f r l e o c l a s s e s a r e l u y . t s . f o r m a l h T t b y h e h o t o s p e c i f y s t r u c t u r e . c o n s t r C o a n i n t s t f e c t : i t a s m p a h p i p s i m n g . c a r h e h 0 H l o m l e t t C ( e b W f r i t h m i c m n e c e m “ i S 8 t U m O " a f t e r , h r u l e s w i t h t h e h o m o m o r p h i c m a p p i n g . T h e m a p p i n g i s “ h o m o m o r p h i c ” i n t h e s e n s e t h a t i t p r e s e r v e s s t r u c t u r a l r e l a t i o n s h i p s w i t h i n t h e m e t a m o d e l . T h e h o m o m o r p h i c m a p p i n g s e n d s c l a s s e s o f t h e s o u r c e m e t a m o d e l t o c l a s s e s i n t h e t a r g e t m e t a m o d e l a n d m a p s r e l a t i o n s h i p s b e t w e e n t h e c l a s s e s f r o m t h e s o u r c e m e t a m o d e l t o t h e t a r g e t m e t a m o d e l . A s i s e x p l a i n e d f o r m a l l y l a t e r , t h e m a p p i n g m u s t p r e s e r v e r e l a t i o n s h i p s . I n a n a n a l o g y t o a n a l g e b r a , t h e c l a s s e s a r e t h e e l e m e n t s o f t h e a l g e b r a a n d t h e r e l a t i o n s h i p s a r e t h e o p e r a t o r s , a l t h o u g h f o r m a l l y , w e d o n o t c o n s i d e r t h e m e t a m o d e l t o b e a n a l g e b r a . T h u s , t h e “ c o m p i l e r s e m a n t i c s ” b e t w e e n U M L a n d t h e f o r m a l l a n g u a g e a r e c o n s t r a i n e d b y t h e h o m o m o r p h i c m a p p i n g b e t w e e n t h e r e s p e c t i v e m e t a m o d e l s . A r u l e i s n o t a l l o w e d t o s p e c i f y a t r a n s f o r m t h a t v i o l a t e s t h e h o m o m o r p h i s m . I n t h i s w a y , w e a r e a s s u r e d t h a t s t r u c t u r e , a n d h e n c e m e a n i n g , i s p r e s e r v e d b y t h e m a p p i n g r u l e s . F u r t h e r , t h e h o m o m o r p h i c c o n s t r a i n t p r o v i d e s c o n s i s t e n c y w i t h i n t h e r u l e s . C o n s t r a i n i n g t h e m a p p i n g r u l e s w i t h t h e h o m o m o r p h i s m h a s a n a d d i t i o n a l b e n e fi c i a l e f - f e c t : i t a s s u r e s c o m p l e t e n e s s . E v e r y r u l e m u s t c o r r e s p o n d t o s o m e p a r t o f t h e h o m o m o r p h i c m a p p i n g . C o n v e r s e l y , s e c t i o n s o f t h e m e t a m o d e l t h a t a r e n o t m a p p e d b y t h e h o m o m o r - p h i s m c a n n o t o c c u r i n t h e m a p p i n g r u l e s . T h e r e f o r e , b y c o m p a r i n g t h e m a p p i n g r u l e s a n d t h e h o m o m o r p h i c m a p p i n g b e t w e e n m e t a m o d e l s w e c a n e n s u r e s t r u c t u r a l c o n s i s t e n c y a n d c o m p l e t e n e s s . W i t h a c o m p l e t e s e t o f m a p p i n g r u l e s a n d t h e c o r r e s p o n d i n g h o m o m o r p h i s m , a n i n s t a n c e o f a s o u r c e m o d e l c a n b e t r a n s f o r m e d i n t o a n i n s t a n c e o f a t a r g e t m o d e l . S i n c e t h e t a r g e t i n s t a n c e m o d e l h a s p r e c i s e l y d e fi n e d s e m a n t i c s , t h e s e s e m a n t i c s a r e c o n v e y e d t o t h e U M L s o u r c e m o d e l . F i g u r e 3 . 8 s u m m a r i z e s d i a g r a m m a t i c a l l y t h e r e l a t i o n s h i p b e t w e e n t h e s o u r c e , t a r g e t , h o m o m o r p h i s m , a n d m a p p i n g r u l e s . 4 5 h o m o m o h i s m U M L l a n g u a g e m e t a m o d e l r p > F o r m a l l a n g u a g e m e t a m o d e l C o n s t r a i n s I n s t a n c e C o n s t r a i n s [ R u l e s C o n s t r a t n s ' ’ I n s t a n c e S e m i - f o r m a l l a n g u a g e M o d e l I t A F o r m a l l a n g u a g e M o d e l M a p p i n g R u l e s F i g u r e 3 . 8 : T h e r e l a t i o n s h i p b e t w e e n t h e s e m i - f o r m a l s o u r c e l a n g u a g e , t h e f o r m a l t a r g e t l a n g u a g e , t h e h o m o m o r p h i c b i n d i n g a n d t h e i n s t a n c e - s p e c i fi c m a p p i n g r u l e s . 3 . 2 . 2 H o m o m o r p h i c M a p p i n g s o n M e t a m o d e l s T h e f o r m a l b a s i s o f t h e h o m o m o r p h i c m a p p i n g b e t w e e n m e t a m o d e l s i s d i s c u s s e d i n t h i s s e c t i o n . H o m o m o r p h i c m a p p i n g s h a v e t h e i m p o r t a n t p r o p e r t y t h a t t h e y p r e s e r v e s t r u c t u r a l r e - l a t i o n s h i p s b e t w e e n e n t i t i e s i n t w o d i f f e r e n t s y s t e m s . T h i s e n a b l e s c o m p o s i t i o n a l , s e m a n t i c - p r e s e r v i n g m a p p i n g s f r o m o n e s y s t e m t o a n o t h e r . I n a l g e b r a s , a h o m o m o r p h i c m a p p i n g m a p s o n e a l g e b r a t o a n o t h e r w i t h t h e p r o p e r t y o f p r e s e r v i n g o p e r a t i o n s [ 3 4 ] . F o r a l g e b r a A w i t h b i n a r y o p e r a t i o n E B , a l g e b r a B w i t h o p e r a t i o n ® , a n d a h o m o m o r p h i c m a p p i n g h t h a t m a p s e l e m e n t s o f A t o B , w e h a v e a , b E A : h ( a 6 3 b ) 2 : h ( a ) ® h ( b ) . W e d e fi n e a h o m o m o r p h i c f u n c t i o n f r o m t h e s o u r c e m e t a m o d e l t o t h e t a r g e t m e t a - m o d e l t h a t p r e s e r v e s m e t a m o d e l c l a s s r e l a t i o n s h i p s . T h e f u n c t i o n m a p s c l a s s e s f r o m o n e m e t a m o d e l t o a n o t h e r a n d r e l a t i o n s h i p s f r o m o n e m e t a m o d e l t o a n o t h e r , w h i l e p r e s e r v i n g r e l a t i o n s h i p s b e t w e e n m e t a m o d e l c l a s s e s . I n t e r m s o f o u r c l a s s f o r m a l i z a t i o n , f o r e a c h t y p - i n g p r e d i c a t e i n t h e s o u r c e m e t a m o d e l ( w h i c h r e p r e s e n t s a c l a s s i n t h e s o u r c e m e t a m o d e l ) , t h e h o m o m o r p h i c f u n c t i o n m a p s t o a t y p i n g p r e d i c a t e i n t h e t a r g e t m o d e l . S i m i l a r l y , f o r 4 6 e a c h r e l a t i o n s h i p p r e d i c a t e i n t h e s o u r c e m e t a m o d e l , t h e m a p p i n g f u n c t i o n m a p s t o a r e l a - t i o n s h i p s p r e d i c a t e i n t h e t a r g e t m o d e l . F o r e x a m p l e , s u p p o s e t h e s o u r c e l a n g u a g e c o n t a i n s c l a s s e s ( t y p e s ) A a n d B t h a t a r e m a p p e d b y f u n c t i o n h t o c l a s s e s ( t y p e s ) A ’ a n d B ’ , r e s p e c - t i v e l y , i n t h e t a r g e t l a n g u a g e . A l s o a s s u m e t h e r e e x i s t s a r e l a t i o n p r e d i c a t e R b e t w e e n A a n d B t h a t i s m a p p e d b y h t o R ’ . T h e n o u r d e fi n i t i o n o f a h o m o m o r p h i c f u n c t i o n r e q u i r e s h t o s a t i s f y : V 9 5 , 3 1 ( T A ( I I I ) A T B ( y ) A R U E . a l l ) = > ( T A ’ ( N e i l ) A T B ’ ( h ( y ) ) A R ' ( h ( € v ) , h ( y l l l - ( 3 - 2 2 ) I n E x p r e s s i o n ( 3 . 2 2 ) , a : a n d y a r e m e m b e r s o f m e t a m o d e l c l a s s e s A a n d B , a n d a r e t h e r e f o r e i n s t a n c e s o f a d i a g r a m c o m p o n e n t . S i m i l a r l y , h ( : r ) a n d h ( y ) a r e c o m p o n e n t s o f t h e f o r m a l l a n g u a g e . E x p r e s s i o n ( 3 . 2 2 ) r e q u i r e s c l a s s e s A a n d B t h a t a r e a s s o c i a t e d b y R t o m a p t o c l a s s e s A ’ a n d B ’ , r e s p e c t i v e l y . E x p r e s s i o n ( 3 . 2 2 ) f u r t h e r r e q u i r e s t h e e x i s t e n c e o f a n a s s o c i a t i o n R ’ i n t h e t a r g e t m e t a m o d e l c o n n e c t e d t o R b y h b e t w e e n c l a s s e s A ’ a n d B ’ . W e n o t e t h a t h i s n o t n e c e s s a r i l y i n j e c t i v e , a n d w i t h a c t u a l m e t a m o d e l s , i s v e r y r a r e l y s o . I n t h e a b o v e e x a m p l e , t h e r e m a y b e o t h e r r e l a t i o n s b e t w e e n A ’ a n d B ’ o t h e r t h a n R ’ , b u t m i n i m a l l y , R ’ m u s t e x i s t . T h i s c a s e i s f u r t h e r d i s c u s s e d b e l o w . 3 . 2 . 3 H a n d l i n g S t r u c t u r a l l y D i f f e r e n t M e t a m o d e l s I t i s r a r e l y t h e c a s e t h a t t h e s o u r c e m e t a m o d e l a n d t a r g e t m e t a m o d e l a r e s t r u c t u r a l l y i d e n t i c a l . I n g e n e r a l , w e a r e g i v e n a m e t a m o d e l o f t h e s o u r c e l a n g u a g e , b u t s i n c e t h e g o a l i s t o p r o d u c e a m a p p i n g t o s u p p l y s e m a n t i c s t o t h e s o u r c e l a n g u a g e , w e h a v e s o m e fl e x i b i l i t y w h e n c o n s t r u c t i n g t h e t a r g e t m e t a m o d e l t o c h o o s e a n d a r r a n g e t h e p a r t s o f t h e t a r g e t l a n g u a g e t h a t a r e s e m a n t i c a l l y r e l e v a n t . I n o r d e r t o m a k e t h e m a p p i n g s t r a i g h t f o r w a r d , w h e n p o s s i b l e , a t a r g e t c l a s s i s c o n s t r u c t e d f o r e a c h s o u r c e c l a s s i n t h e s o u r c e m e t a m o d e l . 4 7 S i n e h e n i n t l s i t u h i t . 4 ' 2 h a s H o t d u e S i n c e t h e m a p p i n g f u n c t i o n i s h o m o m o r p h i c , i t n e e d n o t b e s u r j e c t i v e , t h e r e f o r e , t h e r e m a y b e m o r e c l a s s e s i n t h e t a r g e t t h a n i n t h e s o u r c e . S i m i l a r l y , t h e r e m a y b e m o r e r e l a t i o n s h i p s i n t h e t a r g e t t h a n i n t h e s o u r c e . I t m a y b e t h e c a s e t h a t a n a s s o c i a t i o n i n t h e t a r g e t m e t a m o d e l i s n o t e x p l i c i t l y d e p i c t e d , b u t r a t h e r i n f e r r e d . F o r e x a m p l e , t h e p r e d i c a t e s h a s P a r t a n d h a s C o m p a r e b o t h t r a n s i t i v e , t h e r e f o r e , t h e r e m a y b e i n f e r r e d a g g r e g a t i o n l e v e l s n o t e x p l i c i t l y d r a w n i n t h e t a r g e t . T h e s i t u a t i o n i s d e p i c t e d i n F i g u r e 3 . 9 . I n t h e s o u r c e d i a g r a m , B i s a p a r t o f A . A s s u m e f u n c t i o n h m a p s A t o A ’ a n d B t o B ’ . A l s o a s s u m e i t i s n e c e s s a r y t o i n t r o d u c e c l a s s C b e t w e e n A ’ a n d B ’ b e c a u s e o f t h e c o n s t r a i n t s o f t h e t a r g e t l a n g u a g e . T h e m a p p i n g r u l e s r e q u i r e h a s P a r t ( A , B ) t o b e m a t c h e d b y a h a s P a r t r e l a t i o n i n t h e t a r g e t . T h a t i s : V 1 5 , y ( T A ( : r ) A T 3 ( y ) A h a s P a r t ( : r , y ) = > T A ’ ( h ( $ ) ) A T B ’ 0 1 ( 9 ) ) A h a 8 1 " C l t " t ( h ( : v ) , h ( y l l l ( 3 - 2 3 ) H o w e v e r , a s s e e n i n F i g u r e 3 . 9 , t h e r e i s a n i n f e r r e d h a s P a r t r e l a t i o n b e t w e e n A ' a n d B ’ d u e t o t h e t r a n s i t i v i t y o f h a s P a r t . F o r m a l l y : V 1 1 3 , y , z ( T A : ( : 1 3 ) A T C ( y ) A T B : ( 2 : ) A h a s P a r t ( a : , y ) A h a s P a r t ( y , 2 ) = > h a s P a r t ( : r : , z ) ) ( 3 . 2 4 ) T h e r e f o r e , t h e m a p p i n g a s d e s c r i b e d i s v a l i d . 3 . 2 . 4 T a r g e t M e t a m o d e l T e m p l a t e s T h e t a r g e t l a n g u a g e s t h a t w e h a v e t y p i c a l l y s e l e c t e d a r e a t l e a s t e x e c u t a b l e i n s i m u l a t i o n a n d t h e r e f o r e o f t e n h a v e s t a t e m e n t s t h a t d e s c r i b e m o r e d e t a i l s o f e x e c u t i o n t h a n t h e c o n s t r u c t s 4 8 S O U I ' C C : T a r g e t l A : A ' - - 5 ' i t 0 ! M a p i p i n g [ i h ( ) ' , B C i i l g ' i i B ! - . . — . . - . . - . / I n f e r r e d a g g r e g a t i o n F i g u r e 3 . 9 : A g g r e g a t i o n s b e t w e e n A ’ a n d B ’ a r e i n f e r r e d i n t h e U M L m e t a m o d e l . F o r e x a m p l e w h e n u s i n g t h e t a r g e t l a n g u a g e V H D L , a U M L d y n a m i c d i a g r a m S t a t e m a p s t o a s e r i e s o f V H D L s t a t e m e n t s p r e s e n t e d a s a t e m p l a t e . 2 E a c h t e m p l a t e i s r e p r e s e n t e d i n t h e t a r g e t m e t a m o d e l b y o n e o r m o r e c l a s s e s c o n n e c t e d b y z e r o o r m o r e c o n n e c t o r s , a n d s e r v e s a s a t a r g e t l a n g u a g e m e t a m o d e l b u i l d i n g b l o c k . S o m e t e m p l a t e s ( r e p r e s e n t e d b y a c l a s s ) r e q u i r e a g g r e g a t i o n s o f o t h e r t e m p l a t e s ( a l s o r e p r e s e n t e d a s c l a s s e s ) f o r c o m p l e t i o n . T h i s r e l a t i o n s h i p i s d r a w n i n t h e t a r g e t m e t a m o d e l a s a n a g g r e g a t i o n o r c o m p o s i t i o n r e l a t i o n . F o r e x a m p l e , t h e t e m p l a t e t h a t r e p r e s e n t s C o m p o s i t e S t a t e r e q u i r e s t h e i n c l u s i o n ( t h r o u g h a g g r e g a t i o n ) o f t e m p l a t e s f o r S i m p l e S t a t e s i n o r d e r t o b e c o m p l e t e . U s i n g d e t a i l e d t e m p l a t e s p e r m i t s t h e a u t o m a t i c g e n e r a t i o n o f t a r g e t l a n g u a g e s p e c i fi c a t i o n s t h a t a r e e x e c u t a b l e . M o r e e x a m p l e s o f t e m p l a t e s a r e i n C h a p t e r s 5 a n d 6 w h e r e m a p p i n g r u l e s f o r V H D L a n d P r o m e l a a r e d e s c r i b e d i n d e t a i l . 2 B y t e m p l a t e , w e d o n o t m e a n t e m p l a t e c l a s s a s f o u n d i n C + + , b u t r a t h e r a p a t t e r n o f t a r g e t l a n g u a g e s t a t e m e n t s . 4 9 3 . 3 U n i fi e d U M L C l a s s a n d D y n a m i c M e t a m o d e l A c o m p l e t e s y s t e m m o d e l c o n t a i n s , a t a m i n i m u m , t w o t y p e s o f U M L d i a g r a m s : a c l a s s d i a g r a m , a n d a t l e a s t o n e d y n a m i c m o d e l d i a g r a m . E a c h o f t h e s e t y p e s o f d i a g r a m s a r e d e - s c r i b e d b y s e p a r a t e m e t a m o d e l s i n t h e U M L r e f e r e n c e s [ 2 4 ] , h o w e v e r t h e r e i s o n l y o n e t a r g e t m e t a m o d e l a n d a s i n g l e h o m o m o r p h i c m a p p i n g . S i n c e o u r a p p r o a c h d e s c r i b e s a m a p p i n g f r o m a s i n g l e U M L m e t a m o d e l t o a t a r g e t m e t a m o d e l , m u l t i p l e m e t a m o d e l s d e s c r i b i n g v a r i - o u s U M L d i a g r a m s m u s t b e c o m b i n e d i n t o a u n i fi e d U M L m e t a m o d e l . T h e n e w m e t a m o d e l i s c a l l e d t h e U n i fi e d C l a s s / D y n a m i c M e t a m o d e l . T h e h o m o m o r p h i c f u n c t i o n i s d e fi n e d t o p r o v i d e a m a p p i n g f r o m t h e U n i fi e d C l a s s / D y n a m i c M e t a m o d e l t o t h e t a r g e t m e t a m o d e l . F i g u r e 3 . 1 0 s h o w s t h e U M L c l a s s d i a g r a m m e t a m o d e l m o d i fi e d t o i n c l u d e M o d e l a t i t s h i g h e s t l e v e l . F r o m t h i s d i a g r a m , w e s e e t h a t a s y s t e m m o d e l i s c o m p o s e d o f o n e o r m o r e c l a s s e s a n d z e r o o r m o r e r e l a t i o n s h i p s . B e h a v i o r o f t h e e n t i r e s y s t e m m o d e l i s m a n i f e s t e d t h r o u g h t h e b e h a v i o r o f e a c h c l a s s a s t h e c l a s s e s i n t e r a c t . T h e n b e h a v i o r i s a p a r t o f e a c h c l a s s . F i g u r e 3 . 1 0 s h o w s t h i s r e l a t i o n s h i p b y d e p i c t i n g B e h a v i o r i n a d a s h e d b o x . I n a U M L d i a g r a m , b e h a v i o r i s s p e c i fi e d w i t h a c o l l e c t i o n o f s t a t e v e r t i c e s a n d t r a n s i - t i o n s , b u t t h i s i s e x a c t l y d e s c r i b e d b y t h e d y n a m i c m o d e l m e t a m o d e l . F i g u r e 3 . 1 1 s h o w s t h e u n i fi e d c l a s s / d y n a m i c m e t a m o d e l w i t h t h e p a r t s o f t h e m e t a m o d e l c o r r e s p o n d i n g t o t h e o r i g i n a l c l a s s m o d e l e n c l o s e d i n d o t t e d l i n e s . N o t e i n F i g u r e 3 . 1 1 t h a t B e h a v i o r i s a n a b s t r a c t c l a s s a n d t h e r e f o r e i s n o t i n s t a n t i a t e d d i r e c t l y . R a t h e r , b e h a v i o r r e s i d e s i n t h e c l a s s m o d e l a s a s e t o f s t a t e v e r t i c e s a n d t r a n s i t i o n s , e a c h o f w h i c h i s f u r t h e r d e fi n e d b y t h e p o r t i o n o f t h e m e t a m o d e l c o r r e s p o n d i n g t o t h e d y n a m i c m o d e l . T h e m e t a m o d e l f o r a f o r m a l l a n g u a g e s h o u l d f o l l o w t h e s t r u c t u r e o f t h e U M L u n i fi e d m e t a m o d e l . I n f a c t , t h i s m a k e s t h e h o m o m o r p h i c m a p p i n g m o r e s t r a i g h t f o r w a r d b e c a u s e 5 0 m a p p i n g d y n a m i c f r o m i t s t i n s t a n c e o f t h e m e F i g u r e m a p p i n g r u l e s u s e d t o c o n s t r u c t e x e c u t a b l e m o d e l s n e e d t o d r a w o n b o t h t h e c l a s s a n d d y n a m i c d i a g r a m s i n c o n c e r t . A t a m i n i m u m , a d y n a m i c m o d e l h a s n o i d e n t i t y a p a r t f r o m i t s c l a s s . A s s o c i a t i o n s , w h i c h f o r m t h e b a s i s o f c o m m u n i c a t i o n b e t w e e n o b j e c t s , a n d i n s t a n c e v a r i a b l e s , w h i c h h o l d s t a t e i n f o r m a t i o n , b o t h a r e w o v e n i n t o t h e e x e c u t a b l e p a r t o f t h e m o d e l f r o m t h e c l a s s d i a g r a m . C L A S S M O D E L Z M o d e l l 1 1 * I _ — — " — ' { T _ l _ - - - _ - _ - _ . l 1 1 i l l “ . ' 1 R e l a t i o n s h i p s , 1 t a r g e t I O . . " ‘ - - - - - - - - . r — ’ l i I n s t a n c e A g g r e g a t i o n G e n e r a l i z a t i o n A s s o c i a t i o n V a r i a b l e F i g u r e 3 . 1 0 : U M L c l a s s m e t a m o d e l w i t h b e h a v i o r i n c l u d e d a s a r e l a t i o n t o a c l a s s . 5 1 I I l I I I I l I r l : I 1 * 1 n * l : 1 M M : , C l a s s R e l a t i o n s h r ' s I 1 t a r g e t i 0 . . * p : I T A : I I 0 . . * . I n s t a n c e A ' i , 9 9 ' 9 9 3 t ' 0 ” G e n e r a l i z a t i o n A s s o c i a t i o n : V a r i a b l e . I I 1 , ' B e h a w o r G u a r d t 1 : 0 . . 1 1 b 1 o u t g o i n g 3 s u s t a t e . S t a t e V e r t e x 0 . . 1 i n c o m i n g 1 T r a n s i t i o n 0 " 7 3 0 . . 1 1 l h L 0 9 0 . . 1 e n t r y 0 . . 1 A P s e u d o s r a t e S t a t e 0 . . 1 e x i t A c t i o n S e q u e n c e . . _ _ A 0 . . 1 p a r e n t 0 . . 1 C o m p o s i t e S t a t e S i m p l e S t a t e T C o n c u r r e n t C o m p o s i t e — ' E v e n t t r i g g e r l ° ’ " . T 0 . . 1 S t a r t J o i n S i g n a l E v e n t T i m e E v e n t C h a n g e E v e n t F i n a l H i s t o r y U M L 2 I n i t i a l F i g u r e 3 . 1 1 : T h e u n i fi e d c l a s s / d y n a m i c U M L m e t a m o d e l . 5 2 C h a p t D e s i ] T h i s c h a p t . m a P i l i n g f r U M L d i a g r r a u h s o f t t h e S l ' S t e n ‘ . i s a c t u a l l y 4 . 1 D A d a t a fl , t h a t S l ' S t e m o d i fi e d O f t e n l a b S t o r e s , w C a s e d i n b i ' a l l i l y C h a p t e r 4 D e s i g n P r o c e s s T h i s c h a p t e r d e s c r i b e s a e m b e d d e d s y s t e m s d e s i g n p r o c e s s b u i l t a r o u n d t h e m e t a m o d e l m a p p i n g f r a m e w o r k . T h e o b j e c t i v e o f t h e d e s i g n p r o c e s s i s t o m o v e f r o m r e q u i r e m e n t s t o U M L d i a g r a m s t o a f o r m a l l a n g u a g e s p e c i fi c a t i o n t h a t c a n b e s i m u l a t e d a n d a n a l y z e d . T h e r e s u l t s o f t h e s i m u l a t i o n a n d a n a l y s i s f o r m t h e b a s i s o f f e e d b a c k t o r e fi n e t h e d e s i g n u n t i l t h e s y s t e m e x h i b i t s t h e d e s i r e d p r o p e r t i e s . T h i s p r o c e s s e n d s i n e a r l y d e s i g n , b e f o r e c o d e i s a c t u a l l y w r i t t e n . 4 . 1 D e s i g n P r o c e s s D a t a F l o w A d a t a fl o w m o d e l s h o w s h o w i n f o r m a t i o n m o v e s t h r o u g h a s y s t e m a n d i s t r a n s f o r m e d b y t h a t s y s t e m . O v a l s r e p r e s e n t t r a n s f o r m a t i o n s o r p r o c e s s e s w h e r e i n fl o w i n g i n f o r m a t i o n i s m o d i fi e d t o p r o d u c e a n o u t fl o w . I n f o r m a t i o n fl o w i t s e l f i s r e p r e s e n t e d b y d i r e c t e d a r r o w s , o f t e n l a b e l e d w i t h t h e i n f o r m a t i o n c o n t e n t ( u n l e s s i t i s o b v i o u s f r o m t h e c o n t e x t ) . D a t a s t o r e s , w r i t t e n a s a l a b e l b e t w e e n t w o h o r i z o n t a l p a r a l l e l l i n e s , d e n o t e a p l a c e w h e r e p r o - c e s s e d i n f o r m a t i o n i s r e t a i n e d f o r i n p u t t o o t h e r p r o c e s s e s . E x t e r n a l i n f o r m a t i o n i s d e n o t e d b y a l a b e l e d r e c t a n g l e . D a t a fl o w m o d e l s d o n o t n e c e s s a r i l y i m p l y a p a r t i c u l a r p r o c e s s i n g 5 3 o r d e r a t O u r “ s y s t e m S i n c e t l i i s p e r f o r 4 . 1 . 1 f i g u r e 4 e m b e d t l e c a s e s a n T h e ‘ A u s e c ; i d e a l i z a t i n t e r a c t s I t ‘ C t a n g k 0 1 1 t h e 0 1 a n d C 0 0 1 5 c a n b e l I s p e c i fi c 3 C a p i l l f l n ; p v a i d i n n C O n e u I l l a y a r l e m s l a I l C e S o r d e r o t h e r t h a n t h a t r e q u i r e d l o c a l l y b y t h e s e q u e n c e o f t r a n s f o r m a t i o n s . O u r d e s i g n p r o c e s s i s d e s c r i b e d a s a d a t a fl o w . T h e i n f o r m a t i o n fl o w i n g t h r o u g h t h e “ s y s t e m ” , o r d e s i g n p r o c e s s i n t h i s c a s e , d e s c r i b e s v a r i o u s a s p e c t s o f a n e m b e d d e d s y s t e m . S i n c e t h e r e a r e n u m e r o u s f e e d b a c k l o o p s w h e r e r e fi n e m e n t o f t h e e m b e d d e d s y s t e m m o d e l i s p e r f o r m e d , t h i s d e p i c t i o n b e t t e r c o n v e y s h o w t h e p r o c e s s w o r k s . 4 . 1 . 1 U s e C a s e a n d C o n t e x t M o d e l F i g u r e 4 . 1 c o n t a i n s a n o v e r a l l d a t a fl o w d i a g r a m f o r t h e p r o c e s s w e u s e f o r d e v e I O p i n g e m b e d d e d s y s t e m s . T h e m e t h o d o l o g y b e g i n s w i t h t h e p a r a l l e l c o n s t r u c t i o n o f U M L u s e c a s e s a n d a c o n t e x t c l a s s m o d e l f r o m r e q u i r e m e n t s s t a t e m e n t s . T h e u s e c a s e d i a g r a m d o c u m e n t s U s e C a s e s a n d i s u s e d t o c a p t u r e s y s t e m r e q u i r e m e n t s . A u s e c a s e c o n t a i n s a c t o r s , t h e s y s t e m , a n d t h e u s e c a s e s t h e m s e l v e s . A n a c t o r i s a n i d e a l i z a t i o n o f a n e x t e r n a l p r o c e s s , a p e r s o n , a s y s t e m , o r s o m e e x t e r n a l c o m p o n e n t t h a t i n t e r a c t s w i t h t h e s y s t e m . T h e s y s t e m i s r e p r e s e n t e d i n t h e u s e c a s e d i a g r a m a s a l a r g e r e c t a n g l e c o n t a i n i n g o v a l u s e c a s e s . E a c h u s e c a s e i s c o n n e c t e d w i t h l i n e s t o l a b e l e d a c t o r s o n t h e o u t s i d e o f t h e s y s t e m r e c t a n g l e . F i g u r e 4 . 2 s h o w s a n e x a m p l e u s e c a s e f o r a h e a t i n g a n d c o o l i n g s y s t e m . T h e a c t o r s a r e t h e u s e r , t h e f u r n a c e , a n d t h e A / C u n i t . E a c h u s e c a s e c a n b e i n s t a n t i a t e d a s a s c e n a r i o , o f t e n p r e s e n t e d a s a s e q u e n c e d i a g r a m , w h i c h g i v e s t h e s p e c i fi c a c t i o n s f o r a c t o r s a n d t h e s y s t e m i n a p a r t i c u l a r s i t u a t i o n . U s e c a s e s a r e u s e f u l f o r c a p t u r i n g h i g h l e v e l r e q u i r e m e n t s a n d t h e g o a l s o f t h e s y s t e m . I n c r e a s i n g l y , u s e c a s e s a r e p r o v i d i n g i n f o r m a t i o n u s e f u l f o r v a l i d a t i n g t h e s y s t e m d u r i n g s y s t e m a n a l y s i s . O n e u s e c a s e m a y h a v e m a n y s c e n a r i o s b a s e d o n t h e v a r i o u s c o n d i t i o n s a n d e v e n t s t h a t m a y a r i s e w h i l e t h e s y s t e m i s p r o c e s s i n g t h e r e q u i r e d b e h a v i o r s . U s e c a s e s c e n a r i o s a r e i n s t a n c e s o f u s e c a s e s t h e m s e l v e s . 5 4 R e q u i r e m e n t s D e v e l o p C o n t e x t M o d e l D e v e l o p U s e C a s e s c o n t e x t s c e n a r i o s d e l i n e a t i o n D e v e l o p C l a s s M o d e l D e v e l o p U s e C a s e S c e n a r i o s c l a s s m o d e l c l a s s m o d e l 1 D e v e l o p S e q u e n c e r e s p o n s i b i l i t y l i s t D e v e l o p C h a r t s R e s p o n s i b i l i t y L i s t l l W r i t e D y n a m i c ‘ _ _ _ ’ _ _ _ _ _ _ _ . _ . _ S c e n a r i o s M o d e l F o r m a l L a n g u a g e S p e c s l l H y d r a M o d e l C h e c k i n g m o d e l r e fi n e m e n t s l m o d e l r e fi n e m e n t s f i r s t m o d e l = U M L M o d e l F i g u r e 4 . 1 : D e s i g n p r o c e s s d a t a fl o w 5 5 U s e ( a s N o n e t h e l e s W a n g [35]- o t h e r s [5] i c o n t e x t r n o single c l a s s . r e l a t i o n s h i p a n d c o o l i n g in t h e s i s t e r t e r a c t i o n b e t the i m p o r t a r . of b o u n d a r i e P e r c e p t i o n / a c bOUIidary les. H e a t t o T a r g e t T e m p U s e r F u r n a c e C o o l t o T a r g e t T e m p \ A / C U n i t F i g u r e 4 . 2 : S a m p l e u s e c a s e f o r a h e a t i n g a n d c o o l i n g s y s t e m . U s e c a s e s s h o w t o s o m e e x t e n t t h e a c t o r s e x t e r n a l t o t h e s y s t e m v e r s u s t h e s y s t e m i t s e l f . N o n e t h e l e s s w e fi n d a n e x p l i c i t c o n t e x t d i a g r a m u s e f u l . W e f o l l o w t h e a p p r o a c h t a k e n b y W a n g [ 3 5 ] , D o u g l a s s [ 3 6 ] , E l l i s [ 3 7 ] , W a r d a n d M e l l o r [ 3 8 ] , H a t l e y a n d P i r b h a i [ 3 9 ] , a n d o t h e r s [ 5 ] i n u s i n g a c o n t e x t m o d e l , w h i c h i s c u r r e n t l y n o t e x p l i c i t l y u s e d i n U M L . T h e c o n t e x t m o d e l i s e s s e n t i a l l y a c l a s s m o d e l i n w h i c h t h e s y s t e m i t s e l f i s r e p r e s e n t e d b y a s i n g l e c l a s s . T h e o b j e c t s i n t h e s y s t e m ’ s e n v i r o n m e n t a p p e a r i n d e p e n d e n t l y s h o w i n g t h e i r r e l a t i o n s h i p t o t h e s y s t e m i t s e l f . F i g u r e 4 . 3 s h o w s a s i m p l e c o n t e x t d i a g r a m f o r a h e a t i n g a n d c o o l i n g s y s t e m . T h e c o n t e x t m o d e l ’ s c o n t r i b u t i o n i s a c l e a r d e l i n e a t i o n o f c o m p o n e n t s i n t h e s y s t e m v e r s u s c o m p o n e n t s e x t e r n a l t o t h e s y s t e m a n d a h i g h l e v e l v i e w o f t h e i n - t e r a c t i o n b e t w e e n t h e e x t e r n a l c o m p o n e n t s a n d t h e s y s t e m . W a r d a n d M e l l o r [ 4 0 ] s t r e s s e d t h e i m p o r t a n c e o f s e t t i n g e a r l y t h e s y s t e m — e n v i r o n m e n t b o u n d a r y c o r r e c t l y . M u l t i p l e l e v e l s o f b o u n d a r i e s a r e o f t e n s u g g e s t e d [ 3 7 ] , s u c h a s S y s t e m , i n t e r f a c e s , s e n s o r s / a c t u a t o r s , a n d p e r c e p t i o n / a c t i o n , o r s i m p l y s y s t e m , i n t e r f a c e , w o r l d . W e b e l i e v e t h e c l a s s i fi c a t i o n o f t h e b o u n d a r y l e s s i m p o r t a n t t h a n n o t i n g w h i c h o b j e c t s a r e i n s i d e o f t h e s y s t e m ’ s p u r v i e w a n d 5 6 t h o s e t h a t 4 . 1 . 3 ( A f t e r t h e i n a n 9 m O l e C l S it: p fi t e n t i a l r t h r 4 . 1 . 2 I I n t h e n e ) c i r c u t n s t a t h e . c l a s s i a l l i n s t a n . t h e s y s t e r e v i d e n t . t h o s e t h a t a r e e x t e r n a l . E M H e a t i n g / C o o l i n g : S y s t e m : o n / o f t — — — — — — — — — — — — — — — — — — — — — — — — A C F i g u r e 4 . 3 : S y s t e m C o n t e x t M o d e l f o r a h y p o t h e t i c a l h e a t i n g / c o o l i n g s y s t e m . 4 . 1 . 2 U s e C a s e S c e n a r i o s I n t h e n e x t s t e p o f t h e p r o c e s s , w e d e v e l o p d e t a i l e d u s e c a s e s c e n a r i o s f o r p a r t i c u l a r s y s t e m c i r c u m s t a n c e s . A s c a n b e s e e n i n F i g u r e 4 . 1 , u s e c a s e s c e n a r i o s a r e i m p o r t a n t t o d e v e I O p i n g t h e c l a s s m o d e l , a n d l a t e r i n d r i v i n g s i m u l a t i o n s a n d m o d e l c h e c k i n g . A u s e c a s e s c e n a r i o i s a n i n s t a n c e o f a u s e c a s e . A u s e c a s e s c e n a r i o d e v e l o p s o n e s e q u e n c e o f b e h a v i o r s t h r o u g h t h e s y s t e m , s e r v i n g a s a c o n c r e t e e x a m p l e o f s y s t e m b e h a v i o r i n a t l e a s t o n e , n a r r o w c a s e . W e t r y t o c h o o s e a s c e n a r i o a s c l o s e t o a n a c t u a l s i t u a t i o n t h e s y s t e m w i l l b e i n a s p o s s i b l e . 4 . 1 . 3 C l a s s M o d e l A f t e r t h e u s e c a s e s c e n a r i o a n d c o n t e x t m o d e l d e v e l o p m e n t , w e d e v e l o p a U M L c l a s s m o d e l . I n a n e m b e d d e d s y s t e m , t h e r e i s u s u a l l y a n o b v i o u s o n e - t o - o n e c o r r e s p o n d e n c e b e t w e e n o b j e c t s i n t h e r e a l w o r l d a n d s y s t e m c l a s s e s . A s t h e c l a s s m o d e l i s d e v e l o p e d , t h e r e a r e p o t e n t i a l m i n o r r e fi n e m e n t s t o u s e c a s e s c e n a r i o s a s t h e i n t e r a c t i o n o f t h e c l a s s e s b e c o m e s e v i d e n t . 5 7 o n t h e fir: 4 . 1 . 4 W h e n ' c o n s t r u i n t h e 1 T i r e a r e r e s p i m p o r t a c l a s s a n . e x i s t . T m a y t n o r m e s s a g e s t h e r e s p c l a t t e r C 3 5 W e b e b e c a u s e i h a l f l w a r e 4 . 1 . 5 5 I f i s o t t e r W » t - 0 d . d i a g r a m f i n F l g l l r e a r 3 0 5 $ t h e 4 . 1 . 4 C l a s s R e s p o n s i b i l i t y L i s t W h e n t h e i n i t i a l c l a s s m o d e l i s c o m p l e t e , a C l a s s R e s p o n s i b i l i t y L i s t ( C R L ) f o r c l a s s e s i s c o n s t r u c t e d . T h e a s s i g n m e n t o f c l a s s r e s p o n s i b i l i t i e s w a s n o t i n i t i a l l y i n c l u d e d i n U M L , b u t i n t h e l a t e s t v e r s i o n s [ 4 1 ] s e t t i n g c l a s s r e s p o n s i b i l i t y p l a y s a p r o m i n e n t r o l e . T h e c l a s s r e s p o n s i b i l i t y l i s t t h a t w e u s e i s s i m p l y a l i s t i n g o f c l a s s e s a n d w h a t t h e y a r e r e s p o n s i b l e f o r w r i t t e n i n n a t u r a l l a n g u a g e . R e l a t i v e r e s p o n s i b i l i t i e s a r e p a r t i c u l a r l y i m p o r t a n t . F o r e x a m p l e , i n t h e h e a t i n g s y s t e m e x a m p l e , w e d e t e r m i n e t h a t a c o n t r o l l e r c l a s s a n d a t h e r m o s t a t c l a s s a r e r e q u i r e d , a n d t h a t s e v e r a l p o s s i b i l i t i e s f o r c l a s s i n t e r a c t i o n e x i s t . T h e t h e r m o s t a t m a y d e l i v e r n o t h i n g m o r e t h a n a t e m p e r a t u r e l e v e l i n d i c a t i o n o r i t m a y m o n i t o r t h e t e m p e r a t u r e a n d c o n t r o l h y s t e r e s i s p a r a m e t e r s i t s e l f , t h u s p r o v i d i n g o n l y m e s s a g e s t o d e m a n d h e a t a n d c o o l i n g . I f t h e t h e r m o s t a t d e l i v e r s a l e v e l , t h e c o n t r o l l e r h a s t h e r e s p o n s i b i l i t y f o r d e t e r m i n i n g w h e n t h e t a r g e t t e m p e r a t u r e s r e q u i r e a c t i o n , w h i l e i n t h e l a t t e r c a s e t h e t h e r m o s t a t c a r r i e s t h i s r e s p o n s i b i l i t y . W e b e l i e v e s e t t i n g c l a s s r e s p o n s i b i l i t i e s i s p a r t i c u l a r l y i m p o r t a n t f o r e m b e d d e d s y s t e m s b e c a u s e i t i s n o t u n c o m m o n t h a t s e t s o f c l a s s e s a r e i m p l e m e n t e d i n p h y s i c a l l y s e p a r a t e h a r d w a r e c o m p o n e n t s . C a r e f u l l y r e fi n i n g c l a s s r e s p o n s i b i l i t i e s c a n h a v e a n o v e r a l l i m p a c t o n t h e fi n a l c o s t o f t h e s y s t e m a n d o n i t s a b i l i t y t o b e e x t e n d e d . 4 . 1 . 5 S e q u e n c e D i a g r a m s I t i s o f t e n u s e f u l a t t h i s p o i n t t o e m p l o y t h e u s e c a s e s c e n a r i o s , t h e c l a s s m o d e l , a n d t h e C R L t o d e v e l o p o n e o r m o r e s e q u e n c e d i a g r a m s . F i g u r e 4 . 4 s h o w s a n e x a m p l e o f a s e q u e n c e d i a g r a m f o r t h r e e o b j e c t s a n d a n e x t e r n a l a c t o r . A s e q u e n c e d i a g r a m s h o w s , a s i s s e e n i n F i g u r e 4 . 4 , i n t e r a c t i o n s b e t w e e n o b j e c t s o n a r e l a t i v e t i m e s c a l e . T h e c l a s s e s a r e l i s t e d a c r o s s t h e t o p a n d t i m e fl o w s d o w n w a r d . M e s s a g e s fl o w h o r i z o n t a l l y t o a n d f r o m t h e l i n e s 5 8 u n d e r t h e T h e d C o n t r o l . m e s s a g e 5 b e t w e e n a T h e ( i t t o p f r o m a e n t e r i n g i t t h e d o t t e c T h e s e s i b i l i t i e s a u s e c a s e s d i a g r a m i s h u n d r e d s , f l h d e f U n t i l t B c g r r u n d e r t h e o b j e c t s . T h e d i a g r a m i n F i g u r e 4 . 4 s h o w s a n e x t e r n a l a c t o r fi r s t s e n d i n g t h e m e s s a g e s e t t o o b j e c t C o n t r o l . O b j e c t C o n t r o l t h e n s e n d s t w o m e s s a g e s , o n t o c l a s s R a d a r f o l l o w e d q u i c k l y b y m e s s a g e g e t s p e e d t o c l a s s C a r . R a d a r a n d C a r r e s p o n d , f o l l o w e d b y a c o m p l e x i n t e r a c t i o n b e t w e e n a l l t h r e e c l a s s e s . T h e d o t t e d l i n e a c r o s s t h e s e q u e n c e d i a g r a m d e l i n e a t e s t h e b e g i n n i n g s e q u e n c e s a t t h e t o p f r o m a c y c l i c b e h a v i o r p a t t e r n t h a t e v e n t u a l l y d e v e l o p s . T h e d i a g r a m s h o w s t h e o b j e c t s e n t e r i n g i n t o a c o n t i n u o u s c y c l e o f i n t e r a c t i o n a t s o m e p o i n t i n t i m e . T h e i n t e r a c t i o n b e l o w t h e d o t t e d l i n e s h o w s o n e p o s s i b l e m e s s a g e e x c h a n g e s e q u e n c e d u r i n g t h e c y c l e . T h e s e q u e n c e d i a g r a m v i s u a l l y d e p i c t s c o m p l e x i n t e r a c t i o n s a n d h e l p s e n s u r e r e s p o n - s i b i l i t i e s a r e c o r r e c t l y a s s i g n e d b e t w e e n o b j e c t s , a n d l a y s o u t t h e i n t e r a c t i o n f o r t y p i c a l u s e c a s e s c e n a r i o s i n o r d e r t o a i d i n d e v e l o p i n g t h e d y n a m i c m o d e l f o r e a c h c l a s s . T h i s d i a g r a m i s n o t a s u b s t i t u t e f o r c a r e f u l a n a l y s i s , h o w e v e r . B y i t s n a t u r e , o n l y o n e o f p e r h a p s h u n d r e d s , o r e v e n t h o u s a n d s o f i n t e r a c t i o n s c a n b e d e p i c t e d . i c o n t r o l S e ! c r u i s e r e p e a t e d l : { u n t i l w i t h i n 4 0 0 a n L o o k f o r t a r g e t v e h i c l e . . . . . . . . . . . . . . . . . . . . . . . . _ _ _ ; _ ( i n d e fi n i t e p e r i o d o f t i m e u n t i l t a r g e t a c q u i r e d ) B e g i n c l o s i n g o n v e h i c l e F i g u r e 4 . 4 : S a m p l e s e q u e n c e d i a g r a m . 5 9 4 . 1 . 6 W e m e : t h e p r c m o d e l s c l a s s e s . o b j e c t s . t y p e s . I t i s c a n b e . o b s c u r e 4 . 1 . 7 I n t h e n r a n d P r o : H l ’ d r a t o a s d e s c r i l I f t h e . W i r e ] c a r m a d e l 6 V 8 m a y [ U H S i m u l ' s c e n E i r i o s . i n S l l l l u l a l r e l l r ' i l l s l a r . 4 . 1 . 6 D y n a m i c M o d e l W e n e x t d e v e l o p d y n a m i c m o d e l s f o r e a c h c l a s s , b a s e d o n t h e m a t e r i a l d e v e l o p e d s o f a r i n t h e p r o c e s s . E a c h d y n a m i c m o d e l i s c o n s t r u c t e d w i t h i n t h e c o n t e x t o f o n e c l a s s . D y n a m i c m o d e l s f o r v a r i o u s c l a s s e s m u s t t a k e i n t o a c c o u n t t h e i n t e r a c t i o n s , o r s i g n a l s s e n t b e t w e e n c l a s s e s . T h e d y n a m i c m o d e l m u s t k n o w n o t o n l y t h a t t h e r e i s a n a s s o c i a t i o n b e t w e e n t w o o b j e c t s , b u t a l s o t h e c o n t e n t o f t h e m e s s a g e fl o w i n t e r m s o f s i g n a l i d e n t i t i e s a n d p a r a m e t e r t y p e s . I t i s r e a s o n a b l e a t t h i s s t a g e t o n o t f u l l y d e v e 1 0 p e a c h d y n a m i c m o d e l . M o r e b e h a v i o r c a n b e a d d e d a s t h e o v e r a l l m o d e l i s r e fi n e d . A d d i n g t o o m u c h d e t a i l a t t h i s p o i n t c a n o b s c u r e p r o b l e m s i f , f o r e x a m p l e , t h e s i m u l a t i o n s t e p s f a i l t o b e h a v e p r o p e r l y . 4 . 1 . 7 S i m u l a t i o n a n d M o d e l C h e c k i n g I n t h e n e x t s t e p , t h e c l a s s a n d d y n a m i c m o d e l s a r e t r a n s l a t e d t o a f o r m a l l a n g u a g e ( V H D L a n d P r o m e l a a r e t w o c h o i c e s u s e d i n t h i s r e s e a r c h ) . T h e t r a n s l a t i o n i s p e r f o r m e d b y t h e H y d r a t o o l ( C h a p t e r 8 ) , w h i c h i t s e l f i m p l e m e n t s m e t a m o d e l t o m e t a m o d e l m a p p i n g r u l e s a s d e s c r i b e d i n C h a p t e r s 3 , 5 , a n d 6 . I f t h e l a n g u a g e h a s s i m u l a t i o n c a p a b i l i t i e s ( P r o m e l a a n d V H D L d o ) , t h e t r a n s l a t e d m o d e l c a n b e e x e c u t e d . T h e fi r s t f e w e x e c u t i o n s s e r v e t o d e t e r m i n e i f t h e b e h a v i o r o f t h e m o d e l e v e n c l o s e l y a p p r o x i m a t e s t h e d e s i r e d b e h a v i o r . T h e m o d e l m a y n o t r u n a t a l l , o r m a y r u n b u t e x h i b i t u n d e s i r a b l e c h a r a c t e r i s t i c s , s u c h a s d e a d l o c k . S i m u l a t i o n o f t e n u s e s u s e c a s e s c e n a r i o s t o s t e p t h e m o d e l t h r o u g h t h e m o s t e x p e c t e d s c e n a r i o s . T h e m o d e l s h o u l d a t l e a s t p r o p e r l y r u n t h e m o s t c o m m o n u s e c a s e s c e n a r i o s i n s i m u l a t i o n . C h a n g e s t o t h e s y s t e m a r e f e d b a c k i n t o t h e U M L m o d e l s , t h e m o d e l i s r e t r a n s l a t e d , a n d a n o t h e r s i m u l a t i o n i s p e r f o r m e d . W h e n t h e d e s i g n e r i s r e a s o n a b l y s u r e 6 0 t h e m o E a r d l e l i e r r e fi n e m e n t i s n w . d o I c f h m e c o k o r a t i o m i o d e r n g . h e l h a o t t b p t t c h e m o o n c M u o r d r e m e l f o r m , “ m l i s c i r r e c E i n a S “ “ 1 W c u e m m t O i s b a v t e a d x e d b l e u l d O n c e t h e C , 4 - 2 C l P O I 3 0 m e a 3 9 1 1 1 2 1 1 1 : s t l T h e p r e C u r t h e m o d e l p e r f o r m s a s e x p e c t e d , m o r e r i g o r o u s a n a l y s i s i s p o s s i b l e w i t h m o d e l c h e c k i n g . E a r l i e r w e s u g g e s t e d w r i t i n g a n i n c o m p l e t e d y n a m i c m o d e l f o r l a t e r c o m p l e t i o n t h r o u g h r e fi n e m e n t a n d e v o l u t i o n . T h e a p p r o p r i a t e t i m e t o r e fi n e t h e m o d e l t o i t s fi n a l r e q u i r e m e n t s i s n o w , d u r i n g s i m u l a t i o n . I f m o d e l c h e c k i n g i s a v a i l a b l e ( P r o m e l a u s e s S P I N f o r m o d e l c h e c k i n g ) , t h e m o d e l c a n b e c h e c k e d f o r i m p o r t a n t p r o p e r t i e s . S i n c e m o d e l c h e c k i n g i n v o l v e s e x h a u s t i v e s t a t e e x - p l o r a t i o n , r a r e d e a d l o c k s e q u e n c e s , f o r e x a m p l e , c a n b e d i s c o v e r e d d u r i n g m o d e l c h e c k i n g t h a t m i g h t b e m i s s e d b y s i m u l a t i o n . S i m i l a r l y , i n a n o n - f a i r s c h e d u l i n g c o n t e x t ( r e f e r s t o t h e m o d e l p r o c e s s s c h e d u l i n g , n o t t h e m a n a g e m e n t e n v i r o n m e n t ) u s i n g h i g h l e v e l s o f c o n c u r r e n c y , p r o c e s s s t a r v a t i o n i s b e t t e r d e t e c t e d w i t h a m o d e l c h e c k e r . M o d e l c h e c k i n g c a n a l s o v e r i f y p o s i t i v e p r o p e r t i e s . S u c h p r O p e r t i e s a r e u s u a l l y o f t h e f o r m , “ w h e n a : h a p p e n s , y a l w a y s e v e n t u a l l y h a p p e n s ” . F o r e x a m p l e , w h e n a b r a k e s i g n a l i s r e c e i v e d , t h e v e h i c l e c o n t r o l l e r m u s t e v e n t u a l l y r e a c t . T h i s k i n d o f a n a l y s i s i n s u r e s r a r e c i r c u m s t a n c e s d o n o t l e t i m p o r t a n t e v e n t s s l i p b y . E m b e d d e d s y s t e m s o f t e n h a v e a c o n t r o l l o o p t h a t m o n i t o r s a n d m a i n t a i n s t h e s y s t e m i n a s t a b l e s t a t e . T o t e s t a c o n t r o l l o o p i n s i m u l a t i o n , a n i n fi n i t e ( o r v e r y l o n g ) s i m u l a t i o n r u n w o u l d b e r e q u i r e d . A m o d e l c h e c k e r t h a t c a n d e t e c t c y c l e s c a n , h o w e v e r , v e r i f y t h a t o n c e t h e c o n t r o l l o o p i s e n t e r e d , t h e r e a r e n o u n e x p e c t e d p a t h s o u t o f t h e l o o p . 4 . 2 C h o o s i n g S e m a n t i c s F o r s o m e a p p l i c a t i o n s , w h e n t h e d e s i g n e r i s s u f f i c i e n t l y s o p h i s t i c a t e d , o u r p r o c e s s a l l o w s t h e s e m a n t i c s p r o d u c e d b y t h e H y d r a t r a n s l a t i o n o f U M L t o a t a r g e t l a n g u a g e t o b e a l t e r e d . T h e p r e c u r s o r o f t h e n e e d f o r a l t e r e d s e m a n t i c s u s u a l l y a p p e a r s w h e n a u n i v e r s a l p r o p e r t y r e q u i r e d w i t h i n t h e i n f r a s t r u c t u r e o f t h e m o d e l i s u n c o v e r e d d u r i n g s i m u l a t i o n o r m o d e l 6 1 c h e c k i i F o r m e s s a g s a g e i s f a c t , c c o b j e c t . a c t i o n I i n t e r - o b t h e d e s i . t h e m o d g u a g e c a m a p p i n g W e ( 1 t a r g e t h ; l h e s o m e 4 . 3 p T h e d i a g r 1 ° 0 1 ) a l t e r j T h e i n o n l p u t o f 5 C O l l l d a l s o S l i m e t 1 m a t e d 3 W e i c h e c k i n g . F o r e x a m p l e , s u p p o s e t h e m a p p i n g t o t h e f o r m a l t a r g e t l a n g u a g e d o e s n o t p r o v i d e f o r m e s s a g e s t o b e q u e u e d b e t w e e n o b j e c t s . I f t h e r e c e i v e r o b j e c t i s n o t l i s t e n i n g w h e n a m e s - s a g e i s s e n t f r o m o n e o b j e c t t o a n o t h e r , t h e m e s s a g e i s l o s t . N o n - q u e u e d s e m a n t i c s i s , i n f a c t , c o n s i s t e n t w i t h t h e i n f o r m a l l y d e s c r i b e d U M L m e s s a g e p a s s i n g s e m a n t i c s w i t h i n a n o b j e c t . T o c o n t i n u e t h e e x a m p l e , s u p p o s e a d e s i g n e r h a s b u i l t a m o d e l w i t h c o m p l e x i n t e r - a c t i o n p a t t e r n s s u c h t h a t i n t e r - o b j e c t m e s s a g e s a r e c o n s i s t e n t l y l o s t . F u r t h e r a s s u m e t h a t i n t e r - o b j e c t q u e u e i n g w o u l d s o l v e t h e d e s i g n e r ’ s p r o b l e m . B u t , t o m a k e t h e m o d e l w o r k , t h e d e s i g n e r w i l l b e f o r c e d t o e f f e c t i v e l y b u i l d i n t e r - o b j e c t m e s s a g e q u e u i n g s e m a n t i c s i n t o t h e m o d e l . O u r m a p p i n g o f f e r s a n a l t e r n a t i v e . T h e m a p p i n g f r o m U M L t o t h e t a r g e t l a n - g u a g e c a n b e m o d i fi e d t o a s s u m e q u e u e d m e s s a g e s b e t w e e n o b j e c t s . I n e f f e c t , t h e m o d i fi e d m a p p i n g a s s u m e s t h e o b j e c t h a n d l i n g i n f r a s t r u c t u r e i n c l u d e s i n t e r - o b j e c t q u e u i n g . W e d e s c r i b e d t h e d e s i g n e r a b o v e a s “ s o p h i s i c a t e d ” b e c a u s e t h e m a p p i n g f r o m s o u r c e t o t a r g e t h a s t o b e r e fi n e d c a r e f u l l y s o t h a t i t d o e s n o t v i o l a t e t h e h o m o m o r p h i s m b e t w e e n t h e s o u r c e m e t a m o d e l a n d t h e t a r g e t m e t a m o d e l . 4 . 3 F e e d b a c k L 0 0 p s T h e d i a g r a m i n F i g u r e 4 . 1 c o n t a i n s m a n y f e e d b a c k l o o p s b e t w e e n p r o c e s s e s . A f e e d b a c k l o o p a l t e r i n g s e m a n t i c s w a s d e s c r i b e d a b o v e . T h e m o s t o b v i o u s f e e d b a c k l o o p s a r e f o r r e f i n e m e n t o f t h e d y n a m i c m o d e l g i v e n t h e o u t p u t o f s i m u l a t i o n a n d m o d e l c h e c k i n g . I t i s p o s s i b l e , h o w e v e r , t h a t c l a s s r e s p o n s i b i l i t i e s c o u l d a l s o b e m o d i fi e d , c a u s i n g a r e fi n e m e n t o f t h e c l a s s a n d d y n a m i c m o d e l s . S i n c e t h e s t e p f r o m a U M L m o d e l t o a n e x e c u t a b l e o r r e a d y - f o r — a n a l y s i s m o d e l i s a u t o - m a t e d , w e a n t i c i p a t e f r e q u e n t f e e d b a c k l o o p s a n d a n e v o l u t i o n a r y s t y l e o f d e v e l o p m e n t . 6 2 4 . 4 R e l a t i o n o f t h e m e t h o d o l o g y t o F o r m a l i z a t i o n I n t e g r a - t i o n T h e U s e C a s e s a n d O b j e c t C o n t e x t M o d e l e m p l o y e d e a r l y i n t h e d e v e l o p m e n t p r o c e s s a r e a t b e s t s e m i - f o r m a l m e t h o d s , b u t m o s t l i k e l y i n f o r m a l . T h e t r a n s i t i o n t o u s e c a s e s c e n a r - i o s , U M L c l a s s d i a g r a m s , a n d U M L d y n a m i c m o d e l s p r o d u c e s e m i - f o r m a l s p e c i fi c a t i o n s f o r t h e s y s t e m . T h e t r a n s i t i o n t o a f o r m a l s p e c i fi c a t i o n o c c u r s w h e n t h e m o d e l i s t r a n s l a t e d i n t o t h e t a r g e t l a n g u a g e . T h e t r a n s l a t i o n f r o m U M L c l a s s a n d d y n a m i c m o d e l s t o t h e t a r - g e t l a n g u a g e i s a c c o m p l i s h e d t h r o u g h a n h o m o m o r p h i s m t h a t m a p s m e t a m o d e l s d e s c r i b i n g U M L m o d e l s t o t h e t a r g e t l a n g u a g e , w h i c h a r e f o r m a l s p e c i fi c a t i o n s o f t h e m o d e l . S i n c e o u r h o m o m o r p h i s m s a r e r i g o r o u s l y d e fi n e d , i t i s p o s s i b l e t o i m p l e m e n t t h e m a p p i n g p r o c e s s i n a s o f t w a r e t o o l ( T h e t o o l i s H y d r a . S e e C h a p t e r 8 . ) . U s e c a s e s c e n a r i o s p r o v i d e t h e e q u i v - a l e n t o f p u t a t i v e t h e o r e m s t o t e s t t h e s p e c i fi c a t i o n a n d t h e r e s u l t s o f t h e t a r g e t l a n g u a g e s i m u l a t i o n c a n t h e n b e u s e d t o r e fi n e t h e d y n a m i c m o d e l . S i m i l a r l y , u s e c a s e s c e n a r i o s c a n b e u s e d t o w r i t e t e m p o r a l l o g i c f o r m u l a s t o v e r i f y p r o p e r t i e s t h r o u g h m o d e l c h e c k i n g . T h e s e q u e n c e o f a c t i o n s c l e a r l y f o l l o w s t h e s e m i - f o r m a l t o f o r m a l ( i n p a r a l l e l ) a s s i s t e d s c e n a r i o ( d i s c u s s e d i n S e c t i o n 2 . 5 ) . 6 3 C h a p t e r 5 U M L t o V H D L M a p p i n g R u l e s I n t h i s c h a p t e r w e a p p l y t h e f r a m e w o r k d e s c r i b e d i n C h a p t e r 3 t o t h e c o n s t r u c t i o n o f a h o m o m o r p h i s m a n d m a p p i n g r u l e s f o r m a p p i n g U M L t o V H D L . T h e h o m o m o r p h i c f u n c t i o n i s d e s c r i b e d fi r s t , f o l l o w e d b y a d e s c r i p t i o n o f t h e m a p p i n g r u l e s . 5 . 1 U M L t o V H D L D i a g r a m H o m o m o r p h i s m s F i g u r e 5 . 1 c o n t a i n s t h e c o m b i n e d m e t a m o d e l f o r U M L c l a s s 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 . T h e c l a s s e s i n t h e U M L m e t a m o d e l a r e e n c l o s e d i n r e c t a n g l e s i n t h e d i a g r a m . T h e p o r t i o n o f t h e m e t a m o d e l a t t r i b u t a b l e t o t h e c l a s s m o d e l i s e n c l o s e d i n d o t t e d l i n e s . T h e l i s t o f n o r m a l r e l a t i o n s h i p s ( L e . n o t a g g r e g a t i o n s o r g e n e r a l i z a t i o n s ) g e n e r a t e d b y t h e f o r m a l - i z a t i o n o f t h e U M L m e t a m o d e l i s s h o w n i n F i g u r e 5 . 2 . T h e o c c u r r e n c e s o f t h e h a s C o m p ( ) a n d h a s P a r t ( ) p r e d i c a t e s g e n e r a t e d b y t h e f o r m a l i z a t i o n o f t h e U M L m e t a m o d e l a r e s h o w i n F i g u r e 5 . 3 . A s d e s c r i b e d i n C h a p t e r 3 , e a c h c l a s s a n d r e l a t i o n s h i p i n t h e U M L m e t a m o d e l m u s t h a v e a m a p p i n g t o a c o m p o n e n t i n t h e V H D L m e t a m o d e l . F u r t h e r , t h e m a p p i n g m u s t b e c o n s i s t e n t s o t h a t r e l a t i o n s h i p s b e t w e e n c l a s s e s a r e p r e s e r v e d . T h e s t r a t e g y f o r w r i t i n g t h e V H D L m e t a m o d e l a n d f o r m u l a t i n g t h e U M L t o V H D L 6 4 - — — - - — — - — — — - - p — a ~ - — - - — - - — - — - — - l I I I I I I I I I I : I L t r — ‘ “ — n j ; 1 1 s o u r c e 9 . 3 “ . C l a s s R e l a t i o n s / 1 i s ' 1 t a r g e t i 0 . . * ‘ p i 1 A I I I 0 . ; I . I . I I n s t a n c e A g g r e g a t i o n G e n e r a l i z a t i o n A s s o c i a t i o n : V a r i a b l e . I I 1 . ' B e h a v r o r G u a r d l 1 . . * 0 . . 1 1 1 o u t g n g 3 s u b s t a t e ' S t a l e V e r t e x 0 - - 1 i n c o m i n g 1 T r a n s i t i o n ( , 2 " i s 0 . . 1 1 l l 1 ‘ 0 9 0 1 e n t r y 0 . . 1 P s e u d o s m r e S t a t e 0 . 1 e x i t A c t i o n S e q u e n o e A 0 . . 1 p a r e n t 0 . . 1 C o m p o s i t e S t a t e S i m p l e S t a t e T C o n c u r r e n t C o m p o s i t e E v e n t t r i g g e r j o i n T 0 . . 1 S t a r t J o i n S i g n a l E v e n t T i m e E v e n t C h a n g e E v e n t F i n a l H i s t o r y U M L 2 I n i t i a l F i g u r e 5 . 1 : U n i fi e d U M L c l a s s / d y n a m i c d i a g r a m m e t a m o d e l . 6 5 m a p p i n g S e c t i o n I U M L [ l i t i n t h e V ' s t a t e m e t : w h e n t h e : t h e V H D m a p p i n g 1 . M a m 0 2 . i l l . 3 . A s i n t T h e 1 5 t h e f o r m ; h a S C o m p a r e S h o w % t h e f O l ‘ m a ] m a p p i n g r u l e s i s a s f o l l o w s : F i r s t , t h e V H D L m e t a m o d e l i s c o n s t r u c t e d . A s d e s c r i b e d i n S e c t i o n 3 . 2 . 3 , w e b e g i n b y c o n s t r u c t i n g a m e t a m o d e l t h a t h a s a s t r u c t u r e a s c l o s e t o t h e U M L m e t a m o d e l a s p o s s i b l e . T e m p l a t e s a r e c o n s t r u c t e d , w h e r e n e c e s s a r y , f o r t h e c l a s s e s i n t h e V H D L m e t a m o d e l . A s d e s c r i b e d e a r l i e r , a t e m p l a t e i s a p a r a m e t e r i z e d s e r i e s o f s t a t e m e n t s i n t h e t a r g e t l a n g u a g e t h a t r e p r e s e n t s a t a r g e t l a n g u a g e m e t a m o d e l c l a s s . N e x t , w h e n t h e V H D L m e t a m o d e l i s c o m p l e t e , t h e h o m o m o r p h i s m f r o m t h e U M L m e t a m o d e l t o t h e V H D L m e t a m o d e l i s c o n s t r u c t e d . F i n a l l y , w h e n t h e V H D L m e t a m o d e l i s c o m p l e t e , t h e m a p p i n g r u l e s a r e w r i t t e n . T h r e e g o a l s d r i v e t h e c o n s t r u c t i o n o f t h e m a p p i n g r u l e s : 1 . M a p e v e r y U M L c l a s s a n d r e l a t i o n s h i p t o a c l a s s a n d r e l a t i o n s h i p i n t h e V H D L m e t a - m o d e l . 2 . W h e n a t e m p l a t e i s u s e d , i m p l e m e n t t h e d e s i r e d s e m a n t i c s i n t e r m s o f V H D L . 3 . A s a r u l e i s w r i t t e n , e n s u r e t h a t r e l a t i o n s h i p s i n t h e U M L m e t a m o d e l a r e p r e s e r v e d i n t h e t a r g e t m e t a m o d e l . T h e l i s t o f n o r m a l r e l a t i o n s h i p s ( i . € . , n o t a g g r e g a t i o n s o r g e n e r a l i z a t i o n s ) g e n e r a t e d b y t h e f o r m a l i z a t i o n o f t h e U M L m e t a m o d e l i s s h o w n i n F i g u r e 5 . 2 . T h e o c c u r r e n c e s o f t h e h a s C o m p ( ) a n d h a s P a r t ( ) p r e d i c a t e s g e n e r a t e d b y t h e f o r m a l i z a t i o n o f t h e U M L m e t a m o d e l a r e s h o w i n F i g u r e 5 . 3 . s o u r c e ( C l a s s , R e l a t i o n s h i p s ) t a r g e t ( C l a s s , R e l a t i o n s h i p s ) o u t g o i n g ( S t a t e V e r t e x , T r a n s i t i o n ) i n c o m i n g ( S t a t e V e r t e x , ' I ‘ r a n s i t i o n ) e n t r y ( S t a t e , A c t i o n S e q u e n c e ) e x i t ( S t a t e , A c t i o n S e q u e n c e ) j o i n ( C o n c u r r e n t C o m p o s i t e , J o i n ) F i g u r e 5 . 2 : T h e l i s t o f n o n - a g g r e g a t e a n d n o n - g e n e r a l i z a t i o n r e l a t i o n s h i p p r e d i c a t e s f r o m t h e f o r m a l i z e d r e p r e s e n t a t i o n o f t h e U M L m e t a m o d e l . 6 6 F i g u r e t i o n o f t T h e A s d e s c r U M L H I E c o n s i s t e r c l a s s e s a : 5 . 1 . 1 F l t i t r e 5 . . “ f 9 5 . 6 s l T 0 d c “ o n ‘ a g g r c V H D L I n : t h e m e n F i g u r e 5 . 1 p r e s e r v e d h a s C o m p ( M o d e l , C l a s s ) h a s C o m p ( M o d e l , R e l a t i o n s h i p s ) h a s C o m p ( C l a s s , I n s t a n c e V a r i a b l e ) h a s C o m p ( B e h a ' u i o r , T r a n s i t i o n ) h a s C o m p ( C o m p o s i t e S t a t e , S t a t e V e r t e a t ) h a s P a r t ( T r a n s i t i o n , E v e n t ) F i g u r e 5 . 3 : T h e l i s t a g g r e g a t i o n r e l a t i o n s h i p s p r e d i c a t e s f r o m t h e f o r m a l i z e d r e p r e s e n t a - t i o n o f t h e U M L m e t a m o d e l . T h e V H D L m e t a m o d e l r e s u l t i n g f r o m t h e p r o c e s s d e s c r i b e d a b o v e i s s h o w n i n F i g u r e 5 . 4 . A s d e s c r i b e d i n C h a p t e r 3 , t h e h o m o m o r p h i s m m u s t m a p e a c h c l a s s a n d r e l a t i o n s h i p i n t h e U M L m e t a m o d e l t o a c o m p o n e n t i n t h e V H D L m e t a m o d e l . F u r t h e r , t h e m a p p i n g m u s t b e c o n s i s t e n t w i t h t h e h o m o m o r p h i c p r o p e r t i e s o f t h e f u n c t i o n s o t h a t r e l a t i o n s h i p s b e t w e e n c l a s s e s a r e p r e s e r v e d . 5 . 1 . 1 H o m o m o r p h i c M a p p i n g F i g u r e 5 . 5 s h o w s t h e m a p p i n g o f U M L m e t a m o d e l c l a s s e s t o V H D L m e t a m o d e l c l a s s e s . F i g - u r e 5 . 6 s h o w s t h e m a p p i n g o f t h e r e l a t i o n s h i p s f r o m o n e m e t a m o d e l t o a n o t h e r m e t a m o d e l . T o d e m o n s t r a t e c o m p l e t e n e s s , F i g u r e 5 . 5 a n d F i g u r e 5 . 6 s h o w t h a t e v e r y c l a s s a n d n o n - a g g r e g a t e r e l a t i o n s h i p i n t h e U M L m e t a m o d e l m a p s t o a c l a s s o r r e l a t i o n s h i p s i n t h e V H D L m e t a m o d e l . F i g u r e 5 . 6 s h o w s t h a t e a c h n o n - a g g r e g a t e r e l a t i o n s h i p i s p r e s e r v e d b y t h e m a p p i n g i n t h e V H D L m e t a m o d e l , s a t i s f y i n g t h e r e q u i r e m e n t f o r a h o m o m o r p h i s m . F i g u r e 5 . 7 f u r t h e r s h o w s t h a t t h e h a s C o m p ( ) a n d h a s P a r t ( ) r e l a t i o n s h i p p r e d i c a t e s a r e p r e s e r v e d i n t h e V H D L m e t a m o d e l , c o m p l e t i n g t h e d e m o n s t r a t i o n t h a t t h e m a p p i n g i s h o m o m o r p h i c . 6 7 M o d e l . . . 1 m e t r o . . . . . a I R l I ’ 1 C l a s s 1 t a r c t | O . . " ‘ e a r o n s t p s 1 A o . . . l I n s t a n c e A g g r e g a t i o n G e n e r a l i z a t i o n A s s o c i a t i o n V a n a b l e 1 _ 0 . . 1 B e h a w o r G u a r d 3 ‘ " 0 . . 1 . . 1 b t a t e S O U I ' C O O U I Q O I D Q . 5 U 5 1 . S t a r e V e r t e x i n c o m i n g 1 T r a n s i t i o n . . < > - — — — — — 1 A ] : 1 1 r 1 ‘ 0 9 0 , , 1 e n v y 0 . . 1 i > P s e u d o s t a r e S t a t e ‘ 0 . . 1 e x " . A c t i o n S e q u e n c e A 0 . . 1 } p a r e n t 0 . . 1 [ E n t / A r c h S t a t e P r o c e s s A t % A r c h E n t i t y { i r i g g e r E v e n t o , _ 1 T l — — — — { > S e q S t a t e m e n t C o n c u r r e n t C o m p o s i t e S i g n a l E v e n t T i m e E v e n t C h a n g e E v e n t . . S i n a l A s n C o n c u r r e n t S t m t l o i n l g g l P r o c e s s 4 } . V H D L 2 9 p m ] p m . . . I [ r p m ] w a s . . . ] l i m o s . . . 1 6 8 F i g u r e 5 . 4 : M e t a m o d e l f o r V H D L m o d e l s m o d e l t o t } m l H C O m I ( l . . , l . J 0 1 n . ‘ t h e [ M L 1 : l l l l l i t l l l t l l l l i t i l i l l i i t l U M L M e t a m o d e l C l a s s V H D L M e t a m o d e l C l a s s M o d e l C l a s s R e l a t i o n s h i p s I n s t a n c e V a r i a b l e A g g r e g a t i o n G e n e r a l i z a t i o n A s s o c i a t i o n B e h a v i o r G u a r d - S t a t e V e r t e x T r a n s i t i o n P s e u d o s t a t e S t a t e A c t i o n S e q u e n c e C o m p o s i t e S t a t e C o n c u r r e n t C o m p o s i t e S i m p l e S t a t e S t a r t F i n a l J o i n H i s t o r y E v e n t S i g n a l E v e n t T i m e E v e n t C h a n g e E v e n M o d e l C l a s s R e l a t i o n s h i p s I n s t a n c e V a r i a b l e A g g r e g a t i o n G e n e r a l i z a t i o n A s s o c i a t i o n B e h a v i o r G u a r d S t a t e V e r t e x T r a n s i t i o n P s e u d o s t a t e S t a t e A c t i o n S e q u e n c e E n t / A r c h C o n c u r r e n t C o m p o s i t e S t a t e P r o c e s s I - P r o c e s s S - P r o c e s s J - P r o c e s s H - P r o c e s s E v e n t S i g n a l E v e n t T i m e E v e n t C h a n g e E v e n t F i g u r e 5 . 5 : T h e d e fi n i t i o n o f t h e h o m o m o r p h i c m a p p i n g o f c l a s s e s f r o m t h e U M L m e t a - m o d e l t o t h e V H D L m e t a m o d e l . U M L M e t a m o d e l P r e d i c a t e V H D L M e t a m o d e l P r e d i c a t e s o u r c e ( C l a s s , R e l a t i o n s h i p s ) t a r g e t ( C l a s s , R e l a t i o n s h i p s ) o u t g o i n g ( S t a t e V e r t e x , T r a n s i t i o n ) i n c o m i n g ( S t a t e V e r t e x , ' I ‘ r a n s i t i o n ) e n t r y ( S t a t e , A c t i o n S e q u e n c e ) e x i t ( S t a t e , A c t i o n S e q u e n c e ) j o i n ( C o n c u r r e n t C o m p o s i t e , J o i n ) i l l l l l i s o u r c e ( C l a s s , R e l a t i o n s h i p s ) t a r g e t ( C l a s s , R e l a t i o n s h i p s ) o u t g o i n g ( S t a t e V e r t e x , T r a n s i t i o n ) i n c o m i n g ( S t a t e V e r t e x , T r a n s i t i o n ) e n t r y ( S t a t e , A c t i o n S e q u e n c e ) e x i t ( S t a t e , A c t i o n S e q u e n c e ) j o i n ( C o n c u r r e n t C o m p o s i t e , J - P r o c e s s ) F i g u r e 5 . 6 : T h e d e fi n i t i o n o f t h e h o m o m o r p h i c m a p p i n g o f r e l a t i o n s h i p p r e d i c a t e s f r o m t h e U M L m e t a m o d e l t o t h e V H D L m e t a m o d e l . h : h a s C o r 5 . 2 I T h i s s e c t o f t h e r m t o p r e s e r ' A n i n c l a s s e s o n M a n y 0 f t h e r u l t R a i n e 1 1 1 1 i . t r u e ? t h e n l i i l l l l i U M L A g g r e g a t e R e l a t i o n s h i p V H D L A g g r e g a t e R e l a t i o n s h i p h a s C o m p ( M o d e l , C l a s s ) h a s C o m p ( M o d e l , R e l a t i o n s h i p s ) h a s C o m p ( C l a s s , I n s t a n c e V a r i a b l e ) h a s C o m p ( B e h a v i a r , T r a n s i t i o n ) h a s C o m p ( C o m p o s i t e S t a t e , S t a t e V e r t e x h a s P a r t ( T r a n s i t i o n , E v e n t t ) ) h a s C o m p ( M o d e l , C l a s s ) h a s C o m p ( M o d e l , R e l a t i o n s h i p s ) h a s C o m p ( C l a s s , I n s t a n c e V a r i a b l e ) h a s C o m p ( B e h a v i o r , T r a n s i t i o n ) h a s C o m p ( E n t / A r c h , S t a t e V e r t e x ) h a s P a r t ( T r a n s i t i o n , E v e n t ) h a s C o m p ( T r a n s i t i o n , G u a r d ) h a s C o m p ( S t a t e , A c t i o n S e q u e n c e ) ) h a s C o m p ( T r a n s i t i o n , G u a r d ) h a s C o m p ( S t a t e , A c t i o n S e q u e n c e F i g u r e 5 . 7 : T h e p r e s e r v e d h a s C o m p a n d h a s P a r t r e l a t i o n s h i p p r e d i c a t e s . 5 . 2 U M L t o V H D L M a p p i n g R u l e s T h i s s e c t i o n d e s c r i b e s t h e m a p p i n g r u l e s f r o m U M L t o V H D L . T h e r u l e s a r e s t a t e d i n t e r m s o f t h e m e t a m o d e l t o m e t a m o d e l m a p p i n g . A s d e s c r i b e d e a r l i e r , t h e m a p p i n g i s c o n s t r a i n e d t o p r e s e r v e t h e h o m o m o r p h i c m a p p i n g d e s c r i b e d a b o v e . A n i m p o r t a n t p a r t o f t h e U M L c l a s s m o d e l i s r e l a t i o n s h i p s . A l l r e l a t i o n s h i p s b e t w e e n c l a s s e s a r e p r o v i d e d i n V H D L b y s i g n a l s , t h e r e f o r e , r e l a t i o n s h i p s m a p t o s i g n a l s . M a n y V H D L c o m p i l e r s u s e a c o m m o n n a m e s p a c e f o r n a m e d c o n s t r u c t s , t h e r e f o r e , s o m e o f t h e r u l e s i n c l u d e n a m i n g c o n v e n t i o n s f o r n a m e s f o u n d w i t h i n t h e m o d e l i n o r d e r t o e n s u r e n a m e u n i q u e n e s s . W e a s s u m e t h a t s t a t e n a m e s a r e u n i q u e w i t h i n t h e m o d e l . I f t h i s i s n o t t r u e , t h e n i t c a n b e e a s i l y r e c t i fi e d b y c o m p o s i n g s t a t e n a m e s w i t h c l a s s n a m e s . 5 . 2 . 1 C l a s s D i a g r a m F o r m a l i z a t i o n s F i g u r e 5 . 8 g i v e s a s a m p l e c l a s s m o d e l t h a t w i l l b e u s e d t o h e l p i l l u s t r a t e t h e c l a s s d i a g r a m f o r m a l i z a t i o n r u l e s . T h e d i a g r a m c o n t a i n s f o u r c l a s s e s : A , B , C , a n d D . C l a s s A c o n t a i n s p a r t s o f C ( t h e e x p r e s s i o n E r , y ( T A ( : 1 : ) / \ T C ( y ) A h a s P a r t ( z r , y ) ) i s t r u e ) , a n d h a s a n a s s o - c i a t i o n R 1 , w i t h c l a s s B . C l a s s B i s a s u p e r t y p e f o r c l a s s D , a n d t h e r e f o r e , t h e r e i s a l s o a n a s s o c i a t i o n R 1 b e t w e e n c l a s s A a n d c l a s s D ( t h e e x p r e s s i o n 3 3 : , y ( T A ( : r ) A T D ( y ) A R 1 ( a : , y ) ) 7 0 i s t r u e ) . C E a c h c l o b j - c l a s s . . t h e o n l y w : L i s t r u e ) . C l a s s A c o n t a i n s o n e i n s t a n c e v a r i a b l e , v a r a , d e c l a r e d a s a n i n t e g e r . F i g u r e 5 . 8 : S a m p l e c l a s s m o d e l E a c h c l a s s i s r e p r e s e n t e d a s a V H D L e n t i t y a n d a r c h i t e c t u r e p a i r . T h e p a i r i s n a m e d o b j - c l a s s . A s s o c i a t i o n s b e t w e e n c l a s s e s a r e r e p r e s e n t e d i n V H D L w i t h s i g n a l s t h a t p r o v i d e t h e o n l y w a y i n V H D L f o r p r o p a g a t i n g i n f o r m a t i o n b e t w e e n e n t i t i e s . 7 1 R u l e F o n n a l t o H a N i E l l a r b e 8 D 8 1 3 1 1 W E d k a u m a p p e c i n s - 3 t t h e [ i t R d a fi o T h i s r u t . a l e p r e s ' E H d o l C l & § 3 l l l h l t ‘ S W l l l ( J : h h l m c h h i I t o b e g l O l i é i d e c l a r a t i v e R u l e V H D L 1 F o r m a l i z e e a c h o b j e c t o f c l a s s C L A S S a s a n e n t i t y / a r c h i t e c t u r e p a i r a c c o r d i n g t o t h e f o l l o w i n g t e m p l a t e : e n t i t y o b j . C L A S S i s p o r t ( s t a t e : i n o u t r s _ s t ; s i g _ 1 : i n o u t s i g _ 1 t y p e ; s i g _ n i n o u t s i g m t y p e ; i n s t a t e : o u t s t ; i n s - s t a t e - 1 : i n s t ; i n s _ s t a t e _ n : i n s t ) ; e n d e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f o b j . C L A S S i s b e g i n i n s t a t e < = s t a t e w h e n s t a t e / = s t ’ ( n o n e ) ; — S t a t e m e n t s f o r s t a t e s a n d c o m p o s i t e s t a t e s g o h e r e e n d a b t r a c t ; s i g _ 1 t h r o u g h s i g _ n a r e i n t e r - o b j e c t s i g n a l s . i n s t a t e i s u s e d f o r t h e I N ( ) s t a t e p r e d i c a t e t o c o n v e y t o o t h e r e n t i t y a r c h i t e c t u r e p a i r s ( t h a t r e p r e s e n t v a r i o u s o t h e r m a p p e d t e m p l a t e s ) t h e s i m p l e s t a t e s t h i s e n t i t y / a r c h i t e c t u r e i s i n . i n s _ s t a t e - 1 t h r o u g h i n s _ s t a t e . n a r e i n c o m i n g V H D L s i g n a l s t h a t s i m p l e s t a t e s o f t h i s o b j e c t c a n t e s t f o r t h e I N ( ) p r e d i c a t e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e s a t i s f i e s t h e m a p p i n g o f C l a s s t o C l a s s . T h e s o u r c e a n d t a r g e t r e l a t i o n s h i p s a r e p r e s e r v e d b y i n c l u d i n g s i g n a l s i n t h e V H D L c l a s s d e f i n i t i o n . E n d o f R u l e V H D L 1 . C l a s s i n s t a n c e v a r i a b l e s m u s t b e a c c e s s i b l e f r o m a n y s t a t e w i t h i n t h e o b j e c t . A s l a t e r r u l e s w i l l e x p l a i n , a n u m b e r o f e n t i t y / a r c h i t e c t u r e s c a n b e g e n e r a t e d i n a d d i t i o n t o t h e e n - t i t y / a r c h i t e c t u r e r e p r e s e n t i n g t h e c l a s s i t s e l f . C o n s e q u e n t l y , i n s t a n c e v a r i a b l e s a r e r e q u i r e d t 0 b e g l o b a l t o e a c h e n t i t y / a r c h i t e c t u r e c o m p r i s i n g t h e o b j e c t . T h e p l a c e d e s i g n a t e d f o r d e e l a r a t i v e c o m p o n e n t s c o m m o n t o a n u m b e r o f e n t i t y / a r c h i t e c t u r e s i s t h e V H D L p a c k a g e , 7 2 a n d t i l t i n a k n o w n a s i s e x d e t a i l s 1 f u n c t i o n p l a c e d i t a n d t h e V H D L p a c k a g e b o d y c o n t a i n s p r o c e d u r e s c o m m o n t o e a c h e n t i t y / a r c h i t e c t u r e . I n a d d i t i o n t o i n s t a n c e v a r i a b l e s , t h e s e t o f s t a t e n a m e s u s e d w i t h i n t h e o b j e c t m u s t b e k n o w n t o t h e e n t i r e o b j e c t . T h e s i g n a l c a l l e d s t a t e i s u s e d f o r t r a n s i t i o n s b e t w e e n s t a t e s , a s i s e x p l a i n e d i n R u l e V H D L 5 , b e l o w . F o r t e c h n i c a l r e a s o n s r e l a t e d t o V H D L m o d e l i n g d e t a i l s ( e x p l a i n e d i n S e c t i o n 2 . 2 . 3 ) , t h i s s i g n a l m u s t h a v e a s s o c i a t e d w i t h i t a r e s o l u t i o n f u n c t i o n t h a t i s c o m m o n t o t h e e n t i r e o b j e c t . T h e d e c l a r a t i o n o f t h e r e s o l u t i o n f u n c t i o n i s p l a c e d i n a p a c k a g e b o d y . 7 3 R u l e V H D L 2 C r e a t e a c l a s s p a c k a g e a n d p a c k a g e b o d y n a m e d p k _ c l a s s n a m e t o c o n t a i n d e c l a r a t i o n s f o r i n s t a n c e v a r i a b l e s , t h e l i s t o f s t a t e n a m e s , a n d t h e r e s o l u t i o n f u n c t i o n r e q u i r e d f o r t h e b u s s i g n a l s t a t e ( i n t r o d u c e d i n R u l e V H D L 5 ) . T h e p a c k a g e a n d p a c k a g e b o d y a r e c o n s t r u c t e d a c c o r d i n g t o t h e f o l l o w i n g t e m p l a t e : 1 p a c k a g e p k - C L A S S i s 2 — S t a t e s i g n a l n a m e s 3 t y p e a t i s ( n o n e , s t a t e - 1 , , s t a t e _ n ) ; 4 — A n a r r a y r e q u i r e d f o r t h e r e s o l u t i o n f u n c t i o n 5 t y p e s t - a i s a r r a y ( n a t u r a l r a n g e < > ) o f s t ; 6 - I n s t a n c e v a r i a b l e s 7 s h a r e d v a r i a b l e v a r _ 1 < t y p e > ; 8 9 1 0 . 1 1 s h a r e d v a r i a b l e v a r _ n < t y p e > ; 1 2 a n d p a c k a g e p k _ C L A S S ; 1 3 — R e s o l u t i o n f u n c t i o n f o r s t a t e h a s 1 4 p a c k a g e b o d y p k - C L A S S i s 1 5 f u n c t i o n r e s o l v e . s t 1 6 ( v : i n s t _ a ) r e t u r n s t i s 1 7 v a r i a b l e i : n a t u r a l ; 1 8 b e g i n 1 9 f o r i i n v ’ r a n g e l o o p 2 0 i f v ( i ) / = s t ’ ( n o n e ) t h e n 2 1 r e t u r n v ( i ) ; 2 2 e n d i f ; 2 3 a n d l o o p ; 2 4 r e t u r n s t ’ ( n o n e ) ; 2 5 e n d f u n c t i o n ; 2 6 a n d p a c k a g e b o d y ; W h e r e C L A S S i s t h e n a m e o f t h e c l a s s , a n d v a r . i i s a n i n s t a n c e v a r i a b l e . P r e c e d e e a c h e n t i t y / a r c h i t e c t u r e w i t h a u s e w o r k . p k - C L A S S . a l l s t a t e m e n t . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e m a p p i n g o f I n s t a n c e V a r i a b I e t o I n s t a n c e V a r i a b l e . T h e a g g r e g a t i o n i s p r e s e r v e d b y i n c l u d i n g t h e p a c k a g e a b o v e t h e d e f i n i t i o n o f t h e c l a s s , t h u s c a u s i n g i n c l u s i o n o f t h e i n s t a n c e v a r i a b l e s i n t h e c l a s s . E n d o f R u l e V H D L 2 . F i g u r e 5 . 9 g i v e s t h e V H D L g e n e r a t e d f o r c l a s s A i n F i g u r e 5 . 8 b y R u l e V H D L 2 . L i n e 3 i n F i g u r e 5 . 9 i s t h e p a r t i a l l i s t o f s t a t e n a m e s u s e d f o r s t a t e t r a n s i t i o n s . T h e r e s t o f L i n e 3 7 4 i s fi l l e d i n a s s t a t e s a r e a d d e d t o t h e s p e c i fi c a t i o n . L i n e s 1 1 t h r o u g h 2 1 d e c l a r e t h e V H D L r e s o l u t i o n f u n c t i o n t h a t e n a b l e s t h e r e s o l v e d b u s . F i g u r e 5 . 1 0 s h o w s t h e a r c h i t e c t u r e / e n t i t y p a i r g e n e r a t e d b y R u l e s 1 a n d 2 . T h e e n - t i t y / a r c h i t e c t u r e i s s k e l e t a l b e c a u s e a n u m b e r o f d e t a i l s t h a t a r e o b t a i n e d f r o m t h e d y n a m i c m o d e l h a v e n o t b e e n s p e c i fi e d . F i g u r e 5 . 1 0 , L i n e 5 s h o w s t h e p o r t a s s i g n m e n t t h a t c o r r e - s p o n d s t o t h e a s s o c i a t i o n R 1 i n F i g u r e 5 . 8 . T h e i n s t a n c e v a r i a b l e v a r a i s d e c l a r e d i n t h e p a c k a g e i n F i g u r e 5 . 9 . J u s t a s w i t h a c l a s s , t h i s e n t i t y / a r c h i t e c t u r e m a y b e i n s t a n t i a t e d a s m a n y t i m e s a s r e q u i r e d . 1 p a c k a g e k a i s 2 - S t a t e s i g n a l n a m e s 3 t y p e a t i s ( n o n e ) ; 4 - A n a r r a y r e q u i r e d f o r t h e r e s o l u t i o n f u n c t i o n 5 t y p e a t . a i s a r r a y ( n a t u r a l r a n g e < > ) o f s t ; 6 — I n s t a n c e v a r i a b l e s 7 s h a r e d v a r i a b l e v a r a : i n t ; 8 a n d p a c k a g e p k _ A ; 9 - R e s o l u t i o n f u n c t i o n f o r s t a t e b u s 1 0 p a c k a g e b o d y k a i s 1 1 f u n c t i o n r e s o l v e - “ 1 2 ( v : i n a t - a ) r e t u r n a t i s 1 3 v a r i a b l e i : n a t u r a l ; 1 4 b e g i n 1 5 f o r i i n v ’ r a n g o l o o p 1 6 i f v ( i ) / = a t ’ ( n o n e ) t h e n 1 7 r e t u r n v ( i ) ; 1 8 e n d i f ; 1 9 a n d l o o p ; 2 0 r e t u r n a t ’ ( n o n e ) ; 2 1 a n d f u n c t i o n ; 2 2 a n d p a c k a g e b o d y ; F i g u r e 5 . 9 : T h e V H D L p a c k a g e s t a t e m e n t s g e n e r a t e d f o r e a c h c l a s s . C l a s s s p e c i a l i z a t i o n c o n c e p t u a l l y a l l o w s t h e d e s i g n e r t o d u p l i c a t e t h e p a r e n t c l a s s a n d m o d i f y i t t o b e c o m e a s u b c l a s s . S u c h d u p l i c a t i o n i m p l i e s t h a t t h e b e h a v i o r , a l o n g w i t h r e l a t i o n s h i p s a n d i n s t a n c e v a r i a b l e s , a r e a l s o r e p r o d u c e d . I n t h e o r y , a s u b c l a s s o b j e c t s h o u l d b e a b l e t o s i m u l a t e a p a r e n t c l a s s o b j e c t , b u t t h e m e a n i n g o f s p e c i a l i z a t i o n w h e n t h e d u p l i c a t e d p a r e n t c l a s s b e h a v i o r i s r a d i c a l l y m o d i fi e d , o r e v e n r e p l a c e d , i s n o t c l e a r . F o r t u n a t e l y , h i g h l e v e l s o f s p e c i a l i z a t i o n a r e n o t a c h a r a c t e r i s t i c o f e m b e d d e d s y s t e m s . 7 5 e - r M U é I ‘ O O N Q O H H O H H M Q F - fl C Q N m ” u s e s t d . t e x t i o . a l l ; u s e u o r k . e a s y i o . a l l ; u s e u o r k . p k . A . a 1 1 ; e n t i t y o i j i s p o r t ( r 1 : i n o u t i n t e g e r ) ; a n d e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f o i j i s b e g h i l 1 : e n t fl y o b j - C ( a b s t r a c t ) p o r t m a p ( r 1 = > r 1 ) ; \ a n d a r c h i t e c t u r e ; F i g u r e 5 . 1 0 : E n t i t y / A r c h i t e c t u r e p a i r f r o m d i a g r a m 5 . 8 c l a s s A T h e r e f o r e , g e n e r a l i z a t i o n i s f o r m a l i z e d a s d u p l i c a t i o n o f a l l t h e m a p p e d c o m p o n e n t s o f a c l a s s f o l l o w e d b y m o d i fi c a t i o n s a s r e q u i r e d t o c r e a t e t h e s u b c l a s s d e fi n i t i o n . T h e d u p l i c a t i o n i n c l u d e s a l l e n t i t y / a r c h i t e c t u r e s f o r t h e o b j e c t a n d r e u s e o f t h e p a c k a g e f o r t h e c l a s s . R u l e V H D L 3 C l a s s s p e c i a l i z a t i o n i s f o r m a l i z e d a s d u p l i c a t i o n o f t h e p a r e n t c l a s s c o m p o n e n t s , w i t h a p p r o p r i a t e r e n a m i n g o f t h e c o m p o n e n t s t h a t a r e n a m e d b y t h e c l a s s , f o l l o w e d b y m o d - i f i c a t i o n , a s r e q u i r e d . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e p r e s e r v e s t h e m a p p i n g o f G e n e r a l i z a t i o n t o G e n e r a l i z a t i o n . E n d o f R u l e V H D L 3 . T h e V H D L f o r a n o b j e c t o f c l a s s D g e n e r a t e d b y R u l e V H D L 3 f r o m F i g u r e 5 . 8 i s s h o w n i n F i g u r e 5 . 1 1 . R e f e r r i n g t o F i g u r e 5 . 8 , c l a s s D i n h e r i t s t h e a s s o c i a t i o n R 1 f r o m c l a s s B , t h e r e f o r e , t h e p o r t d e c l a r a t i o n a p p e a r s i n t h e V H D L f o r c l a s s D . u s e s t d . t e x t i o . a 1 1 ; u s e u o r k . e a s y i o . a l l ; u s e v o r k . p k _ D . a l l ; e n t i t y o i j i s p o r t ( r 1 : i n o u t i n t e g e r ) ; a n d e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f o b j _ D i s b e g i n e n d a r c h i t e c t u r e ; F i g u r e 5 . 1 1 : V H D L g e n e r a t e d f o r a n i n s t a n c e o f c l a s s D f r o m F i g u r e 5 . 8 A g g r e g a t i o n i n a ' c l a s s m o d e l i n d i c a t e s t h a t a c l a s s ( t h e “ p a r t ” c l a s s ) p l a y s a r o l e i n t h e 7 6 f u n c t i o n o f t h e a g g r e g a t e c l a s s . T h e c l a s s d i a g r a m d o e s n o t c o n t a i n e n o u g h d e t a i l t o s p e c i f y e x a c t l y h o w t h e a g g r e g a t i o n i s t o o c c u r . F o r e x a m p l e , i n s o m e c a s e s , c o m m u n i c a t i o n m a y b e r e q u i r e d b e t w e e n t h e a g g r e g a t e a n d t h e p a r t s . I n o t h e r c a s e s , t h e a g g r e g a t e m a y s i m p l y k e e p t r a c k o f i t s p a r t s . T h e d e t a i l s o f t h e a g g r e g a t i o n a r e d e fi n e d b y t h e s p e c i fi c a t i o n o f t h e d y n a m i c m o d e l . I n g e n e r a l , a g g r e g a t i o n i m p l i e s i n t e r - o b j e c t c o m m u n i c a t i o n b e t w e e n t h e a g g r e g a t e a n d t h e p a r t . A g g r e g a t i o n m a y a l s o r e q u i r e t h e a g g r e g a t e t o i n s t a n t i a t e t h e p a r t . R u l e V H D L 4 C l a s s a g g r e g a t i o n i s f o r m a l i z e d a s f o l l o w s : I n t h e c o l l e c t i o n a r c h i t e c t u r e b o d y , i n s t a n - t i a t e a s m a n y i n s t a n c e s o f t h e p a r t e n t i t y a s r e q u i r e d b y t h e i n s t a n t i a t i o n o f a p a r t i c u l a r m o d e l . T h e p o r t m a p o n t h e i n s t a n t i a t i o n m u s t m a t c h t h e p o r t d e c l a r a t i o n f o r t h e s u b c l a s s e n t i t y . A u n i q u e l a b e l m u s t b e p r o v i d e d o n e a c h e n t i t y i n s t a n t i a t i o n s t a t e m e n t . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p i l e s w i t h t h e m a p p i n g o f A g g r e g a t i o n t o A g g r e g a t i o n . E n d o f R u l e V H D L 4 . L i n e s 9 a n d 1 0 i n F i g u r e 5 . 1 0 s h o w t h e V H D L s t a t e m e n t g e n e r a t e d b y R u l e V H D L 4 t o i n s t a n t i a t e o n e i n s t a n c e o f c l a s s C . 5 . 2 . 2 D y n a m i c M o d e l F o r m a l i z a t i o n s T h i s s e c t i o n d e s c r i b e s t h e m a p p i n g r u l e s f o r t h e p o r t i o n s o f t h e u n i fi e d m e t a m o d e l c o r r e - s p o n d i n g t h e t h e d y n a m i c m o d e l . F i g u r e 5 . 1 2 s h o w s a s a m p l e d y n a m i c m o d e l i n t e n d e d t o i l l u s t r a t e t h e f o r m a l i z a t i o n r u l e s p e r t a i n i n g t o t h e d y n a m i c m o d e l p o r t i o n o f t h e U M L d i a g r a m . I t c o n s i s t s o f a t o p s t a t e T O P t h a t c o n t a i n s o n e s i m p l e s t a t e F a n d a c o m p o s i t e c o n c u r r e n t s t a t e d e n o t e d b y C P I a n d 0 P 2 . T h e d a s h e d l i n e b e t w e e n C P I a n d 0 P 2 i n d i c a t e s c o n c u r r e n t e x e c u t i o n o f t h e s e t w o s t a t e s . C o m p o s i t e s t a t e c o m p o n e n t C P I c o n t a i n s a h i s t o r y s t a t e , d e n o t e d a s a c i r c l e c o n t a i n i n g a n “ H ” , a n d t h r e e s i m p l e s t a t e s . C o m p o s i t e s t a t e c o m p o n e n t 0 P 2 c o n t a i n s o n e 7 7 s i m p l e s t a t e , E , a n d a c o m p o s i t e s t a t e , D . T h e e x e c u t i o n t h r e a d s f r o m C P I a n d 0 P 2 a r e r e j o i n e d i n a j o i n c o n s t r u c t , d e n o t e d a s a h e a v y v e r t i c a l b a r . T h e t r a n s i t i o n s f o r e v e n t s T 4 a n d T 5 l e a d t o t h e j o i n p s e u d o - s t a t e . S t a t e F i s a c t i v a t e d o n l y a f t e r b o t h t r a n s i t i o n s l e a d i n g i n t o t h e j o i n h a v e o c c u r r e d . T h e i n i t i a l s t a t e o f T O P i s j o i n t l y t h e c o n c u r r e n t c o m p o s i t e s t a t e s C P I a n d G P ? a s d e - n o t e d b y t h e s o l i d c i r c l e i n d i c a t i n g a t r a n s i t i o n t o t h e c o n c u r r e n t c o m p o s i t e s t a t e b o u n d a r y . S i m i l a r l y , t h e i n i t i a l s t a t e o f 0 P 2 i s s t a t e E . S t a t e E i s e n t e r e d e v e r y t i m e a t r a n s i t i o n t o t h e b o u n d a r y o f G P ? o c c u r s . T h e h i s t o r y s t a t e i n C P I i s a s p e c i a l i n i t i a l s t a t e t h a t r e m e m b e r s t h e c u r r e n t s t a t e w h e n t h e c o m p o s i t e s t a t e i s e x i t e d . F o r e x a m p l e , i f C P I i s i n s t a t e B w h e n e v e n t T 5 o c c u r s , t h e n t h e n e x t t i m e C P I i s e n t e r e d , s t a t e B w i l l b e m a d e t h e c u r r e n t s t a t e . W h e n t h e r e i s n o p r e v i o u s s t a t e , t h e d e f a u l t s t a t e a s i n d i c a t e d b y t h e t r a n s i t i o n a r e ( A , i n t h i s c a s e ) i s e n t e r e d . B a c k g r o u n d f o r S i m p l e S t a t e T e m p l a t e B e f o r e s t a t i n g t h e r u l e f o r g e n e r a t i n g a s i m p l e s t a t e i n V H D L , t h e m e c h a n i s m f o r i m p l e — m e n t i n g a s t a t e , a s t a t e t r a n s i t i o n , a n d s i g n a l l i n g a n e v e n t i s d i s c u s s e d . S t a t e s . A U M L s i m p l e s t a t e i s r e p r e s e n t e d i n V H D L a s a p r o c e s s . T h e p r o c e s s i s n a m e d s _ s t a t e n a m e . A c t i v a t i o n o f t h e p r o c e s s ( i . e . , s t a t e ) i s a c c o m p l i s h e d t h r o u g h a s p e c i a l “ s t a t e b u s ” s i g n a l n a m e d s t a t e . S i g n a l s t a t e i s d e c l a r e d a s a n e n u m e r a t e d t y p e n a m e d s t l i s t i n g t h e n a m e o f e v e r y s t a t e i n t h e o b j e c t , i n c l u d i n g c o m p o s i t e s t a t e s , a s w e l l a s t h e d i s t i n - g u i s h e d n a m e n o n e . P r o c e s s e s r e p r e s e n t i n g s t a t e s a l l h a v e a s i m i l a r s t r u c t u r e : T h e i n i t i a l 7 8 T O P F i g u r e 5 . 1 2 : S a m p l e d y n a m i c m o d e l t o i l l u s t r a t e t h e m a p p i n g o f d y n a m i c m o d e l c o m p o - n e n t s . 7 9 w a i t s t a t e m e n t w a i t s u n t i l t h e s t a t e s i g n a l c o n t a i n s t h e n a m e o f t h e s t a t e . A t t h a t p o i n t , t h e p r o c e s s i s a c t i v a t e d a n d c a n p e r f o r m t h e a c t i o n s r e q u i r e d b y t h e s t a t e d i a g r a m . E v e n t s a n d m e s s a g e s fl o w i n g b e t w e e n o b j e c t s a n d s t a t e s a r e c a r r i e d b y s i g n a l d e c l a r a t i o n s o n t h e e n t i t y p o r t d e c l a r a t i o n a s d e s c r i b e d i n R u l e V H D L 1 . E v e n t s . A l l e v e n t s w i t h i n t h e s t a t e d i a g r a m a r e r e p r e s e n t e d a s s i g n a l s t h a t a s s u m e a m o m e n t a r y v a l u e . A l l t r a n s i t i o n s f o r a s t a t e a r e m a p p e d t o w a i t s t a t e m e n t s i n s i d e o f a l o o p c o n s t r u c t . W h e n t h e p r o c e s s i s a c t i v a t e d a f t e r a n e v e n t o n t h e w a i t o c c u r s , a n e s t e d s e t o f i f s t a t e m e n t s d e t e r m i n e w h i c h e v e n t o c c u r r e d . N e x t , t h e g u a r d , i f a n y , i s c h e c k e d . I f t h e g u a r d i s f a l s e , c o n t r o l f a l l s t h r o u g h t o t h e b o t t o m o f t h e l o o p , c a u s i n g t h e w a i t t o b e r e — i n i t i a t e d . T r a n s i t i o n s . S t a t e t r a n s i t i o n s a r e r e p r e s e n t e d a s s i g n a l a s s i g n m e n t s . E a c h t r a n s i t i o n a s s i g n s t h e n a m e o f t h e d e s t i n a t i o n s t a t e f o l l o w e d b y ’ d i s c o n n e c t i n g ’ t h e s t a t e s i g n a l d r i v e r b y u s i n g t h e V H D L ’ n u l l ’ s i g n a l a s s i g n m e n t . T h e s t r u c t u r e o f t h e “ s t a t e — p r o c e s s ” r e q u i r e s t h a t t h e s i g n a l a s s i g n m e n t b e t h e l a s t l o g i c a l a c t i o n o f t h e p r o c e s s s o t h a t t h e p r o c e s s r e s u m e s w a i t i n g f o r i t s n a m e o n s i g n a l s t a t e . 8 0 R u l e V H D L 5 F o r s t a t e n a m e d s t a t e n a m e , e v e n t s E 1 , E 2 , , E n g u a r d e d b y g u a r d s G ' D l , G D g , , G D " , e v e n t l e s s t r a n s i t i o n s g u a r d e d b y g u a r d s E G D I , E G D g , , E 0 0 " , a n d d e s t i n a t i o n s t a t e s n e x t s t a t e l , n e z t s t a t e g , , n e r t s t a t e n , f o r m a l i z e e a c h s i m p l e s t a t e a s a p r o c e s s a c c o r d i n g t o t h e f o l l o w i n g t e m p l a t e : s _ s t a t e n a m e : p r o c e s s b e g i n w a i t u n t i l s t a t e z s t a t e n a m e ; { e n t r y : p r o c e s s i n g s t a t e m e n t s } i f E G D ; t h e n s t a t e < = n e r t s t a t e l ; e l s i f E G D 2 t h e n s t a t e < = n e r t s t a t e g ; e l s i f E G ’ D n t h e n s t a t e ( 2 n e r t s t a t e n ; e n d i f l o o p w a i t u n t i l E 1 o r E 2 o r E n ; i f E 1 a n d G D } t h e n s t a t e < = n e r t s t a t e l , n u l l a f t e r 1 f s ; { O t h e r t r a n s i t i o n a c t i o n s } e x i t ; e l s i f E 2 a n d G D 2 t h e n s t a t e < = n e r t s t a t e g , n u l l a f t e r 1 f s ; { O t h e r t r a n s i t i o n a c t i o n s } e x i t ; e n d i f ; e n d l o o p ; { e x i t z p r o c e s s i n g s t a t e m e n t s } e n d p r o c e s s : I f t h e r e a r e n o e v e n t - l e s s t r a n s i t i o n s f r o m t h i s s t a t e t h e n t h e i f c h e c k i n g g u a r d s E G D ; a b o v e t h e l o o p c a n b e e l i m i n a t e d . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e d e f i n e s t h e S t a t e P r o c e s s t e m p l a t e , w h i c h i s t h e h o m o m o r p h i c t a r g e t o f t h e S i m - p l e S t a t e c l a s s . T h e S t a t e P r o c e s s i s a S t a t e a n d S t a t e V e r t e x . S t a t e P r o c e s s h a s r e l a t i o n s h i p s w i t h A c t i o n S e q u e n c e a n d T r a n s i t i o n ( t h r o u g h t h e S t a t e V e r t e x c l a s s ) . T h e s e r e l a t i o n s h i p s a r e p r e s e r v e d t h r o u g h t h e c o n s t r u c t s i f E n f o r e v e n t s a n d g u a r d s . A c t i o n s e q u e n c e s a r e p r e s e r v e d w i t h i n t h e s a m e i f s t a t e m e n t . E n d o f R u l e V H D L 5 . F i g u r e 5 . 1 3 s h o w s t h e p r o c e s s g e n e r a t e d b y R u l e V H D L 5 f o r s t a t e D 2 f r o m t h e e x a m p l e i n F i g u r e 5 . 1 2 . T h e l o o p s t a t e m e n t o n L i n e 5 b e g i n s t h e s e c t i o n t h a t w a i t s f o r o n e o f t h e e v e n t s T 1 , T 3 , o r T 4 . T h e t r a n s i t i o n f o r e v e n t T 3 i s g u a r d e d , w h i c h g e n e r a t e s a n e x t r a 8 1 c o n j u n c t o n t h e i f s t a t e m e n t o n L i n e 9 . T h e r e a r e n o e v e n t - l e s s t r a n s i t i o n s i n t h i s e x a m p l e . L i n e s 9 , 1 0 a n d 1 1 i n F i g u r e 5 . 1 3 a l s o s h o w t h e V H D L s t a t e m e n t g e n e r a t e d b y R u l e V H D L 5 f o r t h e t r a n s i t i o n f r o m s t a t e D 2 t o s t a t e D 1 g u a r d e d b y 0 1 s h o w n i n F i g u r e 5 . 1 2 . 1 s _ d 2 : p r o c e s s 2 b e g i n 3 w a i t u n t i l s t a t e s s t ’ ( d 2 ) ; 4 s a y ( " I n s t a t e d 2 " ) ; 5 l o o p 6 w a i t u n t i l t 3 7 o r t 4 8 o r t 1 ; 9 i f t 3 a n d g 1 t h e n 1 0 s t a t e < = s t ’ ( d 1 ) . n u l l a f t e r 1 i s ; 1 1 e x i t ; 1 2 e l s i f t 4 t h e n 1 3 s t a t e < = s t ’ ( j o i n 1 ) , n u l l a f t e r 1 i s ; 1 4 e x i t ; 1 5 e l s i f t 1 t h e n 1 6 s t a t e < = s t ’ ( e ) , n u l l a f t e r 1 i s ; 1 7 e x i t ; 1 8 e n d i f ; 1 9 a n d l o o p ; 2 0 e n d p r o c e s s ; F i g u r e 5 . 1 3 : E x a m p l e o f t h e g e n e r a t e d s t a t e D 2 C o m p o s i t e S t a t e s . C o m p o s i t e s t a t e s a r e m a p p e d t o e n t i t y a r c h i t e c t u r e p a i r s n a m e d c s _ s t a t e n a m e . T h e e n t i t y p o r t d e s c r i p t i o n i n h e r i t s a l l t h e s i g n a l s f r o m i t s p a r e n t s t a t e a s w e l l a s o t h e r s p e c i a l s i g n a l s r e q u i r e d f o r m e s s a g e s b e t w e e n s t a t e s , a n d s i g n a l s r e q u i r e d f o r t h e I N ( ) ’ i n s t a t e ’ p r e d i c a t e . S i g n a l s t a t e i s d e c l a r e d i n t h e c o m p o s i t e s t a t e t o b e t y p e i n o u t t o p e r m i t b i - d i r e c t i o n a l p a s s i n g o f s t a t e i n f o r m a t i o n b e t w e e n p a r e n t a n d c h i l d . T h e I N ( ) p r e d i c a t e p e r m i t s o n e c o n c u r r e n t t h r e a d t o d e t e r m i n e t h e c u r r e n t s t a t e o f s o m e o t h e r , p a r a l l e l c o m p o n e n t . T h e I N ( ) p r e d i c a t e i s r e p r e s e n t e d i n o u r m a p p i n g w i t h a n e x t r a s e t o f s i g n a l s a n d p o r t s t h a t c o m m u n i c a t e t h e c u r r e n t s t a t e o f a c o n c u r r e n t c o m p o n e n t t o t h e o t h e r c o m p o n e n t s . S i n g l e t h r e a d e d a n d c o n c u r r e n t c o m p o s i t e s t a t e s a r e m a p p e d d i f f e r e n t l y i n o r d e r t o 8 2 h a n d l e o n e t h r e a d , v e r s u s m u l t i p l e t h r e a d s o f c o n t r o l . T h e s i n g l e t h r e a d e d v e r s i o n o f a c o m p o s i t e s t a t e i s d i s c u s s e d fi r s t . A s i n g l e t h r e a d e d c o m p o s i t e s t a t e i s m a p p e d t o a n e n t i t y / a r c h i t e c t u r e i n s t a n t i a t e d b y t h e c o m p o s i t e s t a t e ’ s p a r e n t . T h e v a l u e o f t h e s t a t e s i g n a l i s c o n v e y e d t o t h e c h i l d c o m - p o s i t e s t a t e b y c o n n e c t i n g t h e s t a t e s i g n a l s i n t h e p a r e n t ’ s p o r t m a p . T h i s a l l o w s t h e c h i l d c o m p o s i t e s t a t e t o o b s e r v e e v e r y s t a t e t r a n s i t i o n t h e p a r e n t m a k e s , i n c l u d i n g t r a n s i t i o n s i n t o t h e c h i l d . W h e n a c h i l d c o m p o s i t e s t a t e o b s e r v e s i t ’ s n a m e ( t h r o u g h a w a i t s t a t e m e n t , a s i n R u l e V H D L 5 ) , t h a t s t a t e b e c o m e s t h e c u r r e n t s t a t e . I f t h e c o m p o s i t e s t a t e h a s a n i n i t i a l s t a t e t h e n t h a t s t a t e s i m p l y l i s t e n s f o r t h e n a m e o f t h e c o m p o s i t e s t a t e a n d t h e n t r a n s i t i o n s t o t h e d e f a u l t i n i t i a l s t a t e . 8 3 R u l e V H D L 6 F o r m a l i z e e a c h s i n g l e t h r e a d e d c o m p o s i t e s t a t e n a m e d C S T A T E a c c o r d i n g t o t h e f o l l o w i n g t e m p l a t e : e n t i t y c s . C S T A T E i s p o r t ( s t a t e : i n o u t r s _ s t ; s i g _ 1 : i n o u t < t y p e > ; s i g n : i n o u t < t y p e > ; l s i g - 1 : i n o u t < t y p e > ; l s i g _ n : i n o u t < t y p e > ; i n s - C S l : i n s t ; i n s _ C S 2 : i n s t ; i n s t a t e : o u t s t ) ; e n d e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f c s _ C S T A T E i s b e g i n - t h e b o d y o f t h e c o m p o s i t e s t a t e f o l l o w s . C o n t e n t s m a y - i n c l u d e s i m p l e s t a t e s , c o m p o s i t e s t a t e s , c o n c u r r e n t c o m p o s i t e — s t a t e s , a n d p s e u d o - s t a t e s . e n d a b s t r a c t ; w h e r e s t a t e i s t h e s t a t e s i g n a l p e r R u l e V H D L 5 , s i g - i a r e t h e i n t e r - o b j e c t s i g n a l s p e r R u l e V H D L 1 , l s i g - i a r e i n t r a - o b j e c t s i g n a l s , i n s _ C S _ i a r e t h e s i g n a l s f o r t h e I N ( ) p r e d i c a t e , a n d i n s t a t e i s t h e s i g n a l c o n v e y i n g t h i s e n t i t y / a r c h i t e c t u r e ' s c u r r e n t s t a t e t o t h e r e s t o f t h e o b j e c t . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e m a p p i n g C o m p o s i t e S t a t e t o E n t / A r c h . T h e t e m p l a t e d e f i n e d r e s p o n d s t o s t a t e t r a n s i t i o n s a n d t h e r e f o r e i s a S t a t e a n d a S t a t e V e r t e x . O t h e r S t a t e V e r t e x c o m p o n e n t s a r e i n c l u d e d b e l o w t h e b e g i n s t a t e m e n t i n t h e t e m p l a t e i n c o m p l i a n c e w i t h t h e s u b s t a t e a g g r e g a t i o n . T h e s i g n a l d e c l a r a t i o n s p r o v i d e t h e l i n k s f o r i n c l u d e d S t a t e P r o c e s s e s , w h i c h a r e S t a t e V e r t i c e s . E n d o f R u l e V H D L 6 . 8 4 R u l e V H D L 7 I n t h e p a r e n t c o m p o s i t e s t a t e o r o b j e c t , i n s t a n t i a t e t h e c o m p o s i t e s t a t e a s f o l l o w s : 1 1 : e n t i t y c s _ C S T A T E ( a b s t r a c t ) p o r t m a p ( s t a t e = > s t a t e , s i g _ 1 = > s i g - 1 , . . . , s i g _ n = > s i g _ n , l s i g _ 1 = > l s i g - 1 , . . . , l s i g _ n = > 1 s i g _ n , i n s . C S l = > i n s _ C S 1 , i n s _ C S T A T E = > i n s t a t e , i n s _ C S _ n = > i n s _ C S _ n ) ; w h e r e t h e s i g n a l s a r e a s i n R u l e V H D L 6 . N o t e t h a t s i g n a l i n _ C S T A T E c o n n e c t s t o t h e c h i l d i n s t a t e s i g n a l . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e s s p e c i f i e s h o w t o s a t i s f y t h e o u t g o i n g a n d i n c o m i n g r e l a t i o n s h i p s b e t w e e n S t a t e V e r t e x a n d T r a n s i t i o n a n d t h e S t a t e V e r t e x i s a c o m p o s i t e s t a t e . E n d o f R u l e V H D L 7 . F i g u r e 5 . 1 4 s h o w s t h e e n t i t y p o r t i o n o f c o m p o s i t e s t a t e D i n F i g u r e 5 . 1 2 g e n e r a t e d b y R u l e V H D L 6 . T h e b o d y o f D i n F i g u r e 5 . 1 4 b e l o w l i n e 2 0 c o n s i s t s o f p r o c e s s e s f o r s t a t e s D I a n d D 2 g e n e r a t e d a c c o r d i n g t o r u l e R u l e V H D L 5 . F i g u r e 5 . 1 5 s h o w s h o w R u l e V H D L 7 g e n e r a t e s t h e p a r e n t s t a t e ’ s ( 0 P 2 ) i n s t a n t i a t i o n o f c o m p o s i t e s t a t e D . C o n c u r r e n t S t a t e s . C o n c u r r e n t s t a t e c o m p o n e n t s a r e d e n o t e d i n U M L m o d e l s b y p a r t i t i o n i n g t h e c o m p o s i t e s t a t e r e c t a n g l e w i t h d o t t e d l i n e s a n d r e p r e s e n t c o n c u r r e n t e x e c u t i o n o f a l l t h e p a r t i t i o n e d p a r t s . T o c r e a t e m u l t i p l e e x e c u t i o n t h r e a d s i n V H D L , a s e p a r a t e s t a t e s i g n a l m u s t b e c r e - a t e d f o r e a c h t h r e a d a n d a l l o f t h e s i g n a l s n o r m a l l y c o n n e c t e d t o a c o m p o s i t e s t a t e m u s t b e c o n n e c t e d t o e a c h c o m p o s i t e s t a t e c o m p o n e n t . C r e a t i n g s e p a r a t e s t a t e s i g n a l s i s a c - 8 5 1 u s e s t d . t e x t i o . a l l ; 2 u s e w o r k . e a s y i o . a l l ; 3 u s e w o r k . p k - t o p . a 1 1 ; 4 e n t i t y c s . d i s 5 p o r t ( s t a t e : i n o u t r s - s t ; 6 t 1 : i n o u t b o o l e a n ; 7 t 2 : i n o u t b o o l e a n ; 8 t 3 : i n o u t b o o l e a n ; 9 t 4 : i n o u t b o o l e a n ; 1 0 t 5 : i n o u t b o o l e a n ; 1 1 t 6 : i n o u t b o o l e a n ; 1 2 t 7 : i n o u t b o o l e a n ; 1 3 i n s - c p 1 : i n s t ; 1 4 i n s _ c p 2 : i n s t ; 1 5 i n s t a t e : o u t a t ) ; 1 6 e n d e n t i t y ; 1 7 1 8 a r c h i t e c t u r e a b s t r a c t o f c s _ d i s 1 9 b e g i n 2 0 - b o d y c o m p o s i t e s t a t e f o l l o w s . . . F i g u r e 5 . 1 4 : E x a m p l e e n t i t y a n d a r c h i t e c t u r e f o r c o m p o s i t e s t a t e D 1 a r c h i t e c t u r e a b s t r a c t o f c s - c p 2 i s 2 b e g i n 3 i n s t a t e < = s t a t e w h e n s t a t e / = s t ' ( n o n e ) ; 4 1 1 : e n t i t y c s - d ( a b s t r a c t ) 5 p o r t m a p ( s t a t e 8 > s t a t e , t 1 = > t 1 , t 2 = > t 2 , t 3 = > t 3 , t 4 = > t 4 , t 5 = > t 5 . 6 t 6 - > t 6 , t 7 = > t 7 , i n s - c p 1 = > i n s - c p 1 , i n s - c p 2 = > i n s t a t e , 7 i n s t a t e - > i n s - d ) ; F i g u r e 5 . 1 5 : T h e i n s t a n t i a t i o n o f c o m p o s i t e s t a t e D a s c o n t a i n e d i n p a r e n t s t a t e 0 P 2 . L i n e 3 s h o w s t h e m a p p i n g f o r t h e ’ i n s t a t e ’ p r e d i c a t e f o r s t a t e 0 P 2 . c o m p l i s h e d b y d e c l a r i n g o n e s t a t e s i g n a l p e r ( c o n c u r r e n t ) c o m p o n e n t i n t h e p a r e n t a n d c o n n e c t i n g e a c h o f t h e n e w l y d e c l a r e d s i g n a l s t o t h e c h i l d ’ s s t a t e s i g n a l . T h e p a r e n t s t a t e c o n t a i n i n g c o n c u r r e n t c o m p o n e n t s i n s t a n t i a t e s t h e c o m p o n e n t s a s i n t h e n o n - c o n c u r r e n t c a s e , b u t i n s t e a d o f m a p p i n g t h e s t a t e s i g n a l i n t h e c h i l d t o t h e s t a t e s i g n a l i n t h e p a r e n t , t h e p o r t m a p s t a t e m e n t m a p s s t a t e t o t h e l o c a l l y d e c l a r e d s i g n a l s , t h u s e f f e c t i v e l y c r e a t i n g m u l t i p l e t h r e a d s o f c o n t r o l . C o n t r o l i s t h e n p a s s e d t o e a c h c o n c u r r e n t c o m p o n e n t b y a s s i g n - i n g t h e n a m e o f i t s c o r r e s p o n d i n g c h i l d s t a t e n a m e t o e a c h s t a t e ’ s s i g n a l , t h u s a c t i v a t i n g s e v e r a l ( c o n c u r r e n t ) c o m p o s i t e s t a t e s i n p a r a l l e l . I n o r d e r t o r e j o i n t h e t h r e a d s g e n e r a t e d b y c o n c u r r e n t s t a t e s , U M L r e q u i r e s a j o i n c o n s t r u c t , d e s c r i b e d b e l o w . W e o n l y p e r m i t 8 6 t r a n s i t i o n s t o t h e b o u n d a r y o f t h e c o n c u r r e n t c o m p o s i t e s t a t e a n d w e r e q u i r e a j o i n b e f o r e t h e p a r e n t s t a t e ’ s t h r e a d c a n r e s u m e . W e b e l i e v e t h e s e r e s t r i c t i o n s t o b e c o n s i s t e n t w i t h t h e v a s t m a j o r i t y o f a c t u a l e m b e d d e d s y s t e m s . R u l e V H D L 8 G i v e n c o m p o s i t e c o n c u r r e n t c h i l d s t a t e s c h i l d l , c h i l d g , . . . , c h i l d " , s e p a r a t e d b y d o t t e d l i n e s i n t h e c o m p o s i t e s t a t e , i n s t a n t i a t e e a c h c o m p o n e n t a s a c h i l d c o m p o s i t e s t a t e . E a c h c h i l d s t a t e s i g n a l i s c o n n e c t e d t o a u n i q u e s t a t e s i g n a l ( i n s t e a d o f s t a t e i n t h e p a r e n t ) i n t h e p o r t m a p . A l l c o n c u r r e n t s t a t e s a r e s t a r t e d i n p a r a l l e l b y a s s i g n i n g t h e i n i t i a l c o n c u r r e n t s t a t e n a m e t o t h e u n i q u e s i g n a l c r e a t e d . U s e t h e f o l l o w i n g t e m p l a t e f o r i n s t a n t i a t i n g t h e c h i l d c o n c u r r e n t s t a t e s : a r c h i t e c t u r e a b s t r a c t o f c s . s t a t e i s s i g n a l s t a t e : r s _ s t ; s i g n a l s s _ c h i l d 1 : r s _ s t ; s i g n a l s s _ c h i l d 2 : r s . s t ; s i g n a l s s . c h i l d n : r s _ s t ; b e g i n l 1 : e n t i t y c s _ c h i l d 1 ( a b s t r a c t ) p o r t m a p ( s t a t e = > s s _ c h i l d 1 , ) l 2 : e n t i t y c s _ c h i l d 2 ( a b s t r a c t ) p o r t m a p ( s t a t e = > s s - c h i l d 2 , ) I n : e n t i t y c s _ c h i l d , , ( a b s t r a c t ) p o r t m a p ( s t a t e = > s s _ c h i l d n , ) s s _ c h i l d 1 < = c h i l d 1 , n u l l a f t e r 1 f s w h e n s t a t e = c h i l d 1 o r s t a t e = c h i l d 2 o r s t a t e = c h i l d n s s _ c h i 1 d 2 < = c h i l d 2 , n u l l a f t e r 1 i s w h e n s t a t e = c h i 1 d 1 o r s t a t e = c h i l d 2 o r s t a t e = c h i 1 d fl s s _ c h i l d , , < = C h i l d m n u l l a f t e r 1 f s w h e n s t a t e = c h i l d 1 o r s t a t e = c h i l d 2 o r s t a t e = c h i 1 d fl w h e r e s s _ c h i l d ; i s t h e t e m p o r a r y s t a t e s i g n a l s h o l d i n g c s _ c h i l d , - ' s t h r e a d . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e C o n c u r r e n t C o m p o s i t e t o C o n c u r r e n t C o m p o s i t e c l a s s m a p p i n g . T h e r u l e f u r t h e r d e f i n e s h o w t h e o u t g o i n g a n g i n c o m i n g r e l a t i o n s h i p s o n c l a s s S t a t e V e r t e x a r e m a i n t a i n e d . E n d o f R u l e V H D L 8 . 8 7 F i g u r e 5 . 1 6 s h o w s h o w R u l e V H D L 8 g e n e r a t e s t h e i n s t a n t i a t i o n o f c o m p o s i t e c o n c u r r e n t s t a t e s C P I a n d C P 2 i n s t a t e T O P f r o m t h e d i a g r a m i n F i g u r e 5 . 1 2 . L i n e s 1 0 — 1 2 , a n d 1 6 — 1 8 c r e a t e t h e c o n n e c t i o n b e t w e e n T O P , C P I , a n d C P 2 . L i n e s 1 9 — 2 0 s t a r t t h e c o m p o s i t e s t a t e w h e n a t r a n s i t i o n t o t h e c o m p o s i t e s t a t e b o u n d a r y o c c u r s . 1 a r c h i t e c t u r e a b s t r a c t o f o b j - t o p i s 2 s i g n a l s t a t e : r s . s t ; 3 s i g n a l s s . . c p 1 : r s _ s t ; 4 s i g n a l s s - c p 2 : r s - s t ; 5 s i g n a l i n s - c p 1 : s t ; 6 s i g n a l i n s - c p 2 : s t ; 7 s i g n a l i n s . d : s t ; 8 b e g i n 9 l 2 : e n t i t y c s - c p 1 ( a b s t r a c t ) 1 0 p o r t n a p ( s t a t e = > s s - c p 1 , t 1 = > t 1 , t 2 = > t 2 , t 3 = > t 3 . t 4 = > t 4 , t 5 = > t 5 , 1 1 t 6 = > t 6 , t 7 = > t 7 , i n s t a t e = > i n s - c p 1 , i n s - c p 2 = > i n s - c p 2 , 1 2 i n s _ d = > i n s _ d ) ; 1 3 s s - c p 1 < = s t ’ ( c p 1 ) . n u l l a f t e r 1 i s w h e n s t a t e = s t ’ ( c p 1 ) o r 1 4 s t a t e a s t ’ ( c p 2 ) ; 1 5 1 3 : e n t i t y c s - c p 2 ( a b s t r a c t ) 1 6 p o r t m a p ( s t a t e = > s s _ c p 2 , t 1 a > t 1 , t 2 = > t 2 , t 3 = > t 3 , t 4 = > t 4 , t 5 = > t 5 , 1 7 t 6 = > t 6 , t 7 = > t 7 , i n s - c p 1 = > i n s _ c p 1 , i n s t a t e = > i n s - c p 2 , 1 8 i n s _ d = > i n s _ d ) ; 1 9 s s - c p 2 < = s t ’ ( c p 2 ) , n u l l a f t e r 1 1 s w h e n s t a t e = s t ’ ( c p 1 ) o r 2 0 s t a t e = s t ’ ( c p 2 ) ; F i g u r e 5 . 1 6 : T h i s e x a m p l e i l l u s t r a t e s t h e m a p p i n g f r o m R u l e V H D L 8 t o g e n e r a t e t w o c o n c u r r e n t c o m p o s i t e s t a t e s . 5 . 2 . 3 J o i n i n g C o n c u r r e n t T h r e a d s W e r e q u i r e U M L j o i n s , w h i c h c o m b i n e s e v e r a l t h r e a d s o f c o n t r o l i n t o a s i g n a l t h r e a d , t o b e i n t h e p a r e n t s t a t e ( o n e l e v e l h i g h e r ) t h a t i n s t a n t i a t e d t h e c o n c u r r e n t c o m p o n e n t s . S i n c e a j o i n i s a p s e u d o s t a t e a c c o r d i n g t o t h e U M L d y n a m i c m e t a m o d e l , i t i s m a p p e d t o t h e p r o c e s s n a m e d j o i n fl w h e r e n i s a s e q u e n t i a l n u m b e r a s s i g n e d i n o r d e r t o c r e a t e a u n i q u e s t a t e n a m e . T h e j o i n m u s t r e m e m b e r t h e o c c u r r e n c e o f e a c h i n c o m i n g t r a n s i t i o n a s i t o c c u r s , a n d w h e n a l l h a v e o c c u r r e d , c a u s e a t r a n s i t i o n t o t h e o u t b o u n d s i d e o f t h e j o i n . R e m e m b e r i n g t h e o c c u r r e n c e o f e a c h i n b o u n d t r a n s i t i o n r e q u i r e s l i s t e n i n g t o e a c h t h r e a d s ’ s t a t e s i g n a l , a n d a n e w s e t o f s i g n a l s t o r e m e m b e r w h e n t h e t r a n s i t i o n h a s o c c u r r e d . 8 8 R u l e V H D L 9 I n t h e f o l l o w i n g t e m p l a t e c s n a m e n a r e t h e n a m e s o f t h e c o n c u r r e n t c o m p o s i t e s t a t e c o m p o n e n t s , j o i n i s t h e n a m e o f t h e j o i n s t a t e , a n d n e w s t a t e i s t h e n a m e o f t h e s t a t e e n t e r e d a f t e r t h e j o i n o p e r a t i o n . A j o i n p s e u d o s t a t e i s f o r m a l i z e d w i t h o n e c o n c u r r e n t s i g n a l a s s i g n m e n t p e r i n b o u n d t r a n s i t i o n a r c a n d a j o i n p r o c e s s . T h e s i g n a l a s s i g n m e n t s a n d t h e p r o c e s s t a k e t h e f o r m : j o i n _ c s n a m e 1 < = j o i n w h e n s s - c s n a m e 1 = j o i n ; j o i n . c s n a m e 2 < = j o i n w h e n s s - c s n a m e 2 = j o i n ; j o i n . c s n a m e n < = j o i n w h e n s s _ c s n a m e n = j o i n ; p r o c e s s j o i n ; b e g i n w a i t u n t i l j o i n _ c s n a m e 1 = j o i n a n d j o i n _ c s n a m e 2 ' 2 j o i n a n d j o i n . c s n a m e n = j o i n ; j o i n _ c s n a m e 1 < = n o n e ; j o i n r s n a m e z < = n o n e ; j o i n _ c s n a m e n < = n o n e ; s t a t e < = n e w s t a t e , n u l l a f t e r 1 i s ; e n d p r o c e s s ; E a c h j o i n . c s n a m e n m u s t b e d e c l a r e d i n t h e e n c l o s i n g a r c h i t e c t u r e a s a n e n u m e r a t e d s i g n a l t y p e m a t c h i n g s t a t e i n t h e c u r r e n t c o m p o n e n t . T h e n a m e o f t h e j o i n p r o c e s s m u s t b e u n i q u e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e m a p p i n g J o i n t o J - P r o c e s s . A J - P r o c e s s i s a k i n d o f S t a t e V e r t e x , t h u s t h e r u l e s d e f i n e s h o w t h e o u t g o i n g a n d i n c o m i n g r e l a t i o n s h i p s a r e m a i n t a i n e d . E n d o f R u l e V H D L 9 . F i g u r e 5 . 1 7 i s a n e x a m p l e o f t h e j o i n n a m e d j o i n ] g e n e r a t e d b y R u l e V H D L 9 t h a t j o i n s t h r e a d s f r o m C P I a n d C P 2 i n F i g u r e 5 . 1 2 . A s s e e n i n F i g u r e 5 . 1 2 , a f t e r t h e t h r e a d s a r e r e - j o i n e d , s t a t e F i s a c t i v a t e d . 8 9 n - i o r w s a n c a a l s e c o r p j o i n 1 - c p 1 < = s s - c p 1 w h e n s s - c p 1 = s t ’ ( j o i n 1 ) ; j o i n 1 - c p 2 < = s s _ c p 2 w h e n s s - c p 2 = s t ’ ( j o i n 1 ) ; s - j o i n 1 : p r o c e s s b e g i n w a i t u n t i l j o i n 1 - c p 1 = s t ’ ( j o i n 1 ) a n d j o i n 1 _ c p 2 = s t ’ ( j o i n 1 ) ; s a y ( " j o i n 1 j o i n c o m p l e t e “ ) ; s t a t e ( 2 s t ’ ( t ) , n u l l a f t e r 1 t s ; j o i n 1 - c p 1 < = s t ’ ( n o n e ) ; j o i n 1 _ c p 2 ( 2 s t ’ ( n o n e ) ; a n d p r o c e s s ; O F i g u r e 5 . 1 7 : E x a m p l e o f t h e j o i n p s e u d o - s t a t e g e n e r a t e d b y R u l e V H D L 9 i n s t a t e T O P P s e u d o S t a t e s . D e f a u l t i n i t i a l s t a t e s a r e m a p p e d t o a p r o c e s s n a m e d s _ i n i t i a l . T h i s p r o c e s s s i m p l y w a i t s f o r t h e s t a t e n a m e , t h e n p e r f o r m s a n i m m e d i a t e t r a n s i t i o n t o t h e s t a t e i n d i c a t e d i n t h e s t a t e d i a g r a m . R u l e V H D L 1 0 M a p d e f a u l t i n i t i a l s t a t e s t o a s t a t e p r o c e s s n a m e d s _ i n i t i a l a c c o r d i n g t o t h e f o l l o w i n g t e m p l a t e : s - i n i t : p r o c e s s b e g i n w a i t u n t i l s t a t e = s t ’ ( C S T A T E ) ; s t a t e < = = s t ’ ( D E F A U L T ) , n u l l a f t e r 1 i s ; e n d p r o c e s s ; w h e r e C S T A ‘ I ' E i s t h e n a m e o f t h e e n c l o s i n g c o m p o s i t e s t a t e o r o b j e c t , a n d D E F A U L T i s t h e n a m e o f t h e d e a f u l t i n i t i a l s t a t e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e s c o m p l i e s w i t h t h e I n i t i a l t o I - P r o c e s s m a p p i n g . E n d o f R u l e V H D L 1 0 . U M L i n h e r i t s t h e c o n c e p t o f a “ h i s t o r y s t a t e ” f r o m S t a t e c h a r t s [ 2 5 ] a s a n a l t e r n a t i v e t o t h e d e f a u l t i n i t i a l s t a t e . H i s t o r y e i t h e r t r a n s i t i o n s t o t h e i n d i c a t e d i n i t i a l s t a t e o r t o t h e l a s t a c t i v e s t a t e i n t h e s t a t e c o m p o n e n t . H i s t o r y i s s i m u l a t e d i n V H D L b y a d d i n g a n a d d i t i o n a l h i s t o r y s i g n a l n a m e d h i s t o r y t h a t c o n t i n u o u s l y t r a c k s t h e l a s t v a l u e o f t h e s t a t e 9 0 s i g n a l v a r i a b l e . T h e i n i t i a l s t a t e i s m o d i fi e d t o a s s i g n t h e c u r r e n t v a l u e o f h i s t o r y i n s t e a d o f t h e s t a t i c v a l u e o f t h e i n i t i a l s t a t e . T h e n e w s i g n a l h i s t o r y i s i n i t i a l i z e d t o t h e d e f a u l t i n i t i a l s t a t e . C l e a r l y , t h e r e c a n n o t b e a n i n i t i a l s t a t e a n d a h i s t o r y s t a t e i n t h e s a m e c o m p o s i t e s t a t e . R u l e V H D L 1 1 M a p h i s t o r y s t a t e s t o a n i n i t i a l s t a t e n a m e d s _ i n i t i a l a c c o r d i n g t o t h e f o l l o w i n g t e m p l a t e : s - i n i t : p r o c e s s b e g i n w a i t u n t i l s t a t e = s t ’ ( C S T A T E ) ; s t a t e < = s t ’ ( D E F A U L T ) , n u l l a f t e r 1 f s ; e n d p r o c e s s ; w h e r e C S T A T E i s t h e n a m e o f t h e e n c l o s i n g c o m p o s i t e s t a t e o r o b j e c t , a n d D E F A U L T i s t h e n a m e o f t h e d e f a u l t i n i t i a l s t a t e . I n a d d i t i o n , a d d t h e f o l l o w i n g s t a t e m e n t b e t w e e n t h e a r c h i t e c t u r e a n d b e g i n s t a t e m e n t f o r t h e c o m p o s i t e s t a t e : s i g n a l h i s t o r y : s t : = s t ’ ( D E F A U L T ) ; R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e H i s t o r y t o H - P r o c e s s m a p p i n g . E n d o f R u l e V H D L 1 1 . F i g u r e 5 . 1 8 s h o w s h o w R u l e V H D L 1 1 g e n e r a t e s V H D L s t a t e m e n t s f o r t h e h i s t o r y s t a t e i n C P I f r o m F i g u r e 5 . 1 2 . a r c h i t e c t u r e a b s t r a c t o f c s _ c p 1 i s s i g n a l h i s t o r y : a t : = s t ’ ( a ) ; b e g i n h i s t o r y ( 2 s t a t e w h e n s t a t e = s t ’ ( a ) o r s t a t e = s t ’ ( b ) o r s t a t e = s t ’ ( c ) ; s - i n i t : p r o c e s s b e g i n s a y ( " I n s t a t e h i s t o r y " ) ; w a i t u n t i l s t a t e = s t ’ ( c p l ) ; s t a t e < = h i s t o r y , n u l l a f t e r 1 i s ; a n d p r o c e s s ; F i g u r e 5 . 1 8 : E x a m p l e o f t h e g e n e r a t e d h i s t o r y i n i t i a l s t a t e g e n e r a t e d b y R u l e V H D L 1 1 . N o n - h i s t o r y i n i t i a l s t a t e s , p e r R u l e V H D L 1 0 , a r e t h e s a m e e x c e p t t h e a s s i g n m e n t o n l i n e 1 1 i s a c o n s t a n t a n d l i n e s 2 a n d 6 a r e n o t n e e d e d . 9 1 F i n a l s t a t e s s i m p l y c a u s e a t h r e a d t o e n d . A w a i t w i t h n o p a r a m e t e r s p e r f o r m s t h e s a m e f u n c t i o n i n V H D L . R u l e V H D L 1 2 M a p a f i n a l s t a t e t o a s t a t e p r o c e s s n a m e d s _ f i n a l w h o s e b o d y c o n t a i n s a s i n g l e w a i t w i t h n o p a r a m e t e r s . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e s c o m p l i e s w i t h t h e m a p p i n g o f F i n a l t o S - P r o c e s s E n d o f R u l e V H D L 1 2 . 5 . 3 E x a m p l e I n t h i s s e c t i o n w e d e m o n s t r a t e t h e a n a l y s i s o f a U M L m o d e l b y m a p p i n g i t i n t o V H D L a n d e x e c u t i n g t h e m o d e l . T h e e m b e d d e d s y s t e m w e s h o w i s a h e a t i n g a n d c o o l i n g s y s t e m t h a t o p e r a t e s s e p a r a t e f u r n a c e a n d a i r c o n d i t i o n i n g ( A C ) u n i t s . T h e u s e r i n t e r f a c e c o n s i s t s o f a t h e r m o s t a t a n d fi v e b u t t o n s t o c o n t r o l h e a t i n g m o d e , c o o l i n g m o d e , o f f , f a n c o n t i n u o u s l y o n , a n d f a n - a u t o m o d e . I n f a n - a u t o m o d e t h e f a n c y c l e s a s r e q u i r e d b y t h e A C o r f u r n a c e . T h e c o n t r o l l e r s t a r t s a n d s t o p s a s e p a r a t e f u r n a c e a n d A C u n i t . T h e i n i t i a l c l a s s d i a g r a m f o r t h e s y s t e m i s s h o w n i n F i g u r e 5 . 1 9 . T h e m o d e b u t t o n s a n d f a n b u t t o n s a r e s u b c l a s s e s o f c l a s s b u t t o n t h a t g e n e r a t e s a m o m e n t a r y s i g n a l w h e n p u s h e d . I n t h i s e x a m p l e , w e m o d e l t h e C o n t r o l l e r c l a s s b y s u p p l y i n g a s y s t e m c o n t e x t t h a t p r o v i d e s s e v e r a l u s e r c a s e s c e n a r i o s . T h e U M L d y n a m i c m o d e l f o r t h e c o n t r o l l e r c l a s s i s s h o w n i n F i g u r e 5 . 2 0 . F r o m t h e c l a s s d i a g r a m , w e s e e t h a t t h e c o n t r o l l e r m u s t h a n d l e a n d r e m e m b e r s t a t e l e s s ( m o m e n t a r y c o n t a c t ) m o d e m e s s a g e s f r o m t h e c o n t r o l p a n e l , w h i c h a r e e s s e n t i a l l y e v e n t s , a n d m u s t r e s p o n d t o d e m a n d s f o r h e a t a n d c o o l i n g f r o m t h e t h e r m o s t a t . T h e r e s p o n s i b i l i t y o f t e m p e r a t u r e o v e r r u n a n d u n d e r s h o o t , o r h y s t e r e s i s , l i e s w i t h t h e t h e r m o s t a t a n d n o t w i t h t h e c o n t r o l l e r . I n o r d e r t o r e s p o n d t o a n d m a i n t a i n t h e m o d e b u t t o n s , t h e c o n t r o l l e r c o n s i s t s o f fi v e 9 2 C 1 3 t M o d e B u o n t r o l P a n e l 1 S e t M o d e 1 t o n 2 a F n B u t t o n L 1 1 g 8 C o n s o l l e r l 1 t 1 d e m a n d t e m p a t 5 — T h e r m o s h e a t _ t a r g e t : n a t u r a l c o o l _ t a r g e t : n a t u r a l h y s t e r e s i s : n a t u r a l Q — ‘ c o n t r o l B u t t o n 1 " F u r n a c e A C F i g u r e 5 . 1 9 : T h e c l a s s d i a g r a m f o r a h e a t i n g a n d c o o l i n g s y s t e m . 0 0 0 ' ) o u r b e s t ) S e a s o n S w i t c h E F u m a c e R e l a y S S H e a t l : d e m m d ( h e a t ) [ i n . H e a l ] I ~ : g E E F R O " d e m a n d ( e n o u g h ) F R O " g [ $ 3 0 ” I . . f : r - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g : A C _ R e l a y m e n a n F a n S v d t c h O n X l n D o o l v i n H e a t ] A r R A u t o w h e n g i n o fl ) R O n w h e n O n F a n S M t c h A u t o ) F i g u r e 5 . 2 0 : T h e d y n a m i c m o d e l f o r t h e c o n t r o l l e r c l a s s f o r t h e h e a t i n g — c o o l i n g s y s t e m 9 3 e - D h t m a N “ c o n c u r r e n t c o m p o s i t e s s t a t e s . S t a t e s S e a s o n S w i t c h a n d F a n S w i t c h r e s p o n d t o b u t t o n p u s h e s t o p r e s e r v e t h e c u r r e n t s t a t e o f s y s t e m m o d e . T h e s t a t e F u r n a c e R e l a y d e c i d e s w h e n t o s t a r t t h e f u r n a c e a n d s t o p s t h e f u r n a c e w h e n t h e t h e r m o s t a t c o m m a n d s e n o u g h . T h e A C . R e l a y s t a t e i s a n a l o g o u s t o s t a t e F u r n a c e R e l a y , t u r n i n g t h e A C o n a n d o f f . 5 . 3 . 1 V H D L S p e c i fi c a t i o n s F i g u r e s 5 . 2 1 a n d 5 . 2 2 s h o w V H D L f o r t h e F u r n a c e R e l a y c o m p o n e n t o f t h e m o d e l g e n e r a t e d b y o u r U M L t o V H D L t r a n s l a t o r , H y d r a ( s e e C h a p t e r 8 ) . T h e e n t i r e c o n t r o l l e r s p e c i fi e d i n V H D L a s g e n e r a t e d b y H y d r a i s g i v e n i n A p p e n d i x A . — F u r n a c e R e l a y c o m p o n e n t e n t i t y c h u r n r e l a y i s p o r t ( s t a t e : i n o u t r s - s t ; m o d e : i n o u t m o d e t y p e ; d e m a n d : i n o u t d e m a n d t y p e ; i n s - s e a s o n s v i t c h : i n s t ; i n s J a n s v i t c h : i n s t ; i n s t a t e : o u t s t ; i n s _ a c r e 1 a y : i n s t ; 1 0 i n s J a n r e l a y : i n s t ) ; 1 1 e n d e n t i t y ; C O F i g u r e 5 . 2 1 : T h e e n t i t y s e c t i o n f r o m t h e F u r n a c e R e l a y c o m p o n e n t o f t h e t o p s t a t e f r o m F i g u r e 5 . 2 0 . T h e m a t c h i n g a r c h i t e c t u r e i s i n F i g u r e 5 . 2 2 5 . 3 . 2 B e h a v i o r V a l i d a t i o n U s e c a s e s c e n a r i o s c a n b e a p p l i e d d i r e c t l y t o t h e m o d e l t o v a l i d a t e b e h a v i o r . I n s c e n a r i o o n e o f t h e u s e c a s e , w e m o v e t h e s y s t e m t o h e a t m o d e , t h e n d e m a n d h e a t , a n d t e r m i n a t e b y s e n d i n g t h e s i g n a l e n o u g h . W h e n t h e m o d e l i s e x e c u t e d i n a V H D L s i m u l a t o r , t h e o u t p u t s h o w n i n F i g u r e 5 . 2 3 i s p r o d u c e d . S i n c e t i m e i s r e l a t i v e i n a s i m u l a t i o n , t h e n u m b e r s t o t h e l e f t o f t h e e v e n t a n n o t a t i o n s i n t h e fi g u r e s a r e r e l a t i v e t i m e s . A t t i m e 0 , a l l i n i t i a l s t a t e s a r e e n t e r e d . N e x t w e s e e t h e s y s t e m c y c l i n g t o h e a t m o d e , s t a r t i n g t h e f u r n a c e a n d t u r n i n g 9 4 1 a r c h i t e c t u r e a b s t r a c t o f c h u r n r e l a y i s 2 b e g i n 3 i n s t a t e ( 2 s t a t e w h e n s t a t e / = s t ’ ( n o n e ) ; 4 5 s z O f t : p r o c e s s 6 b e g i n 7 w a i t u n t i l s t a t e = s t ’ ( F R O f f ) ; 8 s a y ( " I n s t a t e F R O f f " ) ; 9 l o o p 1 0 w a i t u n t i l d e m a n d e e m a n d t y p e ’ O i e a t ) ; 1 1 H d e m a n d = d e m a n d t y p e ’ ( h e a t ) a n d i n s _ s e a s o n s u i t c h = s t ’ ( S S H e a t ) 1 2 t h e n 1 3 s t a t e ( 2 s t ’ ( F F . 0 n ) , n u l l a f t e r 1 t s ; 1 4 e x i t ; 1 5 e n d i f ; 1 6 e n d l o o p ; 1 7 a n d p r o c e s s ; 1 8 1 9 s J - ‘ R O n : p r o c e s s 2 0 b e g i n 2 1 w a i t u n t i l s t a t e = s t ’ ( F R O n ) ; 2 2 s a y ( “ I n s t a t e F R O n " ) ; 2 3 l o o p 2 4 w a i t u n t i l d e m a n d = d e m a n d t y p e ’ ( e n o u g h ) ; 2 5 fl d e m a n d = d e m a n d t y p e ’ ( e n o u g h ) t h e n 2 6 s t a t e < = s t ’ ( F R O t f ) , n u l l a f t e r 1 I s ; 2 7 e x i t ; 2 8 e n d i f ; 2 9 e n d l o o p ; 3 0 e n d p r o c e s s ; 3 1 3 2 s - i n i t : p r o c e s s 3 3 b e g i n 3 4 w a i t u n t i l s t a t e - s t ’ ( f u r n r e 1 a y ) ; 3 5 s t a t e < = s t ’ ( F R O f f ) . n u l l a f t e r 1 i s ; 3 6 e n d p r o c e s s ; 3 7 3 8 s J C O n : p r o c e s s 3 9 b e g i n 4 0 w a i t u n t i l s t a t e = s t ’ ( A C O n ) ; 4 1 s a y ( " I n s t a t e A C O n " ) ; 4 2 l o o p 4 3 w a i t u n t i l d e m a n d = d e m a n d t y p e ’ ( e n o u g h ) ; 4 4 N d e m a n d = d e m a n d t y p e ’ ( e n o u g h ) t h e n 4 5 s t a t e < = s t ’ u C O f f ) , n u l l a f t e r 1 £ 3 ; 4 6 e x i t ; 4 7 e n d i f ; 4 8 e n d l o o p ; 4 9 e n d p r o c e s s ; 5 0 e n d a b s t r a c t ; F i g u r e 5 . 2 2 : T h e a r c h i t e c t u r e s e c t i o n f r o m t h e F u r n a c e R e l a y c o m p o n e n t o f t h e t o p s t a t e f r o m F i g u r e 5 . 2 0 T h e m a t c h i n g e n t i t y i s i n F i g u r e 5 . 2 1 9 5 O O O O O U Q Q O H H i t o f f a g a i n i n r e s p o n s e t o t h e r m o s t a t s i g n a l s . : I n s t a t e S 8 0 1 1 : I n s t a t e F S A u t o : I n s t a t e F R O f t : I n s t a t e A C O f f : I n s t a t e R A u t o : s e t t i n g m o d e t o H e a t : I n s t a t e S S H e a t : D e m a n d i n g h e a t : I n s t a t e F R O n 3 : s i g n a l l i n g E n o u g h 3 : I n s t a t e F 8 0 1 ! F i g u r e 5 . 2 3 : O u t p u t f r o m d r i v e r s c e n a r i o o n e . A s e x p e c t e d , t h e f u r n a c e t u r n e d o n i n r e s p o n s e t o a d e m a n d f o r h e a t a n d s u b s e q u e n t l y s h u t d o w n w i t h a c o m m a n d o f e n o u g h . I n t h e s e c o n d s c e n a r i o w e s t a r t w i t h a c o l d b u i l d i n g a n d t h e s y s t e m i n t h e o f f m o d e . T h e t h e r m o s t a t w i l l a l r e a d y h a v e d e m a n d e d h e a t b u t t h e s y s t e m w i l l n o t b e i n h e a t m o d e . W h e n w e s w i t c h t o h e a t m o d e , w e e x p e c t t h e f u r n a c e t o s t a r t s i n c e t h e r e i s a n o u t s t a n d i n g r e q u e s t f o r h e a t . F i g u r e 5 . 2 4 s h o w s t h e r e s u l t o f t h i s s i m u l a t i o n . C l e a r l y , t h e f u r n a c e d i d n o t s t a r t a s r e q u i r e d . T h e p r o b l e m l i e s i n t h e l o s s o f t h e e v e n t d e m a n d C h e a t ) a n d w e c a n s e e f r o m t h e d y n a m i c m o d e l t h a t t h e s a m e s i t u a t i o n e x i s t s w i t h r e g a r d t o c o o l i n g . O n e p o s s i b l e m o d i fi c a t i o n w o u l d b e t o a d d a n o t h e r s t a t e t o c o m p o s i t e s t a t e s F u r n a c e R e l a y a n d A C . R e l a y s o t h a t h e a t i n g a n d c o o l i n g d e m a n d s a l w a y s c a u s e a s t a t e t r a n s i t i o n . W e w o u l d d o t h i s b y a d d i n g a n o t h e r s t a t e t o t h e i n p u t t o t h e U M L t o V H D L s p e c i fi c a t i o n fi l e a n d r e p e a t i n g t h e s i m u l a t i o n . : I n s t a t e 8 8 0 1 ! : I n s t a t e F S A u t o : I n s t a t e F R O f f : I n s t a t e A C 0 1 1 : I n s t a t e R A u t o : D e m a n d i n g h e a t : s e t t i n g m o d e t o H e a t : I n s t a t e S S H e a t “ ( 9 0 3 0 0 0 0 0 F i g u r e 5 . 2 4 : E x e c u t i o n o u t p u t f o r s c e n a r i o t w o . T u r n i n g o n t h e h e a t a f t e r t h e t h e r m o s t a t d e m a n d s h e a t s h o u l d r e s u l t i n t h e f u r n a c e s t a r t i n g . T h i s s e q u e n c e s h o w s i t d o e s n o t . 9 6 S a f e t y i s a n i m p o r t a n t a n d o f t e n t e s t e d c o n d i t i o n i n a n e m b e d d e d s y s t e m . S a f e t y m e a n s t h a t n o t h i n g b a d e v e r h a p p e n s i n t h e s y s t e m . I n t h i s s y s t e m , w e m u s t e n s u r e t h a t t h e f u r n a c e a n d a i r c o n d i t i o n i n g u n i t a r e n o t s i m u l t a n e o u s l y r u n n i n g . I n s c e n a r i o t h r e e , t h e s y s t e m s t a r t s i n h e a t m o d e . A f t e r t h e t h e r m o s t a t h a s d e m a n d e d h e a t , t h e s c e n a r i o c a l l s f o r c h a n g i n g t h e s y s t e m m o d e t o c o o l i n g a n d a b r u p t l y l o w e r i n g t h e d e m a n d e d t e m p e r a t u r e . A s s u m i n g t h e s y s t e m w a s p r o d u c i n g h e a t , l e a v i n g t h e t e m p e r a t u r e a b o v e t h e d e s i r e d c o o l i n g t h r e s h o l d , t h e t h e r m o s t a t s h o u l d n o w d e m a n d c o o l i n g . F i g u r e 5 . 2 5 s h o w s t h e m o d e l r e s u l t s f r o m r u n n i n g t h i s s c e n a r i o . A t t i m e 8 t h e f u r n a c e s t a r t s , t h e n , w h i l e t h e f u r n a c e i s s t i l l o n , t h e A C c o m e s o n a t t i m e 1 8 . S e v e r a l c a u s e s f o r t h e i m p r o p e r s y s t e m r e s p o n s e i n t h i s s c e n a r i o a r e p o s s i b l e . F r o m t h e c l a s s d i a g r a m w e s e e t h a t T h e r m o s t a t h a s r e s p o n s i b i l i t y f o r d e m a n d i n g h e a t i n g a n d c o o l i n g . P e r h a p s t h e d e m a n d s e q u e n c e { “ h e a t ” , “ c o o l ” } w i t h o u t a n i n t e r v e n i n g “ e n o u g h ” i s i n v a l i d , o r t h e m o d e s e q u e n c e “ h e a t ” t o “ c o o l ” w i t h o u t a n i n t e r v e n i n g “ o f f ” i s i n v a l i d . I f t h e r e s p o n s i b i l i t y f o r s a f e t y l i e s w i t h C o n t r o l l e r , t h e n i t w o u l d h a v e t o b e m o d i fi e d t o h a n d l e b o t h i n p u t s e q u e n c e s . T h i s m o d i fi c a t i o n w o u l d t a k e t h e f o r m o f a s s u m i n g a n i n t e r m e d i a t e “ o f f ” s t a t e w h e n e v e r a s w i t c h f r o m “ h e a t ” t o “ c o o l ” , o r v i c e - v e r s a , o c c u r s . C y c l i n g t h r o u g h “ o f f ” w o u l d s h u t d o w n t h e s y s t e m i n o p e r a t i o n b e f o r e s t a r t i n g t h e a l t e r n a t e s y s t e m . I f , o n t h e o t h e r h a n d , t h e r e s p o n s i b i l i t y l i e s w i t h M o d e , t h e n p e r h a p s t h i s s i m u l a t i o n s e q u e n c e i s i t s e l f i n v a l i d , i n d i c a t i n g a n i n c o n s i s t e n c y b e t w e e n t h e s c e n a r i o a n d t h e b e h a v i o r o f M o d e . I n t h i s c a s e , a s c e n a r i o w h e r e t h e s w i t c h i s m o v e d f r o m “ h e a t ” t o “ c o o l ” w i t h o u t p a s s i n g t h r o u g h “ o f f ” m a y b e p h y s i c a l l y i m p o s s i b l e , t h e r e f o r e , t h e s c e n a r i o w o u l d h a v e t o b e m o d i fi e d t o i n c l u d e a n i n t e r m e d i a t e “ o f f ” s i g n a l . A n o t h e r a l t e r n a t i v e i s t h a t t h e u s e r r e a l l y d o e s i n t e n d a d i r e c t t r a n s i t i o n f r o m “ h e a t ” t o “ c o o l ” , p e r h a p s v i a s e p a r a t e p u s h b u t t o n s . I n t h i s c a s e , t h e s c e n a r i o i s c o r r e c t a n d M o d e s h o u l d g e n e r a t e a n “ o f f ” s i g n a l t o 9 7 a l l o w C o n t r o l l e r t o r e s e t f o r t h e n e w m o d e . : I n s t a t e 8 3 0 : ! : I n s t a t e F S A u t o : I n s t a t e F R O f f : I n s t a t e A C O f t : I n s t a t e R A u t o : s e t t i n g m o d e t o H e a t : I n s t a t e S S H e a t : D e m a n d i n g h e a t : I n s t a t e F R O n 1 3 : s e t t i n g m o d e t o C o o l 1 3 : I n s t a t e S S C o o l 1 8 : D e m a n d i n g c o o l 1 8 : I n s t a t e A C O n o o o o c o w o o o o o F i g u r e 5 . 2 5 : S c e n a r i o t h r e e . D r i v i n g t h e c o n t r o l l e r i n t o a f u r n a c e o n a n d A C o n c o n d i t i o n . 5 . 3 . 3 D i s c u s s i o n O u r t r a n s l a t i o n t o V H D L a n d s i m u l a t i o n h a s s h o w n s e v e r a l i m p o r t a n t p r o p e r t i e s o f e v e n t h i s s m a l l s y s t e m d u r i n g d e s i g n . I n t h e fi r s t s c e n a r i o , w e s h o w e d t h a t t h e s y s t e m d o e s w o r k a t a b a s i c l e v e l . I n t h e s e c o n d s c e n a r i o w e d e t e c t e d a p r o b l e m o f l o s i n g e v e n t s i n t h e d e s i g n o f t h e s t a t e m a c h i n e . T h e s t a t e m a c h i n e c o u l d h a v e b e e n q u i c k l y m o d i fi e d a t t h a t p o i n t a n d t h e s c e n a r i o r e r u n t o d e t e r m i n e i f t h e e v e n t l o s s p r o b l e m w e r e r e m e d i e d . I n t h e fi n a l s c e n a r i o , w e d e t e c t e d a m o r e s e r i o u s p r o b l e m t h a t c o u l d l i e w i t h t h e c l a s s d i a g r a m a n d t h e r e s p o n s i b i l i t i e s d i s t r i b u t e d b e t w e e n t h e c l a s s e s , o r i t m a y l i e w i t h C o n t r o l l e r i t s e l f . I f t h e m o d e s w i t c h i s d r i v e n b y a p h y s i c a l t h r e e - p o s i t i o n s w i t c h , t h e n t h e s p e c i fi c a t i o n f o r C o n t r o l P a n e l i s i n c o r r e c t s i n c e i t i s p r o b a b l y p h y s i c a l l y i m p o s s i b l e t o m o v e t h e s w i t c h f r o m o n e e x t r e m e t o a n o t h e r w i t h o u t p a s s i n g t h r o u g h a n i n t e r m e d i a t e “ o f f ” s e t t i n g . W h a t e v e r t h e f a i l u r e , t h i s s i m p l e s c e n a r i o c a l l s f o r a d e e p e r r e v i e w o f t h e d e s i g n . A l l o f t h e s e r e s u l t s w e r e o b t a i n e d w i t h o u t w r i t i n g c o d e d i r e c t l y f r o m t h e U M L c l a s s a n d d y n a m i c m o d e l d i a g r a m s . S i n c e n o c o d e w r i t i n g i s i n v o l v e d , r e fi n e m e n t o f t h e m o d e l i n v o l v e s a s t r a i g h t f o r w a r d m o d i fi c a t i o n o f t h e U M L a n d a r e - t r a n s l a t i o n t o V H D L . A l t h o u g h t h i s m o d e l i s s m a l l , w e c o u l d h a v e i n c l u d e d o t h e r o b j e c t s i n t h e V H D L s i m - 9 8 u l a t i o n t o t e s t i n t e r - o b j e c t i n t e r a c t i o n s . A n d , i f t h e r e h a d b e e n V H D L m o d e l s o f a c t u a l h a r d w a r e , t h e s e m o d e l s c o u l d h a v e b e e n i n t e g r a t e d i n t o t h e g e n e r a t e d V H D L m o d e l . 9 9 C h a p t e r 6 U M L t o P r o m e l a / S P I N M a p p i n g R u l e s I n t h i s c h a p t e r w e a p p l y t h e f r a m e w o r k d e s c r i b e d i n C h a p t e r 3 t o t h e c o n s t r u c t i o n o f a h o m o m o r p h i s m a n d r u l e s f o r m a p p i n g U M L t o P r o m e l a , t h e i n p u t l a n g u a g e f o r t h e m o d e l c h e c k e r S P I N . T h e P r o m e l a m e t a m o d e l a n d h o m o m o r p h i c f u n c t i o n i s d e s c r i b e d fi r s t , f o l l o w e d b y a d e s c r i p t i o n o f t h e m a p p i n g r u l e s . 6 . 1 U M L t o P r o m e l a D i a g r a m H o m o m o r p h i s m s T h e s t r a t e g y f o r w r i t i n g t h e P r o m e l a m e t a m o d e l a n d f o r m u l a t i n g t h e U M L t o P r o m e l a m a p p i n g r u l e s i s a s f o l l o w s : F i r s t , t h e P r o m e l a m e t a m o d e l i s c o n s t r u c t e d . A s d e s c r i b e d i n S e c t i o n 3 . 2 . 3 , w e b e g i n b y c o n s t r u c t i n g a m e t a m o d e l t h a t h a s a s t r u c t u r e a s c l o s e t o t h e U M L m e t a m o d e l a s p o s s i b l e . T h e U M L m e t a m o d e l i s s h o w n i n F i g u r e 6 . 1 a n d t h e P r o m e l a m e t a m o d e l i s s h o w n i n F i g u r e 6 . 2 . T h e p o r t i o n s o f t h e m e t a m o d e l s a t t r i b u t a b l e t o t h e c l a s s d i a g r a m i s e n c l o s e d i n d o t t e d l i n e s . T e m p l a t e s a r e c o n s t r u c t e d i n t h e P r o m e l a 1 0 0 m e t a m o d e l , w h e r e n e c e s s a r y . A s d e s c r i b e d e a r l i e r , a t e m p l a t e i s a p a r a m e t e r i z e d s e r i e s o f s t a t e m e n t s i n t h e t a r g e t l a n g u a g e t h a t r e p r e s e n t s a t a r g e t l a n g u a g e m e t a m o d e l c l a s s . N e x t , t h e h o m o m o r p h i s m f r o m t h e U M L m e t a m o d e l t o t h e P r o m e l a m e t a m o d e l i s c o n s t r u c t e d . F i n a l l y , w h e n t h e P r o m e l a m e t a m o d e l a n d h o m o m o r p h i s m a r e c o m p l e t e , t h e m a p p i n g r u l e s a r e w r i t t e n . T h r e e g o a l s d r i v e t h e c o n s t r u c t i o n o f t h e m a p p i n g r u l e s : 1 . M a p e v e r y U M L c l a s s a n d r e l a t i o n s h i p t o a c l a s s a n d r e l a t i o n s h i p i n t h e P r o m e l a m e t a m o d e l . 2 . W h e n a t e m p l a t e i s u s e d , i m p l e m e n t t h e d e s i r e d s e m a n t i c s i n t e r m s o f P r o m e l a . . A s a r u l e i s w r i t t e n , e n s u r e t h a t r e l a t i o n s h i p s i n t h e U M L m e t a m o d e l a r e p r e s e r v e d T ‘ G a i n t h e t a r g e t m e t a m o d e l . A s d e s c r i b e d i n C h a p t e r 3 , e a c h c l a s s a n d r e l a t i o n s h i p i n t h e U M L m e t a m o d e l m u s t h a v e a m a p p i n g t o a c o m p o n e n t i n t h e P r o m e l a m e t a m o d e l . F u r t h e r , t h e m a p p i n g m u s t b e c o n s i s t e n t w i t h t h e h o m o m o r p h i s m s o t h a t r e l a t i o n s h i p s b e t w e e n c l a s s e s a r e p r e s e r v e d . T h e l i s t o f n o r m a l r e l a t i o n s h i p s ( i . e . , n o t a g g r e g a t i o n s o r g e n e r a l i z a t i o n s ) g e n e r a t e d b y t h e f o r m a l i z a t i o n o f t h e U M L m e t a m o d e l i s s h o w n i n F i g u r e 6 . 3 . T h e o c c u r r e n c e s o f t h e h a s C o m p ( ) a n d h a s P a r t ( ) p r e d i c a t e s g e n e r a t e d b y t h e f o r m a l i z a t i o n o f t h e U M L m e t a m o d e l a r e s h o w n i n F i g u r e 6 . 4 . 6 . 1 . 1 H o m o m o r p h i c M a p p i n g F i g u r e 6 . 5 s h o w s t h e m a p p i n g o f U M L m e t a m o d e l c l a s s e s t o P r o m e l a m e t a m o d e l c l a s s e s . F i g u r e 6 . 6 s h o w s t h e m a p p i n g o f t h e r e l a t i o n s h i p s f r o m o n e m e t a m o d e l t o a n o t h e r . T o d e m o n s t r a t e c o m p l e t e n e s s , F i g u r e 6 . 5 a n d F i g u r e 6 . 6 s h o w t h a t e v e r y c l a s s a n d n o n - a g g r e g a t e r e l a t i o n s h i p i n t h e U M L m e t a m o d e l m a p s t o a c l a s s o r r e l a t i o n s h i p i n t h e 1 0 1 ' l ' l | l | I l I | I I l ' I l : 1 l E l i 1 ‘ 1 ' 1 s I ) ' l 0 , l i 1 C l a s s I ‘ R e l a t i o n s h i p s : : 1 t a r g e t a 0 . . u : 1 A l | I ' I l 0 . 3 : l . ' I l e . I n s t a n c e A g g r e g a t i o n G e n e r a l i z a t i o n A s s o c i a t i o n : : V a n a b l e . : I I _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' 1 . ' B e h a v r o r G u a r d l l 1 . . ' 0 . . 1 1 1 o u t g o i n g 3 s u b s t a t e . S t a r e V e r t e x 0 ~ 1 i n c o m i n g 1 T r a n s i t i o n p — — — — — " T 0 . . 1 1 l l 1 ‘ 0 9 0 . . 1 a r m y 0 . . 1 I f ) P s e u d o s t a t e S l a t e 0 . . 1 e x i t A c t i o n S e q u e n c e A 0 . . 1 p a r e n t 0 . . 1 C o m p o s i t e S t a t e S i m p l e S t a t e T C o n c u r r e n t C o m p o s i t e E v e n t t r i g g e r P i " T 0 . . 1 S t a r t J o i n S i g n a l E v e n t T i m e E v e n t C h a n g e E v e n t F i n a l H i s t o r y U M L 2 I n i t i a l F i g u r e 6 . 1 : T h e u n i fi e d c l a s s / d y n a m i c m e t a m o d e l f o r U M L . R e p e a t e d f r o m F i g u r e 5 . 1 1 0 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 I I 1 L I i 1 . r — t V l i 1 - w . g b l e C t 1 c t : 0 . . * R e l a t i o n s h i p s 5 1 A i o . . * I I I n s t a n c e I n c l u s i o n D u p l i c a t i o n C h a n n e l 5 V a r i a b l e . l B e h a v i o r I F 1 3 G u a r d 0 . . 1 l — - — D M D O — — — 1 1 ” m i “ : S r a r e r e r t e x I “ m m ‘ T r a n s i t i o n 0 ' i 1 w 0 . . 1 e fl 0 . . 1 T P s e u d o s t a t e S t a r e ‘ 0 . . 1 a n A c t i o n S e q u e n c e A 0 . . 1 A i t ? ” . _ A s s i o n } S t a t e m e n t P r o c t y p e S t a t e B l o c k f ' 7 P r i n t C o n c u r r e n t P r o c t y p e . 4 F u n c t i o n C a l l ' " i ‘ w a i t - j o i n 9 0 “ ) 1 0 i n E v e n t t r i g g e r 0 . . 1 ‘ g o t o h i s t o r y T e x i t g o t o [ l T r a n s f e r E v e n t - D i s p a t c h W H E N E v e n t I f i n t r a - o b j e c t ‘ A i n t e r - o b j e c t I ‘ ‘ L I ’ , ’ ’ r u n r I g o t o p r o c t y p e C h a n n e l R u n E v e n t 0 A s s i g n m e n t P R O M E A I F i g u r e 6 . 2 : T h e m e t a m o d e l f o r S P I N / P r o m e l a m e t a m o d e l s . 1 0 3 s o u r c e ( C l a s s , R e l a t i o n s h i p s ) t a r g e t ( C l a s s , R e l a t i o n s h i p s ) o u t g o i n g ( S t a t e V e r t e x , T r a n s i t i o n ) i n c o m i n g ( S t a t e V e r t e x , ’ I ‘ r a n s i t i o n ) e n t r y ( S t a t e , A c t i o n S e q u e n c e ) e x i t ( S t a t e , A c t i o n S e q u e n c e ) F i g u r e 6 . 3 : T h e l i s t o f n o n - a g g r e g a t e a n d n o n - g e n e r a l i z a t i o n r e l a t i o n s h i p p r e d i c a t e s f r o m t h e f o r m a l i z e d r e p r e s e n t a t i o n o f t h e U M L m e t a m o d e l . h a s C o m p ( M o d e l , C l a s s ) h a s C o m p ( M o d e l , R e l a t i o n s h i p s ) h a s C o m p ( C l a s s , I n s t a n c e V a r z ' a b l e ) h a s C o m p ( B e h a v i o r , T r a n s i t i o n ) h a s C o m p ( C o m p o s z ' t e S t a t e , S t a t e V e r t e x ) h a s P a r t ( T r a n s i t i o n , E v e n t ) F i g u r e 6 . 4 : T h e l i s t o f n o n - a g g r e g a t e a n d n o n - g e n e r a l i z a t i o n r e l a t i o n s h i p p r e d i c a t e s f r o m t h e f o r m a l i z e d r e p r e s e n t a t i o n o f t h e U M L m e t a m o d e l . P r o m e l a m e t a m o d e l . F i g u r e 6 . 6 s h o w s t h a t e a c h n o n - a g g r e g a t e r e l a t i o n s h i p i s p r e s e r v e d b y t h e m a p p i n g i n t h e P r o m e l a m e t a m o d e l , s a t i s f y i n g t h e r e q u i r e m e n t f o r a h o m o m o r p h i s m . F i g u r e 6 . 7 f u r t h e r s h o w s t h a t t h e h a s C o m p ( ) a n d h a s P a r t ( ) r e l a t i o n s h i p p r e d i c a t e s a r e p r e s e r v e d i n t h e P r o m e l a m e t a m o d e l , c o m p l e t i n g t h e d e m o n s t r a t i o n t h a t t h e m a p p i n g i s h o m o m o r p h i c . 6 . 2 U M L t o P r o m e l a M a p p i n g R u l e s T h i s s e c t i o n d e s c r i b e s t h e m a p p i n g r u l e s f r o m U M L t o P r o m e l a . T h e r u l e s a r e s t a t e d i n t e r m s o f t h e m e t a m o d e l t o m e t a m o d e l m a p p i n g . A s d e s c r i b e d e a r l i e r , t h e m a p p i n g i s c o n s t r a i n e d t o p r e s e r v e t h e h o m o m o r p h i c m a p p i n g d e s c r i b e d a b o v e . 1 0 4 i l l l i l l l l l i i i l i l i l i l l i i i t l U M L M e t a m o d e l C l a s s P r o m e l a M e t a m o d e l C l a s s M o d e l C l a s s R e l a t i o n s h i p s I n s t a n c e V a r i a b l e A g g r e g a t i o n G e n e r a l i z a t i o n A s s o c i a t i o n B e h a v i o r G u a r d - S t a t e V e r t e x T r a n s i t i o n P s e u d o s t a t e S t a t e A c t i o n S e q u e n c e C o m p o s i t e S t a t e C o n c u r r e n t C o m p o s i t e S i m p l e S t a t e S t a r t J o i n H i s t o r y F i n a l E v e n t S i g n a l E v e n t T i m e E v e n t C h a n g e E v e n M o d e l O b j e c t P r o c t y p e R e l a t i o n s h i p s I n s t a n c e V a r i a b l e I n c l u s i o n D u p l i c a t i o n C h a n n e l B e h a v i o r I F G u a r d S t a t e V e r t e x T r a n s i t i o n P s e u d o s t a t e S t a t e A c t i o n S e q u e n c e P r o c t y p e C o n c u r r e n t P r o c t y p e S t a t e B l o c k I n i t - g o t o W a i t - j o i n H i s t o r y - g o t o g o t o - e x i t E v e n t E v e n t - D i s p a t c h E v e n t - D i s p a t c h W H E N - E v e n t F i g u r e 6 . 5 : T h e d e fi n i t i o n o f t h e h o m o m o r p h i c m a p p i n g o f c l a s s e s f r o m t h e U M L m e t a - m o d e l t o t h e P r o m e l a m e t a m o d e l . U M L M e t a m o d e l P r e d i c a t e P r o m e l a M e t a m o d e l P r e d i c a t e s o u r c e ( C l a s s , R e l a t i o n s h i p s ) t a r g e t ( C l a s s , R e l a t i o n s h i p s ) o u t g o i n g ( S t a t e V e r t e x / l i a n s i t i o n ) i n c o m i n g ( S t a t e V e r t e x f I Y a n s i t i o n ) e n t r y ( S t a t e , A c t i o n S e q u e n c e ) e x i t ( S t a t e , A c t i o n S e q u e n c e ) j o i n ( C o n c u r e n t C o m p o s i t e , J o i n ) l i l l i l i s o u r c e ( C l a s s , R e 1 a t i o n s h i p s ) t a r g e t ( C l a s s , R e l a t i o n s h i p s ) o u t g o i n g ( S t a t e V e r t e x , ’ I i a n s i t i o n ) i n c o m i n g ( S t a t e V e r t e x , T r a n s i t i o n ) e n t r y ( S t a t e , A c t i o n S e q u e n c e ) e x i t ( S t a t e , A c t i o n S e q u e n c e ) j o i n ( C o n c u r r e n t P r o c t y p e , W a i t - j o i n ) F i g u r e 6 . 6 : T h e d e fi n i t i o n o f t h e h o m o m o r p h i c m a p p i n g o f r e l a t i o n s h i p p r e d i c a t e s f r o m t h e U M L m e t a m o d e l t o t h e P r o m e l a m e t a m o d e l . 1 0 5 ) M U M L A g g r e g a t e R e l a t i o n s h i p h a s C o m p ( M o d e l , C l a s s ) h a s C o m p ( M o d e l , R e l a t i o n s h i p s ) h a s C o m p ( C l a s s , I n s t a n c e V a r i a b l e ) h a s C o m p ( B e h a v i o r , T r a n s i t i o n ) h a s C o m p ( C o m p o s i t e S t a t e , S t a t e V e r t e x ) h a s P a r t ( T r a n s i t i o n , E v e n t i l l i P r o m e l a A g g r e g a t e R e l a t i o n s h i p h a s C o m p ( M o d e l , O b j e c t P r o c t y p e ) h a s C o m p ( M o d e l , R e l a t i o n s h i p s ) h a s C o m p ( C l a s s , I n s t a n c e V a r i a b l e ) h a s C o m p ( B e h a v i o ' r , T r a n s i t i o n ) h a s C o m p ( P r o c t y p e , S t a t e V e r t e x ) h a s P a r t ( T r a n s i t i o n , E v e n t ) F i g u r e 6 . 7 : T h e p r e s e r v e d h a s C o m p a n d h a s P a r t r e l a t i o n s h i p p r e d i c a t e s . 6 . 2 . 1 G l o b a l R e q u i r e m e n t s S e v e r a l fi x e d c o n s t r u c t s a r e r e q u i r e d f o r e v e r y m o d e l m a p p e d f r o m U M L t o P r o m e l a . T h e s e i n c l u d e t h e q u e u e s u s e d f o r i n t r a - o b j e c t e v e n t d i s p a t c h i n g a n d a P r o m e l a p r o c t y p e t o m a n a g e t h e s e q u e u e s . A n a d d i t i o n a l q u e u e , c a l l e d w a i t , i s u s e d t o d e t e r m i n e c h i l d p r o c e s s t e r m i n a t i o n a n d p a s s r e t u r n c o d e s u s e d i n t r a n s i t i o n s b a c k t o t h e p a r e n t p r o c e s s . T h e c o m p l e t e d i s c u s s i o n o f t h e p r o c t y p e e v e n t 0 , e v e n t d i s p a t c h i n g , a n d t h e t r a n s i t i o n p r o c e s s i s g i v e n i n S e c t i o n 6 . 2 . 3 . 1 0 6 R u l e P r o m e l a 1 E v e r y m o d e l m a p p e d f r o m U M L t o P r o m e l a c o n t a i n s t h e f o l l o w i n g c h a n n e l d e f i n i t i o n s a n d t h e d i s p a t c h i n g p r o c t y p e , c a l l e d e v e n t ( ) , t o h a n d l e i n t r a - o b j e c t t r a n s i t i o n s : c h a n e v q = [ 1 0 ] o f { m t y p e , i n t } ; C h a n e v t = [ 1 0 ] o f { m t y p e . i n t } i c h a n w a i t = [ 1 0 ] o f { i n t . m t y p e } ; / * T h e b o d y o f t h e m o d e l g o e s h e r e . T h i s s e c t i o n w i l l c o n t a i n p r o c t y p e s f o r o b j e c t s a n d c o m p o s i t e s t a t e s * / / * T h i s i s t h e u n i v e r s a l e v e n t d i s p a t c h e r r o u t i n e * / p r o c t y p e e v e n t ( m t y p e m s g ) { m t y p e t y p e ; i n t p i d ; a t o m i c { d o e v q ? ? [ e v a l ( m s g ) , p i d ] - > e v q ? ? e v a l ( m s g ) , p i d ; e v t ! m s g , p i d ; d o s o i f e v q ? ? [ t y p e , e v a l ( p i d ) ] - > e v q ? ? t y p e , e v a 1 ( p i d ) e l s e b r e a k ; f i o d e l s e - > b r e a k o d } e x i t : s k i p } R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e p r o v i d e s d e t a i l s t o c o m p l e t e t h e m a p p i n g f r o m M o d e l t o M o d e l E n d o f R u l e P r o m e l a 1 . 6 . 2 . 2 C l a s s D i a g r a m F o r m a l i z a t i o n s A s i n V H D L , s t a t i c s t r u c t u r e i s d e fi n e d p r i m a r i l y i n t h e c l a s s m o d e l . F i g u r e 6 . 8 s h o w s a s a m p l e c l a s s m o d e l i n t e n d e d t o p r o v i d e e x a m p l e s o f t h e c l a s s d i a g r a m f o r m a l i z a t i o n r u l e s . 1 0 7 A s d e s c r i b e d i n t h e p r e v i o u s c h a p t e r , t h e d i a g r a m c o n t a i n s f o u r c l a s s e s : A , B , C , a n d D . C l a s s A c o n t a i n s a n a g g r e g a t e o f C , a n d c l a s s A h a s a r e l a t i o n w i t h c l a s s B . C l a s s D i s a s p e c i a l i z a t i o n o f c l a s s B . R 1 A s v a r a : i n t e g e r A g t : b o o l e a n 9 2 : b o o l e a n C D F i g u r e 6 . 8 : S a m p l e c l a s s m o d e l . C l a s s e s m a p t o p r o c t y p e P r o m e l a d e fi n i t i o n s . S i m p l e s t a t e s , i f a n y , a r e r e p r e s e n t e d b y s e q u e n c e s o f s t a t e m e n t s w i t h i n t h e p r o c t y p e r e p r e s e n t i n g t h e c l a s s . R u l e P r o m e l a 2 E a c h c l a s s i s f o r m a l i z e d i n P r o m e l a a s a p r o c t y p e d e f i n i t i o n . T h e b o d y o f t h e p r o c t y p e i s e n c l o s e d i n a n a t o m i c s t a t e m e n t . T h e p r o c t y p e a c c e p t s n o p a r a m e t e r s . T h e f o l - l o w i n g t e m p l a t e s h o w s t h e c l a s s c o n t a i n e r : p r o c t y p e C L A S S ( ) { a t o m i c { m t y p e m ; / * S t a t e m e n t s f o r t h e t o p l e v e l o f t h e o b j e c t g o h e r e * / e x i t : s k i p } R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e f o l l o w s f r o m t h e M o d e l t o O b j e c t P r o c t y p e m a p p i n g . T h e a g g r e g a t i o n i n M o d e l i s p r e s e r v e d b e c a u s e e a c h c l a s s i s c o n t a i n e d w i t h i n t h e P r o m e l a m o d e l f i l e . E n d o f R u l e P r o m e l a 2 . F i g u r e 6 . 9 s h o w s t h e P r o m e l a s p e c i fi c a t i o n s p r o d u c e d f o r c l a s s A i n F i g u r e 6 . 8 b y R u l e s 1 0 8 P r o m e l a 1 a n d P r o m e l a 2 . T h e q u e u e s p r o d u c e d b y R u l e P r o m e l a 1 a r e s h o w n o n l i n e s 1 — 3 a n d t h e i n t r a - o b j e c t d i s p a t c h i n g p r o c t y p e a l s o g e n e r a t e d b y R u l e P r o m e l a 1 i s s h o w n o n l i n e s 2 4 — 4 4 o f F i g u r e 6 . 9 . T h e c l a s s c o n t a i n e r g e n e r a t e d b y R u l e P r o m e l a 2 i s s h o w n o n l i n e s 1 7 — 2 2 o f F i g u r e 6 . 9 . C l a s s s p e c i a l i z a t i o n c o n c e p t u a l l y a l l o w s t h e d e s i g n e r t o d u p l i c a t e t h e p a r e n t c l a s s a n d m o d i f y i t t o b e c o m e a s u b c l a s s . S u c h d u p l i c a t i o n i m p l i e s t h a t t h e b e h a v i o r , a l o n g w i t h r e l a t i o n s h i p s a n d i n s t a n c e v a r i a b l e s , a r e a l s o r e p r o d u c e d . I n t h e o r y , a s u b c l a s s o b j e c t s h o u l d b e a b l e t o s i m u l a t e a p a r e n t c l a s s o b j e c t , b u t t h e m e a n i n g o f s p e c i a l i z a t i o n w h e n t h e d u p l i c a t e d p a r e n t c l a s s b e h a v i o r i s r a d i c a l l y m o d i fi e d , o r e v e n r e p l a c e d , i s n o t c l e a r . F o r t u n a t e l y , h i g h l e v e l s o f s p e c i a l i z a t i o n a r e n o t a c h a r a c t e r i s t i c o f e m b e d d e d s y s t e m s . T h e r e f o r e , g e n e r a l i z a t i o n i s f o r m a l i z e d a s d u p l i c a t i o n o f a l l t h e m a p p e d c o m p o n e n t s o f a c l a s s f o l l o w e d b y m o d i fi c a t i o n s a s r e q u i r e d t o c r e a t e t h e s u b c l a s s d e fi n i t i o n . T h e d u p l i c a t i o n i n c l u d e s t h e p r o c t y p e d e fi n i t i o n f o r t h e c l a s s a n d a l l a s s o c i a t e d p r o c t y p e s a n d v a r i a b l e d e c l a r a t i o n s b e l o n g i n g t o t h e c l a s s ( o t h e r p r o c t y p e s a r e g e n e r a t e d b y r u l e s t h a t f o l l o w ) . R u l e P r o m e l a 3 C l a s s s p e c i a l i z a t i o n i s f o r m a l i z e d a s d u p l i c a t i o n o f t h e p a r e n t c l a s s c o m p o n e n t s , f o l l o w e d b y m o d i f i c a t i o n , a s r e q u i r e d . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e f o l l o w s d i r e c t l y f r o m t h e d e p i c t i o n o f t h e m e t a m o d e l s . T h e t y p e r e l a t i o n s h i p w i t h R e l a t i o n s h i p s i s p r e s e r v e d . E n d o f R u l e P r o m e l a 3 . A g g r e g a t i o n m e a n s t w o ( o r m o r e ) c l a s s e s h a v e a r e l a t i o n s h i p i n w h i c h t h e a g g r e g a t e c l a s s t r a c k s t h e p a r t s , b u t t h e c o m m u n i c a t i o n i n a n a g g r e g a t e r e l a t i o n s h i p i s n o d i f f e r e n t t h a t n o r m a l i n t e r - o b j e c t m e s s a g i n g . 1 0 9 t — t o t w h l ' o m fl m D ( H o H u H m H H w H p H m H m s fl - i o s o - o i c o r o o p r w o w t o p t m o m t i o s t o m i o o c t o o i w w w w w w p w w m w m w fl w m w w w w o p p b n p a p p m c h a n e v q = [ 1 0 ] o f { m t y p e , i n t } ; c h a n e v t = [ 1 0 ] o f { m t y p e . i n t } ; C h a n w a i t = [ 1 0 ] o f { i n t , m t y p e } ; m t y p e = { R 1 } ; t y p e d e f A J T { b o o l g 1 ; b o o l g 2 ; i n t v a r a ; } A J T . A J H C h a n A b q = [ 5 ] o f { m t y p e } ; C h a n A _ p 1 = [ 5 ] o f i n t ; m t y p e = { f r e e } ; / * U s e r s p e c i f i e d d r i v e r f i l e * / p r o c t y p e A ( ) { a t o m i c { m t y p e m ; i n t d u m m y ; e x i t : s k i p } } / * T h i s i s t h e u n i v e r s a l e v e n t d i s p a t c h e r r o u t i n e * / p r o c t y p e e v e n t ( m t y p e m s g ) { m t y p e t y p e ; i n t p i d ; a t o m i c { d o e v q ? ? [ e v a l ( m s g ) , p i d ] - > e v q ? ? e v a l ( m s g ) , p i d ; e v t ! m s g , p i d ; d o ° i f e v q ? ? [ t y p e , e v a l ( p i d ) ] - > e v q ? ? t y p e , e v a l ( p i d ) e l s e b r e a k ; f i o d e l s e - > b r e a k o d } e x i t : s k i p } F i g u r e 6 . 9 : P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d f o r c l a s s A i n F i g u r e 6 . 8 . 1 1 0 R u l e P r o m e l a 4 A g g r e g a t i o n i s f o r m a l i z e d a s a n i n s t a n t i a t i o n o f t h e “ p a r t " c l a s s a s m a n y t i m e s a r e r e - q u i r e d o r s p e c i f i e d . T h e a g g r e g a t e o b j e c t a n d p a r t o b j e c t s c o m m u n i c a t e w i t h m e s s a g e s . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e f o l l o w s d i r e c t l y f r o m t h e d e p i c t i o n o f t h e m e t a m o d e l s . T h e t y p e r e l a t i o n s h i p w i t h R e l a t i o n s h i p s i s p r e s e r v e d . E n d o f R u l e P r o m e l a 4 . I n s t a n c e v a r i a b l e s a r e d e c l a r e d a t t h e t o p o f t h e P r o m e l a m o d e l u s i n g t y p e d e f s t r u c t u r e d e fi n i t i o n s . S i n c e i n s t a n c e v a r i a b l e s m u s t b e a c c e s s i b l e t o a l l t r a n s i t i o n s w i t h i n a n o b j e c t , t h e m a p p i n g g e n e r a t e s g l o b a l P r o m e l a v a r i a b l e s . R u l e P r o m e l a 5 I n s t a n c e v a r i a b l e s a r e f o r m a l i z e d a s m e m b e r s o f a t y p e d e f s t r u c t u r e s t a t e m e n t n a m e d u n i q u e l y f o r t h e c l a s s a c c o r d i n g t h e t h e f o l l o w i n g t e m p l a t e : t y p e d e f C L A S S J I ' { < t y p e > v a r _ 1 ; < t y p e > v a r _ n ; } C L A S S _ T C L A S S _ V ; w h e r e C L A S S i s t h e n a m e o f t h e c l a s s . T h e m a p p e d i n s t a n c e v a r i a b l e d e c l a r a t i o n s a r e p l a c e d a t t h e b e g i n n i n g o f t h e P r o m e l a s p e c i f i c a t i o n s b e f o r e a n y p r o c t y p e s . R e l a t i o n s h i p t o H o m o m o r p h i s m T h e t e m p l a t e l i s t e d a b o v e f o r m s t h e I n s t a n c e V a r i a b l e c l a s s i n t h e P r o m e l a m e t a m o d e l . T h e a g g r e g a t i o n i s p r e s e r v e d b y n a m i n g c o n v e n t i o n s a n d t h e g e n e r a t i o n o f P r o m e l a s t a t e m e n t s f o r t h e c l a s s , w h i c h r e f e r e n c e t h e t y p d e f a n d C L A S S _ V d e c l a r a t i o n d e s c r i b e d a b o v e . E n d o f R u l e P r o m e l a 5 . L i n e s 5 — 1 0 i n F i g u r e 6 . 9 s h o w t h e d e c l a r a t i o n o f c l a s s A ’ s i n s t a n c e v a r i a b l e s g e n e r a t e d b y R u l e P r o m e l a 5 . O b j e c t s c o m m u n i c a t e w i t h e a c h o t h e r u s i n g m e s s a g e s . T h r e e m a j o r s e m a n t i c p o s s i b i l - 1 1 1 i t i e s e x i s t f o r m e s s a g e a r r i v a l : q u e u e t h e m e s s a g e f o r l a t e r u s e , d r o p t h e m e s s a g e i f t h e o b j e c t i s n o t r e a d y t o u s e i t , o r t h e s e n d e r w a i t s u n t i l t h e r e c e i v e r c a n a c c e p t t h e m e s s a g e . Q u e u e d s e m a n t i c s a r e e a s i e r f o r t h e d e s i g n e r b e c a u s e o b j e c t s c a n r u n a s y n c h r o n o u s l y w i t h l e s s r e g a r d t o t h e o p e r a t i o n o f o t h e r o b j e c t s , b u t q u e u e i n g r e q u i r e s e x t r a m e c h a n i s m s t h a t m a y b e e x p e n s i v e t o i m p l e m e n t i n a n e m b e d d e d s y s t e m . N o n - q u e u e d , s e m a n t i c s i s s i m p l e r t o i m p l e m e n t , b u t p l a c e s a h i g h b u r d e n o n t h e d e s i g n e r . E a c h m e s s a g e e x c h a n g e m u s t b e c a r e f u l l y c h o r e o g r a p h e d t o e n s u r e t h a t t h e o b j e c t s r e n d e z v o u s a t t h e p r o p e r t i m e t o a v o i d m e s s a g e l o s s , o r f o r w a i t i n g s e m a n t i c s , d e a d l o c k l . W h e n m a n y o b j e c t s a r e p r e s e n t a n d w a i t i n g s e m a n t i c s a r e u s e d , d e a d l o c k a v o i d a n c e i s v e r y d i f fi c u l t . A s s o c i a t i o n s i n t h e c l a s s m o d e l r e p r e s e n t c o m m u n i c a t i o n b e t w e e n r e l a t e d c l a s s e s . I n t e r - o b j e c t c o m m u n i c a t i o n i s f o r m a l i z e d i n P r o m e l a w i t h c h a n n e l s . U n l i k e V H D L , w e h a v e a w i d e c h o i c e o f s e m a n t i c s f o r t h e i n t e r - o b j e c t m e s s a g i n g , a s d e s c r i b e d a b o v e . O n e o p t i o n i s t o u s e t h e s a m e s e m a n t i c s a s s u g g e s t e d f o r s t a t e t o s t a t e m e s s a g i n g , w h i c h d o e s n o t q u e u e m e s s a g e s a t t h e o b j e c t . I f a n o b j e c t i s n o t r e a d y t o r e c e i v e a m e s s a g e , t h e n t h e m e s s a g e i s l o s t . T h e m e c h a n i s m t o i m p l e m e n t n o n - q u e u i n g s e m a n t i c s i s t h e s a m e a s i n t r a — s t a t e m e s s a g i n g , a n d i s d i s c u s s e d i n S e c t i o n 6 . 2 . 3 . A n o t h e r a l t e r n a t i v e i s t o q u e u e m e s s a g e s a t e a c h o b j e c t . T h e r e a r e s e v e r a l p o s s i b i l i t i e s f o r r e t r i e v i n g m e s s a g e s f r o m q u e u e s . O n e i s t o f o r m a l i z e i n t e r - o b j e c t m e s s a g i n g a s a F I F O q u e u e . I f t h e r e c e i v i n g o b j e c t i s n o t r e a d y t o a c c e p t a m e s s a g e , t h e n t h e m e s s a g e i s q u e u e d u n t i l a t r a n s i t i o n i s r e a d y t o c o n s u m e i t f r o m t h e h e a d o f t h e q u e u e . T o o b t a i n F I F O q u e u e d s e m a n t i c s , a P r o m e l a c h a n n e l w i t h s i m p l e “ s e n d s ” a n d “ r e c e i v e s ” ( t h e “ l ” a n d “ ? ” c h a n n e l o p e r a t o r s ) i s u s e d . I t i s a l s o p o s s i b l e t o a l l o w r e t r i e v a l o f a n y m e s s a g e i n t h e q u e u e , r e g a r d l e s s o f i t s a r r i v a l o r d e r . T o o b t a i n a n y - o r d e r q u e u e d s e m a n t i c s , t h e P r o m e l a r e c e i v e l D e a d l o c k o c c u r s , f o r e x a m p l e , a n d A i s w a i t i n g f o r B , B i s w a i t i n g f o r C a n d C i s w a i t i n g f o r A . 1 1 2 O p e r a t o r i s r e p l a c e d w i t h t h e p o l l o p e r a t o r ( t h e p o l l o p e r a t o r i s “ ? ? ” ) . A n y - o r d e r q u e u e s e m a n t i c s a l l o w s m e s s a g e a r r i v a l o r d e r t o b e l a r g e l y i g n o r e d d u r i n g m o d e l c o m p o s i t i o n , b u t i t a l s o a l l o w s r a c e c o n d i t i o n s i n t h e a b s e n c e o f f a i r p r o c e s s s c h e d u l i n g . T h i s m a y o c c u r w h e n s e v e r a l m e s s a g e s i n t h e q u e u e c a n e n a b l e a t r a n s i t i o n a t a g i v e n s t a t e . I f t h e r e i s a c o n t i n u a l r e c e p t i o n o f a n e w m e s s a g e f o r a g i v e n t r a n s i t i o n , t h e n n o t h i n g g u a r a n t e e s t h e o t h e r m e s s a g e w i l l e v e r b e c h o s e n . W e i m p l e m e n t F I F O q u e u e d s e m a n t i c s f o r i n t e r - o b j e c t m e s s a g e p a s s i n g i n t h i s m a p p i n g . R u l e P r o m e l a 6 F o r m a l i z e i n t e r - o b j e c t r e l a t i o n s h i p s a s a s e t o f P r o m e l a c h a n n e l s . F o r c l a s s C L A S S , s i g n a l t y p e s 8 1 6 4 t h r o u g h S I G _ n , w h e r e e a c h s i g n a l t y p e h a s a n u m b e r o f v a r i a b l e s , u s e t h e t e m p l a t e b e l o w . I n t h e t e m p l a t e , a s s u m e S I G - 1 h a s m v a r i a b l e s , S I G . 2 h a s n v a r i a b l e s , a n d 8 1 6 . ] : h a s 0 v a r i a b l e s . < t y p e > r e p r e s e n t s t h e t y p e o f t h e v a r i a b l e p a s s e d i n t h e m e s s a g e . c h a n C L A S S . q = [ 5 ] o f { m t y p e } c h a n S I G - 1 . p 1 = [ 5 ] o f < t y p e > ; c h a n S I G - 1 _ p m = [ 5 ] o f < t y p e > ; c h a n S I G _ 2 _ p 1 = [ 5 ] o f < t y p e > ; c h a n S I G _ 2 . p n = [ 5 ] o f < t y p e > ; c h a n S I G _ k . p 1 = [ 5 ] o f < t y p e > ; c h a n S I G _ k _ p o = [ 5 ] o f < t y p e > ; T h e r e s u l t o f t h i s t e m p l a t e i s p l a c e d a t t h e b e g i n n i n g o f t h e P r o m e l a s p e c i f i c a t i o n s . R e l a t i o n s h i p t o H o m o m o r p h i s m T h e a b o v e t e m p l a t e f o r m s t h e R e l a t i o n s h i p s c l a s s i n t h e P r o m e l a m e t a m o d e l . E n d o f R u l e P r o m e l a 6 . I n F i g u r e 6 . 8 , i f w e a s s u m e r e l a t i o n s h i p R 1 h a s o n e i n t e g e r p a r a m e t e r , t h e n R u l e 1 1 3 P r o m e l a 6 g e n e r a t e s l i n e s 1 1 a n d 1 2 i n F i g u r e 6 . 9 . 6 . 2 . 3 D y n a m i c M o d e l F o r m a l i z a t i o n s T h i s s e c t i o n d e s c r i b e s t h e f o r m a l i z a t i o n o f t h e p o r t i o n o f t h e u n i fi e d U M L m e t a m o d e l c o r r e s p o n d i n g t o t h e d y n a m i c m o d e l . F i g u r e 6 . 1 0 s h o w s a s a m p l e d y n a m i c m o d e l i n t e n d e d t o i l l u s t r a t e t h e r u l e s i n t h i s s e c t i o n . T h e m o d e l r e p r e s e n t s n o p a r t i c u l a r s y s t e m . ‘ T 5 l l . j : 1 — T 3 [ G l ] D 2 W A R M 1 ' 2 T 4 r _ _ T ‘ J . / F i g u r e 6 . 1 0 : A s a m p l e d y n a m i c m o d e l f o r c l a s s A f r o m F i g u r e 6 . 8 S i m p l e S t a t e s F i g u r e 6 . 1 1 s h o w s t h e P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d f o r t h e t o p l e v e l o f o b j e c t A i n F i g u r e 6 . 1 0 . V a r i o u s p a r t s o f t h e s p e c i fi c a t i o n i n F i g u r e 6 . 1 1 a r e d e s c r i b e d a s t h e r u l e s a r e 1 1 4 p r e s e n t e d . A U M L s i m p l e s t a t e i s r e p r e s e n t e d i n P r o m e l a a s a b l o c k o f P r o m e l a s t a t e m e n t s w h o s e fi r s t s t a t e m e n t i s l a b e l e d w i t h t h e s t a t e n a m e . T r a n s f e r t o t h e s t a t e i s t h r o u g h a g o t o s t a t e m e n t . T h e c o n t e n t s o f t h e s t a t e b l o c k v a r y a c c o r d i n g t h e t h e t y p e s o f e v e n t s u s e d o n t r a n s i t i o n s , t h e m e s s a g e s s e n t , a n d t h e a c t i o n s l i s t e d f o r t h e t r a n s i t i o n s . E a c h o f t h e s e i s d e s c r i b e d i n d e t a i l i n r u l e s b e l o w . 1 1 5 1 c h a n e v q = [ 1 0 ] o f { m t y p e , i n t } ; 2 c h a n e v t 8 [ 1 0 ] o f { m t y p e , i n t } ; 3 c h a n v e i t = [ 1 0 ] o f { i n t , m t y p e } ; 4 m t y p e = { n o n e , t 1 , t 2 , s t - j o i n 1 . s t _ a , t 3 , s t _ b , t 4 , s t - c , t 5 , t 6 , s t - d 1 , 5 s t - e , t 7 , s t . d 2 } ; 6 m t y p e H - c p 1 - s t - a ; 7 t y p e d e f A _ T { 8 b o o l g l ; 9 b o o l g 2 ; 1 0 i n t v a r a ; 1 1 1 2 A - T A - V ; 1 3 c h a n A _ q = [ 5 ] o f { m t y p e } ; 1 4 c h a n t 1 . p 1 = [ 5 ] o f { i n t } ; 1 5 c h a n t = [ 1 ] o f { m t y p e } ; 1 6 m t y p e = { t r e e } ; 1 7 1 8 I t U s e r s p e c i f i e d d r i v e r f i l e * / 1 9 2 O p r o c t y p e A ( ) 2 1 { a t o m i c { 2 2 m t y p e c p 1 - c o d e , c p 2 _ c o d e ; 2 3 i n t c p 1 - p i d , c p 2 . p i d ; 2 4 m t y p e m ; 2 5 i n t d u m m y ; 2 6 I t I n i t s t a t e t / 2 7 g o t o t o _ c p 1 ; 2 8 / * S t a t e 1 t / 2 9 1 s k i p ; 3 0 p r i n t f ( " i n s t a t e A . f " ) ; 3 1 i n . f : 3 2 i f 3 3 A _ q ? t 7 - > i f 3 4 : : A . V . g l - > A . V . v a r a = 1 ; B _ q ! o n ; g o t o t o - c p 1 3 5 : : e l s e - > g o t o i n - f 3 6 f i 3 7 f i ; 3 8 t o _ c p 1 : 3 9 t o - c p 2 : 4 O a t o m i c { 4 1 c p 1 . p i d 8 r u n c p 1 ( n o n e ) ; 4 2 c p 2 . p i d I r u n c p 2 ( n o n e ) ; 4 3 4 4 w a i t ? ? e v a 1 ( c p 1 - p i d ) , c p 1 - c o d e ; 4 5 w a i t ? ? e v a l ( c p 2 _ p i d ) , c p 2 _ c o d e ; 4 6 i t 4 7 : : c p 1 - c o d e I I s t - j o i n 1 i t c p 2 _ c o d e = = s t - j o i n 1 - > g o t o t ; 4 8 f i ; 4 9 e x i t : s k i p 5 0 } } F i g u r e 6 . 1 1 : T h e P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d f o r O b j e c t A i n F i g u r e 6 . 1 0 ( t h e t o p l e v e l o f t h e m o d e l ) . 1 1 6 R u l e P r o m e l a 7 S i m p l e s t a t e s a r e f o r m a l i z e d a s a S t a t e B l o c k , w h i c h i s c o n s t r u c t e d f r o m t h e f o l l o w i n g t e m p l a t e : s t a t e - n a m e : p r i n t f ( ” i n s t a t e o b j e c t - n a m e . s t a t e - n a m e " ) ; c h o m p o s i t e - s t a t e - n a m e = s t . s t a t e n a m e ; e v t ! ( e v e n t - n a m e 1 > , . p i d ; e v t ! < e v e n t - n a m e 2 > , . p i d ; e v t ! < e v e n t - n a m e n > , . p i d ; i f < t r a n s i t i o n e v e n t e x p r e s s i o n 1 > - > < g u a r d l i s t 1 ) ( a c t i o n l i s t 1 ) < s e n d l i s t 1 ) g o t o n e x t s t a t e < t r a n s i t i o n e v e n t e x p r e s s i o n 2 ) - > < g u a r d l i s t 2 > ( a c t i o n l i s t 2 > < s e n d l i s t 2 > g o t o n e x t s t a t e < t r a n s i t i o n e v e n t e x p r e s s i o n n > - > < g u a r d l i s t 1 1 > ( a c t i o n l i s t n > < s e n d l i s t n > g o t o n e x t s t a t e f i ; I n t h i s t e m p l a t e , s t a t e - n a m e i s t h e n a m e o f t h e s t a t e , o b j a c t - n a m e i s t h e n a m e o f t h e e n c l o s i n g o b j e c t , a n d c o m p o s i t e - s t a t e - n a m e i s t h e n a m e o f t h e e n c l o s i n g c o m p o s i t e s t a t e ( o r o b j e c t i f t h i s i s t h e h i g h e s t l e v e l ) . T h e m e t a t e r m s a r e d e f i n e d a s : < t r a n s i t i o n e v e n t e x p r e s s i o n i > a r e c h a n n e l r e c e i v e e x p r e s s i o n s f o r ( e v e n t - n a m e i ) a s d e s c r i b e d i n R u l e s P r o m e l a 1 0 a n d P r o m e l a 1 1 , < g u a r d l i s t i > i s t h e c o n s t r u c t i o n f o r t r a n s i t i o n g u a r d s a s d e s c r i b e d i n R u l e P r o m e l a 1 6 , < a c t i o n l i s t i > i s a l i s t o f s t a t e m e n t s f o r t h e a c t i o n o n t h e t r a n s i t i o n , a n d < s e n d l i s t i > i s a l i s t o f c h a n n e l s e n d o p e r a t i o n s f o r m e s s a g e s s e n t b y t h e t r a n s i t i o n . T h e s e c o n d l i n e o f t h e t e m p l a t e i s p r e s e n t o n l y i f a h i s t o r y s t a t e i s p r e s e n t i n t h e e n c l o s i n g c o m p o s i t e s t a t e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e p r o v i d e s t h e S t a t e B l o c k c l a s s i n t h e P r o m e l a m e t a m o d e l . T h e t e m p l a t e a b o v e d e - s c r i b e s e v e n t d i s p a t c h i n g a n d a c t i o n s e q u e n c e s t h a t p r e s e r v e t h e o u t g o i n g , i n c o m i n g , e n t r y , a n d e x i t r e l a t i o n s h i p s . S t a t e B l o c k i s a S t a t e s i n c e i t h a n d l e s e v e n t s a n d m a i n t a i n s t h e s t a t e o f t h e o b j e c t . E n d o f R u l e P r o m e l a 7 . L i n e s 2 8 t h r o u g h 4 9 o f F i g u r e 6 . 1 1 c o n t a i n s t a t e f a s g e n e r a t e d b y R u l e P r o m e l a 7 a n d t h e r u l e s t h a t f o l l o w . 1 1 7 C o m p o s i t e S t a t e s C o m p o s i t e s t a t e s a r e r e p r e s e n t e d a s p r o c t y p e d e fi n i t i o n s . T h e p r o c e d u r e s a r e s t a r t e d ( i n s t a n t i a t e d ) w h e n a t r a n s i t i o n i s m a d e t o t h e c o m p o s i t e s t a t e o r o n e o f i t s m e m b e r s . E a c h p r o c t y p e r e p r e s e n t i n g a c o m p o s i t e s t a t e t a k e s a p a r a m e t e r o f t y p e m t y p e r e p r e s e n t i n g t h e n a m e o f s t a t e w i t h i n t h e c o m p o s i t e s t a t e t o b e a c t i v a t e d i n t h e c a s e w h e r e a c r o s s b o u n d a r y t r a n s i t i o n i s s p e c i fi e d . T h e t r a n s i t i o n f r o m s t a t e 6 t o d 2 i n F i g u r e 6 . 1 0 i s a n e x a m p l e . W h e n t h e t r a n s i t i o n i s t o t h e b o u n d a r y o f t h e c o m p o s i t e s t a t e , t h e n t h e v a l u e o f t h e p a r a m e t e r i s s e t t o n o n e . A f t e r t h e p a r e n t i n s t a n t i a t e s t h e c h i l d c o m p o s i t e s t a t e p r o c t y p e , t h e p a r e n t m u s t w a i t u n t i l t h e c h i l d e n d s . T h i s i s a c c o m p l i s h e d u s i n g t h e w a i t q u e u e g e n e r a t e d b y R u l e P r o m e l a 1 . A f t e r s t a r t i n g t h e c o m p o s i t e s t a t e , t h e p a r e n t c o m p o s i t e s t a t e ( o r o b j e c t ) i s s u e s a “ r e c e i v e ” o n c h a n n e l w a i t s p e c i f y i n g t h e c h i l d ’ s p r o c e s s i d e n t i fi c a t i o n n u m b e r ( P I D ) . J u s t b e f o r e t h e c h i l d p r o c t y p e e n d s , i t s e n d s i t ’ s P I D t o c h a n n e l w a i t t o n o t i f y t h e p a r e n t t o r e s u m e e x e c u t i o n . S i n c e S P I N u s e s a f u l l y i n t e r l e a v e d s t a t e m e n t e x e c u t i o n m o d e l , i t i s p o s s i b l e t o m a p U M L t r a n s i t i o n s t o s e m a n t i c s t h a t a l l o w c o n c u r r e n c y d u r i n g t r a n s i t i o n s , b u t U M L s e m a n t i c s g e n e r a l l y a s s u m e t r a n s i t i o n s c o m p l e t e b e f o r e a n o t h e r a c t i o n i s t a k e n i n t h e m o d e l [ 7 ] . T h i s i s c a l l e d r u n t o c o m p l e t i o n s e m a n t i c s . R u n t o c o m p l e t i o n s e m a n t i c s g r e a t l y e a s e m o d e l d e s i g n a n d m a k e s e n s e f o r m o s t e m b e d d e d s y s t e m d e s i g n s . O u r m a p p i n g f o r t r a n s i t i o n s a s s u m e s r u n t o c o m p l e t i o n s e m a n t i c s . T h i s i s a c c o m p l i s h e d b y p l a c i n g e a c h p r o c t y p e w i t h i n t h e s c o p e o f a n a t o m i c s t a t e m e n t . T h e a t o m i c s t a t e m e n t t e l l s t h e a n a l y z e r t o e x e c u t e a l l t h e s t a t e m e n t s w i t h i n t h e a t o m i c b l o c k a s a s i n g l e s t a t e m e n t . W h e n a s t a t e m e n t w i t h i n t h e s c o p e o f a t o m i c b l o c k s ( s u c h a s a c h a n n e l r e c e i v e o p e r a t i o n ) , P r o m e l a s e m a n t i c s a l l o w r e a d y s t a t e m e n t s e l s e w h e r e t o b e e x e c u t e d . I f t h e r e a r e m u l t i p l e 1 1 8 c h o i c e s f o r t r a n s f e r o f c o n t r o l , a c h o i c e i s m a d e n o n - d e t e r m i n i s t i c a l l y . E f f e c t i v e l y , o u r c o n - s t r u c t i o n c a u s e s e a c h p r o c e d u r e t o r u n u n t i l i t b l o c k s , t h e n c o n t r o l i s t r a n s f e r r e d t o a n o t h e r p r o c e d u r e u n t i l t h a t o n e b l o c k s , e t c . . S i n c e t h e r e a r e n o b l o c k i n g s t a t e m e n t s a l l o w e d a f t e r a t r a n s i t i o n e v e n t , r u n t o c o m p l e t i o n s e m a n t i c s a r e p r o d u c e d . R u l e P r o m e l a 8 A c o m p o s i t e s t a t e n a m e d c o m p o s i t e - s t a t e - n a m e i s f o r m a l i z e d a s a p r o c t y p e w i t h a f o r m a l p a r a m e t e r o f t y p e m t y p e . A p r o c t y p e r e p r e s e n t i n g a c o m p o s i t e s t a t e i s a c t i v a t e d i n t h e p a r e n t c o m p o s i t e s t a t e o r o b j e c t w i t h a r u n ( f i r s t - s t a t e - n a m e ) s t a t e m e n t t h a t p a s s e s t h e n a m e o f t h e s t a t e t o b e g i n , o r n o n e w h e n t h e t r a n s i t i o n i s t o t h e b o u n d a r y o f t h e c o m p o s i t e s t a t e . U s e t h e f o l l o w i n g t e m p l a t e f o r t h e c o m p o s i t e s t a t e p r o c t y p e : p r o c t y p e c o m p o s i t e - s t a t e - n a m e ( m t y p e s t a t e ) { a t o m i c { < i n i t i a 1 s t a t e s e q u e n c e ) < s t a t e s e q u e n c e s ) e x i t : s k i p } } T h e m e t a s e q u e n c e s a r e d e f i n e d a s : < i n i t i a l s t a t e s e q u e n c e ) i s e i t h e r a h i s t o r y s t a t e c o n s t r u c t o r a n i n i t i a l s t a t e c o n s t r u c t , a s r e q u i r e d . S e e R u l e s P r o m e l a 1 9 a n d P r o m e l a 2 0 . T h e b o d y o f t h e s i m p l e s t a t e s a n d t r a n s f e r s t o c o m p o s i t e s t a t e s a r e c o n t a i n e d i n < s t a t e s e q u e n c e s > . R e l a t i o n s h i p t o H o m o m o r p h i s m C l a s s P r o c t y p e h o l d s s i m p l e s t a t e s a n d h o l d s o t h e r c o m p o s i t e s t a t e s t h r o u g h r e f e r e n c e s ( c a l l i n g s e q u e n c e s ) t o t h e p r o c t y p e s t h a t r e p r e s e n t t h e c o m p o s i t e s t a t e s , h e n c e P r o c - t y p e i s a S t a t e a n d a n a g g r e g a t i o n o f S t a t e V e r t e x . E n d o f R u l e P r o m e l a 8 . F i g u r e 6 . 1 2 s h o w s c o m p o s i t e s t a t e d , w h i c h i s t h e t a r g e t o f t r a n s i t i o n s f r o m s t a t e e , g e n e r a t e d b y R u l e P r o m e l a 8 f r o m F i g u r e 6 . 1 0 . L i n e 6 — 1 0 i n F i g u r e 6 . 1 2 s h o w t h e s e l e c t i o n o f t h e i n i t i a l s t a t e w i t h i n s t a t e a l . F i g u r e 6 . 1 3 s h o w s t h e s t a t e m e n t s g e n e r a t e d b y R u l e P r o m e l a 8 w i t h i n c o m p o s i t e s t a t e c p 2 f o r s i m p l e s t a t e e . T h e r e a r e t w o p a r t s t o t h e t r a n s i t i o n t o s t a t e d 2 ( w i t h i n d ) : l i n e 1 5 s e t s a p a r a m e t e r f o r t h e i n i t i a l s t a t e f o r c o m p o s i t e s t a t e d t o ( 1 2 , t h e n t r a n s f e r s t o l a b e l t o _ d . R u l e P r o m e l a 8 g e n e r a t e s l i n e 2 i n F i g u r e 6 . 1 3 t o t r a n s f e r c o n t r o l t o c o m p o s i t e s t a t e d . L i n e 3 i n t h e s a m e fi g u r e c o n t a i n s s t a t e m e n t s t o w a i t f o r s t a t e 1 1 9 d t o e x i t . 1 p r o c t y p e d ( m t y p e s t a t e ) 2 { a t o m i c { 3 i n t d . p i d ; 4 m t y p e m ; 5 i n t d u m m y ; 6 i f 7 s t a t e = = s t _ d 1 - > g o t o d 1 8 s t a t e = = s t . d 2 - > g o t o d 2 9 e l s e - > a s s e r t ( 0 ) / * n o i n i t s t a t e - d i e i f b a d s t a t e * / 1 0 f i ; 1 1 / * S t a t e d 1 * / 1 2 d 1 : s k i p ; 1 3 p r i n t f ( " i n s t a t e A . d 1 " ) ; 1 4 i n . d l : 1 5 i f 1 6 A _ q ? t 4 - > w a i t ! . p i d , s t _ j o i n 1 ; g o t o e x i t 1 7 A . q ? t 1 - > t 1 _ p 1 ? A _ V . v a r a - > w a i t ! _ p i d , s t _ e ; g o t o e x i t 1 8 f i ; 1 9 / * S t a t e d 2 * / 2 0 d 2 : s k i p ; 2 1 p r i n t f ( " i n s t a t e A . d 2 " ) ; 2 2 i n . d 2 : 2 3 i f 2 4 A _ q ? t 4 - > w a i t ! _ p i d , s t _ j o i n 1 ; g o t o e x i t 2 5 A _ q ? t 1 - > t 1 _ p 1 ? A . V . v a r a - > w a i t ! _ p i d , s t . e ; g o t o e x i t 2 6 A . q ? t 3 - > i f 2 7 A . V . g 1 - > g o t o d 1 2 8 e l s e - > g o t o i n . d 2 2 9 f i 3 0 f i ; 3 1 e x i t : s k i p 3 2 } } F i g u r e 6 . 1 2 : P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d b y R u l e P r o m e l a 8 f r o m F i g u r e 6 . 1 0 f o r c o m p o s i t e s t a t e a t 1 2 0 1 / * L i n k t o c o m p o s i t e s t a t e d * / 2 t o _ d : d . p i d = r u n d ( m ) ; 3 w a i t ? ? e v a l ( d _ p i d ) , m ; 4 i f 5 : : m = = s t - j o i n 1 - > w a i t ! _ p i d , s t _ j o i n 1 ; g o t o e x i t ; 6 : : m = = s t - e - > g o t o e ; 7 f i ; 8 / * S t a t e e * / 9 e : s k i p ; 1 0 p r i n t f ( " i n s t a t e A . e " ) ; 1 1 i n _ e : 1 2 e v q ! t 2 , _ p i d ; 1 3 i f 1 4 : : A _ q ' ? t 4 - > w a i t ! . p i d , s t _ j o i n 1 ; g o t o e x i t 1 5 : : e v t ? ? t 2 , e v a l ( _ p i d ) - > m = s t _ d 2 ; g o t o t o _ d 1 6 : : A _ q ? t 3 - > m = s t _ d 1 ; g o t o t o _ d 1 7 f i ; F i g u r e 6 . 1 3 : P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d b y R u l e P r o m e l a 8 f r o m F i g u r e 6 . 1 0 f o r t h e t r a n s i t i o n t o s t a t e ( 1 1 2 1 C o n c u r r e n t C o m p o s i t e S t a t e s T h e d o t t e d l i n e b e t w e e n c o m p o s i t e s t a t e s c p l a n d c p 2 i n F i g u r e 6 . 1 0 i n d i c a t e t h a t t h e s e t w o c o m p o n e n t s a r e t o r u n c o n c u r r e n t l y . C o n c u r r e n t s u b s t a t e s a r e f o r m a l i z e d t h e s a m e a s n o n - c o n c u r r e n t s t a t e s e x c e p t t h a t t h e p a r e n t c o m p o s i t e s t a t e m u s t s t a r t s e v e r a l p r o c t y p e s , a n d c o n s e q u e n t l y , w a i t f o r a l l o f t h e p r o c t y p e s t o e x i t . 1 2 2 R u l e P r o m e l a 9 C o n c u r r e n t c o m p o s i t e s t a t e s a r e f o r m a l i z e d a s c o m p o s i t e s t a t e s p e r R u l e P r o m e l a 8 , b u t a r e a c t i v a t e d i n p a r a l l e l u s i n g t h e t e m p l a t e b e l o w . L e t c p l , c p 2 . . . c p n b e t h e n a m e s o f n c o n c u r r e n t c o m p o s i t e s t a t e c o m p o n e n t s . T h e n , i n t h e p a r e n t c o m p o s i t e s t a t e t h a t a c t i v a t e s c h i l d c o n c u r r e n t c o m p o s i t e s t a t e s , d e c l a r e v a r i a b l e s i n t c p 1 . p i d , , i n t c p n _ p i d t o h o l d t h e c h i l d P l e . S i m i l a r l y . d e c l a r e m t y p e v a r i a b l e s , m t y p e c p 1 _ c o d e , . . . , c p n . c o d e f o r e a c h c o m p o n e n t . T h e t e m p l a t e f o r t h e d e c l a r e s i s a s f o l l o w s : i n t c p 1 _ p i d , c p 2 _ p i d , . . . , c p n _ p i d ; m t y p e c p 1 - c o d e , c p 2 - c o d e , . . . , c p n _ c o d e ; T h e d e c l a r a t i o n s a r e p l a c e d a t t h e b e g i n n i n g o f t h e p a r e n t p r o c t y p e . T h e n , t h e f o l l o w i n g t e m p l a t e i s u s e d : [ a C o m p o u n d l a b e l s f o r a t r a n s f e r t o t h e c o n c u r r e n t s t a t e c o m p o n e n t b o u n d a r y . * / t o - c p 1 : t o _ c p 2 : t o - c p n : c p 1 . p i d I r u n c p 1 ( n o n e ) ; c p 2 _ p i d I r u n c p 2 ( n o n e ) ; c p n _ p i d I r u n c p n ( n o n e ) ; u a i t ? ? e v a 1 ( c p 1 - p i d ) , c p 1 - c o d e ; u a i t ? ? e v a l ( c p 2 - p i d ) , c p 2 - c o d e ; w a i t ? ? e v a 1 ( c p n - p i d ) , c p n - c o d e ; I I T h e j o i n s e q u e n c e s a r e o p t i o n a l * / < j o i n s e q u e n c e 1 > < j o i n s e q u e n c e 1 1 ) T h e m e t a t e r m < j o i n s e q u e n c e > i s e i t h e r a s s e r t ( 0 ) i f n o j o i n c o n s t r u c t h a s b e e n s p e c i f i e d , o r o n e o r m o r e j o i n s e q u e n c e s a s d e s c r i b e d i n R u l e P r o m e l a 1 8 . T h e c o n c u r r e n t c o m p o s i t e s t a t e i s a c t i v a t e d b y t r a n s f e r r i n g c o n t r o l t o a n y o f t h e l a b e l s t o _ c p 1 t h r o u g h t o - c p n . R e l a t i o n s h i p t o H o m o m o r p h i s m A C o n c u r r e n t P r o c t y p e i s a t y p e o f P r o c t y p e a s d e s c r i b e d a b o v e . T h i s r u l e d e t a i l s t h e s p e - c i a l i z a t i o n f o r t h e C o n c u r r e n t P r o c t y p e a n d a l s o p r e s e r v e s t h e j o i n r e l a t i o n s h i p b y s e t t i n g u p t h e m e c h a n i s m s r e q u i r e d t o m a p j o i n t o W a i t - j o i n . E n d o f R u l e P r o m e l a 9 . F i g u r e 6 . 1 4 s h o w s t h e s t a t e m e n t s g e n e r a t e d b y R u l e P r o m e l a 9 b y t h e t r a n s i t i o n f r o m s t a t e f t o t h e c o n c u r r e n t c o m p o s i t e s t a t e c o m p o n e n t i n F i g u r e 6 . 1 0 . L i n e s 4 a n d 5 s t a r t 1 2 3 c p l a n d c p 2 w h i l e l i n e s 7 a n d 8 w a i t f o r b o t h c o m p o n e n t s t o e x i t . T h e j o i n c o n s t r u c t t o r e j o i n t h r e a d s f r o m c o n c u r r e n t c o m p o n e n t s i s d e t a i l e d i n R u l e P r o m e l a 1 8 . 1 t o _ c p 1 : 2 t o . . c p 2 : 3 a t o m i c { 4 c p 1 _ p i d = r u n c p 1 ( n o n e ) ; 5 c p 2 _ p i d = r u n c p 2 ( n o n e ) ; 6 } 7 w a i t ? ? e v a l ( c p 1 _ p i d ) , c p 1 . c o d e ; 8 w a i t ? ? e v a l ( c p 2 _ p i d ) , c p 2 . c o d e ; F i g u r e 6 . 1 4 : P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d f o r c l a s s A i n F i g u r e 6 . 8 . E v e n t s a n d S i g n a l s E v e n t s a n d i n t e r - o b j e c t m e s s a g e s ( s i g n a l s ) a r e m a p p e d t o s e n d a n d r e c e i v e o p e r a t i o n s o n P r o m e l a c h a n n e l s . I n f o r m a l U M L s e m a n t i c s s p e c i f y e v e n t s t o b e l o s t i f t h e t r a n s i t i o n f o r t h a t e v e n t i s n o t r e a d y [ 7 ] . T o i m p l e m e n t t h i s p o l i c y w i t h o u t fi l l i n g P r o m e l a c h a n n e l q u e u e s , e x t r a s t a t e m e n t s a r e r e q u i r e d t h a t w o r k a s f o l l o w s : W h e n a t r a n s i t i o n f o r e v e n t E i s r e a d y , t h e s t a t e s e n d s i t s P I D a n d t h e e v e n t n a m e , E , t o c h a n n e l e v q w i t h t h e s t a t e m e n t e v q ! E , _ p i d . W a i t i n g f o r e v e n t E i s a c c o m p l i s h e d w i t h a p o l l ( “ ? ? ” O p e r a t o r ) o n c h a n n e l e v t u s i n g t h e s t a t e m e n t e v q ? ? E , e v a l ( _ p i d ) . T o p o s t t h e o c c u r r e n c e o f e v e n t E , p r o c e s s e v e n t ( E ) i s r u n . T h e p r o c t y p e e v e n t ( ) i s i n c l u d e d i n t h e m a p p i n g b y R u l e P r o m e l a 1 . W h e n e v e n t ( E ) r u n s , i t s e a r c h e s q u e u e e v q f o r a m a t c h i n g e v e n t , E . A m a t c h i m p l i e s a r e a d y t r a n s i t i o n i n t h e p r o c t y p e w h o s e P I D i s i n t h e m e s s a g e , t h e r e f o r e , e v e n t ( ) s e n d s a m e s s a g e t o c h a n n e l e v t t o c a u s e a t r a n s i t i o n . T h e t r a n s i t i o n m e s s a g e c o n s i s t s o f t h e e v e n t , E a n d t h e P I D . A l l o f p r o c e s s e v e n t ( ) e x e c u t e s i n a n a t o m i c b l o c k s o s t a t e m e n t i n t e r l e a v i n g i s n o t p o s s i b l e w h i l e e v e n t s a r e b e i n g h a n d l e d . L i n e 6 i n F i g u r e 6 . 1 5 c o n t a i n s s t a t e a ’ s n o t i fi c a t i o n 1 2 4 t h a t i t i s r e a d y f o r e v e n t t 2 . L i n e 1 0 s h o w s t h e c o r r e s p o n d i n g w a i t f o r e v e n t t 2 . R u l e P r o m e l a 1 0 A n i n t r a - o b j e c t t r a n s i t i o n i s f o r m a l i z e d a s 3 s e n d o p e r a t i o n s e n d i n g a m e s s a g e c o n t a i n i n g t h e e v e n t n a m e a n d P I D t o c h a n n e l e v q t o s i g n i f y t h e t r a n s i t i o n ' s r e a d i n e s s , a n d a r e c e i v e s t a t e m e n t t h a t w a i t s f o r t h e s a m e m e s s a g e t o o c c u r o n c h a n n e l e v t . T h e f o l l o w i n g t e m p l a t e s h o w s t h e P r o m e l a c o n s t r u c t i o n : e v q ! e 1 , _ p i d ; e v q l e 2 , _ p i d ; e v q ! e 1 , . p i d ; 1 f e v t ? ? e 1 , e v a 1 ( . p i d ) - > < t r a n s i t i o n a c t i o n s > e v t ? ? e 2 , e v a l ( _ p i d ) - > < t r a n s i t i o n a c t i o n s > e v t ? ? e 1 , e v a l ( _ p i d ) - > < t r a n s i t i o n a c t i o n s > f i ; E v e n t s a r e d i s p a t c h e d b y r u n n i n g t h e m o d e l - w i d e p r o c e d u r e e v e n t ( ) . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e T r a n s i t i o n t o T r a n s i t i o n m a p p i n g a n d c o m p l i e s w i t h t h e t r i g g e r r e l a t i o n s h i p s b e t w e e n E v e n t a n d T r a n s i t i o n . A s t h e m e t a m o d e l d e p i c t s , t h e r e a r e t w o s u b t y p e s o f E v e n t - D i s p a t c h . T h i s r u l e a l s o c o v e r s t h e R u n - E v e n t ( ) s u b c l a s s . E n d o f R u l e P r o m e l a 1 0 . F i g u r e 6 . 1 5 , l i n e s 6 a n d 1 0 s h o w t h e s t a t e m e n t s g e n e r a t e d b y R u l e P r o m e l a 1 0 f o r t h e t r a n s i t i o n f r o m s t a t e a t o s t a t e c i n F i g u r e 6 . 1 0 . I n t e r - o b j e c t m e s s a g e s , a l s o c a l l e d s i g n a l s , c a n u s e e i t h e r a q u e u e d o r n o n - q u e u e d s e m a n - t i c s , a s e x p l a i n e d e a r l i e r . W h e n n o n - q u e u e d s e m a n t i c s i s c h o s e n , t h e i n t e r - o b j e c t m e s s a g e p a s s i n g u s e s t h e s a m e e v e n t t r a n s f e r m e c h a n i s m a s i s u s e d f o r i n t r a — o b j e c t e v e n t s . W h e n i n t e r - o b j e c t s i g n a l s u s e q u e u e d s e m a n t i c s , a P r o m e l a c h a n n e l i s d e c l a r e d f o r e a c h o b j e c t . S i g n a l s a r e p l a c e d d i r e c t l y o n t h e q u e u e b y c h a n n e l s e n d o p e r a t i o n s , a n d t r a n s i t i o n s m a p 1 2 5 1 / * S t a t e a I / 2 a : s k i p ; 3 p r i n t f ( " i n s t a t e A . a " ) ; 4 l - c h l = s t - a ; / * S a v e s t a t e f o r h i s t o r y * / 5 i n . a : 6 e v q ! t 2 , . p i d ; 7 i f 8 A _ q ? t 5 - > w a i t ! . p i d , s t . j o i n 1 ; g o t o e x i t 9 A _ q ? t 1 - > t 1 _ p 1 ? A _ V . v a r a - > g o t o b 1 0 e v t ? ? t 2 , e v a 1 ( _ p i d ) - > g o t o c 1 1 f i ; F i g u r e 6 . 1 5 : P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d f o r s t a t e a i n F i g u r e 6 . 1 0 . t o d i r e c t q u e r i e s o f t h e c h a n n e l . 1 2 6 R u l e P r o m e l a 1 1 A n i n t e r - o b j e c t t r a n s i t i o n e v e n t u s i n g q u e u e d s e m a n t i c s i s f o r m a l i z e d a s a r e c e i v e O p e r - a t i o n o n t h e s e t o f c h a n n e l s c o r r e s p o n d i n g t o t h e e v e n t a n d i t s p a r a m e t e r s g e n e r a t e d b y R u l e P r o m e l a 6 . I f s i g n a l p a r a m e t e r s a r e p r e s e n t , t h e n p a s s e a c h i n a c h a n n e l n a m e d f o r t h e s i g n a l p e r R u l e P r o m e l a 6 . E a c h p a r a m e t e r c h a n n e l i s d e c l a r e d a s a s i n g l e e n t r y m e s s a g e q u e u e o f t h e s a m e t y p e a s t h e s i g n a l p a r a m e t e r . A n i n t e r - o b j e c t s i g n a l s e n d i s f o r m a l i z e d a s a s e t o f c h a n n e l w r i t e s t a t e m e n t s t o s e n d t h e p a r a m e t e r s a n d s i g n a l t o t h e c h a n n e l s a s s o c i a t e d w i t h t h e d e s t i n a t i o n o b j e c t . F o r c l a s s C L A S S , a n d i n t e r - o b j e c t s i g n a l E t h a t r e c e i v e s m e s s a g e v a l u e s i n t o i n s t a n c e v a r i a b l e s v a r 1 , v a r 2 , . . . , v a r n , t h e f o l l o w i n g t e m p l a t e s h o w s t h e m e s s a g e s e n d o p e r a t i o n : E _ p 1 ! p a r m 1 ; E _ p 2 ! p a r m 2 ; . . . E _ p n ! p a r m n ; C L A S S . q ! E ; a n d t h e c o r r e s p o n d i n g r e c e i v e a n d t r a n s i t i o n s t a t e m e n t s a r e : i f C L A S S _ q ? E - > E _ p 1 ? C L A S S _ V . v a r l ; E _ p 2 ? C L A S S . V . v a r 2 ; E _ p n ? C L A S S _ V . v a r n - > < t r a n s i t i o n a c t i o n s > f i ; R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e T r a n s i t i o n m a p p i n g a n d a l s o r e f l e c t s t h e s u p e r c l a s s — s u b c l a s s s t r u c t u r e o f E v e n t - D i s p a t c h i n t h e P r o m e l a m e t a m o d e l . T h e i n c o m i n g r e l a t i o n s h i p b e t w e e n T r a n s i t i o n a n d S t a t e V e r t e x i s p r e s e r v e d b y t h e P r o m e l a c o n s t r u c t s s p e c i f i e d a b o v e . E n d o f R u l e P r o m e l a l l . T e c h n i c a l l y , o n e c h a n n e l c o u l d b e u s e d f o r b o t h s i g n a l a n d p a r a m e t e r s , o r o n e f o r s i g n a l s a n d a n o t h e r f o r a l l p a r a m e t e r s , h o w e v e r , t h e S P I N a n a l y z e r g e n e r a t o r a p p a r e n t l y h a s a b u g t h a t m a n i f e s t s i t s e l f w h e n c h a n n e l s w i t h m u l t i p l e p a r a m e t e r m e s s a g e s a r e u s e d h e a v i l y . T h e r e f o r e , t h i s r u l e s p e c i fi e s a w o r k a r o u n d s o l u t i o n t h a t i s e q u i v a l e n t , a l t h o u g h s o m e w h a t m o r e c u m b e r s o m e . L i n e 8 i n F i g u r e 6 . 1 5 s h o w s t h e t r a n s i t i o n s t a t e m e n t g e n e r a t e d b y R u l e P r o m e l a 1 1 f o r 1 2 7 s i g n a l t 5 i n s t a t e a f r o m F i g u r e 6 . 1 0 . L i n e 9 o f F i g u r e 6 . 1 5 s h o w s t h e t r a n s i t i o n s t a t e m e n t s i n s t a t e a f o r e v e n t t 1 t h a t h a s a n i n t e g e r v a l u e a s s o c i a t e d w i t h i t . T h e v a l u e i s s t o r e d i n i n s t a n c e v a r i a b l e v a r a . U M L t r a n s i t i o n s y n t a x a l l o w s a t r a n s i t i o n e x p r e s s i o n w i t h n o e v e n t s p e c i fi e d . W h e n t h i s o c c u r s , t h e m i s s i n g e v e n t i s m a p p e d t o a w a i t f o r v a l u e “ 1 ” , o r “ t r u e ” , w h i c h n e v e r b l o c k s . R u l e P r o m e l a 1 2 F o r m a l i z e a m i s s i n g e v e n t o n a t r a n s i t i o n a s “ " , 1 o r t r u e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e T r a n s i t i o n m a p p i n g a n d t h e E v e n t a g g r e g a t i o n . A s n o t e d o n t h e m e t a m o d e l , a t r a n s i t i o n d o e s n o t r e q u i r e a n e v e n t . W h e n a b s e n t , t h i s r u l e p r o v i d e s s e m a n t i c s f o r t h e m i s s i n g e v e n t . E n d o f R u l e P r o m e l a 1 2 . T r a n s i t i o n s T r a n s i t i o n s a r e f o r m a l i z e d a s g o t o s t a t e m e n t s . F o r t r a n s i t i o n s w i t h i n a c o m p o s i t e s t a t e , t h e t a r g e t i s a l a b e l o n t h e s e q u e n c e o f s t a t e m e n t s r e p r e s e n t i n g t h e n e x t s t a t e . F o r t r a n s i t i o n s t o a c h i l d c o m p o s i t e s t a t e , t h e t a r g e t l a b e l i s o n a b l o c k o f o n e o r m o r e r u n ( ) s t a t e m e n t s , w h i c h i n s t a n t i a t e t h e c h i l d c o m p o s i t e s t a t e . R u l e P r o m e l a 1 3 A n i n t r a - c o m p o s i t e - s t a t e t r a n s i t i o n i s f o r m a l i z e d a s 3 g o t o t r a n s f e r r i n g c o n t r o l t o t h e l a b e l o n t h e S t a t e B l o c k r e p r e s e n t i n g t h e d e s t i n a t i o n s t a t e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e T r a n s i t i o n m a p p i n g a n d t h e r e l a t i o n s h i p s w i t h S t a t e V e r t e x . T h i s r u l e a l s o r e f l e c t s t h e s u p e r c l a s s - s u b c l a s s r e l a t i o n s h i p f o r E v e n t - D i s p a t c h i n t h e P r o m e l a m e t a m o d e l . E n d o f R u l e P r o m e l a 1 3 . L i n e 1 0 i n F i g u r e 6 . 1 5 s h o w s a g o t o g e n e r a t e d b y R u l e P r o m e l a 1 3 f o r t h e t r a n s i t i o n f r o m s t a t e a t o s t a t e c i n F i g u r e 6 . 1 0 . 1 2 8 T r a n s i t i o n s t h a t c r o s s a c o m p o s i t e s t a t e b o u n d a r y g o e i t h e r u p w a r d o r d o w n w a r d i n t h e s t a t e h i e r a r c h y . F o r t r a n s i t i o n s t h a t r e q u i r e u p w a r d t r a v e r s a l i n t h e c o m p o s i t e s t a t e h i e r a r - c h y , t h e n a m e o f t h e d e s t i n a t i o n s t a t e i s w r i t t e n t o c h a n n e l w a i t , a n d t h e p r o c e d u r e e x i t s . U p o n , e x i t , t h e p a r e n t r e t r i e v e s t h e n a m e o f t h e d e s t i n a t i o n a n d e x e c u t e s a p p r o p r i a t e s t a t e - m e n t s t o t r a n s f e r t o t h e b l o c k o f s t a t e m e n t s r e p r e s e n t i n g t h e d e s t i n a t i o n . F o r d o w n w a r d t r a n s i t i o n s , a r u n ( ) s t a t e m e n t w i t h a p a r a m e t e r i n d i c a t i n g t h e d e s t i n a t i o n s t a t e i s u s e d . A n e n t i r e c r o s s b o u n d a r y t r a n s i t i o n m a y r e q u i r e c o m b i n a t i o n s o f u p w a r d a n d d o w n w a r d t r a n s i t i o n s u n t i l t h e d e s t i n a t i o n i s r e a c h e d . R u l e P r o m e l a 1 4 A T r a n s i t i o n t h a t c r o s s e s t h e c o m p o s i t e - s t a t e b o u n d a r y d o w n w a r d i n t h e s t a t e h i e r a r c h y i s f o r m a l i z e d a s a r u n ( ) s t a t e m e n t t h a t s t a r t s t h e c h i l d c o m p o s i t e s t a t e p r o c t y p e t h a t e i t h e r c o n t a i n s t h e d e s t i n a t i o n s t a t e , o r i s o n t h e t r a n s i t i o n p a t h t o t h e d e s t i n a t i o n s t a t e . I f t h e d e s t i n a t i o n s t a t e i s n o t t h e i m m e d i a t e c h i l d c o m p o s i t e - s t a t e b o u n d a r y , t h e n t h e r u n ( ) s t a t e m e n t c o n t a i n s a p a r a m e t e r n a m i n g t h e d e s t i n a t i o n s t a t e . A s s u m e t h e n e x t c o m p o s i t e s t a t e d o w n w a r d o n t h e p a t h t o t h e d e s t i n a t i o n i s C S T A T E a n d t h e d e s t i n a t i o n s t a t e i s n a m e d B e s t , t h e n t h i s p o r t i o n o f t h e m a p p i n g g e n e r a t e s t h e s t a t e m e n t : r u n C S T A T E ( D e s t ) ; R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e f u r t h e r d e s c r i b e s t h e T r a n s i t i o n m a p p i n g a n d p r e s e r v e s t h e r e l a t i o n s h i p s w i t h S t a t e V e r t e x , s p e c i f i c a l l y , d o w n t o t h e P r o c t y p e P r o m e l a m e t a m o d e l c l a s s . E n d o f R u l e P r o m e l a 1 4 . 1 2 9 R u l e P r o m e l a 1 5 A t r a n s i t i o n t h a t c r o s s e s a c o m p o s i t e - s t a t e b o u n d a r y u p w a r d i n t h e s t a t e h i e r a r c h y i s f o r m a l i z e d a s a c h a n n e l s e n d o p e r a t i o n f o l l o w e d b y a n e x i t f r o m t h e c o m p o s i t e s t a t e . T h e m e s s a g e s e n t c o n s i s t s o f t h e c u r r e n t p r o c e s s e s P I D a n d t h e n a m e o f t h e d e s t i n a t i o n s t a t e . T h e s t a t e m e n t t e m p l a t e f o r t h e t r a n s i t i o n t o s t a t e D e s t i s : w a i t ! . p i d , D e s t ; g o t o e x i t ; R e l a t i o n s h i p t o H o m o m o r p h i s m T h e c o m m e n t s f o r R u l e P r o m e l a 1 4 a r e a p p l i c a b l e t o t h i s r u l e . E n d o f R u l e P r o m e l a 1 5 . T o i l l u s t r a t e R u l e s P r o m e l a 1 4 a n d P r o m e l a 1 5 w e e x a m i n e s e v e r a l e x a m p l e s e c t i o n s o f P r o m e l a s p e c i fi c a t i o n s . T h e t r a n s i t i o n f r o m s t a t e 6 t o s i m p l e s t a t e d 2 w i t h i n s t a t e ( 1 i n F i g u r e 6 . 1 0 i s a d o w n w a r d t r a n s i t i o n . R u l e P r o m e l a 1 4 g e n e r a t e s t h e P r o m e l a s t a t e m e n t s o n l i n e s 9 a n d 2 2 i n F i g u r e 6 . 1 6 f o r t h i s t r a n s i t i o n . L i n e 6 i n F i g u r e 6 . 1 7 s h o w s t h e s t a t e m e n t s g e n e r a t e d b y a n u p w a r d t r a n s i t i o n f r o m s t a t e d 2 t o t h e j o i n c o n s t r u c t v i a t h e t r a n s i t i o n l a b e l e d t 4 . L i n e 7 i n t h e s a m e fi g u r e i l l u s t r a t e s t h e t r a n s i t i o n u p o n e l e v e l t o s t a t e e . T h e s i g n a l f o r t h i s t r a n s i t i o n ( t 1 ) h a s o n e i n t e g e r p a r a m e t e r . T r a n s i t i o n s m a y b e g u a r d e d b y a n a r b i t r a r y l o g i c a l e x p r e s s i o n . W h e n a t r a n s i t i o n g u a r d i s p r e s e n t , a n i f - f i b l o c k i s c o n s t r u c t e d a f t e r t h e e v e n t r e c e p t i o n s t a t e m e n t s t o t e s t t h e g u a r d . F u r t h e r t r a n s i t i o n a c t i o n s , i f a n y , a r e p l a c e d a f t e r t h e g u a r d a n d b e f o r e t h e g o t o s t a t e m e n t s p e r R u l e P r o m e l a 7 . W h e n m u l t i p l e t r a n s i t i o n s w i t h t h e s a m e e v e n t a n d v a r y i n g g u a r d s o c c u r s , a l l o f t h e t r a n s i t i o n s a r e g a t h e r e d t o g e t h e r t o f o r m o n e e v e n t t e s t w i t h t h e g u a r d s e n u m e r a t e d i n a n i f - f i b l o c k , w i t h e a c h g u a r d r e p r e s e n t i n g o n e g u a r d . I f n o n e o f t h e g u a r d s a r e t r u e , t h e n t h e e v e n t s h o u l d b e d r o p p e d a n d w a i t i n g r e s u m e d . T h i s i s a c c o m p l i s h e d b y p l a c i n g a n : : e l s e g o t o i n _ C L A S S s t a t e m e n t a s t h e l a s t s t a t e m e n t o f t h e i f - f i g u a r d i n g b l o c k , w h i c h c a u s e s c o n t r o l t o l o o p b a c k t o t h e s t a r t o f t h e s t a t e . 1 3 0 1 p r o c t y p e c p 2 ( m t y p e s t a t e ) 2 { a t o m i c { 3 i n t d . p i d ; 4 m t y p e m ; 5 i n t d u m m y ; 6 / I I n i t s t a t e * / 7 g o t o e ; 8 / * L i n k t o c o m p o s i t e s t a t e d * / 9 t o _ d : d . p i d = r u n d ( m ) ; 1 0 w a i t ? ? e v a 1 ( d _ p i d ) , m ; 1 1 i f 1 2 H m = = s t - j o i n 1 - > w a i t ! _ p i d , s t . j o i n 1 ; g o t o e x i t ; 1 3 . . m = = s t _ e - > g o t o e ; 1 4 f i ; 1 5 / * S t a t e e I / 1 6 e s k i p ; 1 7 p r i n t f ( " i n s t a t e A . e " ) ; 1 8 i n _ e : 1 9 e v q l t 2 , _ p i d ; 2 0 i f 2 1 : : A . q ? t 4 - > w a i t ! . p i d , s t . j o i n 1 ; g o t o e x i t 2 2 : : e v t ? ? t 2 , e v a l ( _ p i d ) - > m = s t . d 2 ; g o t o t o - d 2 3 : : A _ q ? t 3 - > m = s t _ d 1 ; g o t o t o _ d 2 4 f i ; 2 5 e x i t : s k i p 2 6 } } F i g u r e 6 . 1 6 : C o m p o s i t e s t a t e c p 2 f r o m d i a g r a m F i g u r e 6 . 1 0 . 1 / I S t a t e d 2 * / 2 d 2 : s k i p ; 3 p r i n t f ( " i n s t a t e A . d 2 " ) ; 4 i n . d 2 : 5 i f 6 A _ q ' ? t 4 - > w a i t ! . p i d , s t . j o i n 1 ; g o t o e x i t 7 A . q ? t 1 - > t 1 _ p 1 ? A _ V . v a r a - > w a i t ! _ p i d , s t _ e ; g o t o e x i t 8 A . q ? t 3 - > i f 9 ' A _ V . g 1 - > g o t o d 1 1 0 e l s e - > g o t o i n . d 2 1 1 f i 1 2 f i ; 1 3 e x i t : s k i p 1 4 } } F i g u r e 6 . 1 7 : S t a t e d 2 f r o m F i g u r e 6 . 1 0 i l l u s t r a t i n g t h e s t a t e m e n t s g e n e r a t e d b y R u l e P r o m e l a 1 5 f o r a n u p w a r d t r a n s i t i o n . 1 3 1 T h e s e m a n t i c s o f e v e n t l e s s t r a n s i t i o n s c a l l s f o r t h e t r a n s i t i o n t o b e t a k e n a s s o o n a s t h e a c t i o n s o n t h e t r a n s i t i o n a r e c o m p l e t e ( s e e R u l e P r o m e l a 1 2 ) . I f t h e t r a n s i t i o n i s g u a r d e d , t h e n t h e g u a r d s a r e t e s t e d i m m e d i a t e l y , a n d i f f a l s e , t h e s t a t e i s b l o c k e d ( b e c a u s e t h e e v e n t c a n n o t r e o c c u r ) . T o p r o d u c e b l o c k e d s e m a n t i c s , t h e fi n a l “ : : e l s e ” i s r e p l a c e d w i t h “ z : e l s e 0 ” . S i n c e “ 0 ” i s f a l s e , i t b l o c k s , a n d s i n c e z e r o i s a c o n s t a n t , i t n e v e r b e c o m e s t r u e . W i t h o u t t h i s c o n s t r u c t i o n , g u a r d e d , e v e n t l e s s t r a n s i t i o n s w o u l d b e h a v e l i k e “ W h e n ” c l a u s e s b e c a u s e e a c h g u a r d w o u l d b e c o n s t a n t l y r e - e v a l u a t e d . R u l e P r o m e l a l 6 F o r m a l i z e a g u a r d o n a t r a n s i t i o n a s a n i f — f i b l o c k l o c a t e d i m m e d i a t e l y a f t e r t h e s t a t e - m e n t s r e p r e s e n t i n g t h e e v e n t r e c e p t i o n . G a t h e r a l l l i k e e v e n t s i n t o o n e w a i t s t a t e m e n t . F o r o n e o r m o r e t r a n s i t i o n s o n e v e n t E g u a r d e d b y G I t h r o u g h G n , a n d w a i t e x p r e s s i o n Q ( Q i s s o m e f o r m o f a w a i t o n a c h a n n e l p e r R u l e P r o m e l a 1 0 , R u l e P r o m e l a 1 1 , o r R u l e P r o m e l a 1 2 ) t h e f o l l o w i n g t e m p l a t e a p p l i e s : i f Q ? E - > i f 6 1 - > < t r a n s i t i o n 1 > G 2 - > < t r a n s i t i o n 2 > C h - > < t r a n s i t i o n 1 1 ) e l s e g o t o i n _ S T A T E ; i i F o r e v e n t l e s s t r a n s i t i o n s g u a r d e d a s a b o v e , r e p l a c e t h e f i n a l e l s e w i t h e l s e 0 . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e G u a r d t o I F G u a r d m a p p i n g a n d p r e s e r v e s t h e a g g r e g a t i o n b e t w e e n G u a r d a n d T r a n s i t i o n i n t h e U M L m e t a m o d e l . E n d o f R u l e P r o m e l a 1 6 . T h e t 0 p h a l f o f F i g u r e 6 . 1 8 s h o w s t h e r a t h e r e x t r e m e c a s e o f m u l t i p l e t r a n s i t i o n s w i t h t h e s a m e e v e n t a n d d i f f e r e n t g u a r d s . 1 3 2 l x 1 | l I X 6 X Z i t Q [ G I ] [ 0 2 ] r — — \ [ 6 6 ] V [ 0 4 ] C 3 X 4 [ ] F i g u r e 6 . 1 8 : A n e x t r e m e e x a m p l e o f m u l t i p l e t r a n s i t i o n s o n a s i n g l e e v e n t g u a r d e d b y v a r y i n g g u a r d s . T h e b o t t o m h a l f o f t h e fi g u r e s h o w s e v e n t l e s s g u a r d e d t r a n s i t i o n s . F i g u r e 6 . 1 9 s h o w s t h e P r o m e l a g e n e r a t e d b y R u l e P r o m e l a 1 6 f o r s t a t e S i n t h e b o t t o m h a l f o f F i g u r e 6 . 1 8 . S i n c e t h e e v e n t i s t h e s a m e o n e a c h t r a n s i t i o n , i t h a s b e e n g a t h e r e d i n t o o n e w a i t . F i g u r e 6 . 2 0 s h o w s t h e r e s u l t w h e n t h e e v e n t i s r e m o v e d f r o m t h e t r a n s i t i o n s a s i n t h e b o t t o m h a l f o f F i g u r e 6 . 1 8 . I n t h i s c a s e , R u l e s P r o m e l a 1 1 a n d P r o m e l a 1 6 w o r k t o g e t h e r t o p r o d u c e t h e i f - f i b l o c k s h o w n . N o t i c e i n t h i s c a s e t h e fi n a l : : e l s e 0 . O n c e s t a t e S h a s b e e n e n t e r e d , i f n o g u a r d i s t r u e , t h e n t h e s t a t e i s b l o c k e d . P r o m e l a c o n t a i n s n o c o n s t r u c t s o r m e a n s o f s i m u l a t i n g t h e p a s s a g e o f r e a l t i m e , t h e r e f o r e t h e U M L e v e n t T i m e E v e n t i s m a p p e d t o a s e q u e n t i a l l y n u m b e r e d e v e n t c a l l e d T E l , T E 2 , e t c . . T h e m o d e l e r m u s t m a k e p r o v i s i o n t o g e n e r a t e t h e s e t i m e d e v e n t s e l s e w h e r e i n t h e m o d e l . 1 3 3 » n o i t a t n e m u c o D « 1 i n J S : 2 i f 3 C L A S S _ Q ? E - > i f 4 : : G 1 - > g o t o X 1 ; 5 G 2 - > g o t o X 2 ; 6 G 3 - > g o t o X 3 ; 7 G 4 - > g o t o X 4 ; 8 G S - > g o t o X 5 ; 9 6 6 - > g o t o X 6 ; 1 0 . : e l s e g o t o 1 1 1 . 8 ; 1 1 f i 1 2 f i ; F i g u r e 6 . 1 9 : T h e P r o m e l a g e n e r a t e d b y R u l e P r o m e l a 1 6 f o r s t a t e S i n t h e t 0 p h a l f o f F i g u r e 6 . 1 8 i n J S : i f 1 - > i f G l - > g o t o X 1 ; G 2 - > g o t o X 2 ; G B - > g o t o X 3 ; G 4 - > g o t o X 4 ; G S - > g o t o X 5 ; G 6 - > g o t o X 6 ; e l s e 0 ; H H H O f i 1 2 f i ; F i g u r e 6 . 2 0 : T h e P r o m e l a g e n e r a t e d b y R u l e P r o m e l a 1 6 f o r s t a t e S i n t h e b o t t o m h a l f o f F i g u r e 6 . 1 8 1 3 4 R u l e P r o m e l a 1 7 T i m e d e v e n t s a r e m a p p e d t o u n i q u e l y n a m e d e v e n t s f o l l o w i n g t h e n a m i n g c o n v e n t i o n T E l , T E 2 , . . . , T E n . T h e m o d e l e r i s r e s p o n s i b l e f o r g e n e r a t i n g t h e s e e v e n t s e l s e w h e r e i n t h e m o d e l . R e l a t i o n s h i p t o H o m o m o r p h i s m C l a s s T i m e E v e n t i s m a p p e d t o E v e n t - D i s p a t c h b e c a u s e t h e r e a r e n o c o n s t r u c t s i n P r o m e l a f o r t i m e - c o n s t r a i n e d e v e n t s . T h e r e f o r e , t o c o m p l e t e t h e m a p p i n g , t i m e o u t s a n d i n t e r v a l w a i t s a r e m a p p e d t o u s e r - g e n e r a t e d e v e n t s . E n d o f R u l e P r o m e l a l 7 . P s e u d o S t a t e s F o u r p s e u d o - s t a t e s a r e m a p p e d f r o m U M L t o P r o m e l a : T h e I n i t S t a t e , t h e H i s t o r y S t a t e , E x i t , a n d J o i n . T h e J o i n p s e u d o - s t a t e a c c e p t s m u l t i p l e i n b o u n d t r a n s i t i o n s f r o m t w o o r m o r e c o n c u r - r e n t s t a t e c o m p o n e n t s g e n e r a t e d b y R u l e P r o m e l a 9 , j o i n i n g t h e s e p a r a t e t h r e a d s i n t o o n e t h r e a d . W h e n a l l i n b o u n d t r a n s i t i o n s h a v e o c c u r r e d , t h e o u t b o u n d t r a n s i t i o n f r o m t h e j o i n i s t r i g g e r e d . T h e r e m a y b e z e r o o r m o r e J o i n s f o r e a c h c o n c u r r e n t c o m p o s i t e s t a t e . W h e n n o J o i n e x i s t s , e n d i n g a t h r e a d i n a c o n c u r r e n t c o m p o n e n t i s a n e r r o r . W h e n m o r e t h a n o n e J o i n i s p r e s e n t , e a c h c o n c u r r e n t c o m p o n e n t m u s t t r a n s i t i o n t o t h e s a m e J o i n o r e l s e a d e a d l o c k o c c u r s . A s d e s c r i b e d i n R u l e P r o m e l a 9 , i n i t i a t i o n o f a c o n c u r r e n t c o m p o s i t e s t a t e i n c l u d e s s t a t e m e n t s t h a t i s s u e r e c e i v e s o n c h a n n e l w a i t , c a u s i n g t h e p a r e n t t o w a i t u n t i l e a c h c o n - c u r r e n t s t a t e m e n t h a s t e r m i n a t e d . W h e n a l l c o n c u r r e n t P r o m e l a p r o c e d u r e s h a v e e x i t e d , c o n t r o l f a l l s t h r o u g h t o t h e < j o i n s e q u e n c e > i n t h e t e m p l a t e i n R u l e P r o m e l a 9 . A t t h i s p o i n t , w i t h o u t a J o i n c o n s t r u c t , a n a s s e r t ( 0 ) s t a t e m e n t i s e x e c u t e d , c a u s i n g t h e m o d e l t o t e r m i n a t e i n e r r o r . W h e n o n e o r m o r e J o i n s a r e p r e s e n t , t h e < j o i n s e q u e n c e > c o n s i s t s o f a n i f - f i b l o c k 1 3 5 c o n t a i n i n g g u a r d s t h a t a r e s t r i n g s o f c o n j u n c t s t e s t i n g f o r e a c h J o i n a s a d e s t i n a t i o n . R u l e P r o m e l a 1 8 E a c h J o i n p s e u d o - s t a t e i s f o r m a l i z e d a s a i f - f i b l o c k . F o r e a c h J o i n , c o n s t r u c t a g u a r d c o n s i s t i n g o f a _ c o n ' u n c t t e s t i n g e a c h c o n c u r r e n t c o m p o n e n t ’ s r e t u r n c o d e f o r a t r a n s n t i o n t o t h a t J o r n . e J a m t e m p l a t e I s a s f o l l o w s : 1 i f 2 ' ° c p 1 - c o d e I I s t - j o i n 1 i t c p 2 - c o d e I I s t - j o i n 1 . . . i t c p n _ c o d e I I s t - j o i n 1 3 - > g o t o d e s t l 4 c p 1 - c o d e I I s t - j o i n 2 i t c p 2 - c o d e I I s t - j o i n 2 . . . i t c p n _ c o d e I I s t - j o i n 2 5 - > g o t o d e s t 2 6 7 8 9 c p 1 - c o d e I I s t - j o i n n i t c p 2 - c o d e I I s t - j o i n n . . . i t c p n - c o d e I I s t _ j o i n n 1 0 - > g o t o d e s t n 1 1 f i W h e r e c p n _ c o d e i s t h e r e t u r n c o d e f r o m t h e n - t h p r o c e s s i n d i c a t i n g t h e j o i n s t a t e , s t _ j o i n n i s t h e n a m e o f t h e n - t h j o i n , a n d d e s t n i s t h e d e s t i n a t i o n f r o m t h e n - t h j o i n . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e m a p p i n g o f J o i n t o W a i t - j o i n . I n P r o m e l a , t h e j o i n c o n s t r u c t o c c u p i e s t h e s a m e r e l a t i v e p o s i t i o n a s a s t a t e , a n d h a s a d e s t i n a t i o n l a - b e | . T h e r e f o r e , i t q u a l i f i e s a s a s u b t y p e o f P s e u d o s t a t e . E n d o f R u l e P r o m e l a 1 8 . F i g u r e 6 . 2 1 s h o w s t h e < j o i n s e q u e n c e > s t a t e m e n t s g e n e r a t e d b y R u l e P r o m e l a 1 8 f o r t h e j o i n i n F i g u r e 6 . 1 0 . T h i s j o i n r e j o i n s t h e t h r e a d s f r o m c p l a n d c p 2 t h r o u g h t r a n s i t i o n s l a b e l e d t 4 a n d t 5 . T h e J o i n c o n s t r u c t w o r k s i n P r o m e l a a s f o l l o w s : T h e s e q u e n c e o f w a i t s a f t e r t h e r u n ( ) s t a t e m e n t s b l o c k s u n t i l a l l c o n c u r r e n t c o m p o n e n t s h a v e e n d e d . F o r e x a m p l e , l i n e s 7 a n d 8 i n F i g u r e 6 . 2 1 b l o c k u n t i l b o t h c p l a n d c p 2 h a v e e x i t e d . A f t e r a l l t h r e a d s h a v e e n d e d , t h e r e t u r n c o d e s w i l l b e s e t . I f t h e s e t o f r e t u r n c o d e s m a t c h e s o n e o f t h e c o n j u n c t s i n t h e j o i n i f - f i b l o c k , t h e j o i n i s c o m p l e t e . O t h e r w i s e , a d e a d l o c k c o u l d o c c u r . O n l i n e 1 0 o f F i g u r e 6 . 2 1 , t h e j o i n i s w a i t i n g f o r t r a n s i t i o n s t o j o i n 1 . A n i n i t i a l s t a t e h a s o n l y t o t r a n s f e r c o n t r o l t o t h e d e s i g n a t e d s t a r t s t a t e i n t h e c o m p o s i t e c o m p o n e n t . T h i s i s a c c o m p l i s h e d w i t h a g o t o a t t h e b e g i n n i n g o f t h e p r o c t y p e . 1 3 6 1 t o _ c p 1 : 2 t o - c p 2 : 3 a t o m i c { 4 c p 1 . p i d I r u n c p 1 ( n o n e ) ; 5 c p 2 . p i d I r u n c p 2 ( n o n e ) ; 6 } 7 w a i t ? ? e v a l ( c p 1 _ p i d ) , c p 1 _ c o d e ; 8 w a i t ? ? e v a 1 ( c p 2 _ p i d ) , c p 2 . c o d e ; 9 i f 1 0 : : c p 1 _ c o d e I I s t _ j o i n 1 & & c p 2 - c o d e I I s t - j o i n 1 - > g o t o f ; 1 1 f i ; 1 2 e x i t : s k i p 1 3 } } F i g u r e 6 . 2 1 : T h e P r o m e l a s p e c i fi c a t i o n s g e n e r a t e d b y R u l e P r o m e l a 1 8 f o r t h e j o i n i n F i g u r e 6 . 1 0 R u l e P r o m e l a 1 9 E a c h I n i t i a l p s e u d o - s t a t e i s f o r m a l i z e d a s 3 g o t o t o t h e i n i t i a l s t a t e . T h e g o t o i s l o c a t e d a t t h e s t a r t o f t h e P r o m e l a p r o c e d u r e a s s o c i a t e d w i t h t h e c o m p o s i t e s t a t e o r o b j e c t . R e l a t i o n s h i p t o H o m o m o r p h i s m l n i t - g o t o i s m a p p e d f r o m S t a r t . T h e P r o m e l a i m p l e m e n t i n g i n i t f i t s w i t h i n a c o m - p o s i t e s t a t e o r o b j e c t e n v e l o p e , a n d h a s a n o u t b o u n d t r a n s i t i o n . T h e r e f o r e , i t q u a l i f i e s a s a s u b t y p e o f t h e s u p e r t y p e P s e u d o s t a t e . E n d o f R u l e P r o m e l a 1 9 . L i n e s 6 a n d 7 o f F i g u r e 6 . 1 6 S h o w t h e i n i t i a l s t a t e m a p p i n g g e n e r a t e d b y R u l e P r o m e l a 1 9 f o r s t a t e c p 2 . A h i s t o r y s t a t e i s a s p e c i a l i n i t i a l s t a t e t h a t r e m e m b e r s t h e l a s t a c t i v e s t a t e o f a c o m p o s i t e s t a t e a f t e r t h e c o m p o s i t e s t a t e h a s e x i t e d . W h e n t h e c o m p o s i t e s t a t e i s r e - e n t e r e d v i a a t r a n s i t i o n t o i t s b o u n d a r y , t h e h i s t o r y s t a t e a r r a n g e s t o m a k e t h e l a s t a c t i v e s t a t e c u r r e n t a g a i n . W h e n t h e r e i s n o p r i o r a c t i v e s t a t e , t h e h i s t o r y s t a t e a c t s a s a n o r m a l i n i t i a l s t a t e a n d t r a n s f e r s t o t h e d e f a u l t s t a r t s t a t e . 1 3 7 R u l e P r o m e l a 2 0 F o r m a l i z e e a c h H i s t o r y p s e u d o - s t a t e a s a n i f - f i b l o c k a t t h e t o p o f t h e P r o m e l a p r o c e d u r e r e p r e s e n t i n g t h e c o m p o s i t e s t a t e . T h e i f - f i b l o c k t e s t s t h e v a l u e o f a v a r i a b l e h o l d i n g t h e n a m e o f t h e l a s t s t a t e . W h e n a m a t c h i s f o u n d , t h e i f - f i t r a n s i t i o n s t o t h e s t a t e w i t h 3 g o t o a s i n o t h e r t r a n s i t i o n s . T h e i f - f i b l o c k f o l l o w s t h e f o l l o w i n g t e m p l a t e : 1 i f 2 H - c o m p o s i t e - s t a t e - n a m e I I s t _ s t a t e 1 - > g o t o s t a t e i ; 3 H - c o m p o s i t e - s t a t e - n a m e I I s t . s t a t e 2 - > g o t o s t a t e 2 ; 4 5 6 7 H _ c o m p o s i t e - s t a t e - n a m e I I s t _ s t a t e n - > g o t o s t a t e n ; 8 f i ; W h e r e c o m p o s i t e - s t a t e - n a m e i s t h e n a m e o f t h e c o m p o s i t e s t a t e ( o b j e c t s m a y n o t c o n t a i n h i s t o r y p s e u d o - s t a t e s a t t h e i r t o p l e v e l ) , a n d s t a t e i i s t h e n a m e o f t h e i — t h s t a t e i n t h e c o m p o s i t e s t a t e . W h e n a H i s t o r y s t a t e i s p r e s e n t , l i n e 2 i n t h e t e m p l a t e i n R u l e P r o m e l a 7 m u s t b e p r e s e n t a n d t h e v a r i a b l e H - c o m p o s i t e - s t a t e - n a m e i s d e c l a r e d a s t y p e m t y p e i n t h e g l o b a l d e c l a r a t i o n s . T h e i n i t i a l v a l u e o f H _ c o m p o s i t e - s t a t e - n a m e i s t h e d e f a u l t i n i t i a l s t a t e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h e c o m m e n t s f o r R u l e s P r o m e l a 1 8 a n d P r o m e l a 1 9 a p p l y t o t h i s r u l e , w h i c h m a p s H i s - t r o y t o H i s t o r y - g o t o . E n d o f R u l e P r o m e l a 2 0 . L i n e s 6 — 1 0 o f F i g u r e 6 . 2 2 s h o w t h e s t a t e m e n t s g e n e r a t e d b y R u l e P r o m e l a 2 0 f o r t h e h i s t o r y s t a t e . F i g u r e 6 . 2 2 s h o w s t h e s t a t e m e n t s f o r t h e fi r s t p a r t ( t h r o u g h s t a t e a ) o f c o m p o s i t e s t a t e c p l f r o m F i g u r e 6 . 1 0 . T h e s t a t e m e n t g e n e r a t e d b y R u l e P r o m e l a 7 o n l i n e 1 4 s h o w s t h e h i s t o r y v a r i a b l e b e i n g s e t t o s t a t e a . T h e r e a r e t w o p o s s i b l e s e m a n t i c s f o r e x i t : o n e i s t o r e t u r n t o t h e n e x t h i g h e r l e v e l i n t h e s t a t e h i e r a r c h y , a n d t h e o t h e r i s t o e x e c u t e a “ O ” , c a u s i n g a b l o c k . I f t h i s o c c u r s d e e p w i t h i n t h e h i e r a r c h y o f s t a t e s , t h e e n t i r e b r a n c h w i l l b e h a l t e d . W e h a v e c h o s e n t h e f o r m e r s e m a n t i c s f o r e x i t . T h e e x i t o r fi n a l s t a t e c o n s t r u c t i s m a p p e d t o a n e x i t o f t h e c u r r e n t p r o c t y p e . 1 3 8 1 p r o c t y p e c p 1 ( m t y p e s t a t e ) 2 { a t o m i c { 3 m t y p e m ; 4 i n t d u m m y ; 5 / * H i s t o r y p s e d u o s t a t e c o n s t r u c t * / 6 i f 7 : : H - c p 1 I I M A - > g o t o a ; 8 H - c p 1 I I s t _ b - > g o t o b ; 9 H - c p 1 I I s t _ c - > g o t o c ; 1 0 f i ; 1 1 / * S t a t e a * / 1 2 a : s k i p ; 1 3 p r i n t f ( " i n s t a t e A . a " ) ; 1 4 H - c p 1 I s t _ a ; / * S a v e s t a t e f o r h i s t o r y * / 1 5 i n _ a : 1 6 e v q l t 2 , _ p i d ; 1 7 i f 1 8 : : A _ q ? t 5 - : > w a i t ! g p i d , s t . j o i n 1 ; g o t o e x i t 1 9 : : A . q ? t 1 - > t 1 . p 1 ? A _ V . v a r a - > g o t o b 2 0 : : e v t ? ? t 2 , e v a 1 6 p i d ) - > g o t o c 2 1 f i ; F i g u r e 6 . 2 2 : H i s t o r y s t a t e s t a t e m e n t s g e n e r a t e d b y R u l e P r o m e l a 2 0 f o r c o m p o s i t e s t a t e c p l i n F i g u r e 6 . 1 0 . R u l e P r o m e l a 2 1 F o r m a l i z e e a c h F i n a l p s e u d o - s t a t e a s a t r a n s f e r ( g o t o ) t o l a b e l e x i t : a t t h e e n d o f t h e c o n t a i n i n g P r o m e l a p r o c e d u r e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e m a p p i n g o f F i n a l t o G o t o — e x i t , a n d t h e p r e v i o u s c o m m e n t s f o r P s e u d o s t a t e s a p p l y . E n d o f R u l e P r o m e l a 2 1 . R u l e s P r o m e l a 2 a n d P r o m e l a 8 b o t h r e q u i r e a fi n a l e x i t : l a b e l a t t h e e n d o f t h e p r o c t y p e . A n e x i t s i m p l y t r a n s f e r s t o t h i s l a b e l . 1 3 9 C h a p t e r 7 R e l a t e d W o r k I n t h i s c h a p t e r w e o v e r v i e w r e l a t e d w o r k . T h e o b j e c t i v e o f t h e r e s e a r c h i s t o s h o w h o w t o f o r m a l i z e U M L s o t h a t i t c a n b e u s e d f o r e m b e d d e d s y s t e m s d e s i g n . T h e f o r m a l i z a t i o n t h e n e n a b l e s b e h a v i o r v a l i d a t i o n a n d o t h e r t y p e s o f a n a l y s i s o n t h e e m b e d d e d s y s t e m s m o d e l . T h e l i t e r a t u r e r e l a t e d t o t h i s o b j e c t i v e i n c l u d e s e m b e d d e d s y s t e m s d e v e l o p m e n t m e t h o d - o l o g i e s , b o t h o b j e c t - o r i e n t e d a n d n o n - o b j e c t o r i e n t e d . I n a d d i t i o n , w e r e v i e w a p p r o a c h e s t o f o r m a l i z i n g o b j e c t - o r i e n t e d g r a p h i c a l m o d e l i n g t e c h n i q u e s , a n d f o r m a l i z i n g U M L i n p a r - t i c u l a r . S o m e o f t h e r e l a t e d w o r k c o v e r s b o t h f o r m a l i z a t i o n a n d e m b e d d e d s y s t e m s ; s o m e i n c l u d e s r e l a t e d w o r k c o n t a i n i n g o n l y o n e a s p e c t . T h e r e a r e m a n y g r a p h i c a l n o t a t i o n s f o r e m b e d d e d s y s t e m s , s o m e o f w h i c h a r e c l o s e l y a s s o c i a t e d w i t h s p e c i fi c c o m p l e t e m e t h o d o l o g i e s , w h i l e o t h e r s a r e a s s o c i a t e d o n l y w i t h t e c h - n i q u e s f o r a n a l y z i n g o r d e s c r i b i n g a s y s t e m . W e r e v i e w s o m e o f t h e m o r e w i d e l y u s e d n o t a t i o n s . 1 4 0 7 . 1 E m b e d d e d S y s t e m s M e t h o d o l o g i e s M e t h o d o l o g i e s f o r b u i l d i n g e m b e d d e d s y s t e m s c o v e r t h e s p e c t r u m f r o m a d h o c , t o s t r u c t u r e d m e t h o d s , t o c o m b i n e d s t r u c t u r e d a n d o b j e c t - o r i e n t e d t o p u r e l y o b j e c t - o r i e n t e d . F i v e m a j o r a p p r o a c h e s a r e r e v i e w e d : 0 A d H o c e S t r u c t u r e d t e c h n i q u e s : R e a l T i m e S t r u c t u r e d A n a l y s i s ( R T S A ) o f W a r d a n d M e l - l o r [ 3 8 ] a n d t h e s i m i l a r m e t h o d f r o m H a t l e y a n d P i r b h a i [ 3 9 ] 0 H y b r i d s t r u c t u r e d a n d 0 0 : R e a l T i m e O b j e c t - O r i e n t e d S t r u c t u r e d A n a l y s i s ( R T O O S A ) [ 3 7 ] 0 O O , n o n - U M L b a s e d : R e a l t i m e O b j e c t O r i e n t e d M e t h o d ( R O O M ) [ 5 ] O O , U M L b a s e d : R e a l - T i m e U M L [ 1 ] 7 . 1 . 1 A d H o c O v e r t h e p a s t 2 5 y e a r s , t h e m a j o r i t y o f c o m m e r c i a l s y s t e m s o f t w a r e h o u s e s u s e d a n a d h o c m e t h o d t o b u i l d e m b e d d e d s y s t e m s [ 2 ] . T h e s t a r t i n g p o i n t o f t h i s a p p r o a c h i s a s e t o f r e - q u i r e m e n t s , s o m e t i m e s w r i t t e n , o t h e r t i m e s v e r b a l , w h i c h , i n t h e b e s t c a s e , a r e t r a n s f o r m e d i n t o a n i n i t i a l d e s i g n b y s k i l l e d e n g i n e e r s . T h e f o r m o f t h e i n i t i a l s y s t e m d e p e n d s h e a v i l y o n t h e e x p e r i e n c e a n d b a c k g r o u n d o f t h e d e s i g n i n g e n g i n e e r . I f t h e w o r s t c a s e , p r o g r a m m e r s w r i t e c o d e d i r e c t l y f r o m r e q u i r e m e n t s w i t h n o i n t e r v e n i n g p r o c e s s . U n f o r t u n a t e l y , t h i s i s a v e r y c o m m o n i n d u s t r i a l p r a c t i c e . S i n c e h a r d w a r e i s s e e n a s a r e c u r r i n g c o s t i n t h e fi n a l p r o d u c t , s o f t w a r e d e s i g n i s o f t e n c o n s i d e r e d a t h r o w a w a y n u i s a n c e a n d h e n c e a m e n t a l i t y c a n d e v e l o p w h e r e t h e p r i m a r y g o a l i s s i m p l y g e t t i n g t h e c o d e t o r u n . A c o m m o n p r a c t i c e 1 4 1 i s t o d e v e l o p a n i n i t i a l v e r s i o n o f t h e s y s t e m r u n n i n g i n r e a l h a r d w a r e , t h e n c o u p l e i t w i t h t h e i n t e n d e d p h y s i c a l s y s t e m f o r i n i t i a l d e b u g g i n g [ 4 2 ] . 7 . 1 . 2 S t r u c t u r e d M e t h o d s R e a l T i m e S t r u c t u r e d A n a l y s i s ( R T S A ) t e c h n i q u e s a r e w e l l r e p r e s e n t e d b y t h e m e t h o d s o f W a r d a n d M e l l o r [ 3 8 ] a n d t h e m e t h o d o l o g i e s s u g g e s t e d b y H a t l e y a n d P i r b h a i [ 3 9 ] . T h e t w o m e t h o d s a r e v e r y c l o s e l y r e l a t e d a n d a r e c o n s i d e r e d t o g e t h e r i n t h i s s e c t i o n . R e a l - t i m e a n d e m b e d d e d s y s t e m s s t r u c t u r e d a p p r o a c h e s h a v e t h e i r r o o t s i n c l a s s i c a l s t r u c t u r e d a n a l y s i s t e c h n i q u e s u s e d f o r l a r g e m a i n f r a m e s y s t e m s [ 4 3 ] . S t r u c t u r e d a p p r o a c h e s u s e m o d i fi e d f o r m s o f d a t a fl o w d i a g r a m s t o d e n o t e t h e fl o w o f i n f o r m a t i o n t h r o u g h t h e s y s t e m . T h e c o m m o n m o d i fi c a t i o n u s e d b y W a r d a n d M e l l o r [ 3 8 ] , a n d l a t e r b y H a t l e y a n d P i r b h a i [ 3 9 ] , i s t o a u g m e n t t h e d a t a fl o w w i t h c o n t r o l fl o w s , d e n o t e d w i t h d o t t e d l i n e s , t h a t s h o w h o w a t r a n s f o r m a t i o n , o r “ P r o c e s s ” i s m o d i fi e d o r t u r n e d o n a n d o f f . T h e m e t h o d o l o g y s t a r t s w i t h t h e c o n s t r u c t i o n o f a c o n t e x t m o d e l , o r l e v e l 0 m o d e l , t h a t c o n t a i n s a s i n g l e t r a n s f o r m , o r p r o c e s s , a n d a l l o f t h e r e l e v a n t o b j e c t s i n t h e e n v i r o n m e n t . S p e c i a l e m p h a s i s i s p l a c e d o n t h e d e l i n e a t i o n b e t w e e n t h e s y s t e m a n d t h e e n v i r o n m e n t . T h e s i n g l e p r o c e s s r e p r e s e n t i n g t h e s y s t e m i s f u r t h e r b r o k e n d o w n i n t o p r o c e s s s c h e m a s a t h i g h e r l e v e l s o f d e t a i l . E a c h t r a n s f o r m a t i o n a t e a c h l e v e l c a n r e p r e s e n t a c o m p l e t e s e t o f l o w e r l e v e l t r a n s f o r m a t i o n s , t h u s p r o v i d i n g a h i e r a r c h i c a l v i e w o f t h e s y s t e m . I n h e r e n t l y , d a t a fl o w m o d e l s d o n o t s h o w p r o c e s s s e q u e n c e o r c o n t r o l . R T S A i n t r o d u c e s s e q u e n c e n u m b e r s o n t h e t r a n s f o r m a t i o n s t o p r o v i d e a s e n s e o f h o w t h e fl o w o c c u r s w i t h i n a s y s t e m . S i m i l a r l y , e m b e d d e d s y s t e m s m u s t d e a l w i t h a l a r g e a m o u n t o f c o n t r o l d e t a i l s , h e n c e t h e s e m e t h o d s i n t r o d u c e C o n t r o l F l o w D i a g r a m s , ( C F D ) t o s h o w h o w c o n t r o l f l o w s t h r o u g h a s y s t e m . W a r d a n d M e l l o r e x p l i c i t l y i n t r o d u c e p r o c e s s e s d r a w n a s d o t t e d l i n e c i r c l e s t h a t 1 4 2 a r e c o n t r o l - o n l y i n n a t u r e . U n d e r l y i n g a c o n t r o l p r o c e s s i s a fi n i t e s t a t e m a c h i n e , d e s c r i b e d e l s e w h e r e i n t h e R T S A d o c u m e n t a t i o n . H a t l e y a n d P i r b h a i ’ s n o t a t i o n r e p l a c e t h e d o t t e d l i n e “ b u b b l e ” w i t h a v e r t i c a l b a r t h a t h a s c o n t r o l fl o w s m o v i n g t o a n d f r o m i t . T h e v e r t i c a l b a r a l s o r e p r e s e n t s a fi n i t e s t a t e m a c h i n e d o c u m e n t e d e l s e w h e r e i n t h e m o d e l . R e fi n e m e n t f r o m r e q u i r e m e n t s i n t h e c o n t e x t m o d e l t o fi n a l c o d e p r o c e e d s i n s e v e r a l s t e p s . F i r s t , e a c h p r o c e s s i s r e fi n e d b y c r e a t i n g l o w e r l e v e l p r o c e s s e s . T h i s t y p e o f r e fi n e - m e n t s e r v e s t o d e c o m p o s e t h e p r o b l e m , b u t i t i s c l e a r l y a t o p - d o w n m e t h o d o l o g y , a n d t h u s d e p e n d e n t o n t h e i n i t i a l p a r t i t i o n i n g o f t h e p r o b l e m . H a t l e y a n d P i r b h a i q u o t e M i l l e r ’ s [ 4 4 ] “ s e v e n — p l u s - o r - m i n u s - t w o ” p r i n c i p l e 1 t o d e t e r m i n e h o w m u c h d e c o m p o s i t i o n i s r e q u i r e d a t a n y p a r t i c u l a r l e v e l . B a s i c a l l y , t h i s p r i n c i p l e s t a t e s t h a t h u m a n s d e a l b e s t w i t h f r o m fi v e t o n i n e o b j e c t s a t a t i m e , a n d t h e r e f o r e , a c c o r d i n g t o t h e t h e o r y , a r e q u i r e m e n t s m o d e l w i t h m o r e o r l e s s t h a n t h e s e n u m b e r s i s s u b o p t i m a l w i t h r e s p e c t t o t h e r e a d e r ’ s u n d e r s t a n d i n g . A t t h e b o t t o m o f t h e d e c o m p o s i t i o n s t r u c t u r e , e a c h p r o c e s s o r fl o w i s d e s c r i b e d w i t h a P S P E C f o r p r o c e s s e s , o r C S P E C f o r c o n t r o l s ( H a t l e y - P i r b h a i n o m e n c l a t u r e ) . P S P E C s a n d C S P E C s c o n t a i n “ s t r u c t u r e d E n g l i s h ” a n d p e r h a p s e q u a t i o n s t o d e s c r i b e e x a c t l y w h a t i s t o h a p p e n w i t h t h e c o n t r o l o r t r a n s f o r m a t i o n . T h i s l e v e l o f t h e p r o c e s s c o n s t i t u t e s t h e d e s i g n , a n d i t i s t h e i n t e n t i o n t h a t f r o m t h i s m a t e r i a l t h e c o d e i s g e n e r a t e d . S t r u c t u r e d m e t h o d s a r e n o t h i g h l y a m e n a b l e t o c o m p u t e r - b a s e d a n a l y s i s , e x c e p t f o r c e r t a i n c o n s i s t e n c y c h e c k s o n t h e d a t a - fl o w m o d e l s . F u r t h e r m o r e , t h e r e i s a c o n fl i c t b e t w e e n t h e fl o w - b a s e d n a t u r e o f t h e s p e c i fi c a t i o n a n d t h e f a c t t h a t m o s t e m b e d d e d s y s t e m s a r e i n h e r e n t l y s t a t e - b a s e d . W h e n p e r u s i n g t h e c o d e , i t i s d i f fi c u l t t o t r a c e t h e fl o w f r o m t h e r e q u i r e m e n t s a n a l y s i s i n f o r m a t i o n . I n g e n e r a l , t h e r e i s a p r o b l e m w i t h t h e c o r r e s p o n d e n c e 1 A c t u a l l y , t h i s p r i n c i p l e i s q u o t e d i n a n u m b e r o f w o r k s r e l a t e d t o g r a p h i c a l m e t h o d s i n c l u d i n g D o u - g l a s s [ 3 6 ] a n d E l l i s [ 3 7 ] . 1 4 3 b e t w e e n t h e a n a l y s i s v i e w a n d t h e d e t a i l d e s i g n v i e w b e c a u s e t h e c o d e w r i t i n g p r o c e s s a n d t h e d a t a m o d e l i n g p r o c e s s a r e f u n d a m e n t a l l y d i s j o i n t [ 4 5 ] . C o m p a r i s o n w i t h o u r A p p r o a c h A l t h o u g h w e s h a r e t h e c o n j e c t u r e t h a t g r a p h i c a l m o d e l s a r e e a s i e r t o c o n s t r u c t a n d c o m - p r e h e n d t h a n o t h e r m o d e l f o r m s , w e d i f f e r o n o t h e r a s p e c t s o f t h e d e s i g n p r o c e s s . T h e e m p h a s i s o f o u r a p p r o a c h i s p r e c i s e , e v e n e x e c u t a b l e , s e m a n t i c s w h i l e t h e s e m a n t i c s o f t h e R T S A m o d e l s a r e a t b e s t s e m i - f o r m a l [ 3 2 ] . F u r t h e r m o r e , w e e m b r a c e t h e o b j e c t - o r i e n t e d m e t h o d o l o g y a s a s u p e r i o r d e s i g n p a r a d i g m , w h i l e R T S A u s e s a t o p - d o w n f u n c t i o n a l d e c o m - p o s i t i o n a p p r o a c h . I n o u r a p p r o a c h , t h e b e h a v i o r o f t h e s y s t e m c a n b e c o n t i n u a l l y c h e c k e d t h r o u g h s i m u l a t i o n b y e x e c u t i n g u s e c a s e s c e n a r i o s w h i l e i n R T S A b e h a v i o r c a n o n l y b e c h e c k e d b y w r i t i n g c o d e . 7 . 1 . 3 R T O O S A E l l i s p r o p o s e s a m e t h o d o l o g y c a l l e d R e a l T i m e O b j e c t - O r i e n t e d S t r u c t u r e d A n a l y s i s ( R T O O S A ) [ 3 7 ] t h a t u s e s s t r u c t u r e d a n a l y s i s o f W a r d — M e l l o r ’ s t e c h n i q u e a n d a d d s o b j e c t s . T h e m o d e l i n g h e u r i s t i c s a n d n o t a t i o n c l o s e l y f o l l o w s t r u c t u r e d a n a l y s i s t e c h n i q u e s b u t t h e m o d e l s d i f f e r s o m e w h a t f r o m R T S A . E s s e n t i a l l y R T O O S A r e p l a c e s R T S A p r o c e s s e s w i t h o b j e c t s . R T O O S A u s e s t w o m a j o r m o d e l i n g c o m p o n e n t s c a l l e d t h e e s s e n t i a l r e q u i r e m e n t s m o d e l a n d t h e e s s e n t i a l o b j e c t s m o d e l . T h e e s s e n t i a l r e q u i r e m e n t s m o d e l c o n s i s t s o f t h e e x t e r n a l i n t e r f a c e s d i a g r a m ( E I D ) , t h e e x t e r n a l e v e n t s / r e s p o n s e l i s t ( E E R L ) a n d o b j e c t r e l a t i o n s h i p d i a g r a m s ( 0 R D ) . T h e E I D i s t h e c o u n t e r p a r t t o t h e c o n t e x t d i a g r a m i n s t r u c t u r e d m e t h o d s a n d d e l i n e a t e s t h e e x t e r n a l e n v i r o n m e n t f r o m t h e s y s t e m b o u n d a r y . T h e m o s t i m p o r t a n t c o m p o n e n t o f t h e 1 4 4 R T O O S A m o d e l s i s t h e E E R L . T h e E E R L i s a s i m p l e , n u m b e r e d l i s t o f e v e r y e v e n t t h a t t h e s y s t e m e x p e c t s t o e n c o u n t e r a n d t h e r e q u i r e d s y s t e m r e s p o n s e . T h e e n t i r e l i s t i s w r i t t e n i n n a t u r a l l a n g u a g e . F o r e x a m p l e , s y s t e m r e s p o n s e s m i g h t b e w r i t t e n : ( 1 . D o a c t i v i t y A , 2 . D o a c t i v i t y B , e t c . ) . T h e E E R L a l s o c o n t a i n s i n f o r m a t i o n o n e v e n t p r e c e d e n c e a n d c o n t a i n s o t h e r n o t a t i o n s a b o u t t h e t y p e o f t h e e v e n t . T h e E E R L i s f r e q u e n t l y r e f e r r e d t o t h r o u g h o u t t h e m e t h o d o l o g y a n d p r o v i d e s t h e s o u r c e o f i n f o r m a t i o n f o r o t h e r c o m p o n e n t s o f t h e r e q u i r e m e n t s m o d e l . T h e o b j e c t r e l a t i o n d i a g r a m ( O R D ) h i g h l i g h t s i n t e r d e p e n d e n c i e s a m o n g o b j e c t s i n t h e p r o b l e m s p a c e . W e n o t e t h a t t h e O R D i s n o t l i m i t e d t o o b j e c t s i n t h e s y s t e m , b u t r a t h e r i n c l u d e s e n v i r o n m e n t a l o b j e c t s . T h e O R D i s v e r y s i m i l a r t o a n E n t i t y R e l a t i o n s h i p d i a g r a m a n d d e t a i l s t h e s t a t i c d a t a r e l a t i o n s h i p b e t w e e n o b j e c t s . T h e O R D a l s o p r o v i d e s c a n d i d a t e s f o r o b j e c t fl o w d i a g r a m s t h a t w i l l m o d e l t h e b e h a v i o r o f t h e s y s t e m . T h e o t h e r m a j o r c o m p o n e n t o f t h e r e q u i r e m e n t s m o d e l , c a l l e d t h e e s s e n t i a l o b j e c t s m o d e l c o n t a i n s t h r e e c o m p o n e n t s : o b j e c t fl o w d i a g r a m s ( O F D ) , o b j e c t t e m p l a t e s , a n d t h e d a t a d i c t i o n a r y . T h e O F D i s e q u i v a l e n t t o a p r o c e s s s c h e m a i n R T S A e x c e p t p r o c e s s e s a r e r e p l a c e d w i t h o b j e c t s . R T O O S A h a s t h e e x p l i c i t c o n v e n t i o n t h a t o b j e c t s c a n b e d e c o m p o s e d , a n d i n f a c t a r e t r e a t e d a s s u b s y s t e m s . T h i s p a r a l l e l s t h e R T S A a p p r o a c h f o r d e c o m p o s i n g p r o c e s s s c h e m a s . O b j e c t t e m p l a t e s d e s c r i b e t h e fi e l d s a n d m e t h o d s i n e a c h o b j e c t a n d a r e a u x i l i a r y t o t h e O F D i t s e l f . C r e a t i n g c l a s s e s i n R T O O S A i s c o n s i d e r e d a d e s i g n a c t i v i t y . T h e e m p h a s i s i s o n o b j e c t s w i t h o u t r e g a r d t o t h e c l a s s i n w h i c h t h e y b e l o n g . D u r i n g t h e d e s i g n p h a s e , o b j e c t s a r e s i m p l y “ a p p r o p r i a t e l y ” g r o u p e d i n t o c l a s s e s f o r t h e i m p l e m e n t a t i o n p h a s e . 1 4 5 C o m p a r i s o n w i t h o u r A p p r o a c h E v e n t h o u g h o b j e c t s a r e u s e d i n R T O O S A , t h e m e t h o d o l o g y i s s t i l l v e r y m u c h a s t r u c t u r e d a p p r o a c h . D e t a i l e d b e h a v i o r i s n o t a t t r i b u t e d t o o b j e c t m e t h o d s o t h e r t h a n t h r o u g h t h e E E R L n a t u r a l l a n g u a g e d e s c r i p t i o n s . R T O O S A e m p h a s i z e s c a p t u r e o f r e q u i r e m e n t s i n a n e a s y t o u n d e r s t a n d ( i f i n c o n s i s t e n t ) m a n n e r . B y c o n t r a s t , o u r m e t h o d e m p h a s i z e s f o r m a l s e m a n t i c s f o r n o t a t i o n s a n d p l a c e s a h i g h e r l e v e l o f e m p h a s i s o n v e r i f y i n g a n d v a l i d a t i n g b e h a v i o r . O n t h e o t h e r h a n d , t h e E E R L a p p e a r s t o b e a u s e f u l d e v i c e f o r c o l l e c t i n g e v e n t s a n d r e s p o n s e s . 7 . 1 . 4 R O O M R e a l - T i m e O b j e c t O r i e n t e d M o d e l i n g ( R O O M ) [ 5 ] i s a n o b j e c t - o r i e n t e d m e t h o d f o r r e a l - t i m e a n d e m b e d d e d s y s t e m s b a s e d o n a f o r m a l , e x e c u t a b l e m o d e l i n g l a n g u a g e . S p e c i a l e m p h a s i s i s p l a c e d o n m o d e l i n g t h e a r c h i t e c t u r a l l e v e l s o f t h e s o f t w a r e . T h e m e t h o d i n c l u d e s g r a p h i c a l l y b a s e d m o d e l i n g n o t a t i o n s f o r o b j e c t r e l a t i o n s a n d f o r b e h a v i o r a l d e s c r i p t i o n s . T h e o b j e c t - e q u i v a l e n t i n R O O M i s c a l l e d a n a c t o r a n d i s c e n t r a l t o m o d e l i n g . A c t o r s e n c a p s u l a t e b e h a v i o r a n d s t a t e , a n d a r e o n l y a b l e t o c o m m u n i c a t e v i a s t r u c t u r e d m e s s a g e s t h r o u g h p o r t s . R O O M i s d i s t i n g u i s h e d f r o m m a n y m e t h o d s b y t h e r i g o r o f t h e m e s s a g e p a s s i n g s p e c i fi c a t i o n a n d m e s s a g i n g p r o t o c o l . S y n t a c t i c a l l y , a R O O M m e s s a g e i s a d a t a o b j e c t t h a t i n c o r p o r a t e s a m e s s a g e s i g n a l a t t r i b u t e , a m e s s a g e p r i o r i t y a t t r i b u t e a n d a n o p t i o n a l d a t a o b j e c t . M e s s a g e s a r e g r o u p e d i n t o p r o t o c o l s t h a t d e fi n e a s e t o f i n c o m i n g m e s s a g e s , a s e t o f o u t g o i n g m e s s a g e s , a n d o p t i o n a l l y a v a l i d m e s s a g e e x c h a n g e s e q u e n c e ( n o t c u r r e n t l y i m p l e m e n t e d i n R O O M t o o l s ) . A p r o t o c o l a s s o c i a t i o n w i t h a p o r t c o n v e y s a t y p e t o a p o r t , a n d t h e t y p e o f a n a c t o r i s d e t e r m i n e d b y t h e c o l l e c t i o n o f i t s p o r t t y p e s . P r o t o c o l s a r e a c e n t r a l R O O M c o n c e p t t o b o t h m o d e l i n g a n d a n a l y s i s . 1 4 6 A c t o r s c a n t h e m s e l v e s b e c o m p o s e d o f n e t w o r k s o f a c t o r s t h a t a r e c o n n e c t e d a n d c o m - m u n i c a t e w i t h i n t h e c o m p o s i t e a c t o r . A r b i t r a r y l e v e l s o f h i e r a r c h i c a l d e c o m p o s i t i o n i s p e r m i t t e d . B e h a v i o r i s c o n s i d e r e d a n o p t i o n a l a t t r i b u t e o f e a c h a c t o r , i n c l u d i n g c o m p o s i t e a c t o r s . T h u s , a c o m p o s i t e a c t o r m i g h t h a v e i t s o w n b e h a v i o r a t t r i b u t e s e p a r a t e f r o m t h e b e h a v - i o r o f i t c o n s t i t u e n t s . G r a p h i c a l l y , b e h a v i o r i s n o t w r i t t e n w i t h t h e a c t o r n o t a t i o n s b u t r a t h e r i n R O O M c h a r t s . R O O M c h a r t s a r e b a s e d o n e v e n t - d r i v e n b e h a v i o r a n d a v a r i a n t o f S t a t e c h a r t s [ 2 5 ] m o d i fi e d i n o r d e r t o m e e t t h e n e e d s o f t h e r e a l - t i m e e n v i r o n m e n t a n d t a k e a d v a n t a g e o f t h e o b j e c t p a r a d i g m . S t a t e t r a n s i t i o n s a r e t r i g g e r e d b y e v e n t s r e c e i v e d a s m e s s a g e s t h r o u g h a c t o r p o r t s . T h e R O O M d e v e l o p m e n t m e t h o d o l o g y i s s u g g e s t e d a s a s e r i e s o f m o d e l i n g h e u r i s t i c s r a t h e r t h a n a f o r m a l p r o c e d u r e . T h e p r o c e s s s t a r t s w i t h t h e c o n s t r u c t i o n o f a s e t o f r e q u i r e - m e n t s w r i t t e n a s a s e t o f s c e n a r i o s c o v e r i n g t y p i c a l a c t i o n s o f t h e s y s t e m . A n e a r l y s t e p i s t h e d e t e r m i n a t i o n o f t h e s y s t e m b o u n d a r y f r o m t h e e n v i r o n m e n t , t h e n s c e n a r i o s f r o m t h e r e q u i r e m e n t s h e l p d e r i v e k e y p r o t o c o l s t h a t c r o s s t h e e n v i r o n m e n t - s y s t e m b o u n d a r y . N e x t , a n e a r l y s t r u c t u r a l v i e w o f t h e s y s t e m i s c a p t u r e d w i t h a n i n i t i a l s e t o f a c t o r s . T h e i n i t i a l s e t o f a c t o r s i s u s u a l l y i m p l i e d b y t h e p h y s i c a l c o m p o n e n t s d e s c r i b e d i n t h e s c e n a r - i o s . A c t o r s t r u c t u r e , p r o t o c o l s t r u c t u r e , a n d c o n s e q u e n t l y d a t a s t r u c t u r e a r e t h e n f u r t h e r d e fi n e d . T h e b e h a v i o r o f a n a c t o r i s d e r i v e d b y s t u d y i n g t h e s c e n a r i o s i t m u s t s u p p o r t a n d t h e p r o t o c o l s t o w h i c h i t r e s p o n d s , a l t h o u g h n o m e n t i o n i s g i v e n a s t o h o w t o d e c i d e o n a c t o r r e s p o n s i b i l i t i e s . S i n c e R O O M c h a r t s a r e e x e c u t a b l e , i t i s a g o a l t o v a l i d a t e s c e n a r i o s a s e a r l y i n t h e p r o c e s s a s p o s s i b l e t h r o u g h s i m u l a t i o n . 1 4 7 C o m p a r i s o n w i t h o u r A p p r o a c h R O O M s h a r e s s e v e r a l c o m m o n a l i t i e s w i t h o u r a p p r o a c h s u c h a s t h e a b i l i t y t o e x e c u t e m o d - e l s , e a r l y s i m u l a t i o n , a n d t h e u s e o f o b j e c t s , b u t s i m i l a r i t i e s e n d t h e r e . R O O M ’ s s e m a n t i c s a r e d e fi n e d b y t h e R O O M l a n g u a g e , w h i c h d e s c r i b e s “ a c t o r s ” i n s t e a d o f o b j e c t s , w h i l e i n o u r a p p r o a c h a n y s e m a n t i c s i s p o s s i b l e d e p e n d i n g o n t h e h o m o m o r p h i c m a p p i n g a n d t h e t a r g e t l a n g u a g e c h o s e n . R O O M a p p e a r s t o h a v e n o f a c i l i t i e s f o r m o d e l c h e c k i n g o r a n y o t h e r f o r m o f v a l i d a t i o n o t h e r t h a n s i m u l a t i o n . I n o u r a p p r o a c h , t h e f o r m a l l a n g u a g e c a n b e t h e l a n g u a g e o f a m o d e l c h e c k i n g s y s t e m . S i m i l a r l y , R O O M h a s n o f a c i l i t i e s f o r m o d e l i n g p r e c i s e t i m i n g c o n s t r a i n t s . I n o u r a p p r o a c h , w e h a v e m a p p e d U M L s e m a n t i c s t o S P I N f o r m o d e l c h e c k i n g a n d t o V H D L f o r p r e c i s e t i m i n g s e m a n t i c s . A l t h o u g h R O O M i s g r o w i n g i n p o p u l a r i t y , U M L i s a l r e a d y i n w i d e s p r e a d i n d u s t r i a l u s e , a s a r e t h e t w o l a n g u a g e s ( V H D L a n d P r o m e l a ) w e h a v e t a r g e t e d . F u r t h e r m o r e , a s n e w , b e t t e r l a n g u a g e s a p p e a r , e i t h e r i n t h e i n d u s t r i a l r e a l m o r i n r e s e a r c h s e t t i n g s , w e c a n c o n s t r u c t a h o m o m o r p h i c m a p p i n g t o d e fi n e U M L s e m a n t i c s i n t h a t l a n g u a g e . T h e c o n c e p t o f a n “ a c t o r ” i n R O O M i s s l i g h t l y a s k e w f r o m t h e m o d e l i m p l i e d b y U M L . W e a r e a b l e t o m a t c h a n d f o r m a l i z e t h e U M L i n f o r m a l l y a c c e p t e d s e m a n t i c s o f o b j e c t s t h r o u g h o u t m e t a m o d e l m a p p i n g a p p r o a c h . R O O M a l s o e m p h a s i z e s “ p r o t o c o l s ” b e t w e e n o b j e c t s , b u t t h e s e m a n t i c s o f c o m m u n i c a t i o n s b e t w e e n o b j e c t s i s fi x e d . I n o u r a p p r o a c h , a s s e e n i n C h a p t e r 6 , t h e s e m a n t i c s o f m e s s a g e p a s s i n g b e t w e e n o b j e c t s c a n b e t a i l o r e d t o s u i t e t h e a p p l i c a t i o n . D y n a m i c m o d e l t r a n s i t i o n s i n R O O M h a v e l i m i t e d c a p a b i l i t y , b u t t h r o u g h o u r m a p p i n g , w e c a n r e a l i z e t h e f u l l r a n g e o f c a p a b i l i t i e s o n a U M L t r a n s i t i o n . F i n a l l y , R O O M i s b a s e d o n n o v i s u a l n o t a t i o n o t h e r t h a n R O O M - c h a r t s , f o r w h i c h t h e r e i s n o f o r m a l d e s c r i p t i o n , w h i l e o u r a p p r o a c h i s b a s e d o n U M L m e t a m o d e l s . T h i s h a s t w o i m p l i c a t i o n s : F i r s t , w e c a n c h e c k f o r c o n s i s t e n c y b e t w e e n v i s u a l m o d e l s a n d e x e c u t a b l e 1 4 8 m o d e l s , w h i l e R O O M c a n n o t . S e c o n d l y , a s U M L e v o l v e s , a n d i t s m e t a m o d e l i s m o d i fi e d , o u r a p p r o a c h c a n f o l l o w t h e e v o l u t i o n b y a l t e r i n g t h e m e t a m o d e l t o m e t a m o d e l m a p p i n g s . 7 . 1 . 5 R e a l - T i m e U M L D o u g l a s s [ 1 ] p r o p o s e s u s i n g U M L , w i t h s l i g h t m o d i fi c a t i o n s , f o r t h e c o n s t r u c t i o n o f r e a l - t i m e a n d e m b e d d e d s y s t e m s . R a t h e r t h a n a fi x e d m e t h o d o l o g y , a s e t o f 0 0 g u i d e l i n e s , b a s e d o n U M L d o c t r i n e , a r e s u g g e s t e d . T h e m e t h o d o l o g y c a p t u r e s r e q u i r e m e n t s w i t h u s e c a s e s c e n a r i o s a n d c l a s s m o d e l s . D o u g l a s s s u g g e s t s s t a r t i n g w i t h a c o n t e x t d i a g r a m s i m i l a r t o E l l i s [ 3 7 ] a n d W a r d - M e l l o r [ 3 8 ] , e x c e p t t h e d i a g r a m i s e x p r e s s e d i n u s e c a s e n o t a t i o n . T h e c o n t e x t d i a g r a m d e l i n e a t e s s y s t e m p a c k a g e s f r o m t h e e n v i r o n m e n t a n d d o c u m e n t s m a j o r s y s t e m l e v e l i n b o u n d e v e n t s a n d t h e i r c o r r e s p o n d i n g r e s p o n s e s . T h e m e t h o d o l o g y n e x t p r O p o s e s b u i l d i n g t h e c l a s s m o d e l . B a s e d o n t h e u s e c a s e s , s e v e r a l s t r a t e g i e s a r e s u g g e s t e d t o d e fi n e t h e o b j e c t / c l a s s s t r u c t u r e . T h e s e i n c l u d e : U n d e r l i n e t h e N o u n . T h e fi r s t s t r a t e g y w o r k s d i r e c t l y o n t h e c o n c e p t s t a t e m e n t p r i o r t o t h e c o n s t r u c t i o n o f u s e c a s e s . F u n d a m e n t a l l y , i t c a l l s f o r b u i l d i n g a t a b l e b y u n d e r l i n - i n g e a c h n o u n o r n o u n p h r a s e i n t h e c o n c e p t s t a t e m e n t t o d i s c o v e r p o t e n t i a l o b j e c t s i n t h e s y s t e m . T h i s a p p r o a c h h a s b e e n w i d e l y s u g g e s t e d b e f o r e [ 3 , 4 6 ] . I d e n t i f y R e a l - W o r l d i t e m s a n d p h y s i c a l d e v i c e s . T h i s s t r a t e g y c o r r e l a t e s r e a l a r t i - f a c t s o f t h e p r O p o s e d s y s t e m w i t h s o f t w a r e o b j e c t s . F o r e m b e d d e d s y s t e m s , t h i s c o r r e l a t i o n i s o f t e n v e r y g o o d a n d p r o d u c e s a r e a s o n a b l e c l a s s s t r u c t u r e . I d e n t i f y k e y c o n c e p t s . K e y c o n c e p t s a r e i m p o r t a n t a b s t r a c t i o n s w i t h i n t h e s y s t e m d e - s c r i p t i o n . F o r e x a m p l e , a t a s k s c h e d u l e c o u l d b e a n i m p o r t a n t o b j e c t t y p e f o r a c o n t r o l l e r . 1 4 9 I d e n t i f y t r a n s a c t i o n s . S o m e t y p e s o f t r a n s a c t i o n s a r i s i n g o u t o f t h e i n t e r a c t i o n o f o b j e c t s a r e o b j e c t s t h e m s e l v e s . I n t h e p r e v i o u s e x a m p l e , a s c h e d u l e ( a n o b j e c t ) m i g h t h a v e a n o r i g i n a t o r , a m o d i fi e r a n d a u s e r , w h o s e u s e s a r e b a s e d o n t h e t r a n s a c t i o n s s u r r o u n d i n g t h e u s e o f t h e s c h e d u l e . N e x t , u s e c a s e s c e n a r i o s a r e a p p l i e d t o t h e c o n s t r u c t e d c l a s s s t r u c t u r e f o r r e fi n e m e n t o f t h e s t r u c t u r e , i f r e q u i r e d , a n d t o d e t e r m i n e b e h a v i o r f o r e a c h c l a s s / o b j e c t . U s e c a s e i n f o r m a t i o n a l s o d r i v e s t h e c o n s t r u c t i o n o f U M L d y n a m i c m o d e l s , o n e p e r o b j e c t , w h i c h w i l l d e fi n e t h e d y n a m i c b e h a v i o r o f e a c h c l a s s . D o u g l a s s a d v o c a t e s t h e a p p l i c a t i o n o f d e s i g n p a t t e r n s , w h i c h a r e a b s t r a c t g e n e r a l i z a t i o n s o f a t y p e o f p r o b l e m . N o s p e c i fi c p r o c e s s i s p r o v i d e d t o fi n d , t h e n t r a n s f o r m a d e s i g n p a t t e r n i n t o a d e s i g n . H o w e v e r , o n c e a p a t t e r n h a s b e e n c h o s e n , t h e m e t h o d o l o g y s u g g e s t s r e a r r a n g i n g a n d a d a p t i n g t h e c l a s s s t r u c t u r e t o fi t t h e p a t t e r n d e e m e d a p p r o p r i a t e f o r t h e a p p l i c a t i o n . C o m p a r i s o n w i t h o u r A p p r o a c h B e c a u s e o u r p r i m a r y f o c u s f o r d e s i g n i n g e m b e d d e d s y s t e m s i s U M L , w e h a v e m u c h i n c o m m o n w i t h t h i s a p p r o a c h i n t e r m s o f m e t h o d o l o g y . W e a l s o s u g g e s t t h e c o n t e x t m o d e l b e c o n s t r u c t e d e a r l y a n d g e n e r a l l y f o l l o w a s i m i l a r p r o c e d u r e f o r a r r i v i n g a t t h e c l a s s m o d e l . H o w e v e r , w e d i f f e r i n a n u m b e r o f s i g n i fi c a n t p o i n t s . F i r s t , w e a d v o c a t e t h e d e l i n e a t i o n o f c l a s s r e s p o n s i b i l i t i e s e a r l y w h e r e D o u g l a s s d o e s n o t . P e r h a p s t h e g r e a t e s t d i f f e r e n c e b e t w e e n D o u g l a s s ’ s a p p r o a c h a n d o u r s l i e s i s v e r i fi c a t i o n o f b e h a v i o r . W e a s s i g n r i g o r o u s s e m a n t i c s t o t h e U M L d i a g r a m s a n d a d v o c a t e a n i t e r a t i v e a p p r o a c h o f s i m u l a t i o n a n d a n a l y s i s w h e r e D o u g l a s s ’ s m e t h o d s i s l a r g e l y b a s e d o n p a p e r a n a l y s i s o f U M L n o t a t i o n a n d a r e l i a n c e o n d e s i g n p a t t e r n s . D o u g l a s s r e l i e s s o l e l y o n a v i s u a l a n a l y s i s o f s e m i - f o r m a l d i a g r a m s t h a t a r e 1 5 0 a n a l y z e d b y h a n d . A k e y t o o u r r e s e a r c h i s t h e a b i l i t y t o n o t o n l y k n o w p r e c i s e s e m a n t i c s f o r d i a g r a m s , b u t a l s o t o a b l e t o s i m u l a t e a n d a n a l y z e s y s t e m b e h a v i o r b a s e d o n t h e U M L d i a g r a m s . 7 . 2 G r a p h i c a l L a n g u a g e s f o r E m b e d d e d S y s t e m s I n t h i s s e c t i o n , w e d e s c r i b e g r a p h i c a l m o d e l i n g l a n g u a g e s u s e d f o r e m b e d d e d s y s t e m s a n d d i s c u s s a n a l y s i s t e c h n i q u e s t h a t a r e p o s s i b l e w i t h e a c h . A l l l a n g u a g e s b e l o w , e x c e p t P e t r i n e t s a n d F S A s , a r e c o n s i d e r e d s e m i - f o r m a l s i n c e e a c h h a s a c l e a r l y d e fi n e d s e t o f s y n t a c t i c r u l e s f o r c o n s t r u c t i n g a g r a p h i c a l d e p i c t i o n b u t n o c o n s i s t e n t u n d e r l y i n g f o r m a l s e m a n t i c s . 7 . 2 . 1 D F D - C F D D a t a fl o w d i a g r a m s a n d C o n t r o l F l o w d i a g r a m s a r e u s e d p r i m a r i l y i n s t r u c t u r e d m e t h - o d s [ 4 3 , 3 8 , 3 9 , 3 7 ] , a l t h o u g h t h e F u n c t i o n a l m o d e l o f O M T i s a d a t a fl o w m o d e l . I n D F D n o t a t i o n , c i r c l e s r e p r e s e n t p r o c e s s e s o r t r a n s f o r m a t i o n s a n d t h e d i r e c t e d a r c s c o n n e c t i n g c i r - c l e s r e p r e s e n t fl o w s t h r o u g h t h e m o d e l . T h e m o d e l c a n b e c h e c k e d f o r c o n s i s t e n c y t o e n s u r e i n b o u n d fl o w s m a t c h o u t g o i n g fl o w s , b u t o t h e r w i s e l i t t l e b e h a v i o r a l m o d e l i n g i s p o s s i b l e . C o m p a r i s o n w i t h o u r A p p r o a c h U s e o f D F D ’ S i s i n c o m p a r a b l e w i t h o u r a p p r o a c h . U M L h a s n o d a t a fl o w d i a g r a m s a n d d a t a fl o w d i a g r a m s h a v e n o d e s c r i p t i o n o f b e h a v i o r , a n d t h e r e f o r e a r e n o e x e c u t a b l e . 7 . 2 . 2 F l o w c h a r t s F l o w c h a r t s [ 4 7 ] , a l s o k n o w n a s c o n t r o l - fl o w g r a p h s , a r e a l g o r i t h m - o r i e n t e d m o d e l s t h a t d e - p i c t t h e fl o w o f c o n t r o l t h r o u g h a s e t o f n o d e s . B a s i c a l l y , a fl o w c h a r t i s a s e t o f n o d e s o f 1 5 1 v a r i o u s s h a p e s c o n n e c t e d b y d i r e c t e d a r c s t h a t d e p i c t c o n t r o l fl o w s b e t w e e n t h e n o d e s . R e c t - a n g u l a r n o d e s c o n t a i n a s e r i e s o f o n e o r m o r e s t a t e m e n t s , o f t e n i n a p r o g r a m m i n g - l a n g u a g e - l i k e n o t a t i o n a n d s p e c i f y a s p e c i fi c s e t o f a c t i o n s t o b e t a k e n a t t h a t p o i n t . D i a m o n d - s h a p e d n o d e s d e p i c t a d e c i s i o n p o i n t w h e r e t h e fl o w o f c o n t r o l c a n p r o c e e d a l o n g o n e o f s e v e r a l ( u s u a l l y t w o o r t h r e e ) o u t b o u n d a r c s . S o m e fl o w c h a r t n o t a t i o n s c o n t a i n f u r t h e r n o d e t y p e s , s u c h a s c i r c l e s t o d e p i c t a n I / 0 o p e r a t i o n o r a n o v a l t o d e p i c t a p r o c e d u r e c a l l . F l o w b e t w e e n n o d e s i s s t r i c t l y o n a t r a n s i t i o n o n c o m p l e t i o n ( T O C ) b a s i s . E a c h n o d e m u s t c o m p l e t e i t s a c t i o n b e f o r e a t r a n s i t i o n o c c u r s , a n d t h e r e i s n o s u p p o r t f o r e v e n t t r a n s i t i o n . C o n c u r r e n c y i s n o t s u p p o r t e d n o r i s a n y f o r m o f h i e r a r c h i c a l d e c o m p o s i t i o n . F l o w c h a r t s a r e u s e d i n a d h o c m e t h o d s a n d i n s t r u c t u r e d m e t h o d s . C o m p a r i s o n w i t h o u r A p p r o a c h F l o w c h a r t s a r e a l g o r i t h m - b a s e d d i a g r a m s o f m o d e l s a n d d o n o t d i r e c t l y r e p r e s e n t s t a t e m a - c h i n e s . F u r t h e r m o r e , fl o w c h a r t s h a v e n o s e n s e o f o b j e c t s , o r e v e n m o d u l a r i z a t i o n . U M L s e q u e n c e a n d c o l l a b o r a t i o n d i a g r a m s a r e s i m i l a r t o fl o w c h a r t s , b u t w e d o n o t p r o v i d e m a p - p i n g s f o r t h e s e t w o d i a g r a m s . 7 . 2 . 3 F i n i t e S t a t e M a c h i n e s F S A S i m p l e fi n i t e s t a t e m a c h i n e s [ 4 8 ] c o n s i s t o f b o x e d n o d e s c o n n e c t e d b y d i r e c t e d a r c s . E a c h n o d e r e p r e s e n t s a s t a t e a n d t r a n s i t i o n s b e t w e e n s t a t e s a r e w r i t t e n o n t h e a r c s b e t w e e n s t a t e s . T h e r e a r e a n u m b e r o f a n a l y s i s t e c h n i q u e s f o r t h i s s i m p l e a n d w e l l - k n o w n c o m p u t e r s c i e n c e c o m p u t i n g m o d e l , a n d f o r v e r y s i m p l e s y s t e m s , t h e s t a t e m o d e l w o r k s w e l l . T h e m a j o r p r o b l e m f r o m w h i c h t h e F S A s u f f e r s i s s t a t e e x p l o s i o n . D e s c r i b i n g e v e n s i m p l e p r o c e s s e s , l i k e c o u n t i n g , r e q u i r e s a p o t e n t i a l l y l a r g e n u m b e r o f s t a t e s , c a l l e d t h e s t a t e e x p l o s i o n p r o b l e m . 1 5 2 S t a t e e x p l o s i o n a r i s e s b e c a u s e s i m p l e F S A s r e q u i r e a s e p a r a t e s t a t e t o h a n d l e a n y c h a n g e s i n s t a t e . A v a r i a b l e t h a t c o u l d t a k e t e n v a l u e s r e q u i r e s a t l e a s t t e n s t a t e s , a n d w h e r e m o r e t h a n o n e v a r i a b l e i s i n v o l v e d t h e c o m b i n a t i o n s e x p l o d e e x p o n e n t i a l l y . F o r t h i s r e a s o n , t h e s i m p l e a d d i t i o n o f v a r i a b l e s t o s t a t e s g r e a t l y a d d s t o t h e s t a t e m a c h i n e m o d e l ’ s u s e f u l n e s s . F i n a l l y , i t i s w e l l - k n o w n t h a t a F S A c a n o n l y r e p r e s e n t a c l a s s o f p r o b l e m s t h a t c a n b e d e s c r i b e d b y r e g u l a r g r a m m a r s [ 4 8 ] . C o n s e q u e n t l y , t h e e x t e n d e d s t a t e m a c h i n e i s m o r e w i d e l y u s e d f o r s y s t e m d e s i g n . C o m p a r i s o n w i t h o u r A p p r o a c h F i n i t e s t a t e m a c h i n e s a r e a s u b s e t o f U M L d y n a m i c m o d e l s . A n y F S A c a n b e e n c a p s u l a t e d w i t h i n a n o b j e c t . 7 . 2 . 4 E x t e n d e d F i n i t e S t a t e M a c h i n e E x t e n d e d F i n i t e S t a t e M a c h i n e s a r e fi n i t e s t a t e m a c h i n e s i n w h i c h e x t e n d e d a c t i o n s , s u c h a s s e t t i n g a n d t e s t i n g v a r i a b l e s , c a n a p p e a r w i t h i n a s t a t e . D e p e n d i n g o n t h e p a r t i c u l a r c o n v e n t i o n f o r t h e e x t e n d e d s t a t e m a c h i n e , a c t i o n s c a n b e c a r r i e d o u t w h i l e i n a s t a t e , o r d u r i n g t h e s t a t e t r a n s i t i o n . T r a n s i t i o n s c a n o c c u r b a s e d o n s i m p l e e v e n t s , o r b a s e d o n p r e d i c a t e s , s u c h a s t e s t i n g t h e v a l u e o f a v a r i a b l e i n t h e s t a t e m a c h i n e . T h e r a n g e o f a c t i o n s p e r m i t t e d w i t h i n a s t a t e v a r y , b u t c a n b e a s e x t e n s i v e a s t h e ’ e x e c u t i o n ’ o f s m a l l s u b p r o g r a m s . E x t e n d e d S t a t e M a c h i n e s a r e c o m m o n l y u s e d t o d e s c r i b e e m b e d d e d s y s t e m b e h a v i o r b e c a u s e t h e y a r e r e a s o n a b l y c l e a r w h i l e r e t a i n i n g a l a r g e a m o u n t o f e x p r e s s i b i l i t y p o w e r . F u r t h e r m o r e , e x t e n d e d s t a t e m a c h i n e s r e p r e s e n t i n g m o d e r a t e l y c o m p l e x s y s t e m s c a n b e w r i t t e n w i t h f a r f e w e r s t a t e s t h a n a F S A . E x t e n d e d s t a t e m a c h i n e s d o n o t t o t a l l y s o l v e t h e s t a t e e x p l o s i o n p r o b l e m , b u t t h e y d o a d d r e s s i t t o a l a r g e e x t e n t . 1 5 3 C o m p a r i s o n w i t h o u r A p p r o a c h E x t e n d e d F S A s a r e a s u b s e t o f U M L d y n a m i c m o d e l s a n d l a c k m o s t o f t h e f a c i l i t i e s o f U M L . 7 . 2 . 5 S t a t e c h a r t s S t a t e c h a r t s [ 2 5 ] a r e a p a r t i c u l a r t y p e o f e x t e n d e d fi n i t e s t a t e m a c h i n e n o t a t i o n i n t r o d u c e d b y H a r e l . T h e m o s t n o t a b l e f e a t u r e o f S t a t e c h a r t s i s i t s h i e r a r c h i c a l c o m p o s i t i o n o f s t a t e d i a g r a m s . E a c h s t a t e w i t h i n a S t a t e c h a r t d i a g r a m c a n i t s e l f c o n t a i n a l o w e r - l e v e l s t a t e m a c h i n e . S t a t e c h a r t s p e r m i t p r o g r a m m i n g - l a n g u a g e - l i k e n o t a t i o n w i t h i n a s t a t e t o c a r r y o u t a c t i o n s o n e n t r y t o a s t a t e , e x i t f r o m a s t a t e a n d a t c e r t a i n o t h e r t i m e s s p e c i fi e d b y e v e n t a r r i v a l s . S t a t e c h a r t s a l s o a s s u m e t h e e x i s t e n c e o f e v e n t s t h a t a r e b r o a d c a s t a c r o s s t h e e n t i r e S t a t e c h a r t m o d e l a n d u s e d f o r t r a n s i t i o n s . S t a t e c h a r t t r a n s i t i o n s c a n b e g u a r d e d , a n d a c t i o n - o n — t r a n s i t i o n i s d e fi n e d f o r s i m p l e a c t i o n s . U M L h a s a d o p t e d a m o d i fi e d f o r m o f S t a t e c h a r t s a s i t s d y n a m i c m o d e l i n g l a n g u a g e . A n i m p o r t a n t m o d i fi c a t i o n t o S t a t e c h a r t s f o r U M L i s t h a t e v e n t s a r e n o t b r o a d c a s t , b u t r a t h e r m u s t b e s e n t t o s p e c i fi c o b j e c t s . T h e p r i n c i p l e d r a w b a c k t o S t a t e c h a r t s i s d e t e r m i n i n g t h e e x a c t s e m a n t i c s o f a n y p a r t i c u - l a r S t a t e c h a r t m o d e l . S t a t e c h a r t s i t s e l f h a s n o o f fi c i a l s e m a n t i c s [ 4 9 ] o t h e r t h a n i s d e fi n e d b y s i m u l a t o r s [ 4 9 ] t h a t c a n e x e c u t e S t a t e c h a r t m o d e l s . F o r e x a m p l e , U M L a d o p t s S t a t e c h a r t s t r a n s i t i o n n o t a t i o n o f e v e n t [ g u a r d ] / a c t i o n “ m e s s a g e “ m e s s a g e . . . . T h e U M L s e m a n t i c s s e e m t o s u g g e s t t h a t w h e n e v e n t o c c u r s , t h e t r a n s i t i o n i s t a k e n i f g u a r d i s t r u e [ 5 0 ] , w h i c h m a t c h e s S t a t e c h a r t s s e m a n t i c s [ 4 9 ] . I t i s p o s s i b l e t o w r i t e a U M L t r a n s i t i o n w i t h n o e v e n t . T h e s e m a n t i c s s e e m t o t h e n s u g g e s t t h a t a t r a n s i t i o n o c c u r s w h e n t h e s o u r c e s t a t e a c t i o n s a r e c o m p l e t e ( t r a n s i t i o n o n c o m p l e t i o n c o n c e p t ) . W h a t s h o u l d h a p p e n t h o u g h , o n a n o - 1 5 4 e v e n t , g u a r d e d t r a n s i t i o n w h e n t h e g u a r d i s f a l s e ? T h e s e m a n t i c s s e e m t o s u g g e s t t h a t t h e m o d e l s h o u l d i n d e fi n i t e l y r e m a i n i n t h e s o u r c e s t a t e s i n c e s t a t e a c t i o n s c a n n o t r e — e x e c u t e , a n d t h e r e f o r e t h e t r i g g e r i n g “ e v e n t ” ( a c t i o n c o m p l e t i o n ) c a n n o t o c c u r a g a i n . H o w e v e r , e x - a m p l e s i n t h e U M L N o t a t i o n M a n u a l [ 5 0 ] i n d i c a t e t h a t t h e t r a n s i t i o n g u a r d i s e v a l u a t e d c o n t i n u o u s l y . C o m p a r i s o n w i t h o u r A p p r o a c h U M L u s e s m o d i fi e d S t a t e c h a r t s f o r d y n a m i c m o d e l s . A s m e n t i o n e d a b o v e , t h e r e i s n o f o r m a l l y d e fi n e d s e m a n t i c s f o r S t a t e c h a r t s , o t h e r t h a n t h a t d e fi n e d b y i t s e x e c u t i o n . I n o u r a p p r o a c h s e m a n t i c s i s g e n e r a t e d b y t h e h o m o m o r p h i c m a p p i n g f r o m t h e d y n a m i c m o d e l t o a f o r m a l l a n g u a g e . T h e r e f o r e , i n a s e n s e , w e p r o v i d e s e m a n t i c s f o r a S t a t e c h a r t - l i k e n o t a t i o n . 7 . 2 . 6 S p e c c h a r t s S p e c c h a r t s [ 5 1 ] i s a l a n g u a g e b a s e d o n V H D L d e s i g n e d f o r t h e s p e c i fi c a t i o n o f e m b e d d e d s y s t e m s . S p e c c h a r t s a r e b a s e d o n t h e P r o g r a m - S t a t e M a c h i n e ( P S M ) m o d e l , w h i c h i s a c o m b i n a t i o n o f h i e r a r c h i c a l / c o n c u r r e n t fi n i t e s t a t e m a c h i n e m o d e l a s f o u n d i n S t a t e c h a r t s , a n d a p r o g r a m m i n g m o d e l . T h e P S M m o d e l i s e s s e n t i a l l y t h e s a m e a s S t a t e c h a r t s e x c e p t t h a t l e a f s t a t e s m a y c o n t a i n a n a r b i t r a r i l y c o m p l e x s e q u e n c e o f p r o g r a m m i n g l a n g u a g e c o n s t r u c t s . E a c h p r o g r a m s t a t e i n a S p e c c h a r t s m o d e l i s o n e o f t h r e e t y p e s : L e a f i s a p r o g r a m s t a t e t h a t i s n o t f u r t h e r d e c o m p o s e d a n d c o n t a i n s a n a r b i t r a r i l y c o m p l e x s e q u e n c e o f p r o g r a m m i n g l a n g u a g e c o n s t r u c t s . C o n c u r r e n t l y - c o m p o s e d i s a p r o g r a m s t a t e t h a t c o n s i s t s o f c o n c u r r e n t s u b - s t a t e s . T h i s i s t h e s a m e c o n c e p t a s f o u n d i n U M L d y n a m i c m o d e l s . B o t h S p e c c h a r t s a n d U M L 1 5 5 d y n a m i c m o d e l s u s e t h e s a m e d o t t e d - l i n e n o t a t i o n b e t w e e n c o n c u r r e n t e l e m e n t s o f t h e s u b - s t a t e s . S e q u e n t i a l l y - c o m p o s e d i s a p r o g r a m s t a t e c o m p o s e d o f s u b - s t a t e s t h a t a r e n o t c o n c u r - r e n t . T h e P S M m o d e l d e l i n e a t e s t w o k i n d s o f t r a n s i t i o n s w i t h i n t h e s t a t e m o d e l : T r a n s i t i o n o n C o m p l e t i o n ( T O C ) a n d T r a n s i t i o n I m m e d i a t e ( T I ) . B o t h t y p e s o f t r a n s i t i o n s m a y b e g u a r d e d . A T O C a r c i s t r a v e r s e d w h e n t h e s o u r c e p r o g r a m s t a t e h a s fi n i s h e d i t s c o m p u t a t i o n a n d t h e g u a r d i s t r u e . A T 1 a r e i s t r a v e r s e d w h e n s o m e a c t i o n s p e c i fi e d o n t h e a r c o c c u r s . T h e t e x t u a l v e r s i o n o f S p e c c h a r t s i s a l m o s t i d e n t i c a l t o V H D L w i t h a f e w a d d i t i o n a l c o n s t r u c t s . T h e p r o g r a m m i n g l a n g u a g e u s e d w i t h i n a l e a f s t a t e i s , i n f a c t , V H D L s e q u e n - t i a l s t a t e m e n t s . T h e e n t i r e b e h a v i o r o f a n e m b e d d e d s y s t e m i s s p e c i fi e d i n t h e S p e c c h a r t s g r a p h i c a l l a n g u a g e e x c e p t a t t h e l e a f s t a t e s w h e r e p r o g r a m m i n g s t a t e m e n t s a r e u s e d . T h e a u t h o r s c l a i m t h a t b e h a v i o r d i f fi c u l t t o c a p t u r e g r a p h i c a l l y i n s t a t e n o t a t i o n c a n b e e a s - i l y c a p t u r e d w i t h s e q u e n t i a l p r o g r a m m i n g l a n g u a g e s t a t e m e n t s i n a m u c h m o r e c o m p a c t m a n n e r . B e h a v i o r o f t h e m o d e l i s d e t e r m i n e d b y s i m u l a t i o n , w h i c h i s a c h i e v e d t h r o u g h e x e c u t i o n o f a V H D L m o d e l r e p r e s e n t i n g t h e s y s t e m . I n o r d e r t o s i m u l a t e t h e m o d e l , t h e g r a p h i c a l p o r t i o n o f t h e S p e c c h a r t s e m b e d d e d s y s t e m d e s c r i p t i o n i s c o n v e r t e d t o a t e x t u a l f o r m t h a t i s b a s e d o n e x t e n d e d V H D L . N e x t , t h e e x t e n d e d V H D L s t a t e m e n t s a r e t r a n s l a t e d i n t o V H D L p r o g r a m s t a t e m e n t s . F i n a l l y , t h e V H D L m o d e l c a n b e e x e c u t e d . C o m p a r i s o n w i t h o u r A p p r o a c h S p e c c h a r t s i s r e a l l y a n d e x t e n s i o n o f V H D L w h i l e o u r a p p r o a c h u s e s V H D L a s a f o r m a l t a r g e t l a n g u a g e . W h i l e b o t h S p e c c h a r t s a n d o u r a p p r o a c h p r o d u c e e x e c u t a b l e m o d e l s , o u r 1 5 6 e x e c u t a b l e m o d e l i s b a s e d o n a m a p p i n g o f a v i s u a l m o d e l i n g n o t a t i o n ( U M L ) . 7 . 2 . 7 P e t r i N e t s P e t r i n e t s a r e u s u a l l y r e p r e s e n t e d a s b i p a r t i t e d i r e c t e d m u l t i g r a p h s c o n s i s t i n g o f p l a c e s , r e p r e s e n t e d b y c i r c l e s , t r a n s i t i o n s , r e p r e s e n t e d b y b a r s , a n i n p u t f u n c t i o n , r e p r e s e n t e d b y d i r e c t e d a r c s f r o m p l a c e s t o t r a n s i t i o n s , a n d a n o u t p u t f u n c t i o n r e p r e s e n t e d b y d i r e c t e d a r c s f r o m t r a n s i t i o n s t o p l a c e s . P e t r i n e t s a r e m a r k e d w h e n t h e r e a r e o n e o r m o r e t o k e n s , d r a w n a s l a r g e d o t s , i n o n e o r m o r e p l a c e s . F o r m a l l y , a p e t r i n e t i s a 4 - t u p l e ( P , T , I , 0 ) r e p r e s e n t i n g a s e t o f p l a c e s , a s e t o f t r a n s i t i o n s , t h e i n p u t f u n c t i o n t h a t m a p s t r a n s i t i o n s t o p l a c e s ( s o u r c e s f o r t h e t r a n s i t i o n s ) , a n d a n o u t p u t f u n c t i o n m a p p i n g t r a n s i t i o n s t o p l a c e s ( d e s t i n a t i o n s f r o m a t r a n s i t i o n ) . T h e e x e c u t i o n o f a p e t r i n e t i s c o n t r o l l e d b y t h e n u m b e r a n d d i s t r i b u t i o n o f t o k e n s i n t h e p l a c e s . A p e t r i n e t e x e c u t e s b y fi r i n g o n e o r m o r e t r a n s i t i o n s , w h i c h m o v e s t o k e n s a l o n g e a c h t r a n s i t i o n ’ s o u t p u t a r e t o e a c h p l a c e a t t h e e n d o f t h e a r c . A t r a n s i t i o n i s e n a b l e d i f t h e r e a r e t o k e n s i n a l l t h e i n p u t ( p o i n t i n g t o t h e t r a n s i t i o n ) p l a c e s . A t r a n s i t i o n i s fi r e d i f i t i s e n a b l e d a n d a p r e d i c a t e g u a r d i n g t h e t r a n s i t i o n i s t r u e . P e t r i n e t s a r e v e r s a t i l e a s a m o d e l i n g t o o l , a l t h o u g h l a r g e s y s t e m s r e q u i r e l a r g e p e t r i n e t g r a p h s , u s u a l l y l a r g e r t h a n e q u i v a l e n t s t a t e m a c h i n e m o d e l s ( i n t e r m s o f t h e n u m b e r o f n o d e s a n d a r c s ) . I n a d d i t i o n , a l a r g e p e t r i n e t i s n o t a s e a s y t o r e a d a s a fi n i t e s t a t e m a c h i n e . A p p l i e d P e t r i N e t s [ 5 2 ] a r e u s e d p r i m a r i l y f o r m o d e l i n g h i g h l y c o n c u r r e n t p r o c e s s e s a n d h a v e b e e n u s e d i n a n u m b e r o f d o m a i n s . T h e s e m a n t i c s o f p e t r i n e t e x e c u t i o n i s f o r m a l l y d e fi n e d , a n d a n e n t i r e t h e o r y o f p e t r i n e t s h a s b e e n e s t a b l i s h e d . P e t r i n e t s a r e a t l e a s t a s p o w e r f u l a s fi n i t e s t a t e m a c h i n e s b e c a u s e fi n i t e s t a t e m a c h i n e s c a n b e t r a n s l a t e d t o p e t r i 1 5 7 n e t s , a l t h o u g h t h e c o n v e r s e i s n o t u n i v e r s a l l y t r u e . C o m p a r i s o n w i t h o u r A p p r o a c h P e t r i n e t s a n d o u r a p p r o a c h a r e o r t h o g o n a l , b u t s h a r e s o m e c o m m o n p r o p e r t i e s . P e t r i n e t s h a v e a f o r m a l s e m a n t i c s d e fi n e d f o r a p e t r i n e t d i a g r a m , a l t h o u g h t h e s e m a n t i c s i s fi x e d . I n o u r a p p r o a c h , t h e s e m a n t i c s o f t h e d i a g r a m c a n b e v a r i e d . P e t r i n e t s d o n o t h a v e t h e c o n c e p t o f a n o b j e c t , w h i l e o u r a p p r o a c h i s c e n t e r e d o n t h e o b j e c t c o n c e p t . B o t h a p p r o a c h e s p r o d u c e e x e c u t a b l e m o d e l s t h a t c a n b e a n a l y z e d w i t h a u t o m a t e d t o o l s , b u t a n a l y s i s o f p e t r i n e t s i s d i f f e r e n t f r o m a n a l y s i s o f s t a t e m a c h i n e s . P e t r i n e t s m a y b e m o r e e x p r e s s i v e t h a n U M L ( a n F S A c a n b e e x p r e s s e d a s a p e t r i n e t , b u t t h e c o n v e r s e i s n o t n e c e s s a r i l y t r u e ) b u t t h e i r p o w e r i s m o s t l i k e l y i n c o m p a r a b l e . F o r e x a m p l e , d e s c r i p t i o n s o f o b j e c t s a n d u s e c a s e s c e n a r i o s i n a p e t r i n e t s e e m d i f fi c u l t o r i m p o s s i b l e . F o r a g i v e a p p l i c a t i o n , p e t r i n e t s a r e g e n e r a l l y l a r g e r a n d m u c h l e s s i n t u i t i v e t h a n U M L d i a g r a m s t o t h e e x t e n t t h a t a l a r g e s y s t e m d e s i g n e n t i r e l y i n p e t r i n e t s i s p r o b a b l y n o t f e a s i b l e . U M L d i a g r a m s a r e m o r e i n t u i t i v e , a l t h o u g h s e m i - f o r m a l , b u t o u r m a p p i n g t o a t a r g e t l a n g u a g e p r o v i d e s s e m a n t i c s a s p r e c i s e a s p e t r i n e t s e m a n t i c s . 7 . 3 F o r m a l i z a t i o n o f U M L T h e P U M L P r o j e c t [ 5 3 , 2 2 , 2 3 , 2 1 ] i s a n e f f o r t t o f o r m a l i z e t h e m e a n i n g o f U M L d i a g r a m s u s i n g t h e Z l a n g u a g e a s i t s f o r m a l i z a t i o n v e h i c l e . I n [ 2 3 ] t h e a u t h o r s s u g g e s t t h r e e g e n e r a l a p p r o a c h e s t o f o r m a l i z i n g O O m o d e l i n g c o n c e p t s : s u p p l e m e n t a l , O O - e x t e n d e d f o r m a l n o - t a t i o n a n d m e t h o d s i n t e g r a t i o n a p p r o a c h e s . T h e s u p p l e m e n t a l a p p r o a c h a d d s m o r e f o r m a l s t a t e m e n t s t o s u p p l a n t t h e i n f o r m a l p a r t s o f a m o d e l i n g l a n g u a g e . I n t h e O O - e x t e n d e d a p p r o a c h , a n e x i s t i n g l a n g u a g e , Z f o r e x a m p l e , i s e x t e n d e d w i t h 0 0 f e a t u r e s . O n e s u c h 1 5 8 e x a m p l e i s Z + + [ 5 4 ] . I n t h e m e t h o d s i n t e g r a t i o n a p p r o a c h , i n f o r m a l m o d e l i n g t e c h n i q u e s a r e i n t e g r a t e d w i t h , o r m a p p e d t o , f o r m a l l a n g u a g e s t o m a k e t h e m m o r e a m e n a b l e t o f o r m a l a n a l y s i s . B o t h o u r a p p r o a c h a n d t h e m e t h o d s o f B o u r d e a u - C h e n g [ 1 8 ] , a n d W a n g [ 3 5 ] fi t i n t o t h i s l a t t e r c a t e g o r y . R a t h e r t h a n g e n e r a t e f o r m a l s p e c i fi c a t i o n s f r o m i n f o r m a l 0 0 m o d e l s a n d t h e n r e q u i r e d e s i g n e r s t o m a n i p u l a t e t h e i n f o r m a l s p e c i fi c a t i o n s , t h e P U M L a p p r o a c h [ 2 1 ] p r o v i d e s f o r m a l s e m a n t i c s d i r e c t l y f o r t h e g r a p h i c a l U M L n o t a t i o n s . T h e m a p p i n g t o a f o r m a l l a n g u a g e i s t h e n u s e d a s a j u s t i fi c a t i o n f o r s u b s e q u e n t m a n i p u l a t i o n s o f t h e g r a p h i c a l f o r m o f U M L . I n [ 2 3 ] i t i s p o i n t e d o u t t h a t t h e d i a g r a m s a l o n e a r e u s u a l l y n o t e x p r e s s i v e e n o u g h t o d e fi n e a l l p r o p e r t i e s . T h e y s u g g e s t t h e u s e o f O C L o r Z a s a n o n - g r a p h i c a l , p r e c i s e l a n g u a g e t o r i g o r o u s l y d e fi n e p r o p e r t i e s n o t e x p r e s s i b l e i n t h e U M L g r a p h i c a l n o t a t i o n . A m a j o r d r a w b a c k o f t h e c u r r e n t P U M L w o r k i s i t s i n a b i l i t y t o d e a l w i t h a n y t h i n g b u t t h e s t a t i c s t r u c t u r e o f U M L [ 2 3 , 2 1 ] . I n e f f e c t t h i s m e a n s P U M L a d d s s e m a n t i c s t o t h e c l a s s a n d o b j e c t d i a g r a m s b u t a d d s n o t h i n g t o a n y o f t h e d y n a m i c d i a g r a m s , s u c h a s t h e S t a t e c h a r t d i a g r a m o r t h e s e q u e n c e d i a g r a m . T h i s d i f fi c u l t y p r i m a r i l y s t e m s f r o m t h e n a t u r e o f Z , i n w h i c h i t i s v e r y d i f fi c u l t t o d e s c r i b e d y n a m i c b e h a v i o r . C o m p a r i s o n w i t h o u r A p p r o a c h A c c o r d i n g t o [ 2 3 ] , o u r a p p r o a c h w o u l d b e c l a s s i fi e d a s m e t h o d s i n t e g r a t i o n b u t i t i s d i f fi c u l t t o s e e h o w m a p p i n g U M L c l a s s s t r u c t u r e s t o Z d i f f e r s . I n P U M L , t h e m a p p i n g f r o m U M L t o Z i s c a l l e d a m e a n i n g f u n c t i o n b u t i t p e r f o r m s e s s e n t i a l l y t h e s a m e f u n c t i o n a s o u r h o m o m o r p h i s m b e t w e e n m e t a m o d e l s . T h e m a j o r d i f f e r e n c e s , t h e n , a r e t h a t w e m a p t o a v a r i e t y o f f o r m a l l a n g u a g e s s u c h a s V H D L a n d S M V . S i n c e t h e f o r m a l l a n g u a g e s w e u s e i n c l u d e b e h a v i o r s e m a n t i c s , w e c a n p r o v i d e a r i g o r o u s s e m a n t i c s f o r b e h a v i o r a s w e l l 1 5 9 a s s t r u c t u r e . T h e i r a p p r o a c h u s e s o n l y c l a s s d i a g r a m s w h i l e w e m a p c l a s s d i a g r a m s a n d d y n a m i c d i a g r a m s , a n d w e m a y b e a b l e t o m a p m o r e U M L d i a g r a m s f o r p r e c i s e s e m a n t i c s . O n t h e o t h e r h a n d , t h e P U M L u s e o f Z f o r U M L c l a s s s t r u c t u r e o p e n s u p m o r e a v e n u e s f o r s o p h i s t i c a t e d a n a l y s i s s u c h a s p r o v i n g e q u i v a l e n c e b e t w e e n c l a s s s t r u c t u r e s ( b u t , a g a i n l i m i t e d t o c l a s s e s ) . O u r i n t e n t i s t o p r o v i d e a p r e c i s e s e m a n t i c s s o t h a t a p r a c t i c i n g d e s i g n e r c a n p r e c i s e l y d e t e r m i n e t h e p r o p e r t i e s a n d b e h a v i o r o f a s y s t e m u n d e r c o n s t r u c t i o n , w h i l e i t a p p e a r s t h e P U M L e f f o r t l e a n s t o w a r d s a t t e m p t s t o m a t h e m a t i c a l l y m o d i f y a n d m a n i p u l a t e c l a s s s t r u c t u r e . T h i s i s n o t t o s u g g e s t t h a t w e c a n n o t m a n i p u l a t e t h e c l a s s s t r u c t u r e . W e d o , i n f a c t , s u g g e s t m e t a m o d e l m o d i fi c a t i o n s t e p s f o r t h e t a r g e t m e t a m o d e l , w h i c h i s m o d e l m a n i p u l a t i o n . W e f e e l t h a t d i r e c t e x e c u t i o n o f t h e m o d e l a n d v e r i fi c a t i o n o f m o d e l p r o p e r t i e s t h r o u g h a n a l y s i s i s a m o r e p r a c t i c a l m e a n s f o r v e r i f y i n g s y s t e m p r o p e r t i e s . 7 . 3 . 1 O C L T h e O b j e c t C o n s t r a i n t L a n g u a g e [ 5 5 ] ( O C L ) i s a p r o p o s e d p a r t o f U M L i n t e n d e d t o c o n - s t r a i n c l a s s m o d e l s b e y o n d w h a t i s p o s s i b l e t h r o u g h g r a p h i c a l n o t a t i o n s a l o n e . T h e U M L c l a s s m o d e l i n c l u d e s n o t a t i o n a l c o n s t r a i n t s b u t t h e s e c o n s t r a i n t s a r e w r i t t e n i n n a t u r a l l a n - g u a g e a n d a r e c o n s i d e r e d t o h a v e t h e s t a t u s o f n o t e s . O C L i s a n a t t e m p t t o f o r m a l i z e t h e c l a s s m o d e l c o n s t r a i n t p r o c e s s . O C L e x p r e s s i o n s a r e e i t h e r o f a p r e d e fi n e d O C L t y p e o r o f a t y p e r e l a t e d t o t h e c l a s s m o d e l i n w h i c h t h e O C L o c c u r s . D o t n o t a t i o n i s u s e d t o r e f e r t o a t t r i b u t e s o f a c l a s s , o r m o r e c o r r e c t l y , i n s t a n c e v a r i a b l e s o f p o t e n t i a l o b j e c t s o f a c l a s s . F o r e x a m p l e , f o r a c l a s s C i r c l e d e s c r i b i n g c i r c l e s i n a g r a p h i c a l e n v i r o n m e n t , C i r c l e . r a d i u s > 0 c o n s t r a i n s t h e r a d i u s a t t r i b u t e t o b e g r e a t e r t h a n z e r o . O C L e x p r e s s i o n s c a n r e f e r t o O C L t y p e s , c l a s s e s , a n d a s s o c i a t i o n e n d p o i n t s . I n t h e l a t t e r c a s e , t h e r e f e r e n c e i s t o t h e c l a s s a t t h e e n d o f t h e 1 6 0 a s s o c i a t i o n e n d p o i n t . O C L i n c l u d e s a g g r e g a t e t y p e s s e t , b a g a n d s e q u e n c e , a l t h o u g h a n a g g r e g a t i o n o f a n a g g r e g a t e , s u c h a s a s e t o f s e t s , i s a l w a y s f l a t t e n e d b y O C L r u l e s . T h i s t u r n s o u t t o b e a f a t a l fl a w i n O C L [ 5 6 ] b e c a u s e s e t s o f t u p l e s c a n n o t b e r e p r e s e n t e d . W h i l e n o t a c t u a l l y e x e c u t a b l e , O C L u s e s p r o c e d u r a l , e x e c u t i o n p a r a d i g m t o s p e c i f y c o n s t r a i n t s . C o n s e q u e n t l y , a c o n s t r a i n t f r e q u e n t l y i n c l u d e s a l g o r i t h m i c o r p r o g r a m m i n g - l i k e p o r t i o n s t h a t s p e c i f y h o w s o m e p o r t i o n o f t h e c o n s t r a i n t i s t o b e c o m p u t e d . I n c l u d e d w i t h t h i s c a p a b i l i t y , O C L h a s t h e n o t i o n o f n a v i g a t i o n t h r o u g h t h e c l a s s d i a g r a m i n o r d e r t o g a t h e r v a l u e s o r r e a c h a s p e c i fi c o b j e c t . I t i s d e m o n s t r a t e d i n [ 5 6 ] t h a t O C L i s n o t T u r i n g c o m p l e t e d u e t o i t s l a c k o f a b i l i t y t o g e n e r a t e w h i l e - l i k e l o o p s . A f r e q u e n t u s e o f O C L i s t o s p e c i f y a c o n d i t i o n a s a q u e r y o f t h e o b j e c t d i a g r a m . F o r e x a m p l e : P o l y g o n . a l l I n s t a n c e s - > s e l e c t ( p : P o l y g o n l p . v e r t i c e s - > s i z e = 3 ) q u e r i e s a l l i n s t a n c e s o f o b j e c t s o f c l a s s P o l y g o n l o o k i n g f o r t h o s e w i t h t h e v e r t i c e s a t t r i b u t e s e t t o 3 . T h e s e l e c t p o r t i o n i s t h e a c t u a l q u e r y w h i l e t h e l e f t m o s t p a r t o f t h e s t a t e m e n t f o r m s a n i t e r a t o r o v e r t h e s e t o f o b j e c t s . T h i s p a r t i c u l a r q u e r y c o n s t r a i n s a l l p o l y g o n s t o b e t r i a n g l e s . C o d d [ 5 7 ] p r o p o s e d t h a t t h e m i n i m u m c a p a b i l i t y o f a n y r e a s o n a b l e q u e r y l a n g u a g e u s i n g t h e r e l a t i o n a l m o d e l c o u l d b e d e s c r i b e d w i t h R e l a t i o n a l A l g e b r a . M o r e o v e r , a n y r e l a t i o n a l a l g e b r a m u s t p o s s e s s fi v e o p e r a t i o n s : p r o j e c t i o n , j o i n , u n i o n , d i f f e r e n c e , a n d s e l e c t i o n , i n o r d e r t o b e c o m p l e t e [ 5 8 ] . I t i s s h o w n i n [ 5 6 ] t h a t O C L i s n o t c o m p l e t e w i t h r e s p e c t t o t h i s m o d e l . W e m u s t t h e r e f o r e c o n c l u d e t h a t O C L i s n o t a n a c c e p t a b l e l a n g u a g e f o r t h e f o r m a l i z a t i o n o f c o n s t r a i n t s w i t h i n U M L . 1 6 1 C o m p a r i s o n w i t h o u r A p p r o a c h O C L i s p r i m a r i l y i n t e n d e d f o r c o n s t r a i n i n g c l a s s d i a g r a m s a n d h a s n o r o l e i n t h e U M L d y n a m i c m o d e l , w h i l e w e a r e p r i m a r i l y c o n c e r n e d w i t h m o d e l b e h a v i o r f r o m a d y n a m i c s t a n d p o i n t . T h e r e f o r e , O C L a n d o u r a p p r o a c h a d d r e s s f u n d a m e n t a l l y d i f f e r e n t p r o b l e m s . 7 . 4 F o r m a l i z a t i o n o f O O a n d O t h e r N o t a t i o n s 7 . 4 . 1 F u s i o n F u s i o n [ 5 9 , 6 0 ] i s a w e l l - d e fi n e d ( a l t h o u g h n o t f o r m a l ) d e v e l o p m e n t p r o c e s s t h a t l e a d s t h e d e v e l o p m e n t t e a m f r o m i n i t i a l r e q u i r e m e n t s t h r o u g h i m p l e m e n t a t i o n o f a n o b j e c t - o r i e n t e d s y s t e m . T h e m e t h o d o l o g y u s e s a v a r i e t y o f m o d e l s t h r o u g h o u t t h r e e p r i m a r y s t a g e s : 0 A n a l y s i s : p r o d u c e s a d e c l a r a t i v e s p e c i fi c a t i o n o f w h a t t h e s y s t e m d o e s . 0 D e s i g n : p r o d u c e s a n a b s t r a c t m o d e l o f h o w t h e s y s t e m w i l l i m p l e m e n t t h e r e q u i r e d b e h a v i o r . 0 I m p l e m e n t a t i o n : p r o d u c e s t h e c o d e f r o m t h e d e s i g n . T h r o u g h o u t a l l p h a s e s o f t h e d e v e l o p m e n t p r o c e s s i m p o r t a n t c o n c e p t s a n d a s s u m p t i o n s a r e r e c o r d e d i n a d a t a d i c t i o n a r y . A d a t a d i c t i o n a r y i s a c o m p i l a t i o n o f t h e s t r u c t u r e a n d p r o p e r t i e s o f e v e r y d a t a i t e m u s e d i n t h e s y s t e m . A d a t a d i c t i o n a r y r e m o v e s t h e a m b i g u i t y o n d i a g r a m s w h e n a d a t a i t e m i s m e n t i o n e d o n l y b y n a m e . T h e p r o c e s s b e g i n s w i t h a n i n f o r m a l r e q u i r e m e n t s d o c u m e n t f r o m w h i c h i s p r o d u c e d a n o b j e c t m o d e l a n d a n i n t e r f a c e m o d e l . T h e o b j e c t m o d e l i s a s t a t i c d e s c r i p t i o n o f t h e r e l a t i o n s h i p b e t w e e n p o t e n t i a l o b j e c t s i n t h e s y s t e m a n d t h e e n v i r o n m e n t . A m o d i fi e d f o r m o f E n t i t y - R e l a t i o n s h i p d i a g r a m s a r e u s e d f o r t h i s m o d e l . T h e m o d e l d e l i b e r a t e l y 1 6 2 c o n t a i n s n o n o t i o n o f m e t h o d s o r o t h e r d y n a m i c b e h a v i o r , a l l o f w h i c h i s d e f e r r e d u n t i l l a t e r . F u r t h e r m o r e , c l a s s e s a r e n o t d e s c r i b e d a t t h i s t i m e , a l s o d e f e r r e d u n t i l l a t e r i n t h e d e s i g n p h a s e . A n i m p o r t a n t m o d e l i n g s t e p i s t h e d e t e r m i n a t i o n o f t h e s y s t e m o b j e c t m o d e l t h a t i s d e l i n e a t e d o n t h e o b j e c t m o d e l b y e n c l o s i n g w i t h i n a s y s t e m b o u n d a r y o n l y t h o s e o b j e c t s c o n s i d e r e d w i t h i n t h e s y s t e m . T h i s s t e p i s i m p o r t a n t b e c a u s e i t d e fi n e s t h e r e q u i r e m e n t s o f t h e i n t e r f a c e m o d e l , a d d r e s s e d n e x t . T h e i n t e r f a c e m o d e l , w h i c h d e s c r i b e s t h e b e h a v i o r o f t h e e n t i r e s y s t e m , a c t u a l l y c o n s i s t s o f t h r e e s u b m o d e l s : o p e r a t i o n a l s c h e m a , l i f e c y c l e s , a n d s c e n a r i o s . T h e o p e r a t i o n a l m o d e l d e c o m p o s e s s y s t e m b e h a v i o r i n t o d i s c r e t e o p e r a t i o n s b a s e d o n t h e e x c h a n g e o f e v e n t s . T h e o p e r a t i o n a l m o d e l i s w r i t t e n i n n a t u r a l l a n g u a g e a n d d e s c r i b e s p r e c o n d i t i o n s a n d p o s t c o n - d i t i o n s f o r s y s t e m O p e r a t i o n s . L i f e c y c l e s a n d s c e n a r i o s a r e b a s e d o n u s e c a s e s a n d d e fi n e a l l o w a b l e s e q u e n c e s o f o p e r a t i o n s a n d e v e n t s . D u r i n g t h e d e s i g n p h a s e , r e s p o n s i b i l i t i e s f o r b e h a v i o r a r e d i s t r i b u t e d b e t w e e n o b j e c t s . T h e F u s i o n d e s i g n a p p r o a c h f o c u s e s fi r s t o n d e c i d i n g h o w t h e s y s t e m o p e r a t i o n s a r e t o b e r e a l i z e d , w i t h a c t u a l c l a s s s t r u c t u r e d e f e r r e d u n t i l l a t e r . T h e fi r s t s e t o f m o d e l s d e v e l o p e d d u r i n g t h e d e s i g n p h a s e a r e t h e o b j e c t i n t e r a c t i o n g r a p h s . O n e O b j e c t i n t e r a c t i o n g r a p h i s d e v e l o p e d f o r e a c h s y s t e m o p e r a t i o n t o s h o w w h i c h o b j e c t s a r e i n v o l v e d a n d h o w t h e y c o m m u n i c a t e t o r e a l i z e t h e s y s t e m o p e r a t i o n . T h e i n f o r m a t i o n f o r t h e o b j e c t i n t e r a c t i o n g r a p h i s d e r i v e d f r o m t h e O p e r a t i o n a l m o d e l . O b j e c t s a r e d e n o t e d o n t h e g r a p h w i t h r e c t a n g l e s a n d t h e m e s s a g e fl o w i s d e n o t e d b y d i r e c t e d a r c s . T h e a r c s a r e a n n o t a t e d t o i n d i c a t e t h e t y p e o f c o m m u n i c a t i o n a n d t h e s e q u e n c e o f i n t e r a c t i o n . R e fi n e m e n t t a k e s p l a c e d u r i n g t h e c o n s t r u c t i o n o f a n O b j e c t i n t e r a c t i o n g r a p h w h e n a c o n t r o l l e r i s c h o s e n f r o m t h e s e t o f o b j e c t s i n v o l v e d i n t h e O p e r a t i o n . T h e c o n t r o l l e r r e q u i r e s c o l l a b o r a t o r s , s o m e o f w h i c h m a y h a v e n o t y e t b e e n d e fi n e d . N e x t , e x t r a o b j e c t s 1 6 3 a n d c o m m u n i c a t i o n p a t h s a r e a d d e d a s r e q u i r e d t o c o m p l e t e t h e O b j e c t i n t e r a c t i o n g r a p h . T h e d e s i g n i s c o m p l e t e d w i t h v i s i b i l i t y g r a p h s , c l a s s d e s c r i p t i o n s , a n d i n h e r i t a n c e g r a p h s . W h e n t h e o b j e c t i n t e r a c t i o n g r a p h s a r e c o n s t r u c t e d , t h e a s s u m p t i o n i s m a d e t h a t a l l o b j e c t s h a v e v i s i b i l i t y t o a l l o t h e r o b j e c t s . I n a n i m p l e m e n t a t i o n , t h i s m a y n o t b e t r u e , h e n c e t h e v i s i b i l i t y g r a p h i s c o n s t r u c t e d t o r e s o l v e p e r m a n e n t a n d t r a n s i e n t r e f e r e n c e r e q u i r e m e n t s f o r o b j e c t s . A n a l y s i s t h r o u g h t h e F u s i o n p r o c e s s i s i m p l e m e n t e d a s a s e r i e s o f c h e c k l i s t s a n d g u i d e - l i n e s . M o d e l s a r e n o t e x e c u t a b l e . C o d i n g p r o c e e d s f r o m t h e fi n a l s e t o f d e s i g n m o d e l s d i r e c t l y . C o m p a r i s o n w i t h o u r A p p r o a c h F u s i o n i s i n t e n d e d a s a m e t h o d o l o g y f o r b u i l d i n g l a r g e r s c a l e s y s t e m s a n d i s n o t s p e c i fi c a l l y o r i e n t e d t o r e a l - t i m e a n d e m b e d d e d s y s t e m s . F u r t h e r m o r e , e v e n t h o u g h t h e F u s i o n p r o c e s s i s c a r e f u l l y d e s c r i b e d , t h e m o d e l s a r e a t b e s t s e m i - f o r m a l , a n d m o s t l y i n f o r m a l , b e c a u s e t h e y a r e w r i t t e n i n n a t u r a l l a n g u a g e . O u r a p p r o a c h i s b a s e d o n f o r m a l s e m a n t i c s a n d v e r i fi c a t i o n o f t h e c o n s t r u c t e d m o d e l s . F u s i o n p r o v i d e s n o w a y t o v e r i f y a m o d e l u n t i l t h e c o d e i s c o n s t r u c t e d . I t h a s b e e n p r o p o s e d [ 6 1 ] , h o w e v e r , t h a t F u s i o n b e m o d i fi e d t o a d d a Z - l i k e n o t a t i o n t o o b j e c t b e h a v i o r . T h e n o t a t i o n i s l i m i t e d t o p r e — a n d p o s t c o n d i t i o n s o n m e t h o d s a n d i s p r i m a r i l y i n t e n d e d a s a r e fi n e m e n t t o o l . 7 . 4 . 2 T R O L L T R O L L [ 6 2 ] i s a f o r m a l l a n g u a g e d e s i g n e d f o r t h e c o n c e p t u a l m o d e l i n g o r r e q u i r e m e n t s p h a s e i n t h e d e v e l o p m e n t o f a s y s t e m . T R O L L i s c o m p o s e d o f s e v e r a l s u b l a n g u a g e s s u p - 1 6 4 p o r t i n g a d e c l a r a t i v e , l o g i c - b a s e d s t y l e o f s y s t e m s p e c i fi c a t i o n w i t h s t r u c t u r i n g m e c h a n i s m s f r o m o b j e c t - o r i e n t e d d a t a m o d e l s . A l l o f T R O L L ’ s s e m a n t i c s a r e d e fi n e d i n t e r m s o f t r a n s - l a t i o n s t o t e m p o r a l l o g i c , i n c l u d i n g b o t h f u t u r e - t e n s e a n d p a s t - t e n s e d i a l e c t s , s o t h a t a s - s e r t i o n s c a n b e m a d e a b o u t t h e h i s t o r y o f o b j e c t s a s w e l l a s t h e e v o l u t i o n o f e v e n t s a n d a t t r i b u t e v a l u e s . T R O L L b r i n g s t o g e t h e r r e a l - t i m e c o n c e p t s ( i n t e r m s o f e v e n t s a n d p r o c e s s e s ) w i t h d a t a b a s e c o n c e p t s . I n t h i s f r a m e w o r k , a n o b j e c t i s d e fi n e d a s a p o s s i b l e s e q u e n c e o f e v e n t s a n d a t t r i b u t e s t h a t a r e o b s e r v a b l e p r o p e r t i e s c h a n g e d b y e v e n t s . A c l a s s i s c o n s i d e r e d a t y p e a n d i s d e fi n e d b y a c l a s s t e m p l a t e t h a t d e s c r i b e s p o s s i b l e i n s t a n c e s o f t h e c l a s s . I n a d d i t i o n t o a t t r i b u t e s , e a c h o b j e c t s p e c i fi c a t i o n c o n t a i n s a l i s t o f a l l o w a b l e e v e n t s a l o n g w i t h a n y p a r a m e t e r s t h e e v e n t s c a r r y a n d v a l u a t i o n r u l e s t h a t d e fi n e h o w a t t r i b u t e s v a l u e s c h a n g e w i t h t h e o c c u r r e n c e o f d e fi n e d e v e n t s . V a l u a t i o n r u l e s a r e b a s e d o n a f o r m o f fi r s t o r d e r l o g i c . E v e n t p r e c o n d i t i o n s a r e s p e c i fi e d i n a p e r m i s s i o n s s e c t i o n o f t h e t e m p l a t e . E v e n t s a r e n o t a l l o w e d t o o c c u r i f t h e p r e c o n d i t i o n i s n o t s a t i s fi e d . S i m i l a r l y , t h e o b l i g a t i o n s s e c t i o n s p e c i fi e s p o s t c o n d i t i o n s t h a t m u s t b e m e t b e f o r e t h e o b j e c t c a n e n d i t s l i f e - c y c l e . O t h e r s e c t i o n s o f t h e t e m p l a t e s p e c i f y a l l o w a b l e a t t r i b u t e e v o l u t i o n a n d i n v a r i a n t c o n d i t i o n s u s i n g t e m p o r a l l o g i c n o t a t i o n s . A m a j o r p o r t i o n o f a c l a s s s p e c i fi c a t i o n i s c o n s u m e d b y t h e b e h a v i o r s p e c i fi c a t i o n . A s u f fi c i e n t n u m b e r o f d e c l a r a t i v e t e m p o r a l l o g i c f o r m u l a e t o s p e c i f y b e h a v i o r m a y w e l l b e q u i t e l a r g e . A s a c o n v e n i e n t a l t e r n a t i v e , T R O L L s u p p o r t s t h e s p e c i fi c a t i o n o f b e h a v i o r t h r o u g h p a t t e r n s . A p a t t e r n i s e s s e n t i a l l y a p r o c e s s d e s c r i p t i o n w r i t t e n i n a C S P - l i k e l a n - g u a g e . T h e p r o c e s s d e s c r i p t i o n r e f e r e n c e s e v e n t s a n d c a n c o n t a i n e v e n t s e q u e n c e c o n s t r a i n t s a n d n o t a t i o n s , a n d r e f e r e n c e s t o a t t r i b u t e v a l u e s w i t h i n t h e o b j e c t . 1 6 5 I n o r d e r t o S p e c i f y a n e n t i r e s y s t e m , t h e r e m u s t b e a m e a n s t o s p e c i f y t h e r e l a t i o n s h i p b e t w e e n o b j e c t s . T R O L L i n c l u d e s a r e l a t i o n s h i p c o n s t r u c t t h a t c o n s t r a i n s t h e d a t a v a l u e s e x c h a n g e d b e t w e e n o b j e c t s a n d s p e c i fi e s t h e a l l o w a b l e s e q u e n c e o f e v e n t s f o r o b j e c t i n t e r a c - t i o n s . T h e e v e n t s e q u e n c e s p e c i fi c a t i o n s m a y b e a r b i t r a r i l y c o m p l e x a n d u s e t h e f u l l r a n g e o f t e m p o r a l o p e r a t o r s . N O s p e c i fi c p r o c e s s m e t h o d o l o g y i s i d e n t i fi e d w i t h T R O L L . T h e l a n g u a g e i s i n t e n d e d t o b e u s e d a f t e r a l l r e l e v a n t o b j e c t s a n d e v e n t s h a v e b e e n i d e n t i fi e d i n t h e e n v i r o n m e n t . I n s t e a d , i t i s i n t e n d e d t h a t a p r e c i s e m o d e l w i t h r i g o r o u s s e m a n t i c s b e p o s s i b l e w h i l e t h e s p e c i fi c p r o c e s s f o r m o d e l c o n s t r u c t i o n i s l e f t t o t h e u s e r . C o m p a r i s o n w i t h o u r a p p r o a c h W h i l e T R O L L i s a f o r m a l l a n g u a g e w i t h s e m a n t i c s r o o t e d i n t e m p o r a l l o g i c , t h e r e i s n o m e c h a n i s m t o v e r i f y b e h a v i o r a l p r o p e r t i e s t h r o u g h m o d e l e x e c u t i o n , m o d e l c h e c k i n g , o r p r o v e r s . T R O L L i s a l s o n o n - g r a p h i c a l , i n t h e t r a d i t i o n o f L a r c h [ 6 3 ] , w h i l e o u r a p p r o a c h i s l a r g e l y b a s e d o n g r a p h i c a l m o d e l i n g l a n g u a g e s . W h i l e w e s t a r t w i t h a s e m i - f o r m a l g r a p h i c a l m o d e l i n U M L a n d a t t a c h p r e c i s e s e m a n t i c s t h r o u g h m a p p i n g t o a f o r m a l l a n g u a g e , t h e T R O L L m o d e l e r m u s t w o r k i n a f o r m a l l a n g u a g e f r o m t h e s t a r t . C o u p l e d w i t h t h e e x t e n s i v e u s e o f t e m p o r a l l o g i c , t h e T R O L L p r a c t i t i o n e r w i l l r e q u i r e m o r e k n o w l e d g e a n d m o d e l i n g s o p h i s t i c a t i o n t h a n i s r e q u i r e d i n o u r a p p r o a c h . 7 . 4 . 3 F o r m a l i z e d O M T T h e O b j e c t M o d e l i n g T e c h n i q u e ( O M T ) i s a g r a p h i c a l l y b a s e d m e t h o d o l o g y d e v e l o p e d b y R u m b a u g h , e t a l [ 3 ] t o f a c i l i t a t e o b j e c t - o r i e n t e d d e s i g n a n d a n a l y s i s . O M T m o d e l s h a v e t h r e e p r i m a r y c o m p o n e n t s : 1 6 6 O b j e c t M o d e l : T h e O b j e c t m o d e l c a p t u r e s t h e s t a t i c r e l a t i o n s h i p b e t w e e n c l a s s e s a n d i s e q u i v a l e n t t o t h e U M L c l a s s m o d e l . D y n a m i c M o d e l : T h e O M T d y n a m i c m o d e l d e s c r i b e s t h e b e h a v i o r o f O b j e c t s i n a v a r i a n t o f t h e S t a t e c h a r t n o t a t i o n . T h e O M T d y n a m i c m o d e l s e r v e s t h e s a m e p u r p o s e a s t h e U M L d y n a m i c m o d e l . F u n c t i o n a l M o d e l : T h e f u n c t i o n a l m o d e l i s a d a t a fl o w d i a g r a m d e p i c t i n g h o w d a t a fl o w s t h r o u g h a n d i s t r a n s f o r m e d b y , p r o c e s s e s w i t h i n t h e s y s t e m . B o u r d e a u a n d C h e n g [ 1 8 ] f o r m a l i z e d t h e o b j e c t m o d e l b y d e fi n i n g a m a p p i n g f r o m t h e o b j e c t m o d e l t o a n a l g e b r a i c s p e c i fi c a t i o n . I n t h e i r a p p r o a c h , s e t s o f o b j e c t i n s t a n c e s d r a w n f r o m a n o b j e c t m o d e l r e p r e s e n t a n a l g e b r a t h a t m u s t c o n f o r m t o a n a l g e b r a i c s p e c i fi c a t i o n a l s o d e r i v e d f r o m t h e O b j e c t m o d e l . S u b s e q u e n t l y , W a n g [ 3 5 , 1 9 , 2 0 , 3 3 ] f o r m a l i z e d O M T b y f o r m a l i z i n g a n d c o m b i n i n g t h e t h r e e O M T m o d e l s a n d s u g g e s t e d a m e t h o d o l o g y f o r d e s i g n i n g o b j e c t o r i e n t e d s y s t e m s . W a n g ’ s a p p r o a c h [ 1 9 ] u s e s t h e B o u r d e a u - C h e n g f o r m a l i z a t i o n o f t h e o b j e c t m o d e l a n d f o r m a l i z e s t h e d y n a m i c m o d e l b y m a p p i n g i t t o a p r o c e s s m o d e l w r i t t e n i n L O T O S . T o f o r m a l i z e t h e f u n c t i o n a l m o d e l , W a n g [ 2 0 ] r e d e fi n e d i t s r o l e a n d i n t r o d u c e d t w o n e w m o d e l s : t h e o b j e c t f u n c t i o n a l m o d e l ( O F M ) a n d t h e s e r v i c e r e fi n e m e n t f u n c t i o n a l m o d e l ( S R F M ) . T h e O F M m o d e l s t h e s e r v i c e s p r o v i d e d b y a n o b j e c t a n d d e s c r i b e s d a t a fl o w s i n a n d o u t o f s e r v i c e s . E a c h O F M s h o w s o n l y t h e i n p u t s a n d o u t p u t s e x t e r n a l t o t h e o b j e c t t h a t i m p l e m e n t t h e f u n c t i o n s . E a c h s e r v i c e i s s h o w n g r a p h i c a l l y w i t h i n t h e O b j e c t a s a o v a l l a b e l e d w i t h t h e n a m e o f t h e s e r v i c e . N o f u r t h e r d e t a i l s o f t h e s e r v i c e a r e d e p i c t e d i n t h e O F M . 1 6 7 T h e S R F M r e fi n e s t h e s e r v i c e s O f a n o b j e c t i n t o fi n e r g r a i n e d s e r v i c e s a n d o b j e c t s r e - q u i r e d t o i m p l e m e n t t h e h i g h e r l e v e l s e r v i c e . I n t h i s a p p r o a c h , a n a g g r e g a t e o b j e c t o f m o r e d e t a i l e d o b j e c t s i s p r o d u c e d b y r e fi n e m e n t i n o r d e r t o i m p l e m e n t t h e b e h a v i o r o f t h e h i g h e r l e v e l ( a g g r e g a t e ) o b j e c t . W a n g ’ s d e v e l o p m e n t m e t h o d o l o g y f o l l o w s a w e l l - d e fi n e d e i g h t s t e p p r o c e s s [ 3 3 ] . I n t h e fi r s t t h r e e s t e p s , t h e s y s t e m o b j e c t m o d e l , f u n c t i o n a l m o d e l a n d d y n a m i c m o d e l a r e p r o d u c e d , r e s p e c t i v e l y . B e c a u s e o f t h e r e fi n e m e n t s t r a t e g y u s e d , t h e o r i g i n a l s y s t e m i s c o n s i d e r e d o n e l a r g e o b j e c t c o n t a i n i n g s e r v i c e s r e q u i r e d b y t h e o v e r a l l s y s t e m . T h i s v i e w i s r e fi n e d i n t o a g g r e g a t e s o f o b j e c t s a s t h e p r o c e s s c o n t i n u e s . I n S t e p 4 , t h e o b j e c t m o d e l i s r e fi n e d i n t e r m s o f o b j e c t s a n d s e r v i c e s r e q u i r e d w i t h i n t h e s y s t e m . I n S t e p 5 , t h e O F M i s c o n s t r u c t e d b a s e d o n t h e r e fi n e d o b j e c t m o d e l . I n S t e p 6 , t h e d y n a m i c m o d e l i s c o n s t r u c t e d b a s e d o n t h e s e r v i c e s r e q u i r e d a n d t h e s e r v i c e d a t a f l o w s . A l s o a s p a r t o f S t e p 6 , t h e S R F M i s c o n s t r u c t e d t o f u r t h e r r e fi n e t h e o b j e c t s p r o v i d i n g s e r v i c e s . T h i s l e a d s t o a r e fi n e d d y n a m i c m o d e l i n S t e p 7 , a n d fi n a l l y i n S t e p 8 a l l o f t h e a g g r e g a t e p a r t s a r e c o m b i n e d i n a c o m m u n i c a t i n g m o d e l . T h e m e t h o d o l o g y i s i t e r a t i v e w i t h S t e p s 4 t h r o u g h 8 c o n s t i t u t i n g t h e i t e r a t i o n l o o p . F u r t h e r m o r e , t h e m e t h o d o l o g y i s p a r a l l e l , f o r e x a m p l e , t h e S R F M a n d d y n a m i c m o d e l a r e d e v e l o p e d i n c o n c e r t . C o m p a r i s o n w i t h o u r A p p r o a c h W a n g ’ s f o r m a l i z a t i o n a n d m e t h o d o l o g y s h a r e m u c h i n c o m m o n w i t h o u r a p p r o a c h . E x c e p t f o r t h e s u p e r fi c i a l d i f f e r e n c e t h a t w e u s e U M L i n s t e a d o f O M T , t h e m a j o r d i f f e r e n c e i s i n t h e m a p p i n g f r o m s e m i - f o r m a l g r a p h i c a l m o d e l t o f o r m a l m o d e l . O u r a p p r o a c h u s e s a m e t a - l e v e l m a p p i n g t o r i g o r o u s l y s p e c i f y a h o m o m o r p h i s m i n t e r m s o f m a p p i n g s b e t w e e n m e t a - m o d e l s , w h e r e W a n g ’ s a p p r o a c h s i m p l y s t a t e s t h e r u l e s f o r t h e m a p p i n g . C o n s e q u e n t l y , w e s h o u l d 1 6 8 b e a b l e t o f o r m a l i z e i n t e r m s o f m o r e t h a n o n e f o r m a l l a n g u a g e a n d w e c a n a l s o s h o w m e c h a n i c a l l y t h a t o u r f o r m a l i z a t i o n r u l e s a r e c o n s i s t e n t a n d c o m p l e t e . I n t e r m s o f m e t h o d o l o g y , w e r e fi n e o b j e c t s b y i t e r a t i v e l y a s s i g n i n g r e s p o n s i b i l i t i e s t o c l a s s e s , c o n s t r u c t i n g a p p r o p r i a t e d y n a m i c m o d e l s , a n d v e r i f y i n g b e h a v i o r . O u r d o m a i n i s l i m i t e d t o e m b e d d e d s y s t e m s , h e n c e o u r e m p h a s i s i s o n t h e p l a c e m e n t o f r e s p o n s i b i l i t y ( i n t e r m s o f t h e c l a s s ) a n d o n t h e d y n a m i c b e h a v i o r o f t h e s y s t e m . 7 . 4 . 4 E x t e n d e d H i e r a r c h i c a l F i n i t e S t a t e M a c h i n e s L a t e l l a , e t a l . [ 6 4 ] h a v e f o r m a l i z e d U M L s t a t e d i a g r a m s t h r o u g h a m a p p i n g t o e x t e n d e d a u t o m a t a , b u t n o t i n t h e c o n t e x t o f t h e c l a s s d i a g r a m . T h e i r a p p r o a c h b e g i n s w i t h a t r a n s l a t i o n o f t h e U M L d y n a m i c m o d e l t o E x t e n d e d H i e r a r c h i c a l F i n i t e S t a t e M a c h i n e s ( E H F S A ) . A n E H F S A i s a t r a n s l a t i o n o f t h e h i e r a r c h y i m p l i e d b y n e s t e d c o m p o s i t e s t a t e s t o a n e x p l i c i t s t a t e t r e e . C o m p o s i t e s t a t e s a r e p l a c e d o n a b r a n c h o f t h e t r e e w i t h a l l i t s s t a t e s a n d c o m p o s i t e s t a t e s f o r m i n g t h e s u b t r e e b e l o w i t . W h e n a s t a t e w i t h i n a c o m p o s i t e s t a t e i s a c t i v a t e d , E H F S A s e m a n t i c s d e fi n e m u l t i p l e a c t i v e n o d e s d o w n t h e s t a t e h i e r a r c h y t r e e . T h e a d v a n t a g e o f t h i s a p p r o a c h i s t h a t t r a n s i t i o n s a r e s i m p l e . E a c h t r a n s i t i o n f o l l o w s t h e E H F S A t r e e t o t h e n e x t s t a t e . T h e a p p r o a c h a p p a r e n t l y s e e s c r o s s b o u n d a r y t r a n s i t i o n s a r e a m a j o r s e m a n t i c s p r o b l e m . I n t h i s a p p r o a c h , s e m a n t i c s o f t h e d y n a m i c m o d e l i s a c h i e v e d b y a s s i g n i n g s e m a n t i c s t o t h e E H F S A . C l a s s e s s e e m t o p l a y n o p a r t i n t h e f o r m a l i z a t i o n . C o m p a r i s o n w i t h o u r A p p r o a c h E s s e n t i a l l y , t h e E H F S A a p p r o a c h m a p s t h e d y n a m i c m o d e l t o a f o r m a l l a n g u a g e w i t h a d e fi n e d s e m a n t i c s . T o b e p r e c i s e , t h e t a r g e t l a n g u a g e i s E H F S A . I n o u r a p p r o a c h , w e m a p 1 6 9 t o a n y s u i t a b l e f o r m a l l a n g u a g e , b u t t h e m a p p i n g i s d i r e c t . I n t h e i r a p p r o a c h , t h e m o d e l m u s t fi r s t b e t r a n s f o r m e d i n t o t h e i n t e r m e d i a t e E H F S A f o r m , f r o m w h i c h s e m a n t i c s a r e d e r i v e d . I n a U M L d y n a m i c m o d e l , t h e n e s t i n g s t r u c t u r e o f c o m p o s i t e s t a t e s f o r m a h i e r a r c h y . H o w e v e r , U M L d o e s n o t r e q u i r e a c t i v a t i o n o f a s t a t e b y f o l l o w i n g t h e h i e r a r c h y s t r u c t u r e . T r a n s i t i o n s c a n o c c u r f r o m a n y w h e r e w i t h i n t h e h i e r a r c h y t o a n y w h e r e e l s e w i t h i n t h e h i e r a r c h y w i t h o u t r e g a r d t o t h e h i e r a r c h y s t r u c t u r e . T h e E H F S A a p p r o a c h s i m p l i fi e s t h i s p r o b l e m , b u t i n V H D L , t h i s i s a l s o a s t r a i g h t f o r w a r d i s s u e . T h e U M L t o V H D L m a p p i n g u s e s a “ s t a t e b u s ” f o r s t a t e a c t i v a t i o n . A l l s t a t e s a r e l i s t e n i n g a t a l l t i m e s f o r t h e i r n a m e t o a p p e a r o n t h e b u s . W h e n t h e n a m e a p p e a r s , t h e s t a t e i s a c t i v a t e d . A s l o n g a s t h e V H D L s t a t e b u s h i e r a r c h y i s c o n s t r u c t e d t o m a t c h t h e s t a t e h i e r a r c h y , c r o s s h i e r a r c h i c a l t r a n s i t i o n s r e q u i r e n o f u r t h e r a c t i o n a t s p e c i fi c a t i o n g e n e r a t i o n t i m e . I n o t h e r l a n g u a g e s , s u c h a s P r o m e l a , t h e t r a d i t i o n a l p r o c e d u r e c a l l m e c h a n i s m i s u s e d a s p a r t o f t h e t r a n s i t i o n s e m a n t i c s . I n t h i s c a s e , f o l l o w i n g t h e h i e r a r c h y i s m o r e c o m p l e x . N o n e t h e l e s s , c o n s i d e r i n g t h e t w o l a n g u a g e s , w e s e e t h a t c r o s s b o u n d a r y t r a n s i t i o n s a r e a l o c a l p r o b l e m d e p e n d e n t o n t h e t a r g e t l a n g u a g e c h o s e n . W e s e e n o r e a s o n t o o r i e n t a n e n t i r e a p p r o a c h a r o u n d t h i s s i n g l e p r o b l e m a s i n t h e E H F S A a p p r o a c h . 1 7 0 j I F E r " y a m . r . . ! 3 , . : . m < . : 3 . m » . o w a . u . _ ; . x % . 3 . a . : r ‘ h i k v } c i 6 1 . . v m J m . V . “ 3 H . m k $ K m 4 . “ « . 1 A a i u % . s 1 . 3 m . fi 4 « 2 . . 3 y A a ‘ . . a u , . . . . u . . . fi . h x . - 3 n fi w \ . # J a m u » fi } fi 4 a E m ‘ t l . e . I y , W , , . A . . . , A . 8 . A 1 k . ‘ , . w m . . h : i . . é . . . A a 3 . . “ é a % 0 § 2 7 n " u 3 . . fi 7 m » : v . 7 ) L e L z A { a h n n T . . n g H - . i a a s v W . W . S « § x A w A . A A A . . 3 3 e 2 . L 5 . . h J . . A A r m . A . v : . . a . “ n . . . . . . o . ” a m . a c % m i s w 4 3 t r 3 i a M x c ; 2 . fi . A x . . . . . ~ . . . J a . L . . x fi . . . . . . . , - t ; A . » . . 4 . x m i r E . : . k . . n a . . . . v s . . A a . 7 a . : . . 3 a . . . . . . . e w . . . m , ‘ A A 4 L a t . v $ . . a . . r ! I : . : W . . I l 1 V fl s , u . ‘ a . I ? . t a 5 l . f y . : 1 5 : 1 1 t A ! ‘ 2 2 3 1 . 1 1 . 3 9 “ A V . ” . 1 : . 1 . . . . . fi fi fi « a w n . i « . 2 . . . A a n . s A . . , I . A ~ . I ” N . u h “ I . 1 . 4 x . A a “ u . . R A . 4 3 4 . T H E S I S M { M s L I B R A R Y M i c h i g a n S t a t e U n i v e r s i t y P L A C E I N R E T U R N B O X t o r e m o v e t h i s c h e c k o u t f r o m y o u r r e c o r d . T O A V O I D F I N E S r e t u r n o n o r b e f o r e d a t e d u e . M A Y B E R E C A L L E D w i t h e a r l i e r d u e d a t e i f r e q u e s t e d . D A T E D U E D A T E D U E D A T E D U E 1 1 / 0 0 c / C I R C / D a b fl n p s s - p d t C h a p t e r 8 T o o l D e v e l o p m e n t T h i s c h a p t e r d e s c r i b e s t h e p r o t o t y p e t o o l a n d i t s o p e r a t i o n t h a t w e h a v e c o n s t r u c t e d t o t r a n s l a t e U M L d i a g r a m s i n t o f o r m a l l a n g u a g e s t a t e m e n t s . T h e t o o l i s c a l l e d H y d r a l 8 . 1 O v e r v i e w o f H y d r a T h e p u r p o s e o f H y d r a i s t o a u t o m a t e t h e t r a n s l a t i o n o f U M L c l a s s a n d d y n a m i c d i a g r a m s i n t o a c h o s e n f o r m a l l a n g u a g e . T h e f o r m a l l a n g u a g e c a n s u b s e q u e n t l y b e e x e c u t e d , o r u s e d i n a n a l y s i s t o s i m u l a t e o r a n a l y z e t h e m o d e l . T h e d a t a fl o w m o d e l f o r t h e H y d r a t r a n s l a t i o n s y s t e m i s s h o w n i n F i g u r e 8 . 1 . T h e i n p u t t o H y d r a i s a t e x t u a l r e p r e s e n t a t i o n o f t h e c l a s s a n d d y n a m i c m o d e l s , a n d t o a l i m i t e d e x t e n t , u s e c a s e s c e n a r i o s . H y d r a p a r s e s t h e t e x t u a l f o r m o f t h e m o d e l , p r o d u c e s a n a b s t r a c t s y n t a x t r e e ( A S T ) , a n d t h e n p r o c e s s e s t h e A S T w i t h a c l a s s l i b r a r y w r i t t e n s p e c i fi c a l l y f o r t h e t a r g e t l a n g u a g e . T h e m a p p i n g r u l e s d e r i v e d f r o m t h e h o m o m o r p h i s m a r e e m b o d i e d w i t h i n t h e c l a s s l i b r a r y , a n d b y c h a n g i n g h o w t a r g e t l a n g u a g e s t a t e m e n t s a r e g e n e r a t e d , t h e s e m a n t i c s o f t h e d i a g r a m c a n b e a l t e r e d . l T h e H y d r a i s a n i n e - h e a d e d s e r p e n t f r o m G r e e k m y t h o l o g y . W h e n a n y o n e o f i t s h e a d s w a s c u t o f f , i t w a s r e p l a c e d b y t w o o t h e r s . O u r u s e o f t h e n a m e s t e m s f r o m o u r f r a m e w o r k t h a t p e r m i t s m a n y f o r m a l i z a t i o n s o f a l a n g u a g e w i t h m a n y s e m a n t i c a m b i g u i t i e s ( U M L ) f r o m a s i n g l e b a s e . 1 7 1 T h e H y d r a c o d e f o r t h e V H D L t r a n s l a t i o n i s c o n t a i n e d i n A p p e n d i x G , a n d t h e P r o m e l a / S P I N c o d e i s i n A p p e n d i x H . 8 . 2 H y d r a L a n g u a g e A s d e s c r i b e d i n t h e O v e r v i e w , t h e H y d r a l a n g u a g e i s t h e t e x t u a l i n p u t t o H y d r a a n d r e p - r e s e n t s t h e U M L d i a g r a m f o r t h e m o d e l . T h e c o m p l e t e s y n t a x f o r t h e H y d r a l a n g u a g e i s p r e s e n t e d i n A p p e n d i x D . T h e H y d r a l a n g u a g e , w h i c h e n c o d e s t h e m o d e l , c o n s i s t s o f s t a t e m e n t s i n a s t y l e t h a t i s a h y b r i d o f t h e C - L a n g u a g e [ 6 5 ] a n d [ A M [ 6 6 ] . C u r l y b r a c e s , “ { “ a n d “ } ” d e l i m i t s t a t e m e n t s t h a t d e fi n e a b l o c k , a n d s e m i - c o l o n s e n d s t a t e m e n t s t h a t d o n o t d e fi n e a b l o c k . F o r e x a m p l e , t h e e n t i r e m o d e l i s f o u n d w i t h i n t h e b o u n d s o f a M o d e l { } s t a t e m e n t . T h e s t a t e m e n t s t h a t c a n a p p e a r i m m e d i a t e l y w i t h i n t h e s c o p e o f t h e M o d e l s t a t e m e n t i n c l u d e O b j e c t { } s t a t e m e n t s . S i m i l a r l y , S t a t e { } s t a t e m e n t s a p p e a r w i t h i n O b j e c t b l o c k s . T h e T r a n s i t i o n s t a t e m e n t d e s c r i b e s a t r a n s i t i o n a n d , s i n c e i t d o e s n o t d e fi n e a b l o c k , e n d s i n a s e m i - c o l o n . T h e H y d r a l a n g u a g e i s d e s c r i b e d b e l o w . A s e a c h s t a t e m e n t i s l i s t e d , i t s p u r p o s e i s e x p l a i n e d , a n d t h e s c 0 p e i n w h i c h i t c a n a p p e a r i s l i s t e d . M o d e l m o d e l n a m e { . . . } T h e M o d e l s t a t e m e n t d e fi n e s a b l o c k i n w h i c h a l l o t h e r m o d e l s t a t e m e n t s a p p e a r . m o d e l n a m e i s t h e n a m e o f t h e m o d e l . T h e M o d e l s t a t e m e n t m u s t a p p e a r a t t h e t o p l e v e l o f t h e m o d e l fi l e . A l l o t h e r H y d r a s t a t e m e n t s a p p e a r w i t h i n t h e s c o p e o f M o d e l . O b j e c t c l a s s n a m e { . . . } T h e O b j e c t s t a t e m e n t c o r r e s p o n d s t o a c l a s s i n t h e U M L c l a s s m o d e l . c l a s s n a m e 1 7 2 A U U U A U H y d r a L a n g u a g e D i a g r a m R e p s e n t a t i o n I n p u t d e s c r i p t i o n P a r s e i n p u t A S T l W a l k A S T M a k e O b j e c t s S e t o f o b j e c t s l R e s o l v e T r a n s i t i o n s R e s o l v e d s e t o f o b j e c t s O u t p u t S p e c s F o r m a l L a n g u a g e S p e c s V H y d r a L a n g u a g e D i a g r a m R e p r e s e n t a t i o n F i g u r e 8 . 1 : T h e d a t a fl o w m o d e l f o r t h e H y d r a t r a n s l a t i o n s y s t e m . 1 7 3 i s t h e n a m e o f t h e c l a s s . O b j e c t m a y o n l y a p p e a r w i t h i n t h e s c o p e o f M o d e l a n d c o n t a i n s i n s t a n c e v a r i a b l e d e c l a r a t i o n s , s i g n a l d e c l a r a t i o n s , c o m p o s i t e a n d c o n c u r r e n t s t a t e d e c l a r a t i o n s , a n d p s e u d o - s t a t e d e c l a r a t i o n s s u c h a s J o i n a n d I n i t . E a c h O b j e c t m u s t h a v e a u n i q u e n a m e . I n s t a n c e V a r t y p e - n a m e v a r - n a m e ; I n s t a n c e V a r d e c l a r e s a n i n s t a n c e v a r i a b l e i n a c l a s s . t y p e - n a m e i s t h e v a r i a b l e t y p e a n d c a n c u r r e n t l y b e i n t o r b o o l . 2 T h e s c o p e o f a n i n s t a n c e v a r i a b l e i s t h e e n t i r e o b j e c t , s o t h e v a r i a b l e c a n b e r e f e r r e d t o i n a n y t r a n s i t i o n w i t h i n t h e o b j e c t . I n s t a n c e v a r i a b l e s a r e h i d d e n f r o m o t h e r o b j e c t s . A n o p t i o n a l i n i t i a l i z e r o f t h e f o r m v a r - n a m e : = v a l u e ; m a y b e i n c l u d e d i n t h e d e c l a r a t i o n . I n s t a n c e v a r i a b l e d e c l a r a t i o n s m a y o n l y a p p e a r w i t h i n t h e i m m e d i a t e s c o p e o f O b j e c t . D r i v e r F i l e I D ; I t i s u s u a l l y n e c e s s a r y t o i n i t i a l i z e a n d a n i m a t e a m o d e l i n o r d e r t o d e t e r m i n e i t s p r o p e r t i e s . F o r v e r i fi c a t i o n a n d s i m u l a t i o n p u r p o s e s , w e d e fi n e a S y s t e m C l a s s w h o s e s o l e r e s p o n s i b i l i t y i s t o i n s t a n t i a t e t h e o b j e c t s o f t h e m o d e l , a n d p r o v i d e a s e q u e n c e d s e t o f s i g n a l s t o t a k e t h e m o d e l t h r o u g h a p a r t i c u l a r s c e n a r i o . S i n c e t h e b e h a v i o r m o d e l f o r t h e S y s t e m C l a s s r e q u i r e s t h e a b i l i t y t o i n s t a n t i a t e o b j e c t s , a n d m a y r e q u i r e o t h e r f o r m a l l a n g u a g e s p e c i fi c o p e r a t i o n s , w e e n c o d e t h e S y s t e m C l a s s d y n a m i c m o d e l b y h a n d a n d i n c l u d e t h e t a r g e t l a n g u a g e s t a t e m e n t s i n a D r i v e r F i l e . T h e D r i v e r F i l e i s a m e a n s t o i n c l u d e t a r g e t l a n g u a g e s p e c i fi c s t a t e m e n t s a n d r o u t i n e s i n t o t h e fi n a l m o d e l . F o r e x a m p l e , P r o m e l a h a s a t i m e o u t e v e n t t h a t c a n b e u s e d i n a n a r r o w l y d e fi n e d s e t o f c i r c u m s t a n c e s t o d e t e r m i n e w h e n t h e e n t i r e m o d e l h a s d e a d l o c k e d . 2 B o t h t y p e s a r e c o m m o n t o m o s t s p e c i fi c a t i o n l a n g u a g e s u s e d f o r s i m u l a t i o n a n d m o d e l c h e c k i n g , w h i l e t y p e s l i k e ’ fl o a t ’ , f o r e x a m p l e a r e n o t . A l t h o u g h V H D L c o n t a i n s fl o a t v a r i a b l e s , m o d e l c h e c k i n g l a n g u a g e s s u c h a s P r o m e l a a n d S M V d o n o t . S o f a r , t e x t o r c h a r a c t e r t y p e s h a v e n o t b e e n u s e f u l i n m o d e l s . 1 7 4 F o r P r o m e l a m o d e l s , a t i m e o u t a f t e r i n s t a n t i a t i n g t h e o b j e c t s o f t h e m o d e l e n s u r e t h a t i n i t i a l i z a t i o n h a s o c c u r r e d . I n V H D L , o n e s p e c i fi c E n t i t y / A r c h i t e c t u r e , w h o s e n a m e i s s p e c i fi e d o n t h e c o m m a n d l i n e w h e n t h e s i m u l a t i o n i s s t a r t e d , i s r e s p o n s i b l e f o r l o a d i n g t h e b a l a n c e o f t h e m o d e l a n d p r o v i d i n g t h e i n i t i a l s y s t e m e v e n t s . S i g n a l T h e S i g n a l s t a t e m e n t c a n t a k e t w o f o r m s : S i g n a l s i g n a m e ; o r S i g n a l s i g n a m e ( t y p e - n a m e ) ; . T h e fi r s t f o r m d e c l a r e s a s i m p l e s i g n a l e x p e c t e d f r o m a n o t h e r o b j e c t . T h e s e c o n d f o r m d e c l a r e s a s i g n a l w i t h a s i n g l e p a r a m e t e r o f t y p e t y p e - n a m e . C u r r e n t l y s u p p o r t e d t y p e s a r e i n t a n d b o o l . S i g n a l s w i t h m o r e t h a n o n e p a r a m e t e r a r e a s t r a i g h t f o r w a r d e x t e n s i o n t o H y d r a b u t a r e n o t c u r r e n t l y s u p p o r t e d . S i g n a l c a n o n l y a p p e a r w i t h i n t h e i m m e d i a t e s c 0 p e o f O b j e c t . C o m p o s i t e S t a t e e s t a t e - n a m e { . . . } T h e C o m p o s i t e S t a t e b l o c k d e fi n e s a c o m p o s i t e s t a t e n a m e d c s t a t e - n a m e . T h e s c o p e o f a C o m p o s i t e S t a t e s t a t e m e n t c o n t a i n s d e c l a r a t i o n s f o r s t a t e s , p s e u d o - s t a t e s , i n i t i a l s t a t e s , o t h e r c o m p o s i t e s t a t e s a n d c o n c u r r e n t s t a t e s . C o m p o s i t e S t a t e c a n a p p e a r w i t h i n t h e s c o p e o f O b j e c t , C o m p o s i t e S t a t e , o r C o n c u r r e n t S t a t e . C o n c u r r e n t S t a t e w r a p p e r - n a m e { . . . } T h e C o n c u r r e n t S t a t e b l o c k d e fi n e s a s e t o f c o n c u r r e n t , c o m p o s i t e s t a t e s . I n U M L d y n a m i c d i a g r a m s , a r o u n d e d r e c t a n g l e t h a t i s p a r t i t i o n e d b y d o t t e d l i n e s i s a c o n c u r - r e n t c o m p o s i t e s t a t e . T h e C o n c u r r e n t S t a t e s t a t e m e n t d e fi n e s t h e o u t e r b o u n d a r y o f t h i s U M L c o n s t r u c t . T h e w r a p p e r - n a m e p r o v i d e s a h a n d l e u s e d b y t h e J o i n s t a t e m e n t a n d f o r e r r o r m e s s a g e s . w r a p p e r - n a m e d o e s n o t n a m e a n a c t u a l s t a t e t o w h i c h a t r a n - s i t i o n c a n o c c u r , r a t h e r , i t n a m e s t h e c o n t a i n e r f o r t h e c o m p o s i t e c o n c u r r e n t s t a t e s . 1 7 5 T h e o n l y s t a t e m e n t t h a t m a y a p p e a r w i t h i n C o n c u r r e n t S t a t e i s C o m p o s i t e S t a t e . E v e n i f t h e c o n c u r r e n t s u b - s t a t e p a r t i t i o n o n l y c o n t a i n s o n e s t a t e , t h a t o n e s t a t e m u s t a p p e a r w i t h i n a C o m p o s i t e S t a t e b l o c k . C o n c u r r e n t S t a t e m a y a p p e a r a n y - w h e r e C o m p o s i t e S t a t e c a n o c c u r . G e n e r a t i n g m u l t i p l e t h r e a d s a n d s t a r t i n g a s e t o f c o n c u r r e n t s t a t e s i s a c c o m p l i s h e d b y a t r a n s i t i o n t o a n y o n e o f t h e s e t o f c o m p o s i t e s t a t e s c o n t a i n e d i m m e d i a t e l y w i t h i n t h e C o n c u r r e n t S t a t e b l o c k . I n f a c t , t h i s i s t h e o n l y w a y t o s t a r t a s e t o f c o n c u r r e n t s t a t e s . A t r a n s i t i o n l i n e w r i t t e n t o t h e b o u n d a r y o f a s e t o f c o n c u r r e n t s t a t e s i s w r i t t e n i n H y d r a a s a t r a n s i t i o n t o a n y o f t h e c o m p o s i t e s t a t e s . A l t h o u g h t e c h n i c a l l y i t c a n b e d i a g r a m m e d , t h e s e m a n t i c s o f a t r a n s i t i o n t o a s p e c i fi c s t a t e w i t h i n a s e t o f c o n c u r r e n t s t a t e s i s d i f fi c u l t t o i m a g i n e a n d i s t h e r e f o r e n o t c u r r e n t l y s u p p o r t e d . S t a t e s t a t e - n a m e { . . . } J o i n T h e S t a t e s t a t e m e n t d e fi n e s a b l o c k c o n t a i n i n g s t a t e m e n t s t h a t d e s c r i b e t h e s t a t e . s t a t e - n a m e n a m e s t h e s t a t e a n d m u s t b e u n i q u e a c r o s s t h e m o d e l . S t a t e d e c l a r a t i o n s m a y o c c u r w i t h i n c o m p o s i t e s t a t e s o r o b j e c t s , b u t n o w h e r e e l s e . T h e o n l y s t a t e m e n t t h a t m a y a p p e a r w i t h i n t h e s c 0 p e o f a s t a t e d e c l a r a t i o n i s a T r a n s i t i o n s t a t e m e n t . n a m e F r o m c c s t a t e t o j o i n - s t a t e ; T h e J o i n s t a t e m e n t d e fi n e s c o m b i n i n g m u l t i p l e t h r e a d s f r o m c o n c u r r e n t s t a t e s u b - s t a t e s t o a j o i n - s t a t e . I n t h e U M L d y n a m i c m o d e l , t h e J o i n c o r r e s p o n d s t o a h e a v y v e r t i c a l b a r . T h e n a m e o f t h e C o n c u r r e n t S t a t e c o n t a i n i n g t h e t h r e a d s t o b e j o i n e d i s n a m e . j o i n - s t a t e i s a n y v a l i d s t a t e o r c o m p o s i t e s t a t e . T h e w o r d s “ F r o m ” a n d “ t o ” m u s t b e w r i t t e n a s s h o w n . A s m e n t i o n e d i n t h e m a p p i n g s e c t i o n s , j o i n s m u s t o c c u r e x a c t l y o n e l e v e l a b o v e t h e c o n c u r r e n t s t a t e b e i n g c o n s o l i d a t e d . I n o t h e r w o r d s , 1 7 6 t r a n s i t i o n l i n e s t o t h e j o i n c a n o n l y c r o s s o n e c o m p o s i t e s t a t e b o u n d a r y . T h e r e f o r e , J o i n m u s t o c c u r w i t h i n t h e s a m e s c 0 p e a s t h e C o n c u r r e n t S t a t e s t a t e m e n t t o w h i c h i t r e f e r s . C u r r e n t l y , a j o i n i s t h e o n l y w a y o f t e r m i n a t i n g a s e t o f c o n c u r r e n t t h r e a d s , c o n s e q u e n t l y , a c o n c u r r e n t s t a t e d e c l a r a t i o n w i l l u s u a l l y h a v e o n e o r m o r e c o r r e s p o n d - i n g j o i n s , h o w e v e r , a j o i n i s n o t r e q u i r e d . I f t h e r e i s n o j o i n f o r a c o n c u r r e n t s t a t e , t h e n H y d r a w i l l i s s u e a w a r n i n g a n d a s s u m e t h e c o n c u r r e n t t h r e a d n e v e r e n d s . E x i t i n g a c o n c u r r e n t t h r e a d w i t h o u t a j o i n c a u s e s e r r o r p r o c e d u r e s w i t h i n t h e g e n e r a t e d f o r m a l l a n g u a g e s p e c i fi c a t i o n s t o b e e x e c u t e d ( i n P r o m e l a , a s s e r t ( f a l s e ) i s e x e c u t e d ) . I n i t i a l i n i t - s t a t e ; T h e I n i t i a l s t a t e m e n t d e fi n e s t h e i n i t i a l s t a t e i n a n o b j e c t o r c o m p o s i t e s t a t e . I n t h e a b s e n c e o f a n i n i t i a l s t a t e d e c l a r a t i o n , H y d r a a s s u m e s a t l e a s t o n e d i r e c t t r a n s i t i o n f r o m o u t s i d e t h e c o m p o s i t e s t a t e d i r e c t l y t o a s t a t e c o n t a i n e d i n t h e c o m p o s i t e s t a t e . T h i s i m p l i e s t h a t I n i t i a l i s n o t o p t i o n a l f o r a n o b j e c t . I n i t i a l m a y a p p e a r w i t h i n a n o b j e c t o r c o m p o s i t e s t a t e . H i s t o r y i n i t - s t a t e ; A h i s t o r y p s e u d o - s t a t e i s a s p e c i a l i n i t i a l U M L s t a t e t h a t , u p o n e x i t f r o m a c o m p o s i t e s t a t e , r e m e m b e r s t h e l a s t a c t i v e s t a t e w i t h i n t h e c o m p o s i t e s t a t e . I n a s u b s e q u e n t t r a n s i t i o n t o t h e b o u n d a r y o f t h e c o m p o s i t e s t a t e , t h e h i s t o r y s t a t e a r r a n g e s f o r t h e l a s t a c t i v e s t a t e i n i t s c o m p o s i t e s t a t e t o b e r e — a c t i v a t e d . i n i t - s t a t e i s t h e d e f a u l t i n i t i a l s t a t e a c t i v a t e d w h e n t h e r e i s n o h i s t o r y ( t h a t i s , o n t h e fi r s t e n t r y t o t h e c o m - p o s i t e s t a t e ) . O n a U M L d i a g r a m , h i s t o r y s t a t e s a r e r e p r e s e n t e d a s a c i r c l e c o n t a i n i n g “ H ” . H i s t o r y s t a t e s c a n a p p e a r a n y w h e r e a n i n i t i a l s t a t e c a n o c c u r . S p e c i f y i n g b o t h I n i t i a l a n d H i s t o r y w i t h i n t h e s a m e s c o p e i s a n e r r o r . 1 7 7 T r a n s i t i o n ‘ ‘ t r a n s - e x p r e s s i o n ’ ’ t o d e s t - s t a t e ; T r a n s i t i o n d e fi n e s a s t a t e t r a n s i t i o n f r o m t h e c u r r e n t s t a t e t o d e s t - s t a t e . d e s t - s t a t e m a y b e a n y w h e r e w i t h i n t h e e n c l o s i n g o b j e c t ( t r a n s i t i o n s a c r o s s o b j e c t s i s n o t d e fi n e d ) . T h e t r a n s i t i o n e x p r e s s i o n t r a n s - e x p r e s s i o n f o l l o w s s t a n d a r d U M L s y n t a x a n d c o n s i s t s o f f o u r p a r t s , e a c h o f w h i c h i s O p t i o n a l . T h e s t a n d a r d f o r m o f a U M L t r a n s i t i o n i s e v e n t [ g u a r d ] l a c t i o n ‘ m s g - l . . . ‘ m s g - n . e _ v e _ n t ; E v e n t i s a n i n t e r n a l e v e n t n a m e , a s i g n a l , o r a “ w h e n ” e x p r e s s i o n . A s i g n a l m a y t a k e t w o f o r m s : s i g n a l o r s i g n a l ( v a r ) , w h e r e v a r a n d s i g n a l a r e a p r e v i o u s l y d e c l a r e d i n s t a n c e v a r i a b l e a n d s i g n a l . A “ w h e n ” c l a u s e t a k e s t h e f o r m o f w h e n ( l o g i c a l - e x p r e s s i o n ) , w h e r e l o g i c a l - e x p r e s s i o n i s a n e x p r e s s i o n t h a t i s c o n t i n u o u s l y , b u t a s y n c h r o n o u s l y , e v a l u a t e d . g u a r d T h e g u a r d i s a l o g i c a l e x p r e s s i o n p r o v i d i n g a c o n d i t i o n o n t h e t r a n s i t i o n . L o g - i c a l “ a n d ” i s w r i t t e n “ 8 5 ” , l o g i c a l “ o r ” i s w r i t t e n “ I ” , a n d n e g a t i o n i s w r i t t e n “ ~ “ . C o m p a r i s o n p r e d i c a t e s ( > , < , > = , = , = = , ! = ) m a y a p p e a r w i t h i n t h e e x p r e s s i o n a n d s o m e p r e d i c a t e s ( t a r g e t l a n g u a g e d e p e n d e n t ) a r e p e r m i t t e d . O n e p a r t i c u l a r p r e d i c a t e t h a t i s a l w a y s i m p l e m e n t e d i s t h e I N ( s t a t e n a m e ) p r e d i c a t e , w h i c h e v a l u a t e s t r u e w h e n s t a t e n a m e i s a c t i v e . m A c t i o n c o n s i s t s o f a s e r i e s o f o n e o r m o r e s t a t e m e n t s s e p a r a t e d b y s e m i - c o l o n s t h a t d e fi n e a c t i o n s t o b e t a k e n d u r i n g t h e t r a n s i t i o n . C u r r e n t l y , t h r e e a c t i o n s a r e d e fi n e d : a r e p l a c e m e n t s t a t e m e n t o f t h e f o r m v a r : = e x p r e s s i o n , a p r i n t s t a t e m e n t , a n d f u n c t i o n c a l l o f t h e f o r m f u n c t i o n ( a r g l i s t ) . T h e p r i n t s t a t e - m e n t f o l l o w s C c o n v e n t i o n s f o r a “ p r i n t f ” s t a t e m e n t . T h e fi r s t p a r a m e t e r i s a s t r i n g c o n t a i n i n g t e x t a n d o p t i o n a l l y , “ ‘ 7 0 ” q u a l i fi e r s . O p t i o n a l a d d i t i o n a l p a r a m - e t e r s a r e i n s t a n c e v a r i a b l e n a m e s . T h e f u n c t i o n c a l l p r o v i s i o n e x i s t s p r i m a r y t o 1 7 8 i n s e r t a s s e r t s t a t e m e n t s i n t o t h e a c t i o n . m s g m s g i s a n e v e n t t o b e s e n t t o t r a n s i t i o n s i n t h e e n c l o s i n g o b j e c t o r a s i g - n a l t o b e s e n t t o a n o t h e r o b j e c t . I n t e r n a l m e s s a g e s h a v e o n l y o n e f o r m : e v e n t . S i g n a l s s e n t t o a n o t h e r o b j e c t h a v e t h e f o r m o b j e c t n a m e . s i g n a l o r o b j e c t n a m e . s i g n a 1 ( v a l u e ) . M u l t i p l e m e s s a g e s m a y b e s p e c i fi e d o n a t r a n s i - ‘ 0 ” t i o n , e a c h s e p a r a t e d b y ‘ T r a n s i t i o n e x p r e s s i o n s m u s t b e e n c l o s e d i n d o u b l e q u o t e s . L o n g t r a n s i t i o n e x p r e s s i o n s m a y b e w r i t t e n o n m u l t i p l e l i n e s a s a l i s t o f q u o t e d s t r i n g s , e a c h s e p a r a t e d b y a c o m m a . 8 . 3 H y d r a T o o l S t r u c t u r e H y d r a c o n s i s t s o f f o u r m a j o r p a r t s : T h e m a i n H y d r a p r o g r a m , t h e p a r s e r f o r t h e H y d r a l a n g u a g e , t h e p a r s e r f o r t r a n s i t i o n e x p r e s s i o n s , a n d a c l a s s l i b r a r y s p e c i fi c t o t h e t a r g e t l a n g u a g e . A H y d r a t r a n s l a t i o n r u n s t a r t s w h e n H y d r a r e a d s t h e m o d e l d e s c r i p t i o n a n d p a s s e s i t t o t h e p a r s e r . W h e n t h e p a r s i n g i s c o m p l e t e , t h e p a r s e r r e t u r n s a n A S T . E a c h n o d e i n t h e t r e e h a s a t y p e i d e n t i fi e r c o r r e s p o n d i n g t o t h e p a r t o f t h e l a n g u a g e p a r s e d , a n d a s e r i e s o f k e y / v a l u e p a i r s . F o r e x a m p l e , a n o d e r e p r e s e n t i n g a t r a n s i t i o n c o n t a i n s t h e n o d e I D “ T r a n s ” , a k e y / v a l u e p a i r n a m e d “ t r a n ” c o n t a i n i n g t h e t r a n s i t i o n e x p r e s s i o n , a n d a k e y / v a l u e p a i r n a m e d “ d e s t ” c o n t a i n i n g t h e n a m e o f t h e d e s t i n a t i o n s t a t e . I n t h e n e x t p h a s e o f O p e r a t i o n , t h e H y d r a m a i n p r o g r a m w a l k s t h e t r e e i n d e p t h fi r s t o r d e r c a l l i n g i n t e r n a l H y d r a r o u t i n e s t h a t c o r r e s p o n d t o m a j o r A S T n o d e t y p e s s u c h a s “ O b j e c t ” a n d “ S t a t e ” . T h e i n t e r n a l r o u t i n e s h a v e t w o f u n c t i o n s t o p e r f o r m . F i r s t , A S T n o d e s c o r r e s p o n d i n g t o p a r t s o f t h e g r a m m a r t h a t d e fi n e e n v i r o n m e n t s ( O b j e c t , S t a t e , C o m - 1 7 9 p o s i t e S t a t e , e t c . ) c o n t a i n l i s t s o f n o d e s t h a t d e s c r i b e t h e c o m p o n e n t s i n t h e e n v i r o n m e n t , s u c h a s S t a t e s . T h e i n t e r n a l r o u t i n e s m u s t c y c l e t h r o u g h t h e s e l i s t s c a l l i n g a p p r o p r i a t e m e t h o d s t o h a n d l e e a c h i t e m . S e c o n d , t h e c l a s s l i b r a r y r e t u r n s r e f e r e n c e s t o o b j e c t s c r e a t e d a s t h e A S T i s p r o c e s s e d . F o r e x a m p l e , w h e n a S t a t e i s p r o c e s s e d , a n e w S t a t e o b j e c t i s c r e a t e d w i t h i n t h e H y d r a c o d e . T h e H y d r a i n t e r n a l r o u t i n e s k e e p t r a c k o f t h e s e r e f e r e n c e s b e c a u s e s u b s e q u e n t m e t h o d c a l l s u s e o b j e c t r e f e r e n c e s . F o r e x a m p l e , t h e “ T r a n ” m e t h o d i n c l a s s S t a t e e x p e c t s a r e f e r e n c e t o a d e s t i n a t i o n , n o t t h e t e x t u a l n a m e o f t h e d e s t i n a t i o n . T h e H y d r a r o u t i n e s m u s t k e e p t a b l e s o f n a m e v e r s u s r e f e r e n c e v a l u e s b o t h f o r c a l l i n g m e t h - o d s a n d f o r p a s s i n g c o r r e c t p a r a m e t e r s t o t h e c l a s s l i b r a r y m e t h o d s . A t t h e c o m p l e t i o n o f t h e A S T w a l k , H y d r a w i l l h a v e c r e a t e d a n i n t e r n a l s e t o f o b j e c t s t h a t c o r r e s p o n d t o t h e m o d e l . I n t h e fi n a l s t e p , t h e o b j e c t s c r e a t e d f r o m t h e t a r g e t l a n g u a g e c l a s s l i b r a r y i n t e r a c t t o g e n e r a t e t h e t a r g e t l a n g u a g e s p e c i fi c a t i o n s . 8 . 4 L a n g u a g e - S p e c i fi c C l a s s L i b r a r y T h e a c t u a l m a p p i n g f r o m U M L t o t h e t a r g e t l a n g u a g e i s e m b o d i e d w i t h i n a L a n g u a g e S p e - c i fi c C l a s s L i b r a r y ( L S C L ) . T h e L S C L c o n t a i n s a n u m b e r o f s t a n d a r d c l a s s e s a n d m e t h o d s H y d r a e x p e c t s d u r i n g t h e A S T t r e e w a l k . F i g u r e 8 . 2 s h o w s t h e g e n e r i c c l a s s d i a g r a m f o r t h e L S C L . T h e d o t t e d l i n e s r e p r e s e n t c l a s s m e t h o d i n v o c a t i o n s ( c a l l s ) . T h e s t r u c t u r e o f t h e L S C L d o e s n o t v a r y m u c h b e t w e e n l a n g u a g e s , b u t t h e i n t e r n a l f u n c t i o n s v a r y w i d e l y . F o r e x a m p l e , V H D L E n t i t y / A r c h i t e c t u r e u n i t s m u s t o c c u r i n t h e w r i t t e n s o u r c e fi l e w i t h o n l y f o r w a r d r e f e r e n c e s . A n E n t i t y / A r c h i t e c t u r e c a n n o t r e f e r e n c e a n o t h e r E n t i t y / A r c h i t e c t u r e t h a t i s d e fi n e d f u r t h e r d o w n i n t h e fi l e . C o n s e q u e n t l y , t h e V H D L L S C L m u s t o r d e r t h e E n t i t y / A r c h i t e c t u r e u n i t s t o s a t i s f y t h i s r e q u i r e m e n t . S i n c e P r o m e l a h a s n o s u c h r e q u i r e - m e n t , P r o m e l a “ p r o c t y p e ” d e fi n i t i o n s c a n b e w r i t t e n i n a n y o r d e r . O n t h e o t h e r h a n d , t h e 1 8 0 U M L s e m a n t i c s m a p p e d t o P r o m e l a r e q u i r e t h e a d d i t i o n O f s p e c i fi c “ p r o c t y p e ” r o u t i n e s t o h a n d l e e v e n t d i s p a t c h i n g t h a t a r e n o t n e e d e d i n V H D L . . . . . . . . . M a i n _ - - _ _ - E E Y a c c - - - - - - - - - - - - - - - - - - - i - - - - ‘ - - 1 i . - - - - - - - - ~ ~ p a r t i a l ) : I 1 9 . I l I . : 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; I C o n t e x t . . . . . . 1 i ; i ; S t a t e : : : : : : : : : ° " ' P " ‘ ° 3 n e w 5 ; P u “ ) 1 . . 9 L d O u t p u t . I : I : ' r _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ l ? - - - - - - 4 ' " " " " " " " - > : 0 I l O I 3 1 l l I ; P s e u d o S r a r e : O b j e c t 0 1 % “ ' 1 A L 1 ' . . o . . ° l : . l - - - n e w : C o m p o s i t e S t a t e . - - - : " " " " " " " n . i . . r " ' . ' : - - - - - - - - v A d d S t a t e o ~ - - - . - - - - - - - . . : 1 - - - - - - - - - - - - - - - _ , O u t p u t 4 : ‘ " " " " " " " " " T " " " ‘ ; E ; E T . . . . . J . . . . . . . . . . . . . . . . . . . . . . ' i l I i H M O " : l n i t I E E . ; E : : : . . I . c s m a . I _ _ _ . n e w _ n e w I ; C C S t a t e : 1 1 : a : " s o . . . w o w - r " : = . . . . . . - , . . . E a . - . . a i ' : L c l O u l p u t ‘ - - - - - l 2 W O W ” ” 1 : 1 . . . . . . . . . . . . . . . . . . . . . . . . . 4 : O u t p u t . . . . . . . . : m m t I : : l - - - - - - - A d e O l n : I 1 I 5 . 0 . . . - - - - - - - - - - - - - - ' - - - - - - - - - - — n e w " : : L c l O u t p u t ~ - - - - - - - - - - - - - L - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' F i g u r e 8 . 2 : T h e g e n e r i c c l a s s m o d e l f o r t h e L S C L . D o t t e d l i n e s r e p r e s e n t m e t h o d c a l l s . T h e c l a s s e s r e q u i r e d i n t h e L S C L a r e a s f o l l o w s : C l a s s C o n t e x t : T h i s c l a s s i s i n s t a n t i a t e d o n l y o n c e . I t i s r e s p o n s i b l e f o r m o d e l - l e v e l , o r “ c o n t e x t ” i t e m s a n d s e r v e s a s t h e a n c h o r f o r t h e L S C L O b j e c t o n t o l o g y . F o r e x a m - p l e , t h e l i s t O f a l l o b j e c t s i n t h e m o d e l a r e h e l d b y C o n t e x t . A d d i t i o n a l l y , C o n t e x t i m p l e m e n t s s t a n d a r d m e t h o d s s u c h a s “ P u t ” , w h i c h f o r m a t s a n d w r i t e s g e n e r a t e d s p e c i fi c a t i o n s t O t h e o u t p u t fi l e . 1 8 1 C l a s s Y a c c : T h e Y a c c c l a s s c o n t a i n s t h e p a r s e r f o r t h e l a n g u a g e . A l t h o u g h t h e H y d r a l a n g u a g e i s t h e s a m e a c r o s s t a r g e t l a n g u a g e s , t h e p a r s e r s e m a n t i c r u l e s v a r y b e t w e e n l a n g u a g e s . C l a s s Y a c c i m p l e m e n t s a l e x i c a l a n a l y z e r a n d t h e m e t h o d s “ N o d e ” a n d “ A d d ” u s e d b y t h e s e m a n t i c r u l e s t o b u i l d t h e A S T . T e c h n i c a l l y , t h e s e m a n t i c r u l e s c o u l d b e m o v e d d o w n a l e v e l t o c r e a t e a s t a n d a r d p a r s e r f o r a l l f o r m a l l a n g u a g e s . I f t h i s w e r e d o n e , e a c h Y a c c s e m a n t i c r u l e w o u l d b e a c a l l t o a m e t h o d i n t h e L S C L t h a t w o u l d b u i l d t h e A S T . T h e c a p a b i l i t y t o c o n s t r u c t t h e p a r s e r t h i s w a y w a s n o t r e a l i z e d u n t i l t h e s e c o n d f o r m a l l a n g u a g e w a s c o m p l e t e d . C l a s s O b j e c t : N e w O b j e c t s a r e c r e a t e d w h e n O b j e c t n o d e s a r e f o u n d o n t h e A S T . T h e O b j e c t c l a s s k e e p s t r a c k O f a l l t h e s t a t e s , c o m p o s i t e , c o n c u r r e n t , a n d s i m p l e , w i t h i n i t s s c o p e . M e t h o d s i n O b j e c t h a n d l e t h e c r e a t i o n o f i n s t a n c e v a r i a b l e s a n d s i g n a l s . C l a s s C S t a t e : N e w C o n c u r r e n t S t a t e s a r e c r e a t e d f r o m c l a s s C S t a t e . C S t a t e h a s m a n y o f t h e s a m e m e t h o d s a s O b j e c t , s i n c e C S t a t e c a n a l s o c o n t a i n s i m p l e s t a t e s , c o n c u r r e n t s t a t e s a n d c o m p o s i t e s t a t e s . C l a s s C C S t a t e : C l a s s C C S t a t e i m p l e m e n t s t h e “ w r a p p e r ” a r o u n d a s e t o f c o n c u r r e n t c o m p o s i t e s t a t e s . T h e m a i n p u r p o s e O f t h e c l a s s i s t o m a i n t a i n a l i s t O f t h e c o m p o s i t e s t a t e s t h a t w i l l b e r u n n i n g c o n c u r r e n t l y , a n d t o b u i l d t h e n e c e s s a r y t a r g e t l a n g u a g e c o n s t r u c t s t o i m p l e m e n t c o n c u r r e n c y . C l a s s S t a t e : C l a s s S t a t e i m p l e m e n t s s i m p l e s t a t e s . T r a n s i t i o n s a r e i m p l e m e n t e d a s m e t h o d c a l l s t o m e t h o d “ T r a n ” i n S t a t e . C l a s s S t a t e i s r e s p o n s i b l e f o r m a i n t a i n i n g a l i s t O f a l l t r a n s i t i o n s , p a r s i n g t h e t r a n s i t i o n s , a n d p r o d u c i n g t h e t a r g e t s p e c i fi c a t i o n s c o r r e s p o n d i n g t o a s i m p l e s t a t e . T r a n s i t i o n p a r s i n g i s h a n d l e d b y c a l l i n g a s e c o n d Y a c c p a r s e r ( c l a s s ' I r a n Y a c c ) t o s p e c i fi c a l l y h a n d l e t h e t r a n s i t i o n e x p r e s s i o n . T h e t r a n s i - 1 8 2 t i o n p a r s e r i s c u r r e n t l y t i e d t o t h e t a r g e t l a n g u a g e , a l t h o u g h i t w o u l d b e p o s s i b l e t o m o v e t h e s e m a n t i c r u l e s i n t o t h e L S C L a s d e s c r i b e d a b o v e f o r c l a s s Y a c c . T r a n s i t i o n e x p r e s s i o n s a r e e n c l o s e d w i t h i n d o u b l e q u o t e s i n t h e H y d r a l a n g u a g e s o t h e H y d r a p a r s e r ( c l a s s Y a c c ) c a n p a s s t h e u n p a r s e d , q u o t e d s t r i n g t o m e t h o d “ T r a n ” w i t h o u t p a r s i n g t h e t r a n s i t i o n i t s e l f . A d d i n g r u l e s t o p a r s e t h e t r a n s i t i o n d i r e c t l y f r o m w i t h i n t h e H y d r a l a n g u a g e g r a m m a r i n t r o d u c e s a l a r g e n u m b e r O f s h i f t / r e d u c e c o n fl i c t s a n d g r e a t l y c o m p l i c a t e s t h e p r o c e s s i n g o f t h e l a n g u a g e a n d t r a n s i t i o n . S i n c e e v e n t d i s p a t c h i n g i s h a n d l e d a t t h e s t a t e l e v e l , c l a s s “ S t a t e ” c o n t a i n s m e t h o d s a n d r o u t i n e s t o g e n e r a t e s p e c i fi c a t i o n s f o r t h e t r a n s i t i o n m e c h a n i s m w i t h i n t h e t a r g e t l a n g u a g e . C l a s s e s H i s t o r y a n d I n i t : T h e s e c l a s s e s c r e a t e n e w H i s t o r y a n d I n i t i a l p s e u d o - s t a t e O b - j e c t s w i t h i n H y d r a t o s u p p o r t i n i t i a l , a n d h i s t o r y s t a t e s . C l a s s J o i n : T h e C l a s s J o i n i s r e s p o n s i b l e f o r i m p l e m e n t i n g t h e t h r e a d j o i n i n g m e c h a n i s m w h e n c o n c u r r e n t s t a t e s a r e u s e d . C l a s s J o i n i n t e r a c t s w i t h C l a s s C C S t a t e ( a n d h e n c e t h e r e f e r e n c e t o t h e C C S t a t e f o u n d i n t h e J o i n l a n g u a g e c o n s t r u c t ) t o r e c o m b i n e s e p a r a t e l y s p a w n e d t h r e a d s w i t h i n t h e m o d e l . C l a s s L o g : C l a s s L o g i s u s e d f o r d e b u g g i n g p u r p o s e s , b u t i n t h e t w o i m p l e m e n t e d L S C L s i t i s e s s e n t i a l l y i d e n t i c a l . C l a s s L o g i n s t a n t i a t e s a s i n g l e c l a s s O b j e c t a n d i s r e s p o n s i b l e f o r p r o d u c i n g d e b u g g i n g a n d p r o c e s s i n f o r m a t i o n a n n o t a t e d w i t h t h e O b j e c t t a k i n g t h e a c t i o n , a n d t h e l o c a t i o n w i t h i n t h e c l a s s l i b r a r y w h e r e t h e a c t i o n b e i n g l o g g e d O C C l l I ‘ S . 1 8 3 8 . 4 . 1 O p e r a t i o n o f t h e L S C L T h e L S C L b e g i n s O p e r a t i o n w h e n a s e t O f O b j e c t s a r e i n s t a n t i a t e d , a s d e s c r i b e d a b o v e , d u r i n g t h e H y d r a A S T t r e e w a l k . S o m e p r o c e s s i n g i s p o s s i b l e a s O b j e c t s a r e b e i n g c r e a t e d , b u t i n g e n e r a l , t h e e n t i r e m o d e l m u s t b e i n s t a n t i a t e d w i t h i n H y d r a a s L S C L O b j e c t s b e f o r e t a r g e t l a n g u a g e s p e c i fi c a t i o n g e n e r a t i o n c a n b e g i n . E a c h c l a s s i m p l e m e n t s m e t h o d “ P r e P r o c e s s ” f o r p e r f o r m i n g O p e r a t i o n s r e q u i r e d p r i o r t o t a r g e t s p e c i fi c a t i o n g e n e r a t i o n , i f a n y . W h e n t h e A S T t r e e w a l k i s c o m p l e t e , t h e H y d r a m a i n r o u t i n e c a l l s m e t h o d “ O u t p u t ” i n c l a s s C o n t e x t t o i n i t i a t e s p e c i fi c a t i o n g e n e r a t i o n . C o n t e x t fi r s t c y c l e s t h r o u g h i t s s e t o f c h i l d O b j e c t s c a l l i n g t h e “ P r e P r o c e s s ” m e t h o d . E a c h c h i l d , i n t u r n , c a l l s i t s c h i l d O b j e c t “ P r e P r o c e s s ” m e t h o d s u n t i l a l l “ P r e P r o c e s s ” m e t h o d s h a v e b e e n c a l l e d f o r a l l L S C L O b j e c t s . 8 . 4 . 2 R e s o l v i n g T r a n s i t i o n s C r o s s i n g C o m p o s i t e S t a t e B o u n d a r i e s I n a U M L d y n a m i c m o d e l , t h e n e s t i n g s t r u c t u r e o f c o m p o s i t e s t a t e s f o r m a h i e r a r c h y . H o w e v e r , U M L d o e s n o t r e q u i r e a c t i v a t i o n o f a s t a t e b y f o l l o w i n g t h e h i e r a r c h y s t r u c t u r e . T r a n s i t i o n s c a n o c c u r f r o m a n y w h e r e w i t h i n t h e h i e r a r c h y t o a n y w h e r e e l s e w i t h i n t h e h i e r a r c h y w i t h o u t r e g a r d t o t h e h i e r a r c h y s t r u c t u r e . I n V H D L , t h i s i s a s t r a i g h t f o r w a r d i s s u e . T h e U M L t o V H D L m a p p i n g u s e s a “ s t a t e b u s ” f o r s t a t e a c t i v a t i o n . A l l s t a t e s a r e l i s t e n i n g a t a l l t i m e s f o r t h e i r n a m e t o a p p e a r o n t h e b u s . W h e n t h e n a m e a p p e a r s , t h e s t a t e i s a c t i v a t e d . A s l o n g a s t h e V H D L s t a t e b u s h i e r a r c h y i s c o n s t r u c t e d t o m a t c h t h e s t a t e h i e r a r c h y , c r o s s h i e r a r c h i c a l t r a n s i t i o n s r e q u i r e n o f u r t h e r a c t i o n a t s p e c i fi c a t i o n g e n e r a t i o n t i m e . O t h e r l a n g u a g e s , s u c h a s P r o m e l a , h a v e a t r a d i t i o n a l “ p r o c e d u r e c a l l ” s t r u c t u r e . O b - j e c t s a n d c o m p o s i t e s t a t e s a r e m a p p e d t o P r o m e l a “ p r o c t y p e s ” , w h i l e s i m p l e s t a t e s a r e 1 8 4 i m p l e m e n t e d u s i n g “ g o t O ” t o t r a n s f e r t o a l a b e l w i t h i n a P r o m e l a p r o c t y p e . A c t i v a t i o n O f a c o m p o s i t e s t a t e c o r r e s p o n d s t o a c t i v a t i o n O f a P r o m e l a p r o c t y p e . T h e a c t i v a t i o n n e c e s s a r i l y f o l l o w s t h e h i e r a r c h i c a l s t r u c t u r e i m p o s e d b y t h e U M L m o d e l . T h e r e f o r e , a t r a n s i t i o n p a t h m a y l i e t h r o u g h a s e r i e s o f p r o c t y p e p r o c e d u r e s t h a t c o u l d p o s s i b l y t r a v e r s e u p a n d d o w n t h e h i e r a r c h y . A s d e p i c t e d i n F i g u r e 8 . 3 a t r a n s i t i o n f r o m w i t h i n c o m p o s i t e s t a t e “ F ” t o c o m p o s i t e s t a t e “ D ” r e q u i r e s a n e x i t t o “ B ” , t h e n a n e x i t t o “ A ” , a n d fi n a l l y , a n a c t i v a t i o n b y “ A ” o f t h e s i m p l e s t a t e w i t h i n “ D ” . I n p a s s i n g , w e n o t e t h a t o t h e r l a n g u a g e s w i t h i n t r a d i t i o n a l s u b - p r o c e s s s t r u c t u r e s , w h e n u s e d a s t a r g e t s , w o u l d p o s s e s t h e s a m e t r a n s i t i o n d i f fi c u l t l y . F o r t h i s d i s c u s s i o n , d e n o t e t h e C S t a t e , C C S t a t e , o r O b j e c t L S C L o b j e c t t h a t c o n t a i n s a S t a t e O b j e c t a s a n e n v i r o n m e n t . T o s o l v e t h e p r o b l e m o f d e s t i n a t i o n s t a t e a c t i v a t i o n i n t h e P r o m e l a c a s e , e a c h L S C L S t a t e O b j e c t a s k s i t s p a r e n t e n v i r o n m e n t O b j e c t w h e t h e r t h e d e s t i n a t i o n o n t h e t r a n s i t i o n i s l o c a l , t h a t i s , w i t h i n t h e e n v i r o n m e n t t h a t c o n t a i n s t h e S t a t e , o r w i t h i n a n o t h e r e n v i r o n m e n t . I f t h e d e s t i n a t i o n i s n o t l o c a l , t h e r e a r e t w o p o s s i b i l i t i e s : 1 . t h e d e s t i n a t i o n i s c o n t a i n e d i n a c h i l d e n v i r o n m e n t O b j e c t O f t h e c u r r e n t e n v i r o n - m e n t ( t h i s w o u l d b e d o w n t h e s t a t e h i e r a r c h y t r e e ) . T h e t r a n s i t i o n r e q u i r e s c a l l i n g a p r o c t y p e r e p r e s e n t i n g a l o w e r l e v e l e n v i r o n m e n t O b j e c t . 2 . t h e d e s t i n a t i o n i s c o n t a i n e d i n a n e n v i r o n m e n t O b j e c t t h a t c o n t a i n s t h e c u r r e n t e n v i - r o n m e n t ( t h i s w o u l d b e u p t h e s t a t e h i e r a r c h y t r e e ) . T h e t r a n s i t i o n r e q u i r e s r e t u r n i n g t o a p r o c t y p e t h a t h a s c a l l e d t h e c u r r e n t e n v i r o n m e n t . W i t h i n e a c h e n v i r o n m e n t O b j e c t a l o n g t h e t r a n s i t i o n p a t h , t h i s d e c i s i o n p r o c e s s i s r e p e a t e d r e c u r s i v e l y u n t i l t h e d e s t i n a t i o n i s l o c a l t o a n e n v i r o n m e n t . 1 8 5 R e f e r r i n g a g a i n t o F i g u r e 8 . 3 , s u p p o s e s t a t e “ x ” i n c o m p o s i t e s t a t e “ F ” n e e d s t o t r a n - “ ” s i t i o n t o s t a t e “ y ” i n c o m p o s i t e s t a t e “ D ” . F i r s t , x a s k s “ F ” i f “ y ” i s l o c a l ( c o n t a i n e d w i t h i n t h e p r o c e d u r e r e p r e s e n t e d b y “ F ” ) . S t a t e “ y ” i s n o t l o c a l , s o “ F ” s e e k s d e s t i n a t i o n “ y ” d o w n w a r d . T h i s t o o f a i l s s i n c e “ y ” i s n o t d o w n w a r d . F i n a l l y , “ F ” a s k s i t s p a r e n t t O fi n d s t a t e “ y ” . S i m i l a r l y , “ B ” a l s o d o e s n o t fi n d “ y ” l o c a l l y o r w i t h i n i t s c h i l d r e n . E a c h O b j e c t s i m i l a r l y r e s p o n d s t h a t t h e d e s t i n a t i o n i s l o c a l , o r i t s e a r c h e s i t s c h i l d r e n , a n d fi n a l l y , a s k s i t s p a r e n t t o fi n d t h e d e s t i n a t i o n . E v e n t u a l l y , a s e r i e s O f c a l l s p a s s i n g f r o m “ F ” t o “ B ” t o “ A ” t o “ D ” i s e s t a b l i s h e d r e v e a l i n g t h e p a t h t o “ y ” . A l t h o u g h “ D ” r e p o r t s t o “ A ” t h a t s t a t e “ y ” i s l o c a l , “ F ” t e l l s S t a t e “ x ” t h a t “ y ” i s u p . S i n c e e v e r y o b j e c t i n t h e p a t h a l s o s e e s t h e r e t u r n e d r e s o l u t i o n o f t h e d e s t i n a t i o n , e a c h O b j e c t o n t h e p a t h c a n p r e p a r e l o c a l l y f o r t h e t r a n s i t i o n t o “ y ” w h e n i t i s r e q u i r e d . " x " i n h e r e F i g u r e 8 . 3 : R e s o l v i n g a t r a n s i t i o n d e s t i n a t i o n i n a c o m p o s i t e s t a t e h i e r a r c h y . T h e o v a l s r e p r e s e n t c o m p o s i t e s t a t e s . S o m e m a p p i n g s f r o m U M L t o f o r m a l l a n g u a g e s , L a t e l l a ’ s [ 6 4 ] w o r k f o r e x a m p l e , a v o i d t h i s t y p e O f p r o c e s s i n g b y t r a n s f o r m i n g t h e e n t i r e m o d e l t o a e x t e n d e d h i e r a r c h i c a l s t a t e 1 8 6 m a c h i n e e a r l y i n t h e t r a n s l a t i o n p r o c e s s . B u t , a s s h o w n a b o v e , t h e d e g r e e t o w h i c h s e a r c h i n g t h e s t a t e h i e r a r c h y i s r e q u i r e d d e p e n d s d i r e c t l y o n t h e t a r g e t l a n g u a g e . F o r V H D L , a t r a n s l a t i o n t o a n e x t e n d e d h i e r a r c h i c a l s t a t e m a c h i n e w o u l d b e o f l i t t l e u s e . T h e r e f o r e , w e i m p l e m e n t a s e a r c h o f t h e h i e r a r c h y i n t h e P r o m e l a L S C L a n d o m i t i t i n t h e V H D L L S C L . 8 . 4 . 3 T a r g e t S p e c i fi c a t i o n G e n e r a t i o n A t t h e c o n c l u s i o n O f p r e p r o c e s s i n g , c l a s s C o n t e x t c a l l s m e t h o d “ G l o b a l O u t p u t ” f o r e a c h o b j e c t i t o w n s t o w r i t e a n y g l o b a l d e c l a r a t i o n s r e q u i r e d b y t h e m o d e l . N e x t , C o n t e x t c a l l s m e t h o d “ O u t p u t ” f o r e a c h O b j e c t i t o w n s t o g e n e r a t e t h e a c t u a l t a r g e t s p e c i fi c a t i o n s . W i t h i n t h e L S C L t h e r e a r e t w o o u t p u t m e t h o d s : “ O u t p u t ” f o r g e n e r a t i n g c o m p l e t e s t r u c t u r e s , u s u a l l y t a r g e t l a n g u a g e c o n t a i n e r s s u c h a s p r o c t y p e s a n d e n t i t y / a r c h i t e c t u r e s , a n d “ L c l O u t p u t ” f o r g e n e r a t i n g s p e c i fi c a t i o n s t h a t r e s i d e s w i t h i n o n e O f t h e s e s t r u c t u r e s . F i g u r e 8 . 4 i l l u s t r a t e s t h e d i f f e r e n t s t r u c t u r e s w r i t t e n b y e a c h m e t h o d . C l a s s S t a t e ’ s p r o - c e s s i n g i s p r i m a r i l y c o n t a i n e d w i t h i n m e t h o d “ L c l O u t p u t ” b e c a u s e i t i s g e n e r a t i n g m a p p e d s p e c i fi c a t i o n s f o r s i m p l e s t a t e s t h a t r e s i d e s w i t h i n t h e c o n t a i n i n g s t r u c t u r e . F o r e x a m p l e , a c a l l t o c l a s s S t a t e ’ s “ L c l O u t p u t ” g e n e r a t e s a l a b e l a n d a s e t O f “ i f ” s t r u c t u r e s t h a t w i l l b e c o n t a i n e d w i t h i n a p r o c t y p e d e fi n i t i o n . M a n y O f t h e f o r m a l l a n g u a g e m e t a m o d e l ’ s t e m p l a t e s a r e u s e d w i t h i n c l a s s S t a t e ’ s L c l O u t p u t m e t h o d , a n d t h e r e f o r e , m a n y s e m a n t i c d e c i s i o n s a r e t u r n e d i n t o t a r g e t l a n g u a g e s p e c i fi c a t i o n s w i t h i n t h i s m e t h o d . 1 8 7 i p r o c t y p e A ( ) : { a t o m i c { : m t y p e c p 1 _ c o d e . c p 2 _ c o d e : = < G e n e r a t e d b y O u t p u t ( O b j e c t ) : i n t c p 1 _ p i d , c p 2 _ p i d ; I m t y p e m ; l . . i n t - d u m m y ; _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ , , / . I n i t s t a t e . 7 G e n e r a t e d b y L c l O u t p u t ( I n I n l t ) . . . . . . . . . . . 9 9 § 9 _ E 9 _ Q P } J / ' S t a t e f * / f : S k i p : p r i n t f ( " i n s t a t e A . f \ n " ) ; I l l l o l i n _ f : : i f I : A _ q ? t 7 — > i f 1 - : A _ V . g l — > A _ V . v a r a = 1 ; B _ q ! o n ; g o t o t o _ c p l - : e l s e — > g o t o i n _ f : f i l I I S t a t e s p e c i f i c a t i o n s f r o m L c l O u t p u t f o r o n e s t a t e ( i n S t a t e ) F i g u r e 8 . 4 : T h r e e d i f f e r e n t p o r t i o n s o f g e n e r a t e d s p e c i fi c a t i o n s w r i t t e n b y m e t h o d s O u t p u t a n d L c l O u t p u t f r o m s t a t e s O b j e c t , I n i t , a n d S t a t e , r e s p e c t i v e l y . 1 8 8 C h a p t e r 9 I n d u s t r i a l C a s e S t u d y T h i s c h a p t e r i l l u s t r a t e s t h e u s e O f t h e d e s i g n m e t h o d o l o g y d e s c r i b e d i n C h a p t e r 4 t o d e - s i g n a t y p i c a l i n d u s t r i a l e m b e d d e d s y s t e m c a l l e d “ S m a r t C r u i s e ” . T h e m e t h o d o u t l i n e d i n C h a p t e r 4 r e l i e s o n m a n y U M L d i a g r a m s t h a t a r e s h o w n a s t h e d e s i g n p r o c e s s e s p r o g r e s s e s t h r o u g h t h e c h a p t e r . A n O b j e c t i v e O f t h e c a s e s t u d y i s t o s h o w h o w o u r h o m o m o r p h i c f r a m e w o r k , a l o n g w i t h o u r d e s i g n p r o c e s s u s i n g U M L d i a g r a m s , c a n a u t o m a t i c a l l y t r a n s l a t e d i a g r a m s t o f o r m a l s p e c i fi c a t i o n s u s i n g H y d r a , w h i c h c a n b e e x e c u t e d a n d a n a l y z e d . I n p a r t i c u l a r , t h e c a s e s t u d y i l l u s t r a t e s h o w t h e U M L c l a s s a n d d y n a m i c m o d e l d i a g r a m s c a n b e t r a n s f o r m e d t o s p e c i fi c a t i o n s s o t h a t m o d e l c h e c k i n g c a n b e p e r f o r m e d . C h e c k i n g t h e d y n a m i c m o d e l O f a n e m b e d d e d s y s t e m i s n o t o r i o u s l y d i f fi c u l t , a s d e s c r i b e d e a r l i e r , t h e r e f o r e m o d e l c h e c k i n g t o v a l i d a t e s a f e t y a n d l i v e n e s s p r o p e r t i e s O f t h e s y s t e m a r e p a r t i c u l a r l y i m p o r t a n t . B e c a u s e t h e c a s e s t u d y u s e s b o t h s i m u l a t i o n a n d m o d e l c h e c k i n g , t h e f o r m a l t a r g e t s p e c i fi c a t i o n l a n g u a g e u s e d i n t h i s c a s e s t u d y i s P r o m e l a a n d t h e a n a l y s i s t o o l i s S P I N , a s d e s c r i b e d i n S e c t i o n 2 . 3 . A n o t h e r O b j e c t i v e O f t h e c a s e s t u d y i n t h i s c h a p t e r i s t o d e m o n s t r a t e t h e p r a c t i c a l 1 8 9 a p p l i c a t i o n o f t h e h o m o m o r p h i c m a p p i n g f r a m e w o r k t o a n o t h e r l a n g u a g e . W e p r e v i o u s l y p r e s e n t e d a s m a l l e r e x a m p l e O f a s y s t e m t h r o u g h a m a p p i n g t o V H D L i n s e c t i o n 5 . 3 . T h i s c h a p t e r d e m o n s t r a t e s t h a t t h e f r a m e w o r k i s u s e f u l t o O b t a i n f o r m a l , e x e c u t a b l e m o d e l s i n a d i f f e r e n t l a n g u a g e t h a t i s a m i a b l e t o m o d e l c h e c k i n g . F i n a l l y , t h i s c h a p t e r s h o w s t h a t s y s t e m r e fi n e m e n t c a n o c c u r q u i c k l y a n d i n d o m a i n s n o t n o r m a l l y f o r m a l l y a c c e s s i b l e i n d e s i g n m e t h o d o l o g i e s . R e fi n e m e n t o c c u r s q u i c k l y b e - c a u s e i t i s w i t h i n t h e d i a g r a m t o P r o m e l a m o d e l l O O p . A s t h e d y n a m i c a n d c l a s s m o d e l s a r e m o d i fi e d , t h e c h a n g e s a r e a u t o m a t i c a l l y t r a n s l a t e d w i t h H y d r a t o P r o m e l a q u i c k l y . I n a d d i t i o n , t h e s t u d y d e s c r i b e s m o d i fi c a t i o n O f t h e s e m a n t i c s O f m e s s a g e p a s s i n g w i t h i n t h e s y s t e m . T h i s i s a c c o m p l i s h e d b y m o d i f y i n g t h e h o m o m o r p h i c m a p p i n g . I n o t h e r d e v e l - o p m e n t m e t h o d o l o g i e s , t h e s e m a n t i c s O f t h e f o r m a l d e s i g n l a n g u a g e , i f a n y , i s fi x e d , a n d c a n n o t b e m o d i fi e d t o s u i t e t h e a p p l i c a t i o n . 9 . 1 D e s c r i p t i o n o f “ S m a r t C r u i s e ” M o s t c u r r e n t p r o d u c t i o n c a r s h a v e a f a c i l i t y c a l l e d “ c r u i s e c o n t r o l ” t h a t e n a b l e s t h e d r i v e r t o s e t a g i v e n s p e e d t o b e m a i n t a i n e d b y t h e c a r . T h e O p e r a t i o n i s s i m p l e : w h e n t h e d r i v e r p r e s s e s a b u t t o n o n t h e s t e e r i n g c o l u m n , t h e c a r m a i n t a i n s t h e c u r r e n t s p e e d u n t i l t h e c r u i s e i s t u r n e d o f f i o r t h e b r a k e s a r e a p p l i e d . C u r r e n t p r o d u c t i o n c a r s i m p l e m e n t c r u i s e c o n t r o l w i t h i n t h e e n g i n e c o n t r o l m o d u l e s , a n d t h e r e f o r e , t h e o n l y s p e e d c o n t r o l m e c h a n i s m a v a i l a b l e i s t h r o u g h t h r o t t l e p o s i t i o n . A m a j o r i n c o n v e n i e n c e d u r i n g c r u i s e c o n t r o l O p e r a t i o n o c c u r s w h e n t h e d r i v e r i s f o l l o w i n g a s l o w e r v e h i c l e . T o a v o i d h i t t i n g t h e l e a d i n g v e h i c l e , e i t h e r t h e c r u i s e m u s t b e d i s e n g a g e d b y a p p l y i n g t h e b r a k e s , o r b y s w i t c h i n g i t O f f , o r t h e c r u i s e m u s t b e r e s e t t o a s l o w e r s p e e d t o m a t c h t h e l e a d i n g v e h i c l e . 1 9 0 9 . 1 . 1 R e q u i r e m e n t s S m a r t C r u i s e i s i n t e n d e d t o i n c r e a s e t h e c o n v e n i e n c e t y p i c a l l y a s s o c i a t e d w i t h f o l l o w i n g a v e h i c l e w h e n u s i n g c r u i s e c o n t r o l . T h e h i g h l e v e l u s e c a s e i s a s f o l l o w s : W h e n S m a r t C r u i s e i s e n a b l e d a n d d e t e c t s a v e h i c l e ( c a l l e d t h e t a r g e t ) , t h e S m a r t C r u i s e s h a l l r e - c o m m a n d t h e e n g i n e c o n t r o l s y s t e m t o a s p e e d t O m a t c h t h e t a r g e t v e h i c l e . T h e t r a i l d i s t a n c e b e h i n d t h e t a r g e t i s s p e c i fi e d a s t h e t i m e t h e t a r g e t t r a v e l s i n a g i v e n a m o u n t o f t i m e ( u s u a l l y t w o s e c o n d s ) . I f t h e e q u i p p e d c a r c l o s e s t o w i t h i n 9 0 % o f t h e s p e c i fi e d t r a i l d i s t a n c e ( c a l l e d t h e s a f e d i s t a n c e ) b e h i n d t h e t a r g e t , a n a u d i o w a r n i n g m u s t b e s o u n d e d a n d t h e c r u i s e d i s e n g a g e d . O t h e r w i s e , t h e s y s t e m m u s t m a t c h t h e s p e e d O f t h e t a r g e t v e h i c l e w h i l e m a i n t a i n i n g a t r a i l d i s t a n c e c l o s e t o t h e s p e c i fi e d O p t i m u m t r a i l d i s t a n c e , b u t n e v e r l e s s t h a n t h e s a f e d i s t a n c e . S p e e d m a t c h i n g s h o u l d c o n t i n u e u n t i l e i t h e r t h e t a r g e t m o v e s o u t o f r a n g e ( b y s p e e d i n g u p o r t u r n i n g ) o r u n t i l t h e d r i v e r a p p l i e s t h e b r a k e s . A b r a k e s i g n a l m u s t d i s e n g a g e t h e e n t i r e c r u i s e s y s t e m . I f t h e s y s t e m c a n d e t e r m i n e t h a t i t w i l l s t r i k e t h e t a r g e t v e h i c l e u n l e s s d r i v e r a c t i o n i s t a k e n , t h e n i t m u s t p r o d u c e a v i s u a l w a r n i n g , b u t n o t d i s e n g a g e t h e s y s t e m . O n l y w h e n t h e s a f e d i s t a n c e i s v i o l a t e d s h a l l t h e s y s t e m d i s e n g a g e , t h u s s y s t e m d i s e n g a g e m e n t c a n o c c u r a u t o m a t i c a l l y i f t h e c a r e n t e r s t h e u n s a f e z o n e , o r b y t h e d r i v e r b y a p p l y i n g t h e b r a k e s . 9 . 1 . 2 S y s t e m E n v i r o n m e n t a n d U s e C a s e F i g u r e 9 . 1 s h o w s t h e U s e C a s e d i a g r a m f o r S m a r t C r u i s e t h a t c o n t a i n s o n e u s e c a s e n a m e d “ M a i n t a i n C r u i s e ” . T h e p r o s e d e s c r i p t i o n O f t h i s u s e c a s e i s a s f o l l o w s : U s e C a s e M a i n t a i n C r u i s e : M a i n fl o w o f e v e n t s : T h e p r i m a r y fl o w o f e v e n t s o c c u r s w h e n t h e d r i v e r p r e s s e s t h e “ s e t ” 1 9 1 T a r g e t V e h i c l e d i s t a n c e v i a r a d a r I I 4 W a r n i n g s I % ‘ S m a r t C r u i s e : ¥ I . s e t c r u i s e : j I D r i v e r p u s h b r a k e s ; : c u r r e n t s p e e d s e t s p e e d V C a r S p e e d C o n t r o l F i g u r e 9 . 1 : S y s t e m C l a s s C o n t e x t M o d e l f o r S m a r t C r u i s e . b u t t o n o n t h e c r u i s e c o n t r o l . A t t h a t t i m e , t h e c a r s t a r t s m a i n t a i n i n g s e t c u r r e n t s p e e d . I f a v e h i c l e a p p e a r s i n f r o n t O f t h e c a r ( C a l l e d t h e t a r g e t , t h e c r u i s e c o n t r o l m o d i fi e s t h e s p e e d O f t h e c a r u n t i l a s a f e t r a i l d i s t a n c e i s a c h i e v e d . O n c e a c h i e v e d , t h e c a r m a i n t a i n s t h a t p o s i t i o n b e h i n d t h e c a r u n t i l t h e c r u i s e c o n t r o l i s t u r n e d O f f . E x c e p t i o n a l F l o w - C a r g o i n g t o o f a s t : I f t h e c a r i s g o i n g t o o f a s t t o d e c e l e r a t e w i t h - o u t b r a k e s b e f o r e a r r i v i n g a t a s a f e t r a i l d i s t a n c e , t h e c r u i s e c o n t r o l m u s t n o t i f y t h e d r i v e r . I f t h e s a f e z o n e i s e n t e r e d , t h e d r i v e r m u s t b e n o t i fi e d a n d t h e c r u i s e t u r n e d O f f E x c e p t i o n a l F l o w - T a r g e t T u r n s : I f t h e t a r g e t t u r n s , o r o t h e r w i s e i s n o l o n g e r i n f r o n t o f t h e c a r , t h e n t h e c r u i s e m u s t r e s u m e t h e p r e v i o u s s e t s p e e d . E x c e p t i o n a l F l o w - B r a k e s A p p l i e d : I f t h e d r i v e r d e p r e s s e s t h e b r a k e s a t a n y t i m e , t h e c r u i s e m u s t i m m e d i a t e l y c e a s e s p e e d c o n t r o l , a n d t h e m a i n fl o w t a k e s c o n t r o l . A s d i s c u s s e d i n C h a p t e r 4 o n D e s i g n P r o c e s s , t h e u s e c a s e d i a g r a m p r o v i d e s s o m e p e r s p e c t i v e o n a c t o r s e x t e r n a l t o t h e s y s t e m v e r s u s t h e s y s t e m i t s e l f . A s t h a t c h a p t e r a l s o 1 9 2 d e s c r i b e s , w e fi n d a s y s t e m c o n t e x t m o d e l a l s o t O b e u s e f u l t o m a k e a c l e a r d e l i n e a t i o n b e t w e e n e x t e r n a l a n d i n t e r n a l s y s t e m c o m p o n e n t s , a n d t o p r o v i d e a h i g h l e v e l v i e w o f t h e i n t e r a c t i o n o f t h e s y s t e m w i t h t h e e n v i r o n m e n t . F i g u r e 9 . 1 s h o w s t h e s y s t e m c o n t e x t m o d e l f o r S m a r t C r u i s e . A s b o t h F i g u r e s 9 . 1 a n d 9 . 2 s h o w , t h e e n v i r o n m e n t o f t h e s y s t e m i s a c a r w h o s e s p e e d i s c o n t r o l l e d , a d r i v e r , a n d t h e t a r g e t v e h i c l e . T h e s y s t e m i n t e r a c t s w i t h t h e d r i v e r b y a c c e p t i n g t h e “ s e t ” b u t t o n o n t h e c r u i s e , a n d b y a c c e p t i n g a “ b r a k e s a p p l i e d ” s i g n a l . T h e s y s t e m p r o d u c e s s p e e d c o n t r o l f o r t h e c a r a n d a l a r m s f o r t h e d r i v e r . T h e t a r g e t s u p p l i e s i t s d i s t a n c e i n d i r e c t l y t h r o u g h r a d a r r e t u r n s . O t h e r i n f o r m a t i o n , s u c h a s t a r g e t s p e e d , m u s t b e c a l c u l a t e d . T h e s y s t e m c a n c o m m a n d a s e t s p e e d t o t h e c a r e n g i n e c o n t r o l a n d i t c a n r e a d t h e c u r r e n t s p e e d O f t h e c a r . T h e s y s t e m h a s n o m e a n s t o a p p l y b r a k e s . S m a r t C r u i s e C o n t r o l \ M a i n t a i n C r u i s e D r i v e r % / F i g u r e 9 . 2 : S y s t e m U s e C a s e M o d e l f o r S m a r t C r u i s e . T a r g e t V e h c i l e T h e p r i m a r y f l o w o f e v e n t s o c c u r s w h e n t h e c a r c o m e s u p b e h i n d t h e t a r g e t . A t t h i s p o i n t i t m u s t d e t e c t t h e t a r g e t , d e t e r m i n e i t s s p e e d , c a l c u l a t e w h e n t O s l o w d o w n , t h e n s l o w t o m a t c h t h e t a r g e t . T h e t a r g e t m u s t b e t r a i l e d u n t i l t h e c r u i s e i s s h u t O f f o r t h e t a r g e t d i s a p p e a r s . 1 9 3 9 . 1 . 3 S y s t e m C o m p o n e n t s T h e s y s t e m c o m p o n e n t s i n c l u d e a r a d a r m o d u l e t h a t c a n r e l i a b l y d e t e c t d i s t a n c e t o t h e t a r g e t f r o m a b o u t 4 0 0 f e e t , a n d a c o n t r o l s y s t e m t h a t u s e s t h e r a d a r i n f o r m a t i o n a n d c a r s p e e d i n f o r m a t i o n t o c o m m a n d t h e c a r ’ s t h r o t t l e a s r e q u i r e d t o m a i n t a i n t h e a p p r o p r i a t e t r a i l d i s t a n c e . T h e c a r ’ s e n g i n e c o n t r o l d i r e c t l y m a n i p u l a t e s t h e t h r o t t l e t o m a i n t a i n t h e s p e e d c o m m a n d e d b y c l a s s C o n t r o l . W h e n t h e r a d a r f i r s t r e l i a b l y d e t e c t s a t a r g e t a t a b o u t 4 0 0 f e e t , i t s e n d s a “ t a r g e t a c q u i r e d ” m e s s a g e , a n d i f t h e t a r g e t i s l o s t , a “ t a r g e t l o s t ” m e s s a g e i s s e n t . T a r g e t s c a n b e l o s t w h e n t h e y m o v e a h e a d o u t O f r a n g e o r t u r n , t h e r e f o r e , t a r g e t l o s s i m p l i e s t h a t t h e c a r s h o u l d r e s u m e t h e p r e v i o u s l y s e t s p e e d . 9 . 2 I n i t i a l S y s t e m D e s i g n T h e f o c u s o f c l a s s C o n t r o l i s t h e s p e e d m a t c h i n g a l g o r i t h m . A n y c o m m a n d t o s e t t h e c a r t o a n e w s p e e d w i l l b e a c h i e v e d a t a n a c c e l e r a t i o n o r d e c e l e r a t i o n c h a r a c t e r i s t i c O f t h e c a r . F o r d e s i g n p u r p o s e s , w e a s s u m e t h e c a r b o t h a c c e l e r a t e s a n d d e c e l e r a t e s a t a = 1 . 5 f t / s e c . T h e c o n t r o l a l g o r i t h m m u s t m a t c h t h e b e h a v i o r , t o t h e d e g r e e f e a s i b l e , O f a h u m a n d r i v e r . T h e fi r s t t e m p t a t i o n i s t o d e s i g n t h e a l g o r i t h m t o s t a r t s l o w l y d e c e l e r a t i n g w h e n t h e t a r g e t i s a c q u i r e d , b u t h u m a n d r i v e r s d o n o t b e h a v e t h i s w a y . I n s t e a d , a h u m a n c o n t i n u e s a t c r u i s e s p e e d u n t i l s h e d e c i d e s t h a t c o a s t i n g w i l l c a u s e t h e c a r t o c l o s e t o a r e a s o n a b l e t r a i l d i s t a n c e b e h i n d t h e t a r g e t . O n e p r a c t i c a l r e a s o n f o r t h i s k i n d o f b e h a v i o r i s d i c t a t e d b y o t h e r d r i v e r ’ s b e h a v i o r i n h e a v i e r t r a f fi c . I f a s u b s t a n t i a l d i s t a n c e i s l e f t b e t w e e n t h e t a r g e t a n d t h e c a r w h i l e t h e c a r v e r y s l o w l y c l o s e s t h e d i s t a n c e t o t h e t a r g e t f r o m 4 0 0 f e e t o r m o r e , i t i s l i k e l y t h a t a n o t h e r v e h i c l e w i l l c u t i n t o t h e s p a c e b e t w e e n t h e t a r g e t a n d t h e c a r . T h u s , f r o m a p r a c t i c a l v i e w p o i n t , w e s h o u l d d e s i g n t h e s y s t e m t o c o n t i n u e a t s e t c r u i s e 1 9 4 s p e e d f o r a s l o n g a s p o s s i b l e . T h e d i s t a n c e c l o s i n g a l g o r i t h m w e e m p l o y c a l c u l a t e s t h e d i s t a n c e b e h i n d t h e t a r g e t a t w h i c h t O s t a r t d e c e l e r a t i n g . F i g u r e 9 . 3 s h o w s d i a g r a m m a t i c a l l y t h e d i s t a n c e s i n v o l v e d . F i r s t , w e n e e d t h e c l o s i n g s p e e d O f t h e c a r w i t h t h e t a r g e t , w h i c h r e q u i r e s a t l e a s t t w o d i s t a n c e s a m p l e s f r o m t h e r a d a r . T h e c a r s p e e d c a n b e r e q u e s t e d f r o m t h e e n g i n e c o n t r o l , e n a b l i n g c l a s s C o n t r o l t o c o m p u t e t h e s p e e d o f t h e t a r g e t a n d t h e c l o s i n g s p e e d . U s i n g t h e c l o s i n g s p e e d , t h e d i s t a n c e t o m a t c h t h e t a r g e t s p e e d a t d e c e l e r a t i o n a i s g i v e n b y t h e f o r m u l a a s " , = U 2 / 2 a . F o r a t r a i l d i s t a n c e O f t m m , e x p r e s s e d i n s e c o n d s a t t h e t a r g e t S p e e d , a n d a c o m p u t e d t a r g e t s p e e d O f v t , w e w a n t t O b e g i n d e c e l e r a t i n g w h e n w e a r e I E c o a s r f e e t b e h i n d t h e t a r g e t , w h e r e m c o a s t = v 2 / 2 a + t m m v c . D i r e c t i o n o t T r a v e l D i s t a n c e t o s t a r t c o a s t i n g I l i 5 V a r i a b l e x c o a s t / T a r g e t A c q u i s i t i o n D i s t a n c e D e s i d T r a i l S a f e t y Z o n e 9 0 % o f d e s i r e d D i s t a n c e V a r i a b l e 1 2 . t r a i l d i s t a n c e . V a r i a b l e z l . F i g u r e 9 . 3 : V a r i o u s d i s t a n c e s i n v o l v e d t o c l o s e o n a n d m a i n t a i n a s a f e t r a i l i n g d i s t a n c e . T h e m o s t o b v i o u s i m p l i c a t i o n O f t h i s c o n t r o l p o l i c y o c c u r s w h e n t h e t a r g e t s l o w s d o w n a f t e r t h e d e c e l e r a t i o n h a s b e g u n . I n t h i s c a s e , w e w o u l d h a v e w a n t e d t o s t a r t d e c e l e r a t i n g s o o n e r , b u t i t i s a l r e a d y t o o l a t e . T h e r e f o r e , t h e b e s t c l a s s C o n t r o l c a n d o , s i n c e i t d o e s n o t h a v e a c c e s s t o b r a k e s , i s t o c o n t i n u e d e c e l e r a t i n g a n d m o n i t o r i n g t h e c l o s i n g s p e e d a n d d i s t a n c e . W h e n c l a s s C o n t r o l c o m p u t e s t h a t t h e c a r w i l l c o l l i d e w i t h t h e t a r g e t , i t m u s t p r o v i d e a n a l a r m . I f t h e c a r e n t e r s t h e u n s a f e z o n e b e h i n d t h e t a r g e t , t h e n i t m u s t p r o d u c e a w a r n i n g a n d d i s e n g a g e t h e c r u i s e c o n t r o l . O n t h e o t h e r h a n d , i f t h e t a r g e t s p e e d s u p , c l a s s 1 9 5 C o n t r o l s h o u l d c o m m a n d a n i n c r e a s e d s p e e d , w h e r e t h e m a x i m u m i s t h e o r i g i n a l s e t - p o i n t f o r t h e c r u i s e c o n t r o l . 9 . 2 . 1 U s e C a s e S c e n a r i o s T h e m a i n fl o w O f e v e n t s i n t h e u s e c a s e o c c u r s w h e n t h e d r i v e r d e p r e s s e s t h e “ s e t ” b u t t o n o n t h e c r u i s e , f o l l o w e d b y t h e c a r a p p r o a c h i n g t h e t a r g e t f r o m b e h i n d . A t t h i s p o i n t i t m u s t d e t e c t t h e t a r g e t , d e t e r m i n e i t s s p e e d , c a l c u l a t e w h e n t o s l o w d o w n , t h e n s l o w t o m a t c h t h e t a r g e t . T h e t a r g e t m u s t b e t r a i l e d u n t i l t h e c r u i s e i s s h u t 0 6 o r t h e t a r g e t d i s a p p e a r s . F i g u r e 9 . 4 s h o w s t h e h i g h l e v e l s e q u e n c e d i a g r a m f o r t h e m a i n fl o w o f e v e n t s i n t h e u s e c a s e . % I c o n t r o l | r a d a r l c a r I _ m _ _ . r l t u r n o n g 7 g e t c a r S p fi d _ _ _ . S e t c m i s e < “ i i — _ I e e d s e t s p e e d , t a r g e t a g u i r e d W M C a l c u l a t e d i s t a n c e t o s e t s p e e d t o t a r g e t s p e e d s t a r t i n g c o a s t i n g t o m a t c h t a r g e t s p e e d . . _ _ _ _ d i s t _ _ _ _ _ — - r - - — s p e e d = M i n ( s e t s p e e d . t a r g e t s p e e d ) : { u n t i l C N I S G d i s a b l e d } _ L _ _ L . . l . . l F i g u r e 9 . 4 : M a i n fl o w o f e v e n t s f r o m U s e C a s e “ M a i n t a i n C r u i s e ” I n t h e p r e v i o u s s c e n a r i o t h e c l o s i n g s p e e d w a s l o w e n o u g h t o a l l o w t h e c a r t o c o a s t t o a s p e e d m a t c h i n g t h e t a r g e t ’ s s p e e d . I f t h e c l o s i n g s p e e d w i t h t h e t a r g e t i s t o o g r e a t , t h e s c e n a r i o c a l l e d “ C a r g o i n g t o o f a s t ” i n F i g u r e 9 . 5 s h o w s t h e h i g h l e v e l e x p e c t e d b e h a v i o r f o r t h e s y s t e m . A s s o o n a s p o s s i b l e , t h e s y s t e m m u s t d e t e c t a p o s s i b l e c o l l i s i o n a n d w a r n t h e d r i v e r . I f t h e s a f e t y z o n e i s e n t e r e d , t h e n t h e s y s t e m m u s t p r o v i d e a fi n a l w a r n i n g t o 1 9 6 s p e e d i s t o o g r e a t . m a t c h t a r g e t s p e e d . t h e d r i v e r a n d t u r n t h e s y s t e m O f f . f E c o n t r o l ' ' c a r t u r n o n S e t t i n g u p c r u i s e o p e r a t i o n A c q u i r e d a r o u n d 4 0 0 i t . g o i n g t o o f a s t v i o l a t e d s a f e t y z o n e \ . C a l c u l a t e d i s t a n c e t o C a l c u l a t e t h a t c l o s m g s t a r t i n g c o a s t i n g t o F i g u r e 9 . 5 : E x c e p t i o n “ C a r g o i n g t o o f a s t ” f r o m U s e C a s e “ M a i n t a i n C r u i s e ” . I f t h e r a d a r l o s e s t r a c k i n g o n t h e t a r g e t ( m o s t l i k e l y b e c a u s e i t t u r n e d ) , t h e n t h e c a r m u s t r e s u m e o r i g i n a l s e t s p e e d p e r U s e C a s e e x c e p t i o n “ T a r g e t T u r n s ” . T h e h i g h l e v e l s e q u e n c e d i a g r a m f o r t h i s s c e n a r i o i s s h o w n i n F i g u r e 9 . 6 . T h e fi n a l u s e c a s e s c e n a r i o i n F i g u r e 9 . 7 s h o w s c o r r e c t b e h a v i o r w h e n t h e b r a k e s a r e a p p l i e d w h i l e t h e s y s t e m i s f u n c t i o n i n g . P r o p e r b e h a v i o r m u s t i n c l u d e s h u t t i n g d o w n t h e r a d a r a n d r e t u r n i n g t h e c o n t r o l s y s t e m t o a n i d l e m o d e . 9 . 3 C l a s s D i a g r a m O u r fi r s t d e s i g n i n c l u d e d f o u r c l a s s e s i n t h e s y s t e m : T h e C o n t r o l c l a s s , t h e C a r c l a s s ( i n c l u d i n g t h e t h r o t t l e c o n t r o l a n d r e a d - o u t O f c a r s p e e d i n f o r m a t i o n ) , t h e R a d a r c l a s s , a t a r g e t c l a s s , a n d a S Y S T E M c l a s s . T h i s c o n fi g u r a t i o n s i m p l i fi e s s i m u l a t i o n b e c a u s e t h e t a r g e t i s e x p l i c i t l y l i s t e d a s a n O b j e c t w i t h i t s o w n s e t o f r e s p o n s i b i l i t i e s . T h i s s u g g e s t s t h a t t h e t a r g e t c a n r e s p o n d t o t h e r a d a r c l a s s w i t h i t s s p e e d t o u p d a t e t h e c a r ’ s a : d i s t a n c e a l o n g 1 9 7 % I c o n t r o l I I r a d a r I m 7 d i s t ‘ i ‘ s p e e d = M i n ( s e t s p e e d . t a r g e t s p e e d L A ‘ , T a r g e t l o s t ‘ , C a r r e s u m e s ‘ , ‘ s p e e d = s e t s p e e d _ o r g i n a l s e t s p e e d ‘ , ‘ \ v C o n t i n u a l u p d a t e s S p e e d a d j u s t m e n t s a s r e q u i r e d F i g u r e 9 . 6 : E x c e p t i o n “ T a r g e t T u r n s ” f r o m U s e C a s e “ M a i n t a i n C r u i s e ” . I \ a p p l y b r a k e s ¢ _ t u r n o f f c r u i s e t u r n O f f r a d a r R e a d y t o a c c e p t s p e e d s e t m F i g u r e 9 . 7 : E x c e p t i o n “ B r a k e s A p p l i e d ” f r o m U s e C a s e “ M a i n t a i n C r u i s e ” . 1 9 8 x x t v v z z x s a c C t d l a a a s N e O i 2 i t c : : : n : T n t i t n m n n n n t d i i i : i i ‘ - s p n t e l x : z i o t o g t t c e ‘ l a i o e e c c r s s t l k k i a s s e i n c c t n i b a i a a n o d r r I b o o R n t t t t t : g b t f : o a e e g b b o e e e e g t t e e O g g g g i g : o e l r o e e i g 0 | o a ‘ e e n 0 i o c n r b e b r L e e g r r e r r t t o r r = r e a 8 l r “ e e o a e n o t 3 e o 1 n l : I r r 5 g g e e 1 n l l e e a a e r e 3 a g “ n n n 1 c o n t a c t _ i n f o 1 i n s t a n t i a t e s o l _ i n f o S a o Y a t d n S r r p o T i l E : i d p M d n i : t i e n g t e e r g e r c o n t r r c i n s t a n t i a t e s V v V x t R n f r A o : : : c t : m f a o o b 1 s r e e s g u i i k b c e n D i n n i d b o e o n e n t t o s A e t e : l e l R g e g e b e g g r r e o e r o r e e b a o a n o n l t o A l e a n e e m g e r r e r t r e a n t a C v l t t s R e - i i e n i n b d t n t o e t e o e g e n g e g i l v : s v e : p t L 1 t h e r o a d . H o w e v e r , t h i s c o n fi g u r a t i o n i s n o t a c c u r a t e f o r t h e fi n a l s y s t e m . I n p a r t i c u l a r , t h e t a r g e t i s n o t a n O b j e c t w i t h i n t h e s y s t e m b o u n d a r i e s ( s e e F i g u r e 9 . 1 ) . I n s t e a d , t h e s y s t e m ’ s k n o w l e d g e o f t h e t a r g e t ’ s b e h a v i o r c o m e s e n t i r e l y t h r o u g h t h e r a d a r m o d u l e . T h e r e f o r e , a m o r e a c c u r a t e d e s i g n i n c l u d e s o n l y t h e C o n t r o l , C a r , R a d a r , a n d S Y S T E M c l a s s e s . T h e c l a s s d i a g r a m i s s h o w n i n F i g u r e 9 . 8 . T h e d e fi n i t i o n o f t h e i n s t a n c e v a r i a b l e s b y c l a s s , i s l i s t e d i n t h e d a t a d i c t i o n a r y i n F i g u r e 9 . 9 . F i g u r e 9 . 8 : S m a r t C r u i s e c l a s s d i a g r a m . 9 . 4 C l a s s R e s p o n s i b i l i t i e s s p c e d _ i n f o T h e n e x t s t e p i n t h e d e s i g n p r o c e s s i s t o a s s i g n r e s p o n s i b i l i t i e s t o e a c h c l a s s . F o r d e s i g n D U r p o s e s , w e w i l l a b s t r a c t t h e r a d a r m o d u l e s o t h a t i t c a l c u l a t e s d i s t a n c e s t h a t w o u l d b e 0 b t a i n e d v i a a c t u a l r a d a r r e t u r n s i n t h e fi n a l s y s t e m . B e c a u s e c l a s s R a d a r c a l c u l a t e s r a n g e i n f o r m a t i o n , i t r e q u i r e s k n o w l e d g e O f t h e c a r s p e e d , w h i c h c a n b e s t b e O b t a i n e d f r o m t h e 1 9 9 I D a t a D i c t i o n a r y f o r S m a r t C r u i s e I V a r i a b l e I A t t r i b u t e s I S o u r c e I D e s c r i p t i o n C l a s s C o n t r o l 3 3 1 I n t e g e r R a d a r T h e l a s t d i s t a n c e t O t a r g e t . x 2 I n t e g e r R a d a r T h e c u r r e n t d i s t a n c e t o t a r g e t . t i n c I n t e g e r C o n s t a n t T h e i n c r e m e n t o f t i m e b e t w e e n r a d a r d i s t a n c e s a m p l e s . v c I n t e g e r C a r T h e s p e e d O f t h e c a r . a t I n t e g e r a t = c u — v T h e s p e e d O f t h e t a r g e t . 2 ) I n t e g e r v = ( $ 1 — x 2 ) / t i n c T h e c l o s i n g s p e e d O f t h e c a r t o w a r d s t h e t a r g e t . t m i n I n t e g e r C o n s t a n t D e s i r e d t r a i l d i s t a n c e i n s e c o n d s x t a r - g e t s p e e d . 2 1 I n t e g e r 2 1 = 2 2 — 2 2 / 1 0 C l o s e s t s a f e d i s t a n c e . B o u n d a r y O f “ s a f e z o n e ” . 2 2 I n t e g e r 2 2 2 a t * t m i n D e s i r e d t r a i l d i s t a n c e . : r h i t I n t e g e r x h i t = ( 1 2 2 ) / 2 a D i s t a n c e t o s t a r t c o a s t t o e x a c t l y m e e t t a r g e t s p e e d a t z e r o t r a i l d i s t a n c e . x c o a s t I n t e g e r x c o a s t = w h i t + 2 2 + D i s t a n c e t o s t a r t c o a s t i n g t o a c h i e v e t i n c * v d e s i r e d t r a i l d i s t a n c e . s e t s p d I n t e g e r C l a s s C a r T h e s e t s p e e d w h e n “ s e t ” i s p r e s s e d . 0 I n t e g e r C o n s t a n t a c c e l e r a t i o n / d e c e l e r a t i o n s p e e d o f c a r _ w i t h o u t t h r o t t l e . c l o s i n g B o o l e a n S e t s t a t e w a i t i n g . S w i t c h u s e d i n a l g o r i t h m w h e n a p - _ ‘ p r o a c h i n g t a r g e t . I : C l a s s R a d a r ] T I n t e g e r v = v c - — v t C l o s i n g s p e e d . U s e d t o c a l c u l a t e n e x t _ \ d i s t a n c e . L C I n t e g e r C l a s s C a r L a s t c a r s p e e d . i t I n t e g e r C o n s t a n t T a r g e t v e h i c l e s p e e d i I n t e g e r a : = a : — 1 ) D i s t a n c e t o t a r g e t . t m o d e B o o l e a n S e t i n s t a t e r 3 S w i t c h i n d i c a t i n g t a r g e t b e i n g \ t r a c k e d . i C l a s s C a r S e t v I n t e g e r F r o m r e a l v C a r “ s e t s p e e d ” d e s i r e d c r u i s i n g x s p e e d . g a l e I n t e g e r s e t v a n d c a l c u l a t e d C u r r e n t c a r s p e e d . F i g u r e 9 . 9 : T h e d a t a d i c t i o n a r y f o r S m a r t C r u i s e . D e fi n i t i o n O f t h e i n s t a n c e v a r i a b l e s i s 1 1 1 F i g u r e 9 . 8 . 2 0 0 C a r c l a s s . I n t h e a c t u a l s y s t e m , t h e C a r c l a s s w o u l d o n l y s u p p l y s p e e d t o t h e C o n t r o l c l a s s a n d n o t t o t h e r a d a r c l a s s . T h e S Y S T E M c l a s s e x i s t s s o l e l y t o i n i t i a l i z e a n d s t a r t t h e m o d e l . A s d e s c r i b e d i n S e c t i o n 8 . 2 , u n d e r t h e D r i v e r F i l e d e s c r i p t i o n , t h e b e h a v i o r m o d e l f o r t h e s y s t e m c l a s s i s e n c o d e d ( i n t h i s c a s e ) i n P r o m e l a a n d i n c l u d e d i n a d r i v e r fi l e . T h e c l a s s r e s p o n s i b i l i t i e s a r e i n i t i a l l y s e t a s f o l l o w s : C l a s s C o n t r o l : T h e C o n t r o l c l a s s m u s t a c c e p t i n p u t f r o m t h e d r i v e r t o s e t t h e d e s i r e d c r u i s e s p e e d , w h i c h i s t h e c u r r e n t c a r s p e e d . T h i s c l a s s i s t h e n r e s p o n s i b l e f o r a c t i v a t - i n g t h e r a d a r s y s t e m a n d w a i t i n g f o r a “ t a r g e t a c q u i r e d ” s i g n a l . W h e n o b t a i n e d , t h e R a d a r c l a s s w i l l c o n t i n u a l l y s e n d d i s t a n c e i n f o r m a t i o n u n t i l t u r n e d O f f . E a c h m e s s a g e r e q u i r e s a n a c k n o w l e d g e m e n t . C l a s s C o n t r o l i s f u r t h e r r e q u i r e d t o p r o v i d e t h e s o l e i n p u t t o t h e t h r o t t l e c o n t r o l . T h e C o n t r o l c l a s s m u s t a l s o a c c e p t a “ b r a k e s a p p l i e d ” s i g n a l t o d i s e n g a g e t h e s y s t e m . C l a s s R a d a r : T h e R a d a r c l a s s m u s t e x t e r n a l l y a p p e a r t o b e h a v e t h e s a m e a s t h e i m p l e - m e n t e d r a d a r m o d u l e w o u l d b e h a v e . T h e R a d a r c l a s s d o e s n o t h i n g u n t i l a c t i v a t e d b y a m e s s a g e f r o m t h e C o n t r o l c l a s s . O n c e a c t i v a t e d , R a d a r w i l l c o n t i n u a l l y s c a n f o r a t a r g e t . O n c e t h e t a r g e t i s 4 0 0 f e e t o r l e s s f r o m t h e c a r , R a d a r w i l l s e n d a “ t a r g e t a c - q u i r e d ” s i g n a l t o c l a s s C o n t r o l . T h e r e a f t e r , R a d a r w i l l c o n t i n u a l l y s e n d t o C o n t r o l a n i n t e g e r d i s t a n c e t o t h e t a r g e t , b u t e a c h d i s t a n c e m e s s a g e m u s t b e a c k n o w l e d g e d b y C o n t r o l b e f o r e t h e n e x t d i s t a n c e i s s e n t . W h e n t h e t a r g e t i s l o s t , c l a s s R a d a r m u s t s e n d a “ l o s t ” m e s s a g e t O t h e C o n t r o l c l a s s a n d c o n t i n u e s e a r c h i n g f o r a t a r g e t . T h e R a d a r c l a s s m u s t s t o p t r a c k i n g a n d m o v e t o i t s i d l e s t a t e i f i t r e c e i v e s a n “ O f f ” s i g n a l . T h e “ O f f ” s i g n a l r e q u i r e s n o a c k n o w l e d g e . 2 0 1 C l a s s C a r : T h i s c l a s s h a s t h r e e r e s p o n s i b i l i t i e s : 1 . P r o v i d e c u r r e n t c a r s p e e d u p o n r e q u e s t . 2 . A c c e p t “ s e t ” a n d “ u n s e t ” m e s s a g e s t o s e t a n e w d e s i r e d s p e e d . 3 . C o n t i n u a l l y a d j u s t t h e c a r s p e e d t o m a t c h t h e s e t s p e e d , b u t o n l y a t t h e s p e c i fi e d d e c e l e r a t i o n o r a c c e l e r a t i o n r a t e . I n o t h e r w o r d s , n e w s p e e d c o m m a n d s m o d i f y t h e c u r r e n t s p e e d a t o n l y 1 . 5 f t / s e c 2 . C l a s s S Y S T E M : T h e S Y S T E M c l a s s i n s t a n t i a t e s t h e C a r , R a d a r , a n d C o n t r o l O b - j e c t s . A f t e r i n s t a n t i a t i o n , S Y S T E M w a i t s u n t i l e a c h O b j e c t i s w a i t i n g o n i t s i n i t i a l t r a n s i t i o n , t h e n i t s i m u l a t e s t h e d r i v e r o f t h e c a r b y p r o v i d i n g a s e t s i g n a l t o s t a r t t h e s i m u l a t i o n . T h e C o n t r o l c l a s s i n t e r a c t s w i t h b o t h t h e R a d a r a n d C a r c l a s s O b j e c t s . T h e R a d a r a n d t h e C a r c l a s s e s i n t e r a c t o n l y f o r m o d e l i n g p u r p o s e s . I n t h e i m p l e m e n t e d s y s t e m , d i s t a n c e t o t h e t a r g e t i s d e t e r m i n e d b y a r a d a r r e t u r n , b u t f o r d e s i g n m o d e l i n g , w e b u i l d t h e R a d a r c l a s s t o e x t e r n a l l y r e s p o n d t O o t h e r O b j e c t s a s i t w o u l d i n t h e i m p l e m e n t e d r a d a r m o d u l e , w h i l e i n t e r n a l l y c a l c u l a t i n g t h e d i s t a n c e t o t h e t a r g e t b a s e d o n c a r s p e e d a n d t a r g e t s p e e d . 9 . 4 . 1 S e q u e n c e D i a g r a m F i g u r e 9 . 1 0 s h o w s a s e q u e n c e d i a g r a m f o r t h e i n t e r a c t i o n b e t w e e n o b j e c t s f r o m t h e t i m e t h e d r i v e r p r e s s e s “ s e t ” u n t i l a c o r r e c t t r a i l d i s t a n c e i s o b t a i n e d . T o a v o i d d e a d l o c k a n d t o i n s u r e e a c h i m p o r t a n t m e s s a g e i s p r O p e r l y r e c e i v e d , t h e s y s t e m o b j e c t s a r e d e s i g n e d t o a c k n o w l e d g e m e s s a g e s i t d o e s n o t i n i t i a t e . T h i s i s c a l l e d s y n c h r o n o u s i n t e r a c t i o n . T h e r e s p o n s e m a y b e e i t h e r a s i m p l e a c k n o w l e d g e m e n t o r a r e p l y w i t h r e q u e s t e d 2 0 2 L o o k f o r t a r g e t v e h i c l e I [ u n t i l w i t h i n 4 0 0 f t } ' d a t a . i c o n t r o l S e t c r u i s e r e p e a t e d ( i n d e fi n i t e p e r i o d o f t i m e u n t i l t a r g e t a c q u i r e d ) B e g i n c l o s i n g o n v e h i c l e F i g u r e 9 . 1 0 : S e q u e n c e d i a g r a m f o r i n i t i a l s e q u e n c e u n t i l t a r g e t i s w i t h i n r a n g e . 9 . 5 D y n a m i c B e h a v i o r D e s i g n T h e c l a s s d i a g r a m c a l l s f o r t h r e e O b j e c t s i n t h e d e s i g n ( a r t i fi c i a l l y , f o u r O b j e c t s i n c l u d i n g t h e S Y S T E M O b j e c t ) . A m a j o r s e m a n t i c d e c i s i o n c o n c e r n s h o w t h e O b j e c t - t O - O b j e c t m e s s a g e t r a n s f e r s h o u l d o c c u r . O n e p o s s i b i l i t y i s t o c o p y s e m a n t i c s u s e d f o r e v e n t d i s p a t c h i n g w i t h i n a n O b j e c t . T h i s s e m a n t i c s i s a n o — q u e u e i n g p o l i c y a n d l o s e s m e s s a g e s i f t h e r e c i p i e n t i s n o t r e a d y t o t r a n s i t i o n w h e n t h e m e s s a g e i s s e n t . A n o t h e r p o s s i b i l i t y i s a q u e u e i n g p o l i c y , w h e r e e a c h m e s s a g e s e n t t o a O b j e c t i s q u e u e d f o r e i t h e r i m m e d i a t e o r d e l a y e d u s e i n a t r a n s i t i o n . N o n - q u e u e i n g s e m a n t i c s a v o i d s t h e p r o b l e m o f m u l t i p l e t r a n s i t i o n s w a i t i n g f o r t h e s a m e e v e n t . W h e n t h e m e s s a g e i s s e n t , e v e r y w a i t i n g t r a n s i t i o n c a n b e t a k e n b e c a u s e t h e s e t o f w a i t i n g t r a n s i t i o n s i s k n o w n e x a c t l y . O n t h e o t h e r h a n d , n o n - q u e u e i n g s e m a n t i c s c o u l d c a u s e s i g n i fi c a n t c o o r d i n a t i o n p r o b l e m s a n d p o t e n t i a l l y l e a d t o d e a d l o c k s . F r o m a n a p p l i - c a t i o n v i e w p o i n t , a n o n - q u e u e i n g s e m a n t i c s r e q u i r e s s i m p l e r h a r d w a r e a n d s o f t w a r e w h i l e 2 0 3 a q u e u e i n g s e m a n t i c s r e q u i r e s m o r e e x p e n s i v e h a r d w a r e a n d m o r e e x t e n s i v e s o f t w a r e . Q u e u e i n g s e m a n t i c s f o r m e s s a g e s p a s s e d b e t w e e n O b j e c t s s o l v e s m a n y s y n c h r o n i z a t i o n p r o b l e m s b e c a u s e t h e r e c i p i e n t o b j e c t n e e d n o t b e r e a d y w h e n t h e m e s s a g e i s s e n t . O n t h e o t h e r h a n d , t h e r e c a n b e o n l y o n e t r a n s i t i o n w i t h i n a n O b j e c t t h a t u s e s t h e i n c o m i n g m e s s a g e . O t h e r w i s e , w e h a v e a d i l e m m a : s h o u l d t h e m e s s a g e b e r e m o v e d f r o m t h e i n b o u n d q u e u e w h e n a t r a n s i t i o n i s d i s p a t c h e d ? I f n o t r e m o v e d , w h i c h e n a b l e m u l t i p l e t r a n s i t i o n s f o r o n e m e s s a g e , w h e n s h o u l d i t b e r e m o v e d f r o m t h e q u e u e ? T h e s e m a n t i c s w e a p p l y t o U M L a l l o w s u s t h e fl e x i b i l i t y t o c h o o s e , a n d p e r h a p s c h a n g e , s e m a n t i c s t h a t a r e m o s t a p p r o p r i a t e t o t h e a p p l i c a t i o n . W e h a v e d e c i d e d i n i t i a l l y t o u s e n o n - q u e u e i n g s e m a n t i c s f o r m e s s a g e c o m m u n i c a t i o n s b e t w e e n O b j e c t s . A s a p r e v i e w , t h i s d e c i s i o n t u r n s o u t t o b e i n c o r r e c t . 9 . 5 . 1 C a l c u l a t i o n a n d T i m i n g C o n v e n t i o n s S P I N c o n t a i n s n o ’ fl o a t ’ t y p e O f v a r i a b l e , a n d a f e w q u i c k c a l c u l a t i o n s s h o w t h a t w h e n t h e r a d a r s a m p l e r a t e i s o n c e p e r s e c o n d , i n t e g e r d i s t a n c e s a r e t o o c o a r s e a n d d o n o t a l l o w t h e c o n t r o l a l g o r i t h m e n o u g h d i s t a n c e s a m p l e s t o b e e f f e c t i v e . T o a l l e v i a t e t h i s p r O b l e m , w e m o d i f y t h e d i s t a n c e s c a l e t o t e n t h s ( t f t ) o f a f o o t , a n d v e l o c i t i e s t o t f t / s e c . T h e r e f o r e , a d i s t a n c e O f 4 0 0 0 i n t h e m o d e l r e p r e s e n t s 4 0 0 f e e t . S P I N h a s n o f a c i l i t i e s f o r s i m u l a t i n g t i m e , t h e r e f o r e , w e m a k e t h e a s s u m p t i o n t h a t c l a s s R a d a r r e t u r n s a s a m p l e o n c e p e r s e c o n d . T h e d e c e l e r a t i o n i s s e t a t 1 5 t f t / s e c 2 , o r 1 . 5 f t / s e c z . T h e t r a d e o f f s f o r u s i n g fi n e r , p e r h a p s m o r e r e a l i s t i c s c a l e s f o r d i s t a n c e a n d t i m e a r e d i s c u s s e d i n S e c t i o n 9 . 7 . 2 0 4 9 . 5 . 2 N o t a t i o n S e c t i o n 2 . 1 d e s c r i b e s U M L s y n t a x i n d e t a i l . F o r r e v i e w , F i g u r e 9 . 1 1 s h o w s t h e s y n t a x O f t r a n s i t i o n s . S i n c e a l l O f t h e c a l c u l a t i o n s a r e p e r f o r m e d d u r i n g t r a n s i t i o n s , i t i s i m p o r t a n t t o u n d e r s t a n d t h i s n o t a t i o n . A s F i g u r e 9 . 1 1 s h o w s , a t r a n s i t i o n c o n s i s t s o f f o u r p a r t s : t h e t r i g g e r i n g e v e n t , a g u a r d o n t h e e v e n t , a c t i o n s t o b e p e r f o r m e d d u r i n g t r a n s i t i o n , a n d m e s s a g e s t o b e s e n t d u r i n g t r a n s i t i o n . E a c h c o m p o n e n t O f t h e t r a n s i t i o n i s O p t i o n a l . A c t i o n s w i l l n o t o c c u r , n o r w i l l m e s s a g e s b e s e n t , u n l e s s t h e g u a r d i s t r u e w h e n t h e e v e n t o c c u r s . B o t h a c t i o n s a n d m e s s a g e s m a y c o n t a i n m u l t i p l e p a r t s . E a c h a c t i o n i s s e p a r a t e d b y a s e m i - c o l o n a s s h o w n o n t h e o u t b o u n d t r a n s i t i o n f o r s t a t e “ c a l c ” , c l a s s C o n t r o l , i n F i g u r e 9 . 1 4 . S i m i l a r l y , m u l t i p l e “ " 9 m e s s a g e s m a y b e s e n t o n a t r a n s i t i o n , e a c h p r e fi x e d b y S e q u e n c e o f a c t i o n s p e r f o r m e d d u r i n g t r a n s i t i o n . M a y b e a s e q u e n c e o f a c t i o n s s u c h a s : a c t i o n t ; a c t i o n 2 ; a c t i o n s E v e n t t r i g g e r i n g t r a n s i t i o n / E v e n t [ G a r d ] / A c t i o n L i s t A m e s s a g e 1 A m e s s a g e z A . . . ’ \ m e s s a g e n G u a r d c h e c k e d w h e n e v e n t o c c u r s . M e s s a g e s s e n t d u r i n g t r a n s i t i o n . F o r m a t i s e i t h e r s i m p l e e v e n t n a m e o r O b j e c t . E v e n t n o t a t i o n . F i g u r e 9 . 1 1 : S t a t e t r a n s i t i o n e v e n t s y n t a x c o n v e n t i o n s . 9 . 5 . 3 C l a s s R a d a r D y n a m i c M o d e l T h e R a d a r c l a s s d y n a m i c m o d e l i s s h o w n i n F i g u r e 9 . 1 2 . T h e m o d e l a s s u m e s a v a l u e f o r t h e t a r g e t v e h i c l e s o t h a t i t c a n c a l c u l a t e c l o s i n g s p e e d , a n d f r o m t h a t , t h e d i s t a n c e f r o m 2 0 5 t h e t a r g e t . T h e m o d e l a l s o a s s u m e s a n i n i t i a l t r a i l d i s t a n c e g r e a t e r t h a n 4 0 0 f e e t s o t h a t a t a r g e t a c q u i r e d s i g n a l c a n b e s e n t . T h e m o d e l s t a r t s i n s t a t e “ r _ o f f ” a n d r e m a i n s t h e r e u n t i l i t r e c e i v e s a n “ o n ” m e s s a g e . A t t h a t p o i n t , i t t r a n s i t i o n s t o s t a t e “ r 0 ” a n d s t a r t s a c o n t i n u a l l O O p c o n s i s t i n g O f s t a t e s “ r 0 ” , “ r 1 ” , a n d “ r 3 ” , r e q u e s t i n g t h e c u r r e n t c a r s p e e d f r o m C a r , c a l c u l a t i n g t h e c l o s i n g v e l o c i t y , v , a n d u p d a t i n g t h e t r a i l d i s t a n c e , 1 1 : . A t s t a t e “ r 3 ” , w h e n t h e c l o s i n g d i s t a n c e i s l e s s t h a n 4 0 0 f e e t ( n u m e r i c a l l y 4 0 0 0 i n t h e m o d e l ) , R a d a r s e n d s m e s s a g e “ t a r g e t ” a n d r e m e m b e r s t h a t i t i s n o w t r a c k i n g b y s e t t i n g v a r i a b l e t m o d e t o t r u e . I t n o w b e g i n s a a n o t h e r l o o p c o n s i s t i n g o f s t a t e s “ r 3 ” , “ r 4 ” , “ r . a c ” , “ r 0 ” , a n d “ r 1 ” , s e n d i n g u p d a t e d t r a i l d i s t a n c e s u n t i l t h e t a r g e t i s l o s t ( d e t e c t e d i n s t a t e “ r 3 ” ) o r a n “ 0 1 1 ' ” m e s s a g e i s r e c e i v e d ( d e t e c t e d i n s t a t e “ r 4 ” ) . C o m m u n i c a t i o n s w i t h o t h e r O b j e c t s i s s y n c h r o n o u s . A f t e r s e n d i n g e a c h m e s s a g e , t h e m o d e l e x p e c t s a n a c k n o w l e d g e b e f o r e g e n e r a t i n g t h e n e x t a : d i s t a n c e . T h i s i s a c c o m p l i s h e d i n s t a t e “ L a c k ” , w h e r e R a d a r w a i t s t h e “ a c k c o n t r o l ” m e s s a g e f r o m C o n t r o l . 9 . 5 . 4 C l a s s C a r D y n a m i c M o d e l C l a s s c a r ’ s d y n a m i c m o d e l i s s h o w n i n F i g u r e 9 . 1 3 . T h e m o d e l c o n s i s t s O f f o u r c o n c u r r e n t s t a t e s , n o n e o f w h i c h e x i t s . C o n c u r r e n t s t a t e s w e r e c h o s e n b e c a u s e c l a s s C a r m u s t w a i t f o r f o u r d i f f e r e n t m e s s a g e s , e a c h o f w h i c h r e q u i r e s i n d e p e n d e n t c o m p u t a t i o n s . C o n c u r r e n c y d e c r e a s e s c o m p l e x i t y b e c a u s e e a c h c o m p o s i t e s t a t e h a s t o o n l y w a i t f o r a n d h a n d l e o n e m e s s a g e . T h e m e s s a g e s C a r h a n d l e s a r e “ g e t v ” f r o m R a d a r , a n d “ g e t s p e e d ” , “ s e t s p e e d ” , a n d “ u n s e t ” f r o m C o n t r o l . T h e t O p m o s t c o n c u r r e n t c o m p o n e n t , “ u p d a t e x ” , h a n d l e s m e s - s a g e “ g e t v ” f r o m R a d a r , r e t u r n i n g t h e c u r r e n t s p e e d . T h i s s t a t e a l s o m o d i fi e s t h e v a r i a b l e r e a l v t o m a t c h t h e s e t s p e e d b y i n c r e a s i n g o r d e c r e a s i n g r e a l v c o m m e n s u r a t e w i t h t h e a c c e l e r a t i o n / d e c e l e r a t i o n c h a r a c t e r i s t i c s O f t h e c a r . S t a t e “ d o g e t s p d ” a l s o w a i t s f o r a r e - 2 0 6 R A D A R V 9 O f f / t m o d e : = 0 a c k c o n t r o l A c o n t r o l . d i s t ( x ) r 4 é L — _ _ _ J [ ~ t m o d e & x < = 4 0 0 ] l t m o d e : = 1 " c o n t r o l . t a r g e t [ t m o d e & x > 4 0 0 ] “ c o n t r o l . l o s t I 3 I r [ t m o d e & x < = 4 0 0 ] A " c o n t r o l . d i s t ( x ) V V V [ r a c k I [ ~ t m o d e & x > 4 0 0 ] a c k c o n t r o l c a r v ( v c ) V I V : = v c - v t ; " c a r . e t v I I x : = x - v L ‘ L L I g i “ _ J o n " c o n t r o l . a c k r a d a r O f f / U N O d C 3 3 . 2 I ' _ O f f > M : o f f F i g u r e 9 . 1 2 : T h e r a d a r c l a s s d y n a m i c m o d e l 2 0 7 q u e s t f o r s p e e d , b u t f r o m C o n t r o l , r e t u r n i n g t h e c u r r e n t s p e e d O f t h e c a r a s c o m p u t e d b y “ u p d a t e x ” . S t a t e s “ u p d a t e s p d ” a n d “ d o u n s e t ” s e t t h e c r u i s e s p e e d a n d r e l e a s e t h e c r u i s e , r e s p e c t i v e l y . 9 . 5 . 5 V e r s i o n 1 C l a s s C o n t r o l D y n a m i c M o d e l T h e fi r s t v e r s i o n O f t h e d y n a m i c m o d e l f o r c l a s s C o n t r o l i s s h o w n i n F i g u r e 9 . 1 4 . T h i s v e r s i o n O f t h e m o d e l d o e s n o t i n c l u d e b r a k e i n p u t . I n s t e a d , t h e p l a n w a s t o f u r t h e r r e fi n e t h i s m o d e l t o i n c l u d e b r a k e s o n c e t h e c o n t r o l a l g o r i t h m w a s w o r k i n g . A s w i l l b e e x p l a i n e d , t h i s m o d e l h a s a n u m b e r O f p r o b l e m s . T h e i n t e n t O f t h e c l a s s m o d e l d e s i g n i s t o w a i t f o r t h e “ s e t ” c o m m a n d f r o m t h e d r i v e r , s e t t h e c a r s p e e d t o t h e c u r r e n t s p e e d , a n d t h e n w a i t u n t i l t h e R a d a r O b j e c t i s s u e s a “ t a r g e t ” m e s s a g e . A t t h a t t i m e , t h e m o d e l s t a r t s t w o c o n c u r r e n t c o m p o s i t e s t a t e s t o c l o s e o n t h e t a r g e t a n d m a i n t a i n d i s t a n c e . T h e s e q u e n c e b e g i n s i n s t a t e “ i d l e ” w a i t i n g f o r a “ s e t ” m e s s a g e w i t h a s i n g l e i n t e g e r p a r a m e t e r t h a t i s t h e d e s i r e d s p e e d . T h i s p a r t o f t h e m o d e l i s i n c o r r e c t , p e r t h e r e q u i r e - m e n t s . A s w i l l b e s e e n i n t h e r e fi n e m e n t , a “ s e t ” s i g n a l i s r e c e i v e d f r o m t h e d r i v e r , t h e n i t i s t h e r e s p o n s i b i l i t y O f c l a s s C o n t r o l t o o b t a i n t h e c u r r e n t s p e e d a n d m a k e i t t h e s e t s p e e d . A f t e r s e t t i n g t h e s p e e d , t h e m o d e l r e m a i n s i n s t a t e “ m a i n t a i n ” u n t i l t h e “ t a r g e t ” m e s s a g e i s r e c e i v e d f r o m c l a s s R a d a r . W h e n t h e fi r s t d i s t a n c e f r o m t h e t a r g e t ( x 1 ) i s r e c e i v e d f r o m R a d a r i n s t a t e “ g e t x ” , t h e t r a n s i t i o n s t a r t s t h e c o n c u r r e n t c o m p o s i t e s t a t e s . A t t h i s p o i n t , t h e t o p c o n c u r r e n t s t a t e “ c o m p u t e ” i s s u p p o s e d t o O b t a i n t h e c a r s p e e d f r o m C a r ( i n s t a t e “ g e t s p d ” ) , a c c e p t t h e n e x t : 1 : d i s t a n c e f r o m t h e t a r g e t ( i n s t a t e “ c a l c ” ) , a n d c a l c u l a t e w h e t h e r t h e c a r i s c l o s e e n o u g h t o s t a r t c o a s t i n g t o t h e t a r g e t ( v a r i a b l e : r c o a s t ) . D u r i n g t h i s l o o p , s t a t e “ c a l c 2 ” i s s u p p o s e d t o m o n i t o r i n t e r n a l e v e n t “ u n s a f e ” i n c a s e t h e 2 0 8 i n - — — — — A c a r t I V g e t v l r c a l v < s e t v j [ r e a l v : = r e a l v + 1 5 ; r e a l v : = m i n l r e a l v . s e t v ) " r a d a r . c a r v ( r e a l v ) g e t v l r e a l v > s e t v ] l r e a l s p e e d : = r e a i s p c c d - l ; r e a l v : = m a x ( r e a l v . s e t v ) “ r a d a r . c a r v ( r e a l v ) g e t v l r e a l v = = s e t v ] " r a d a r . c a r v ( r e a l v ) d o g e t s p g g e t s p e e d ‘ c o n t r o l . c a r s p e e d ( r e a l v ) d o u n s e t F i g u r e 9 . 1 3 : T h e c a r c l a s s d y n a m i c m o d e l 2 0 9 — _ _ - - - — - _ - - - - — — ~ i n g - - - - - u — - - - - - — — - o — — _ - - . ~ - - - - - - — - - - - - _ . — - . . - _ - - — - - - - — - q . . - - - — - - — - - - — - - - - - — - — - - - - — — _ - - - - - - - - - - - - — - — - - - - - - — - - - - - - - - _ - — - - - — - — - q ~ c a r e n t e r s t h e s a f e z o n e . C o n c u r r e n t l y , t h e b o t t o m s t a t e , c a l l e d “ m o n i t o r ” , i s s u p p o s e d t o m o n i t o r t h e a p p r o a c h t o t h e t a r g e t w a t c h i n g f o r e i t h e r t h e “ : r c o a s t ” d i s t a n c e t o b e r e a c h e d , o r t h e u n s a f e z o n e t o b e e n t e r e d . I n t h e l a t t e r c a s e , t h e “ u n s a f e ” e v e n t i s g e n e r a t e d . S t a t e “ m o n i t o r ” O b t a i n s i t s u p d a t e d : 3 d i s t a n c e s f r o m s t a t e “ c o m p u t e ” , c h e c k i n g a n e w v a l u e w h e n e v e r e v e n t “ n e w x _ o k ” i s g e n e r a t e d b y “ c o m p u t e ” . s e t ( s e t s p d ) a c k c a r A ‘ c a r . s e t s p e e d ( s e t s p d ) I s e t i t I s p e e d l v m l V F t a r c t " r a d a r . a c k c o n t r o l d i s t ( x l ) ‘ _ - l o s L I b r a k e s l l o s t ( N ' C O M P U T E . [ * I N G I P P F O B C h H d i s t ( x 2 ) / v : = ( x l - x 2 ) / u n c ; - I I - v t 2 : V C - v ; x c o a s t : = v ‘ v / Z a + v t ‘ t m i n ; X ] 3 : x 2 ; u n s a f e A . u r . . c a l c 2 = I g e w p d 4 s y n c l [ I N ( a p p r o a c h ) ] " c a r . g e t s p e e d n e w x _ _ o k " c a r . g e t s p e e d - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - T l A , M O N I T O R n e w x [ x 2 < = x c o a s t ] n e w x [ x 1 < v t t s a f e ] u n s a f e A n e w x _ o k n e w x [ x l > = v t ‘ t r n i n ] . I " c a r . s e t s p e e d ( v t ) . " n e w x _ o k _ c o a s t i n g l l n e w x j x l > x c o a s t ] " n e w x _ o k L J ( U N T R O L V i F i g u r e 9 . 1 4 : V e r s i o n 1 O f t h e C o n t r o l c l a s s d y n a m i c m o d e l . 2 1 0 9 . 5 . 6 S Y S T E M C l a s s T h e S Y S T E M c l a s s d y n a m i c m o d e l i s s h o w n i n F i g u r e 9 . 1 5 . T h e e q u i v a l e n t P r o m e l a s t a t e m e n t s a r e s h o w n i n F i g u r e 9 . 1 6 . A s d e s c r i b e d a b o v e , t h e S Y S T E M c l a s s s t a r t s e a c h o b j e c t a n d w a i t s v i a t h e t i m e o u t e v e n t u n t i l t h e e n t i r e m o d e l h a s “ d e a d l o c k e d ” . D e a d l o c k a t t h i s p o i n t i m p l i e s a l l t h r e e O b j e c t s h a v e c o m p l e t e d i n i t i a l i z a t i o n a n d a r e r e a d y f o r e v e n t s t o s t a r t t h e m o d e l . N e x t , t h e S Y S T E M s i m u l a t e s t h e d r i v e r O f t h e c a r s e t t i n g t h e i n i t i a l s p e e d b y s e n d i n g t h e s e t s i g n a l t o C o n t r o l . I n e w R a d a r ; n e w C o n t r o l ; n e w C a r i n i t i a l > | s t a r t t i m e o u t A C o n t r O l s e t fi n a l F i g u r e 9 . 1 5 : T h e S Y S T E M c l a s s d y n a m i c m o d e l . i n t c o n t r o l p i d ; i n t r a d a r p i d ; i n i t { a t o m i c { r a d a r p i d - r u n r a d a r ( ) ; c o n t r o l p i d a r u n c o n t r o l ( ) ; r u n c a r ( ) ; } t i m e o u t - > c o n t r o l _ q ! s e t ; p r i n t f ( " m o d e l s t a r t e d \ n " ) ; I F i g u r e 9 . 1 6 : T h e P r o m e l a s t a t e m e n t s e q u i v a l e n t t o t h e m o d e l i n F i g u r e 9 . 1 5 . 1 I n S P I N t e r m s , d e a d l o c k a s s i g n a l l e d b y t h e t i m e o u t e v e n t m e a n s t h e r e a r e n o m o r e s t a t e m e n t s t o d i s p a t c h . 2 1 1 9 . 6 I n i t i a l S i m u l a t i o n T e s t i n g S P I N c o n t a i n s b o t h r a n d o m s i m u l a t i o n a n d m o d e l c h e c k i n g c a p a b i l i t i e s . D u r i n g a r a n d o m s i m u l a t i o n , t h e m o d e l i s e x e c u t e d a n d i n t e r l e a v i n g c h o i c e s f o r v a r i o u s c o n c u r r e n t c o m p o - n e n t s a r e c h o s e n a t r a n d o m . S i m i l a r l y , i f t h e r e a r e n o n - d e t e r m i n i s t i c s t e p s i n t h e m o d e l , t h e s t e p t a k e n i s c h o s e n r a n d o m l y . S i m u l a t i o n i s u s e f u l e a r l y i n t h e d e s i g n t O d e t e r m i n e i f t h e m o d e l a p p r o x i m a t e s d e s i r e d b e h a v i o r . T h e e n t i r e S m a r t C r u i s e m o d e l w i t h V e r s i o n 1 O f t h e C o n t r o l O b j e c t w a s t r a n s l a t e d i n t o t h e H y d r a l a n g u a g e d i r e c t l y f r o m t h e c l a s s a n d d y n a m i c m o d e l d i a g r a m s . H y d r a w a s t h e n u s e d t o p r o d u c e P r o m e l a s p e c i fi c a t i o n s f o r t h e m o d e l . T h e e n t i r e H y d r a l a n g u a g e s p e c i fi c a t i o n f o r t h e c o m p l e t e d m o d e l i s f o u n d i n A p p e n d i x B . T h e P r o m e l a t r a n s l a t e d f r o m t h e H y d r a l a n g u a g e s p e c i f i c a t i o n i n A p p e n d i x B f o r t h e c o m p l e t e d m o d e l i s f o u n d i n A p p e n d i x C . T h e i n i t i a l s i m u l a t i o n s f a i l e d t o p r o p e r l y c o n t r o l t h e c a r . S P I N s i m u l a t i o n s r e p o r t e d t i m e o u t c o n d i t i o n s , i n d i c a t i n g a d e a d l o c k . B e c a u s e t h e s i m u l a t i o n i s r a n d o m , t h e m o d e l w o u l d o c c a s i o n a l l y e x e c u t e u p t h r o u g h t a r g e t a c q u i s i t i o n , w h i l e a t o t h e r t i m e s i t d e a d l o c k e d e a r l i e r . N O v e r s i o n O f t h e m o d e l b e g a n a c o n t r o l l e d a p p r o a c h t o t h e t a r g e t . U p o n e x a m i n i n g t h e S P I N t r a c e o u t p u t , i t b e c a m e c l e a r t h a t t h e c o m m o n f a i l u r e m o d e w a s f o r a n O b j e c t , R a d a r f o r e x a m p l e , t o i s s u e a m e s s a g e a n d n o t r e c e i v e a r e p l y . I n s o m e c a s e s , t h e m o d e l m a d e l i t t l e p r o g r e s s b e c a u s e t h e R a d a r O b j e c t i s s u e d a n i n i t i a l “ g e t v ” m e s s a g e t o O b t a i n t h e c a r s p e e d , r e c e i v e d n o r e p l y , a n d d e a d l o c k e d . T h e r o o t p r o b l e m t o a l l u n s u c c e s s f u l e x e c u t i o n s w a s l a c k o f c o o r d i n a t i o n b e t w e e n t h e O b j e c t s . M u c h O f t h e d i f fi c u l t i e s a r e d u e t o S P I N ’ 3 l a c k o f f a i r n e s s . T h e f a i r n e s s p r o p e r t y i n s u r e s e a c h c o n c u r r e n t O b j e c t e v e n t u a l l y r u n s . F o r e x a m p l e , o n e p o s s i b l e e x e c u t i o n s e q u e n c e i n c l u d e s t h e R a d a r O b j e c t t r a n s i t i o n i n g t h r o u g h s t a t e “ r 0 ” t o s t a t e “ r 1 ” b e f o r e t h e C a r O b j e c t i n i t i a l i z e s a n d 2 1 2 b e g i n s e x e c u t i n g . C o n s e q u e n t l y , t h e “ g e t v ” m e s s a g e i s s e n t b u t l o s t b e c a u s e t h e C a r O b j e c t i s n o t y e t l i s t e n i n g . A s v a r i o u s a l t e r n a t i v e s t o s y n c h r o n i z e t h e O b j e c t s w e r e t r i e d w i t h n o s u c c e s s , i t b e c a m e c l e a r t h a t t h e s e m a n t i c s c h o s e n f o r O b j e c t m e s s a g e p a s s i n g w e r e i n a p p r o p r i a t e f o r a m o d e l O f t h i s c o m p l e x i t y . E i t h e r a q u e u e i n g m e c h a n i s m w o u l d h a v e t o b e b u i l t i n t o t h e O b j e c t s i n t h e m o d e l o r t h e s e m a n t i c s O f m e s s a g e p a s s i n g w o u l d h a v e t o b e a l t e r e d . D o u g l a s s [ 1 ] s u g g e s t s a p p l y i n g q u e u e i n g s e m a n t i c s b e t w e e n O b j e c t s a s d o e s t h e U M L R e f e r e n c e [ 7 ] a n d U M L U s e r ’ s G u i d e [ 8 ] , a l t h o u g h t h e l a t t e r t w o a r e r a t h e r i n f o r m a l c o n - c e r n i n g t h e e x p e c t e d s e m a n t i c s O f a m e s s a g e t r a n s f e r . S i n c e s o m e t y p e O f m e s s a g e q u e u i n g i s r e q u i r e d , w e m o d i fi e d t h e O b j e c t - t O — O b j e c t m e s s a g e p a s s i n g s e m a n t i c s t o u s e F I F O q u e u e i n g b y m o d i f y i n g t h e L a n g u a g e S p e c i fi c C l a s s L i b r a r y . W i t h a q u e u e i n g p o l i c y i n p l a c e , t h e p r o b l e m o f O b j e c t c o o r d i n a t i o n w a s s o l v e d , h o w - e v e r o b j e c t C o n t r o l s t i l l f a i l e d t O p r o p e r l y c l o s e a n d t r a i l t h e t a r g e t . B a s e d o n t h e r e c e n t e x p e r i e n c e w i t h O b j e c t - t o - O b j e c t c o o r d i n a t i o n , o n e o f t h e p r o b l e m s w a s t r a c e d t o d e a d - l o c k s b e t w e e n t h e c o n c u r r e n t c o m p o n e n t s i n O b j e c t C o n t r o l . T h e p r o b l e m w a s g e t t i n g b o t h t h e “ C o m p u t e ” a n d “ M o n i t o r ” s t a t e s t O b e g i n c o o r d i n a t e d e x e c u t i o n . T h e m o d e l i n F i g - u r e 9 . 1 4 i s t h e l a s t r e fi n e m e n t f o r t h i s c o n c u r r e n t a p p r o a c h . T h e m o d e l s t i l l f a i l s t o r u n r e l i a b l y w i t h o u t d e a d l o c k . A n o t h e r p r o b l e m c e n t e r i n g a r o u n d t h e F I F O q u e u e f o r e a c h O b j e c t a p p e a r e d w h i l e e x a m i n i n g s i m u l a t i o n t r a c e o u t p u t . L a c k O f c a r e f u l d e s i g n c a n a l l o w m e s s a g e s t o b e p l a c e d i n t h e q u e u e i n a n o r d e r n o t e x p e c t e d o n t r a n s i t i o n s . F o r e x a m p l e , i f a n O b j e c t s e n d s a m e s s a g e d u r i n g a t r a n s i t i o n t o b o t h O b j e c t s A a n d B , t h e n s u b s e q u e n t t r a n s i t i o n s m u s t e x p e c t t h e r e p l i e s t o b e i n e i t h e r o r d e r , o t h e r w i s e d e a d l o c k s o c c u r . A d e s i g n p r i n c i p l e t h a t e m e r g e s f r o m t h i s p r o b l e m i s : d e a d l o c k i s l i k e l y w h e n t r a n s i t i o n s t h a t s e n d m u l t i p l e 2 1 3 s y n c h r o n o u s m e s s a g e s t o m u l t i p l e o b j e c t s i s u s e d . E v e n t h o u g h c o n c u r r e n c y i n t h e C o n t r o l O b j e c t i s u n r e l i a b l e , c o n c u r r e n c y i n t h e C a r o b j e c t p e r f o r m s w e l l a n d d o e s n o t d e a d l o c k . T h e d i f f e r e n c e l i e s i n t h e a m o u n t o f i n t e r p r o c e s s c o o r d i n a t i o n r e q u i r e d . T h e C o n t r o l d y n a m i c m o d e l r e q u i r e s c l o s e c o o r d i n a t i o n b e t w e e n c o n c u r r e n t s t a t e s w i t h o u t t h e b e n e fi t o f e v e n t q u e u e i n g , w h i l e t h e c o n c u r r e n t s t a t e s i n t h e C a r d y n a m i c m o d e l r u n i n d e p e n d e n t l y . A n i m p o r t a n t d e s i g n p r i n c i p l e c a n b e d r a w n f r o m t h i s e x p e r i e n c e : O n l y u s e c o n c u r r e n c y i n a n o b j e c t ’ s d y n a m i c m o d e l i f t h e c o n c u r r e n t s u b - p a r t s a r e l o o s e l y c o u p l e d . W e f o u n d t h a t w e s h o u l d o n l y u s e c o n c u r r e n c y f o r a d y n a m i c m o d e l i f : 1 . A n O b j e c t i s a g g r e g a t e d w i t h a s i n g l e c o m p u t a t i o n f o r e a c h a g g r e g a t e . 2 . T h e c o n c u r r e n t c o m p o n e n t s a r e l o o s e l y c o u p l e d ( i n t e r m s O f c o o r d i n a t i o n ) . 9 . 6 . 1 R e fi n e d C o n t r o l C l a s s D y n a m i c M o d e l T h e C o n t r o l c l a s s ’ s d y n a m i c m o d e l w a s r e fi n e d t o e l i m i n a t e c o n c u r r e n c y a n d c a r e f u l l y s e q u e n c e e x p e c t e d m e s s a g e a r r i v a l s a s s h o w n i n F i g u r e 9 . 1 7 . T h e c o n c u r r e n t s t a t e s w e r e r e p l a c e d w i t h a s e q u e n t i a l s e r i e s o f s t a t e s t h a t r e q u e s t t h e c a r s p e e d , a c c e p t t h e r a d a r ’ s t r a i l d i s t a n c e , a n d c o m p u t e t h e c o a s t i n g d i s t a n c e . W h e n t h e c a r r e a c h e s t h e c o a s t i n g d i s t a n c e , a l o o p i s e n t e r e d t o t r a i l t h e t a r g e t . V e r s i o n 1 o f t h e m o d e l m a d e n o p r o v i s i o n f o r b r a k e i n p u t . A f t e r t h e c r u i s e i s s e t , a p p l i c a t i o n O f b r a k e s s h o u l d t u r n t h e c r u i s e s y s t e m O f f . L e a v i n g t h i s o u t o f t h e i n i t i a l d e s i g n w a s d e l i b e r a t e , w i t h t h e i d e a t h a t i t c o u l d b e a d d e d a s a r e fi n e m e n t o n c e t h e o t h e r p a r t s o f t h e m o d e l w o r k e d . T h e v e r s i o n i n F i g u r e 9 . 1 7 c o n t a i n s a p r o v i s i o n f o r b r a k e i n p u t . I n e a r l i e r v e r s i o n s O f t h e m o d e l s h o w n i n F i g u r e 9 . 1 7 , t h e o u t b o u n d t r a n s i t i o n f r o m s t a t e “ g e t s p d ” O b t a i n e d t h e c a r s p e e d f r o m C a r a n d t h e o u t b o u n d t r a n s i t i o n o n s t a t e 2 1 4 t e s n u . r a c " f f o . r a d a r “ s e k a r b . 4 ‘ C O N T R O L V 9 l c a r s p e e d ( s e t s p d ) ‘ c a m w p w d o p m . g o t t t a c k c a r A r a d a r a c k c o n t r o l a c k c a t o l L I s e t V l l 1 ’ A " c a r . g e t s p e e d m a i n t a i n A “ . 0 1 l l c a r s p e e d v c d i s t ( x l ) I x c o a s t : = O " r a d a r . a c k c o n t r o l / v : = ( x 1 g a l / t i n e v t : = v c - v ; 1 2 ; = v t ‘ t m i n ; [ ~ c l o s i n g ] 2 1 : = 1 2 - z ? J l O ; l x h i t : = v ’ v / 2 ‘ a d i s t ( x 2 ) " c a r . g e t s p e e d A i t ] : = x 2 ; x c o a s t : = x h i t + 2 2 : g e t s p d J 7 g e t x c l l b m k e c ‘ m d a r . . o f f " c a r u n s c t [ c l o s i n g ] / [ c l o s i n g ] ' / n 0 : : X h i l < = X 1 ] w a r n X 1 > = l e a l a r m I 4 J ‘ [ x 1 > x c o a s t ] " r a d a r a c k c o n t r o l a c k c a r " r a d a r a c k c o n t r o l b r a k e s ‘ r a d a r . o f f " c a r . u n s e t [ ~ c l o s i n g ] w a i t i n g I [ x l < = x c o a s t ] l c l o s i n g : = l " c a r . s e t s p e e d ( v t ) b m k e s ‘ r a d a r . o f f " c a r . u n s e t ‘ V [ x h i t > x 1 ] [ x 1 < 2 1 ] " c a r . u n s e t [ fl a c k c a r c a r o f f l l d i s t ( x 1 ) l o s t t a r g e t b r a k e s F i g u r e 9 . 1 7 : T h e r e fi n e d C a r c l a s s d y n a m i c m o d e l . 2 1 5 “ c a l c ” O b t a i n e d d i s t a n c e f r o m R a d a r . F i g u r e 9 . 1 8 s h o w s t h e t w o a f f e c t e d s t a t e s b e f o r e t h e r e fi n e m e n t a n d t h e e f f e c t O f t h e r e v e r s e d m e s s a g e a r r i v a l s . A l t h o u g h t h e m o d e l r a n , s i m u l a t i o n s h o w e d e r r a t i c b e h a v i o r . S o m e t i m e s t h e c a r a p p r o a c h e d t h e t a r g e t m u c h t O O c l o s e l y , w h i l e a t o t h e r t i m e s t h e t r a i l d i s t a n c e w a s t O O l a r g e . E x a m i n a t i o n o f t h e S P I N s i m u l a t i o n t r a c e s r e v e a l e d t h a t t h e c a r s p e e d O b t a i n e d o n t h e t r a n s i t i o n f o r “ g e t s p d ” c o u l d b e d i f f e r e n t t h a n t h e c a r s p e e d O b t a i n e d b y O b j e c t R a d a r d u r i n g a p p r o x i m a t e l y t h e s a m e t i m e p e r i o d . T h i s o c c u r r e d b e c a u s e R a d a r c o u l d m a k e a s p e e d r e q u e s t t o O b j e c t C a r a f t e r c a r ’ s r e s p o n s e t o C o n t r o l ( t h e s p e e d r e q u e s t f r o m R a d a r c a u s e s C a r t o u p d a t e i t s s p e e d ) . I f t h e c a r i s d e c e l e r a t i n g , t h e n t h e v a l u e s d i f f e r . T h e ( i n c o r r e c t ) s e q u e n c e w a s a s f o l l o w s : 1 . C o n t r o l , s t a t e “ g e t s p d ” g e t s c a r s p e e d , 3 1 , f r o m C a r 2 . R a d a r g e t s c a r s p e e d , 3 2 , f r o m C a r s u c h t h a t 3 1 7 6 3 2 . 3 . C o n t r o l , s t a t e “ c a l c ” g e t s d i s t a n c e f r o m R a d a r b a s e d o n 3 2 , n o t 3 1 . 4 . T h e c a r s p e e d i n f e r r e d b y $ 1 — x 2 i s d i f f e r e n t t h a t 8 1 r e s u l t i n g i n a n i n c o r r e c t a s s e s s - m e n t O f t h e t a r g e t ’ s s p e e d . I n o t h e r w o r d s , b e c a u s e R a d a r u s e s c a r s p e e d t o c o m p u t e d i s t a n c e , t h e d i s t a n c e s e n t t o o b j e c t C o n t r o l w a s i n c o n s i s t e n t w i t h t h e c a r s p e e d t h a t C o n t r o l h a d j u s t p r e v i o u s l y O b t a i n e d . T h e r e s u l t w a s t w o d i f f e r e n t v a l u e s i n R a d a r a n d C o n t r o l f o r a t , t h e t a r g e t v e h i c l e s p e e d . W i t h a i n c o n s i s t e n t v a l u e f o r t a r g e t s p e e d , C o n t r o l c o m p u t e d i n c o r r e c t t h r o t t l e c o n t r o l i n f o r m a t i o n . T h e s o l u t i o n , a s s h o w n i n F i g u r e 9 . 1 7 , w a s t o m o d i f y c l a s s c o n t r o l ’ s d y n a m i c m o d e l b y m o v i n g t h e r e q u e s t f o r c a r s p e e d t o s t a t e “ g e t s p d ” a n d d e l a y i n g a c k n o w l e d g e m e n t o f O b j e c t r a d a r ’ s d i s t a n c e m e s s a g e a s l o n g a s p o s s i b l e . T h i s p r e v e n t s R a d a r f r o m o b t a i n i n g a n e w c a r s p e e d u n t i l a f t e r C o n t r o l h a s t h e c a r s p e e d , c l o s i n g d i s t a n c e , a n d h a s c o m p u t e d 2 1 6 - " F W " 3 . C a r s p e e d 5 2 u s e d t o c a l c u l a t e d i s t a n c e i t ] h h h h 5 d i s t ( x l ) I v : = ( x l - x 2 ) / t i n c ; V t z : v c - v ; 2 2 : = v t * t m i n ; 2 1 : = 2 2 - 2 2 / 1 0 ; x ] : = x 2 ; c a r s p e e d ( v c ) I I " r a d a r a c k c o n t r o l ‘ g e t s p d I I c a l c I r g e t x c I I \ l \ , ( \ \ 1 . C a r s p e e d 5 1 r e t u r n e d \ h e r e . A _ 2 . C l a s s r a d a r r e q u e s t s a n d O b t a i n s c a r s p e e d d u r i n g t h i s t i m e . N e w s p e e d 5 2 i s r e t u r n e d . F i g u r e 9 . 1 8 : S t a t e s “ g e t s p d ” a n d “ c a l c ” f r o m c l a s s C o n t r o l p r i o r t o m o d i f y i n g t h e o r d e r o f O b t a i n i n g c a r s p e e d a n d n e x t d i s t a n c e . a l l r e l e v a n t v a l u e s . W i t h t h e r e fi n e m e n t s , t h e d y n a m i c m o d e l s s h o w n i n F i g u r e s 9 1 7 , 9 1 2 , a n d 9 . 1 3 w o r k a s e x p e c t e d i n s i m u l a t i o n . 9 . 6 . 2 S u m m a r y o f S i m u l a t i o n - B a s e d R e fi n e m e n t s T w o p r i m a r y i m p r o p e r c h a r a c t e r i s t i c s O f t h e m o d e l w e r e O b s e r v e d i n s i m u l a t i o n . T h e fi r s t c h a r a c t e r i s t i c w a s t h e f a i l u r e t o a c h i e v e m i n i m a l s y s t e m g o a l s ( i . e . , a c c e p t i n g a s p e e d “ s e t ” , a n d e s t a b l i s h i n g a t r a i l p o s i t i o n b e h i n d t h e t a r g e t ) . T h i s u s u a l l y o c c u r r e d b e c a u s e t h e m o d e l s t o p p e d d u e t o d e a d l o c k . T h e s e c o n d c h a r a c t e r i s t i c w a s e r r a t i c b e h a v i o r f r o m o n e s i m u l a t i o n r u n t o t h e n e x t . A s p r e v i o u s l y d e s c r i b e d , s o m e t i m e s t h e m o d e l e n t e r e d t h e s a f e z o n e , t h e n , g i v e n e x a c t l y t h e s a m e i n i t i a l v a l u e s , t h e m o d e l w o u l d e s t a b l i s h a t r a i l p o s i t i o n f u r t h e r b e h i n d t h e t a r g e t t h a n t h e s p e c i fi c a t i o n s a l l o w e d . A t t h e c o n c l u s i o n o f s i m u l a t i o n t e s t i n g , t h e m o d e l b e h a v e d a s e x p e c t e d f o r a l l i n i t i a l c o n d i t i o n s t h a t w e r e t r i e d . U n f o r t u n a t e l y , w i t h o u t a n e x t r e m e l y l a r g e n u m b e r o f s i m u l a t i o n r u n s , t h e a n a l y s t c a n n o t b e s u r e t h e n e x t s i m u l a t i o n w i l l n o t p r o d u c e a n i n c o r r e c t b e h a v i o r . 2 1 7 T h e s o l u t i o n t o t h i s p r o b l e m i s m o d e l c h e c k i n g , e x p l a i n e d i n t h e n e x t s e c t i o n . 9 . 7 S P I N - B a s e d M o d e l C h e c k i n g T h e S P I N m o d e l c h e c k e r v e r i fi e s t h e b e h a v i o r o f a m o d e l w r i t t e n i n P r o m e l a u s i n g a v a r i e t y O f a n a l y s i s t e c h n i q u e s . E a c h s i m u l a t i o n r u n o n l y f o l l o w s o n e p a r t i c u l a r e x e c u t i o n p a t h . I n o r d e r t o O b t a i n a l l t h e p o s s i b l e i n t e r l e a v i n g s o f c o n c u r r e n t s t a t e s a n d e x e c u t i o n p a t h s , a l a r g e n u m b e r O f s i m u l a t i o n r u n s w o u l d b e r e q u i r e d . O n t h e o t h e r h a n d , t h e n u m b e r O f p o s s i b l e b e h a v i o r s o f a g i v e n m o d e l i s fi n i t e , a l t h o u g h p e r h a p s v e r y l a r g e . T h e k e y c o n c e p t b e h i n d S P I N ’ s m o d e l c h e c k i n g a n a l y s i s i s a n e x h a u s t i v e s e a r c h O f e v e r y p o s s i b l e s y s t e m s t a t e t o fi n d s p e c i fi e d b e h a v i o r . R a t h e r t h a n s i m u l a t i o n , t h e s t a t e s e a r c h i s a c c o m p l i s h e d , i n e f f e c t , b y e x p a n d i n g e v e r y p o s s i b l e e x e c u t i o n p a t h i n t o o n e , l a r g e g r a p h w h e r e t h e n o d e s r e p r e s e n t s t a t e s a n d a r c s r e p r e s e n t s t a t e t r a n s i t i o n s . 9 . 7 . 1 S t a t e E x p l o s i o n P r o b l e m A m a j o r d i f fi c u l t y O f e x h a u s t i v e s t a t e e x p l o r a t i o n i s t h e p o t e n t i a l l y l a r g e n u m b e r O f s t a t e s . W h e n t h e n u m b e r O f s t a t e s b e c o m e s t o o l a r g e , S P I N c a n u s e a p p r o x i m a t i o n t e c h n i q u e s b y v i s i t i n g m o s t s t a t e s , b u t n o t a l l . W h e n p o s s i b l e , a n a l y s i s i s m u c h e a s i e r a n d m o r e a c c u r a t e i f t h e n u m b e r o f s t a t e s c a n b e k e p t s m a l l e n o u g h t o fi t i n a v a i l a b l e m e m o r y . F o r e x a m p l e , t o O b t a i n a m o r e r e a l i s t i c s i m u l a t i o n , w e c o u l d h a v e m o d i fi e d t h e m o d e l ’ s s c a l e t o h u n d r e d t h s O f a f o o t ( h f t ) a n d t h e t i m e s c a l e t o t e n t h s o f a s e c o n d ( t s e c ) . U s i n g s c a l e f a c t o r s h f t a n d t s e c , t h e r a d a r i s a s s u m e d t o r e t u r n h u n d r e d t h s O f a f o o t e v e r y t e n t h o f a s e c o n d ( o r h f t / t s e c ) . T h i s s e e m s t o b e a m o r e r e a l i s t i c s a m p l i n g r a t e . I n i n i t i a l s i m u l a t i o n s , w e t e s t e d b o t h s e t s o f s c a l e f a c t o r s , a n d t h e c o n t r o l a l g o r i t h m p e r f o r m s a b o u t t h e s a m e f o r b o t h . T h e m a j o r d i f f e r e n c e i s t h a t t h e h f t / t s e c s c a l e f a c t o r c a u s e s a b o u t t e n t i m e s m o r e s t a t e 2 1 8 t r a n s i t i o n s p e r p o s s i b l e e x e c u t i o n p a t h t h a n t h e m o d e l w i t h t f t / s e c . T h i s s t a t e e x p l o s i o n i s s i g n i fi c a n t a n d c a u s e s a n a l y s i s t o c o n s u m e a l l a v a i l a b l e m e m o r y . S P I N ’ s s o l u t i o n w h e n t h e n u m b e r O f s t a t e s i s t O O l a r g e t o fi t i n m e m o r y i s t o u s e a n a p p r o x i m a t i o n t e c h n i q u e s . D u r i n g a n e x a c t , f u l l s t a t e s e a r c h , e a c h v i s i t e d s t a t e i s s t o r e d i n a t a b l e b y u s i n g a h a s h i n g f u n c t i o n . E v e r y s t a t e i s u n i q u e l y s t o r e d b y r e s o l v i n g h a s h t a b l e c o n fl i c t s . W h e n a n a p p r o x i m a t i o n t e c h n i q u e i s u s e d , e i t h e r t h e s t a t e i d e n t i t y i s c o m p r e s s e d i n a n o n - i d e n t i t y p r e s e r v i n g f a s h i o n , o r c o l l i s i o n s i n t h e h a s h t a b l e a r e n o t r e s o l v e d . S i n c e t w o d i f f e r e n t s t a t e s m a y a p p e a r t o h a v e t h e s a m e i d e n t i t y w h e n u s i n g t h e s e t e c h n i q u e s , a n e w l y v i s i t e d s t a t e m a y a p p e a r t O h a v e b e e n p r e v i o u s l y v i s i t e d . T h i s e f f e c t i v e l y c a u s e s p r u n i n g o f t h e s t a t e t r e e b e c a u s e , b y t h e a n a l y z e r ’ s r e c o r d s , i t h a s a l r e a d y v i s i t e d t h i s s t a t e , a n d t h e r e f o r e h a s a l r e a d y e x p a n d e d e x e c u t i o n p a t h s s t a r t i n g a t t h i s s t a t e . B y i g n o r i n g p a t h s f o r w a r d f r o m t h e e q u i v a l e n t s t a t e , t h e s t a t e t r e e i s e f f e c t i v e l y p r u n e d . H o l z m a n n [ 1 6 ] c l a i m s c o v e r a g e f o r a p p r o x i m a t e a n a l y s e s a r e g o o d , b u t c l e a r l y n o t e x h a u s t i v e . T h e s c a l e h f t / t s e c a l s o p r o d u c e s a l a r g e a m o u n t o f a n a l y s i s o u t p u t ( a b o u t t e n t i m e s m o r e ) b e c a u s e t i m e i n c r e m e n t s o c c u r i n . 1 s e c o n d i n t e r v a l s . F o r t h i s a n a l y s i s , w e f e l t t h e r e w e r e n o a d v a n t a g e s , a n d c o n s i d e r a b l e d i s a d v a n t a g e s , t o i n c r e a s i n g s a m p l i n g r a t e r e a l i s m a t t h e c o s t O f m u c h m o r e d i f fi c u l t a n a l y s i s a n d s i m u l a t i o n . W e a l s o f e l t t h a t a n e x a c t e x h a u s t i v e s t a t e s e a r c h w a s p r e f e r a b l e t o a n a p p r o x i m a t i o n . T h e r e f o r e , w e u s e d t h e t f t / s e c s c a l e t h r o u g h o u t t h e m o d e l . T h e a c t u a l a n a l y s i s i s p e r f o r m e d b y a g e n e r a t e d C p r o g r a m n a m e d “ p a n . c ” T h e p a n . c p r o g r a m e n c o d e s t h e s t a t e t r a n s i t i o n s a n d c a l c u l a t i o n s s p e c i fi e d i n t h e P r o m e l a m o d e l . P a s s i n g p a r a m e t e r s o n t h e c o m p i l e r c o m m a n d l i n e p e r m i t s v a r i o u s k i n d s O f a n a l y z e r s t o b e g e n e r a t e d . E a c h g e n e r a t e d a n a l y z e r a l s o a c c e p t s r u n - t i m e O p t i o n s f o r t u n i n g t h e a n a l y s i s . T h e d a t a fl o w f o r t h e p r o c e s s i s s h o w n i n F i g u r e 9 . 1 9 . I n t h e fi r s t t r a n s f o r m , t h e H y d r a 2 1 9 l a n g u a g e r e p r e s e n t a t i o n O f t h e m o d e l i s t r a n s l a t e d t o P r o m e l a s p e c i fi c a t i o n s . N e x t , t h e “ - a ” c o m m a n d l i n e O p t i o n i n s t r u c t s S P I N t o p r o d u c e a C p r o g r a m e n c o d i n g a n a n a l y z e r . T h e a n a l y z e r m u s t b e c o m p i l e d i n t h e n e x t s t e p t O p r o d u c e a n e x e c u t a b l e p r o g r a m , c a l l e d p a n . C o m p i l e r v a r i a b l e s d e fi n e d w i t h t h e “ - D ” s w i t c h o n t h e c o m m a n d l i n e c a u s e v a r i o u s k i n d s o f a n a l y z e r s t o b e b u i l t . F i n a l l y , t h e a n a l y s t c a n r u n t h e p a n p r o g r a m w i t h v a r i o u s c o m m a n d l i n e O p t i o n s t o c a u s e a v a r i o u s k i n d s o f a n a l y s e s t o b e p e r f o r m e d . H y d r a r e p r e s e n t a t i o n O f m o d e l s _ d i a g r a m s H y d r a P r o m e l a S p e c s C m a m p g S P I N - a G C C C o m p i l e r E x e c u t a b l e p r o g r a m _ c o m p i l e p e r m s E x e c u t i o n a n a l y s t p a r m s a n a l y s i s o u t p u t F i g u r e 9 . 1 9 : D a t a fl o w d i g r a m f o r b u i l d i n g a S P I N a n a l y z e r 9 . 7 . 2 C o m m o n l y C h e c k e d P r o p e r t i e s S e v e r a l p r o p e r t i e s O f c o n c u r r e n t s y s t e m s a r i s e s o O f t e n t h a t c o m m o n t e r m s f o r t h e m h a v e b e e n a s s i g n e d : S a f e t y : T h e s a f e t y p r o p e r t y s t a t e s t h a t n o t h i n g b a d w i l l h a p p e n i n t h e s y s t e m . F o r e x — 2 2 0 a m p l e , i n o u r s y s t e m , f a i l i n g t o d i s e n g a g e t h e t h r o t t l e a f t e r t h e s a f e t y z o n e h a d b e e n e n t e r e d w o u l d b e a s a f e t y v i o l a t i o n . L i v e n e s s : T h e l i v e n e s s p r o p e r t y s t a t e s t h a t t h e s y s t e m m a k e s p r o g r e s s d u r i n g i t s e x e c u t i o n . N o c o n c u r r e n t c o m p o n e n t i s “ s t a r v e d ” b y f a i l i n g t o e x e c u t e . D e a d l o c k : D e a d l o c k m e a n s t h a t t w o o r m o r e c o m p o n e n t s a r e e a c h b l o c k i n g t h e o t h e r f r o m e x e c u t i o n . I n a c o n c u r r e n t s y s t e m , t h i s u s u a l l y o c c u r s w h e n a m e s s a g e t h a t g e n e r a t e s a r e p l y i s m i s s e d . T h e s e n d e r a n d t h e r e c e i v e r d e a d l o c k a w a i t i n g e a c h o t h e r s ’ r e s p o n s e s . L i v e l o c k : D e a d l o c k u s u a l l y i m p l i e s a c o m p o n e n t h a s b l o c k e d , o r s t o p p e d a t s o m e p o i n t . L i v e l o c k i s s i m i l a r t o d e a d l o c k b u t o c c u r s w h e n t h e c o m p o n e n t s a r e l o c k e d i n t o a c y c l e o f s t a t e s w a i t i n g f o r a r e s o u r c e o r a n e v e n t t h a t t h e o t h e r c o m p o n e n t h o l d s . L i v e l o c k i s h a r d e r t o d e t e c t b e c a u s e i t a p p e a r s a s p r o g r e s s u n l e s s t h e c y c l e i s d e t e c t e d . E v e n t h e n , t h e c y c l e m a y b e v a l i d . R e a c h a b i l i t y : R e a c h a b i l i t y i s a p r O p e r t y o f a s t a t e , a n d n o t a t h e m o d e l , b u t r e a c h a b i l i t y a n a l y s i s i s c o m m o n a n d i m p o r t a n t . R e a c h a b i l i t y m e a n s a s t a t e c a n b e r e a c h e d b y s o m e e x e c u t i o n p a t h . A n u n r e a c h a b l e s t a t e u s u a l l y i m p l i e s s o m e t h i n g i n c o r r e c t i n t h e m o d e l . 9 . 7 . 3 S t a t e A s s e r t i o n s A v a r i e t y o f m o d e l c h e c k i n g o p t i o n s a r e a v a i l a b l e . T h e s i m p l e s t i s a n a s s e r t i o n a b o u t a s t a t e o f t h e s y s t e m . S P I N u s e s a p r e d i c a t e e x p r e s s i o n i n a P r o m e l a a s s e r t s t a t e m e n t t o m a k e a c l a i m a b o u t a p r o p e r t y o f a s i n g l e s y s t e m s t a t e . T h e a s s e r t s t a t e m e n t i s u s e f u l f o r c h e c k i n g s y s t e m i n v a r i a n t s a n d f o r c h e c k i n g a s i n g l e g l o b a l s t a t e p r e d i c a t e . F o r e x a m p l e , i n t h e S m a r t C r u i s e m o d e l , g i v e n t h e d i s t a n c e t o t h e t a r g e t i s 1 : 1 a n d t h e m i n i m u m s a f e 2 2 1 d i s t a n c e f r o m t h e t a r g e t i s z l , w h e n t h e m o d e l i s g i v e n a c l o s i n g v e l o c i t y s m a l l e n o u g h t h a t i t c a n a c h i e v e a p r o p e r t r a i l d i s t a n c e , t h e a s s e r t i o n a s s e r t ( x 1 > = 2 1 ) s h o u l d a l w a y s b e t r u e a f t e r s t a t e “ c a l c ” h a s c o m p l e t e d i t s c a l c u l a t i o n s . W e c a n a d d t h e a s s e r t i o n a s a n a c t i o n s t a t e m e n t o n t h e t r a n s i t i o n f o r s t a t e “ c a l c ” t o t e s t t h i s c a s e . F i g u r e 9 . 2 0 s h o w s t h e m o d i fi c a t i o n t o t h e H y d r a d e s c r i p t i o n o f s t a t e “ c a l c ” a n d F i g u r e 9 . 2 1 s h o w s t h e o u t p u t o f t h e a n a l y s i s . S i n c e t h e r e i s n o m e n t i o n o f a n a s s e r t i o n v i o l a t i o n , S P I N d e t e c t e d n o v i o l a t i o n . 1 S t a t e c a l c { / * p e r f o r m a l l t h e c a l c u l a t i o n s * / 2 T r a n s i t i o n " c a r s p e e d ( v c ) " , 3 " / v : = ( x 1 - x 2 ) / t i n c ; " , 4 " v t : = v c - v ; " , 5 " 2 2 : = v t t t m i n ; " , 6 " 2 1 : = 2 2 - z 2 / 1 0 ; " , 7 " x 1 : = x 2 ; " , 8 " p r i n t ( ’ v = % d , x 1 = % d , 2 1 = Z d z 2 = % d ’ , " , 9 " v , x 1 , z l , z 2 ) ; " , 1 0 " a s s e r t ( x 1 > = 2 1 ) " t o g e t x c ; 1 1 T r a n s i t i o n " b r a k e s “ r a d a r . o f f ‘ c a r . u n s e t " t o c a r o f f ; 1 2 } F i g u r e 9 . 2 0 : M o d i fi c a t i o n o f s t a t e “ c a l c ” t o i n c l u d e a n a s s e r t i o n s t a t e m e n t . T o d e m o n s t r a t e t h e m o d e l c h e c k i n g i s w o r k i n g a s e x p e c t e d , t h e c l o s i n g v e l o c i t y c a n b e i n c r e a s e d t o a v a l u e t h a t m a k e s i t i m p o s s i b l e f o r t h e c a r t o a v o i d e i t h e r h i t t i n g t h e t a r g e t o r v i o l a t i n g t h e s a f e z o n e . T h e c l o s i n g s p e e d i s i n c r e a s e d b y d e c r e a s i n g i n s t a n c e v a r i a b l e v t , t h e t a r g e t s p e e d , i n R a d a r , t o 8 0 f t / s e c . T h i s p r o v i d e s a c l o s i n g s p e e d o f 3 0 f t / s e c . U s i n g t h e d i s t a n c e - r e q u i r e d f o r m u l a , 1 2 2 / 2 a , m e n t i o n e d p r e v i o u s l y , a c l o s i n g s p e e d o f 3 0 f t / s e c r e q u i r e s 6 0 0 f e e t o f c o a s t i n g d i s t a n c e , w h i c h f a r e x c e e d s t h e 4 0 0 f t r a d a r r a n g e . T h e m o d i fi c a t i o n w a s m a d e b y d i r e c t l y e d i t i n g t h e H y d r a l a n g u a g e i n p u t t o c h a n g e t h e i n i t i a l v a l u e o f i n s t a n c e v a r i a b l e v t . T h i s s h o u l d c a u s e t h e a s s e r t x 1 > = 2 1 a s s e r t i o n t o f a i l . F i g u r e 9 . 2 2 s h o w s t h e o u t p u t o f t h e s t a t e s p a c e e x p l o r a t i o n w h e n t h e c l o s i n g s p e e d i s i n c r e a s e d . A s p r e d i c t e d , t h e a s s e r t i o n f a i l s . 2 2 2 ( S p i n V e r s i o n 3 . 3 . 1 - - 1 1 J u l y 1 9 9 9 ) F u l l s t a t e s p a c e s e a r c h f o r : n e v e r - c l a i m - ( n o n e s p e c i f i e d ) a s s e r t i o n v i o l a t i o n s + a c c e p t a n c e c y c l e s - ( n o t s e l e c t e d ) i n v a l i d e n d s t a t e s - ( d i s a b l e d b y - E f l a g ) S t a t e - v e c t o r 4 9 6 b y t e , d e p t h r e a c h e d 1 8 0 9 , e r r o r s : 0 8 8 5 6 s t a t e s , s t o r e d 1 2 3 2 3 s t a t e s , m a t c h e d 2 1 1 7 9 t r a n s i t i o n s ( = s t o r e d + m a t c h e d ) 5 8 8 1 a t o m i c s t e p s h a s h c o n f l i c t s : 2 5 3 ( r e s o l v e d ) ( m a x s i z e 2 ‘ 1 8 s t a t e s ) 5 . 7 9 4 m e m o r y u s a g e ( M b y t e ) F i g u r e 9 . 2 1 : p a n o u t p u t f r o m t h e m o d e l w i t h n o a s s e r t i o n v i o l a t i o n . p a n : a s s e r t i o n v i o l a t e d ( c o n t r o l _ V . x l > = c o n t r o l _ V . z l ) ( a t d e p t h 1 1 2 5 ) p a n : w r o t e s c . v 9 . p r . t r a i l ( S p i n V e r s i o n 3 . 3 . 1 - - 1 1 J u l y 1 9 9 9 ) W a r n i n g : S e a r c h n o t c o m p l e t e d F u l l s t a t e s p a c e s e a r c h f o r : n e v e r - c l a i m a s s e r t i o n v i o l a t i o n s + a c c e p t a n c e c y c l e s - ( n o t s e l e c t e d ) i n v a l i d e n d s t a t e s ( d i s a b l e d b y - E f l a g ) ( n o n e s p e c i f i e d ) S t a t e - v e c t o r 4 9 6 b y t e , d e p t h r e a c h e d 1 1 2 4 , e r r o r s : 1 9 2 4 s t a t e s , s t o r e d 0 s t a t e s , m a t c h e d 9 2 4 t r a n s i t i o n s ( = s t o r e d + m a t c h e d ) 2 0 1 a t o m i c s t e p s h a s h c o n f l i c t s : O ( r e s o l v e d ) ( m a x s i z e 2 ‘ 1 8 s t a t e s ) 1 . 9 0 3 m e m o r y u s a g e ( M b y t e ) F i g u r e 9 . 2 2 : p a n o u t p u t f r o m t h e m o d e l w i t h a t a r g e t s p e e d o f 8 0 f t / s e c a n d a c a r s p e e d o f 1 1 0 f t / s e c p r o d u c i n g a n a s s e r t i o n v i o l a t i o n . 2 2 3 9 . 7 . 4 S t a t e R e a c h a b i l i t y A n a l y s i s M a n y b e h a v i o r s r e q u i r e a s s e r t i o n s a b o u t a s e q u e n c e o f s t a t e s o r t h e s t a t e s t h a t c a n b e r e a c h e d . T h e s i m p l e s t v e r i fi c a t i o n i s t o c h e c k f o r s t a t e r e a c h a b i l i t y . S P I N S t a t e R e a c h a b i l i t y I s s u e s E a c h b l o c k o f P r o m e l a s t a t e m e n t s r e p r e s e n t i n g a s i m p l e s t a t e g e n e r a t e d b y H y d r a b e g i n s w i t h a l a b e l e d “ p r i n t f ” s t a t e m e n t a n n o u n c i n g w h i c h s t a t e t h e m o d e l h a s e n t e r e d . A p p a r - e n t l y , S P I N a p p e a r s t o o c c a s i o n a l l y i g n o r e “ p r i n t f ” s t a t e m e n t s i n s t a t e r e a c h a b i l i t y a n a l y s i s . C o n s e q u e n t l y , e x a m i n i n g t h e “ u n r e a c h e d s t a t e s ” l i s t i n g a t t h e e n d o f a p a n a n a l y s i s d o e s n o t d e fi n i t e l y t e l l t h e a n a l y s t w h e t h e r o r n o t a s t a t e h a s b e e n e n t e r e d . I n o t h e r w o r d s , a s t a t e m a y b e u n r e a c h e d b u t t h e a n a l y s i s f a i l s t o c o n t a i n t h e u n r e a c h e d “ p r i n t f ” i n t h e a n a l y s i s o u t p u t . T o w o r k a r o u n d t h i s p r o b l e m , w e m o d i fi e d H y d r a t o p l a c e a “ s k i p ” s t a t e - m e n t i m m e d i a t e l y a f t e r t h e l a b e l d e s i g n a t i n g t h e s t a t e , t h e n f o l l o w e d t h e “ s k i p ” w i t h t h e “ p r i n t f ” . T h i s a p p r o a c h w o r k s b u t r e q u i r e s c o r r e l a t i o n o f t h e u n r e a c h e d s t a t e l i s t i n g , w h i c h i s g i v e n b y a P r o m e l a l i n e n u m b e r , w i t h t h e a c t u a l P r o m e l a c o d e . A s m a l l t o o l c o u l d b e c o n s t r u c t e d t o a u t o m a t i c a l l y r e a d t h e a n a l y s i s o u t p u t a n d m a t c h i t w i t h t h e P r o m e l a c o d e t o d e t e r m i n e u n r e a c h e d s t a t e s . S t a t e R e a c h a b i l i t y R e s u l t s I n s i m u l a t i o n , w i t h a c l o s i n g s p e e d o f l e s s t h a n 1 0 f t / s e c , t h e m o d e l c o n s i s t e n t l y c o n t r o l l e d t h e c a r t o a r e a s o n a b l e t r a i l d i s t a n c e a n d r e m a i n e d t h e r e w i t h a r e l a t i v e v e l o c i t y o f z e r o . A n a l y s i s o f t h e o u t p u t a s d e s c r i b e d a b o v e s h o w s t h a t s t a t e s “ a c k c a r O ” , “ s e n d w a r n ” , “ a l l o f f ” , a n d “ c a r o f f ” w e r e n o t r e a c h e d . T h e r e a c h a b i l i t y a n a l y s i s i m p l i e s t h a t n e i t h e r a “ t a r g e t l o s t ” o r “ b r a k e s ” s i g n a l w a s r e c e i v e d , n o r d i d t h e m o d e l e n t e r t h e u n s a f e z o n e c l o s e t o t h e t a r g e t 2 2 4 v e h i c l e . W i t h t h e c a r s p e e d s e t a t 1 1 0 f t / s e c a n d t h e t a r g e t a t a s p e e d o f 8 0 f t / s e c , t h e c l o s i n g s p e e d i s 3 0 f t / s e c . T h e f o r m u l a 1 2 2 / 2 a + 2 t m m s h o w s t h a t 4 6 0 f e e t a r e r e q u i r e d t o o b t a i n t h e p r o p e r t r a i l d i s t a n c e . W h e n t h e r a d a r o b t a i n s t h e t a r g e t a t 4 0 0 f e e t , o b j e c t C o n t r o l d o e s n o t h a v e e n o u g h r o o m t o p o s i t i o n t h e c a r i n t r a i l . F i g u r e 9 . 2 3 s h o w s t h e l a s t p a r t o f t h e s i m u l a t i o n o u t p u t . I n s i m u l a t i o n , C o n t r o l fi r s t s t a r t s i s s u i n g w a r n i n g s a t 2 7 9 f e e t t h a t t h e t a r g e t i s g o i n g t o b e s t r u c k . L a t e r , i t w a r n s t h a t t h e s a f e t y z o n e h a s b e e n e n t e r e d , r e l e a s e s t h e c r u i s e c o n t r o l , a n d r e t u r n s t o t h e “ i d l e ” s t a t e . I n t h e m o d e l , v a r i a b l e v i s t h e c l o s i n g v e l o c i t y , 2 : 1 i s t h e d i s t a n c e t o t h e t a r g e t , z 2 i s t h e t w o s e c o n d t r a i l d i s t a n c e , a n d 2 1 i s t h e m i n i m u m s a f e d i s t a n c e . W e w o u l d e x p e c t m o r e s t a t e s t o b e r e a c h e d w h e n t h e m o d e l i s a n a l y z e d f o r s t a t e r e a c h - a b i l i t y w i t h e x c e s s i v e c l o s i n g s p e e d , a n d i n d e e d , a l l s t a t e s i n C o n t r o l e x c e p t “ a c k c a r O ” a n d “ c a r o f f ” w e r e r e a c h e d . T h i s i m p l i e s t h a t t h e e n t i r e c o n t r o l l o o p w a s e x e c u t e d ( s t a t e s “ g e t s p d ” , “ c a l c ” , “ g e t x c ” , “ a l a r m ” , “ w a r n ” , ” c l o s e ” , “ w a i t i n g ” , a n d “ a c ” ) f o l l o w e d , b y t h e s t a t e s c o m p o s i n g t h e e x i t s e q u e n c e , s t a r t i n g a t s t a t e “ a l a r m ” , t h e n s t a t e “ a l l o f f ” , w h e n t h e s a f e t y z o n e i s e n t e r e d . T h e o n l y w a y “ a c k c a r O ” i s e n t e r e d i s i f a m e s s a g e d e n o t i n g t a r g e t l o s s i s r e c e i v e d , a n d o n l y a “ b r a k e s ” m e s s a g e c a n c a u s e s t a t e “ c a r o f f ” t o b e e n t e r e d . 9 . 7 . 5 P r o g r e s s S t a t e A n a l y s i s D y n a m i c m o d e l s f r e q u e n t l y c o n t a i n c y c l e s , s o m e i n t e n d e d a n d s o m e u n i n t e n d e d . S P I N i s c a p a b l e o f i d e n t i f y i n g c y c l e s , a n d , d e p e n d i n g o n h o w t h e c y c l e i s m a r k e d , c a n d e t e r m i n e i f t h e c y c l e i s “ g o o d ” o r “ b a d ” . P r o g r e s s s t a t e a n a l y s i s v e r i fi e s t h a t t h e r e a r e n o i n fi n i t e b e h a v i o r s ( c y c l e s ) o f o n l y u n m a r k e d s t a t e s . A s t a t e i s m a r k e d b y a t t a c h i n g a p r o g r e s s l a b e l t o a P r o m e l a s t a t e m e n t . P r o g r e s s s t a t e a n a l y s i s i n s u r e s l a c k o f d e a d l o c k a n d l i v e l o c k c a u s e d 2 2 5 v = 1 6 5 , x 1 = 1 5 7 5 , 2 1 = 1 4 4 O z 2 = 1 6 0 0 i n s t a t e i n s t a t e i n s t a t e i n s t a t e W A R N I N G : i n s t a t e i n s t a t e i n s t a t e i n s t a t e c o n t r o l . g e t x c c o n t r o l . a 1 a r m c o n t r o l . a a r n c o n t r o l . s e n d w a r n G O I N G T O H I T T A R G E T c o n t r o l . c l o s e c o n t r o l . g e t s p d r a d a r . r O r a d a r . r 1 r e a l v = 9 5 0 s e t v = 8 0 0 i n s t a t e c a r . c a r 1 x i s 1 4 2 5 i n s t a t e r a d a r . r 3 S e n d i n g x = 1 4 2 5 t o c o n t r o l i n s t a t e r a d a r . r _ a c k i n s t a t e c o n t r o l . c a l c i n s t a t e c a r . c a r 4 v - 1 5 0 , x 1 = 1 4 2 5 , 2 1 : 1 4 4 0 z 2 = 1 6 0 0 i n s t a t e i n s t a t e W A R N I N G : 1 1 - 1 4 2 5 , i n s t a t e i n s t a t e i n s t a t e i n s t a t e t i m e o u t c o n t r o l . g e t x c c o n t r o l . a 1 a r m T 0 0 C L O S E 2 1 8 1 4 4 0 c o n t r o l . a l l o f f c a r . c a r 5 c o n t r o l . i d l e r a d a r . r _ o f f F i g u r e 9 . 2 3 : L a s t p a r t o f S P I N o u t p u t w h e n c l o s i n g v e l o c i t y i s t o o h i g h . 2 2 6 + + + p a n : n o n - p r o g r e s s c y c l e ( a t d e p t h 3 1 1 4 ) p a n : w r o t e s c . v 9 . p r . t r a i l ( S p i n V e r s i o n 3 . 3 . 1 - - 1 1 J u l y 1 9 9 9 ) W a r n i n g : S e a r c h n o t c o m p l e t e d + P a r t i a l O r d e r R e d u c t i o n F u l l s t a t e s p a c e s e a r c h f o r : n e v e r - c l a i m a s s e r t i o n v i o l a t i o n s n o n - p r o g r e s s c y c l e s i n v a l i d e n d s t a t e s ( i f w i t h i n s c o p e o f c l a i m ) ( f a i r n e s s d i s a b l e d ) ( d i s a b l e d b y n e v e r - c l a i m ) S t a t e - v e c t o r 5 0 0 b y t e , d e p t h r e a c h e d 3 2 6 4 , e r r o r s : 1 1 4 7 1 s t a t e s , s t o r e d ( 1 4 7 3 v i s i t e d ) 2 s t a t e s , m a t c h e d 1 4 7 5 t r a n s i t i o n s ( = v i s i t e d + m a t c h e d ) 3 2 1 a t o m i c s t e p s h a s h c o n f l i c t s : 0 ( r e s o l v e d ) ( m a x s i z e 2 ‘ 1 8 s t a t e s ) 2 . 2 1 0 m e m o r y u s a g e ( M b y t e ) F i g u r e 9 . 2 4 : p a n a n a l y s i s r u n s h o w i n g a n o n - p r o g r e s s c y c l e i n t h e t a r g e t t r a i l l o o p . b y a n u n i n t e n d e d c y c l e , o r r a c e c o n d i t i o n , b u t i t a l s o c a n b e u s e d t o v e r i f y p o s i t i v e b e h a v i o r b y e n s u r i n g t h a t t h e m o d e l i s v i s i t i n g i n t e n d e d s t a t e s . P r o g r e s s s t a t e a n a l y s i s i n S P I N i s a c c o m p l i s h e d b y c o m p i l i n g p a n . c w i t h a - D N P s w i t c h a n d p a s s i n g t h e - 1 s w i t c h t o t h e r e s u l t i n g a n a l y z e r . R e s e t t i n g t h e c l o s i n g s p e e d t o 2 0 f t / s e c b y s e t t i n g a t t o 9 0 f t / s e c ( t o e n a b l e a t r a i l l o o p ) , a n d c h e c k i n g f o r p r o g r e s s l o o p s w i t h n o s t a t e s m a r k e d p r o d u c e s t h e o u t p u t i n F i g u r e 9 . 2 4 . T h e fi r s t l i n e o f t h e o u t p u t i n d i c a t e s t h e r e i s a n o n - p r o g r e s s l o o p . R u n n i n g S P I N i n t r a c e m o d e , a n d a n a l y z i n g t h e o u t p u t s h o w s t h a t t h e l o o p c o n s i s t s o f s t a t e s “ g e t x c ” , “ a l a r m ” , “ w a r n ” , “ c l o s e ” , “ g e t s p d ” , a n d “ c a l c ” . T h i s i s e x a c t l y t h e e x p e c t e d l o o p f o r t a r g e t t r a i l i n g . W h e n w e a d d a p r o g r e s s l a b e l t o s t a t e “ c a l c ” a n d r e - r u n t h e s a m e a n a l y s i s w i t h a c l o s i n g s p e e d o f 2 0 f t / s e c . F i g u r e 9 . 2 5 n o w c o n t a i n s n o m e n t i o n o f a l o o p . T h i s i m p l i e s t h e r e i s 2 2 7 ( S p i n V e r s i o n 3 . 3 . 1 - - 1 1 J u l y 1 9 9 9 ) + P a r t i a l O r d e r R e d u c t i o n F u l l s t a t e s p a c e s e a r c h f o r : n e v e r - c l a i m a s s e r t i o n v i o l a t i o n s n o n - p r o g r e s s c y c l e s i n v a l i d e n d s t a t e s ( i f w i t h i n s c o p e o f c l a i m ) ( f a i r n e s s d i s a b l e d ) ( d i s a b l e d b y n e v e r - c l a i m ) + + + S t a t e - v e c t o r 5 0 0 b y t e , d e p t h r e a c h e d 3 2 4 8 , e r r o r s : 0 4 6 7 7 s t a t e s , s t o r e d ( 7 0 0 6 v i s i t e d ) 9 0 8 4 s t a t e s , m a t c h e d 1 6 0 9 0 t r a n s i t i o n s ( = v i s i t e d + m a t c h e d ) 5 0 7 4 a t o m i c s t e p s h a s h c o n f l i c t s : 1 0 7 ( r e s o l v e d ) ( m a x s i z e 2 ‘ 1 8 s t a t e s ) 3 . 7 4 6 m e m o r y u s a g e ( M b y t e ) F i g u r e 9 . 2 5 : T h e s a m e a n a l y s i s a s s h o w n i n F i g u r e 9 . 2 4 b u t w i t h a p r o g r e s s l a b e l a t t a c h e d t o s t a t e “ c a l c ” . n o o t h e r c y c l i c b e h a v i o r i n t h e m o d e l e x c e p t t h o s e g l o b a l s t a t e s i n v o l v e d i n t h e t r a i l l o o p d e s c r i b e d a b o v e . N o t e t h a t t h i s i n c l u d e s a l l t h r e e o b j e c t s a n d n o t s i m p l y o b j e c t C o n t r o l . T h e l o o p s i n o b j e c t s R a d a r a n d C a r a r e p a r t o f t h e s y s t e m - w i d e l o o p t h a t i n c l u d e s t h e t r a i l l o o p i n o b j e c t C o n t r o l . T h e p r o g r e s s l a b e l c a n b e a d d e d e i t h e r b y d i r e c t l y e d i t i n g t h e P r o m e l a s p e c i fi c a t i o n s p r o d u c e d b y H y d r a , o r b y i n s e r t i n g a n u l l t r a n s i t i o n s t a t e i n t h e H y d r a l a n g u a g e s p e c i fi c a t i o n w h o s e n a m e s t a r t s w i t h t h e w o r d “ p r o g r e s s ” . S i n c e t h e i n s e r t e d s t a t e h a s n o s i d e e f f e c t s , i t d o e s n o t a f f e c t t h e b e h a v i o r o f t h e m o d e l . 9 . 7 . 6 N e v e r C l a i m s A S P I N n e v e r c l a i m i s a m e a n s o f s p e c i f y i n g t e m p o r a l p r o p e r t i e s a c r o s s a s e r i e s o f s t a t e s . T h e n e v e r c l a i m s p e c i fi e s a s e r i e s o f c o n d i t i o n s t h a t s h o u l d n e v e r o c c u r , a n d t h e r e f o r e , c h e c k s s a f e t y p r o p e r t i e s o f a s y s t e m . A n e v e r c l a i m i s w r i t t e n a s a m o d i fi e d p r o c t y p e 2 2 8 u s i n g P r o m e l a s t a t e m e n t s . I f a n e v e r c l a i m p r o c e d u r e e x i t s b y d r o p p i n g t h r o u g h i t s fi n a l s t a t e m e n t , t h e n t h e c l a i m i s v i o l a t e d . A n y s t a t e m e n t w i t h n o s i d e e f f e c t s c a n b e c o n t a i n e d i n a n e v e r p r o c e d u r e . T h e S P I N a n a l y z e r i n t e r l e a v e s t h e e x e c u t i o n o f n e v e r c l a i m s t a t e m e n t s w i t h s t a t e m e n t s f r o m t h e m o d e l . W h e n a n e v e r c l a i m i s p r e s e n t i n a m o d e l , a n e w s t a t e m a c h i n e i s f o r m e d a s t h e p r o d u c t o f t h e o r i g i n a l m o d e l a n d t h e s t a t e m a c h i n e f o r m e d b y t h e n e v e r c l a i m s t a t e m e n t s . E f f e c t i v e l y , t h e n e v e r c l a i m s t a t e m e n t s a r e c o n d i t i o n s o n t h e c u r r e n t g l o b a l s y s t e m s t a t e , h e n c e t h e r e q u i r e m e n t f o r n o n - s i d e e f f e c t o n l y s t a t e m e n t s . F i g u r e 9 . 2 6 s h o w s a n e v e r c l a i m t h a t i l l u s t r a t e s a n o t h e r w a y o f i n s u r i n g t h e c a r a c h i e v e s t h e p r o p e r t r a i l d i s t a n c e a n d n e v e r s t o p s t r a i l i n g . L i n e s 3 t h r o u g h 6 i n F i g u r e 9 . 2 6 w a i t u n t i l s t a t e “ i d l e ” h a s b e e n e n t e r e d . N e v e r c l a i m s v e r i f y a s t a t e s e q u e n c e b y a l w a y s s t a r t i n g a t t h e i n i t i a l s t a t e , t h u s t h e c l a i m m u s t c o v e r a l l p r e fi x s t a t e s u n t i l e n t r y i n t o s t a t e “ i d l e ” . T h e s k i p s t a t e m e n t o n l i n e 4 p r o v i d e s a n o n - d e t e r m i n i s t i c m a t c h f o r a n y s t a t e m e n t u n t i l s t a t e “ i d l e ” i s r e a c h e d . A t t h a t p o i n t , t h e l o o p o n l i n e s 3 — 6 e x i t s a n d t h e l o o p o n l i n e s 7 — 1 0 b e g i n s . A g a i n , t h e l o o p s k i p s p r e fi x s t a t e s w h i l e “ i d l e ” i s s t i l l t h e a c t i v e s t a t e . T h e s k i p s t a t e m e n t i s r e q u i r e d h e r e b e c a u s e a n u n d e t e r m i n e d n u m b e r o f s t a t e s c o u l d b e t r a n s i t i o n e d i n o b j e c t s R a d a r a n d C a r u n t i l “ i d l e ” e x i t s . W h e n s t a t e “ i d l e ” e x i t s , t h e l a s t 1 0 0 p o n l i n e s 1 1 — 1 3 i n s u r e s t h a t s t a t e “ i d l e ” i s n e v e r e n t e r e d a g a i n . I f i t i s , t h e n t h e l o o p e x i t s v i a t h e b r e a k s t a t e m e n t a n d t h e n e v e r c l a i m e n d s , s i g n i f y i n g a v i o l a t e d c l a i m . F i g u r e 9 . 2 7 s h o w s t h e r e s u l t s o f t h e a n a l y s i s w i t h t h e n e v e r c l a i m i n F i g u r e 9 . 2 6 . T h e l a c k o f a m e s s a g e s a y i n g t h e c l a i m i s v i o l a t e d m e a n s t h e c l a i m s u c c e e d e d . 2 2 9 / * V e r i f i e s t h a t a t l o w e n o u g h c l o s u r e s p e e d s , t h e c a r c o m e s u p b e h i n d t h e t a r g e t a n d s t a y s t h e r e f o r e v e r . I f t h e t r a i l l o o p i s e x i t e d , w e r e t u r n t o s t a t e i d l e * / 1 : n e v e r 2 : { / * w a i t u n t i l s t a t e i d l e i s e n t e r e d * / 3 : d o 4 : ' : s k i p 5 : - : c o n t r o l E c o n t r o l p i d J Q i d l e - > b r e a k 6 : o d ; / * n o w w a i t u n t i l s t a t e i d l e i s e x i t e d * / 7 : d o 8 : ' : s k i p 9 : : : l ( c o n t r o l [ c o n t r o l p i d ] @ i d l e ) - > b r e a k 1 0 : 0 d ; / * a n d i f w e c o m e b a c k t o s t a t e i d l e , i t ’ s a n e r r o r * / 1 1 : d o 1 2 : : : c o n t r o l [ c o n t r o l p i d ] @ i d 1 e - > b r e a k 1 3 : 0 d } F i g u r e 9 . 2 6 : A n e v e r c l a i m s p e c i f y i n g t h a t s t a t e “ i d l e ” i s o n l y e n t e r e d o n c e , a t t h e s t a r t o f e x e c u t i o n . w a r n i n g : f o r p . o . r e d u c t i o n t o b e v a l i d t h e n e v e r c l a i m m u s t b e s t u t t e r - c l o J e d ( n e v e r c l a i m s g e n e r a t e d f r o m L T L f o r m u l a e a r e s t u t t e r - c l o s e d ) ( S p i n V e r s i o n 3 . 3 . 1 - - 1 1 J u l y 1 9 9 9 ) + P a r t i a l O r d e r R e d u c t i o n F u l l s t a t e s p a c e s e a r c h f o r : n e v e r - c l a i m + a s s e r t i o n v i o l a t i o n s + ( i f w i t h i n s c o p e o f c l a i m ) a c c e p t a n c e c y c l e s + ( f a i r n e s s d i s a b l e d ) i n v a l i d e n d s t a t e s ( d i s a b l e d b y n e v e r - c l a i m ) S t a t e - v e c t o r 5 0 4 b y t e , d e p t h r e a c h e d 3 1 1 4 , e r r o r s : 0 6 3 1 4 s t a t e s , s t o r e d 2 9 1 9 s t a t e s , m a t c h e d 9 2 3 3 t r a n s i t i o n s ( - s t o r e d + m a t c h e d ) 3 4 4 5 a t o m i c s t e p s h a s h c o n f l i c t s : 7 2 ( r e s o l v e d ) ( m a x s i z e 2 ‘ 1 8 s t a t e s ) 4 . 5 6 5 m e m o r y u s a g e ( M b y t e ) F i g u r e 9 . 2 7 : A n a n a l y s i s r u n u s i n g t h e n e v e r c l a i m f r o m F i g u r e 9 . 2 6 . 2 3 0 E s t a b l i s h i n g L i v e n e s s P r o p e r t i e s W e h a v e n o w u s e d a n u m b e r o f m e t h o d s t o i n s u r e t h a t t h e m o d e l c o r r e c t l y e n t e r s t h e t r a i l p o s i t i o n a n d s t a y s t h e r e , b u t t h e r e a r e o t h e r p r o p e r t i e s t h a t w e w o u l d l i k e t o v e r i f y . O n e s u c h p r o p e r t y i s t o i n s u r e t h a t w h e n e v e r a “ t a r g e t ” m e s s a g e i s s e n t b y c l a s s R a d a r , a n a c k n o w l e d g e m e n t i s r e c e i v e d . B e c a u s e t h i s i s a p o s i t i v e p r o p e r t y , w e c a n e x p r e s s i t a s w h a t s h o u l d h a p p e n , n e g a t e t h a t , a n d u s e t h e n e g a t e d f o r m f o r t h e n e v e r c l a i m . F i r s t , w e n e e d a n e w t e m p o r a l o p e r a t o r L e a d s t o , w r i t t e n a s M , i s a c o m m o n l y d e fi n e d t e m p o r a l o p e r a t o r [ 6 7 ] t h a t m a k e s u s e o f t h e p r o p e r t i e s o f h e n c e f o r t h a n d e v e n t u a l l y . L e a d s t o i s d e fi n e d a s : A M B E C 1 ( A = > < > B ) . ( 9 . 1 ) T h e r i g h t s i d e o f E x p r e s s i o n ( 9 . 1 ) s t a t e s t h a t f r o m n o w o n , w h e n e v e r A b e c o m e s t r u e t h e n e i t h e r B i s t r u e o r w i l l b e c o m e t r u e . L e a d s t o i s c o m m o n l y u s e d t o e x p r e s s l i v e n e s s p r o p e r t i e s a s s h o w n i n t h e e x a m p l e s b e l o w . O u r i n t e n t i s t o e x p r e s s “ t a r g e t o c c u r r e n c e l e a d s t o a c k n o w l e d g e m e n t ” , b u t f o r a S P I N n e v e r c l a i m t h i s h a s t o b e n e g a t e d t o s a y “ i t i s n e v e r t h e c a s e t h a t { t a r g e t O c c u r r e n c e l e a d s t o a c k n o w l e d g e m e n t } i s f a l s e ” . T h e S P I N L T L t r a n s l a t o r o n l y a c c e p t s s i m p l e , l o w e r c a s e v a r i a b l e s , s o l e t p r e p r e s e n t “ t a r g e t s e n t ” a n d q r e p r e s e n t “ a c k n o w l e d g e m e n t r e c e i v e d ” . T h e n t h e f o r m u l a n e e d e d i s - 1 ( p M q ) . ' I k a n s l a t e d i n t e r m s o f S P I N O p e r a t o r s , w e g e t : a m p = > < > q ) ) . ( 9 . 2 ) F o r m u l a ( 9 . 2 ) s a y s “ h e n c e f o r t h , { p i m p l i e s q i s e v e n t u a l l y t r u e } , i s f a l s e ” . W e w a n t t o s h o w 2 3 1 F o r m u l a ( 9 . 2 ) i t s e l f i s n e v e r t r u e . T h e s e m a n t i c s o f t h e P r o m e l a s t a t e m e n t A ' ? ? [ B ] i s t o t e s t q u e u e A f o r t h e o c c u r e n c e o f m e s s a g e B a n y w h e r e w i t h i n q u e u e A . T h e s t a t e m e n t d o e s n o t m o d i f y t h e q u e u e i n a n y w a y , a n d t h e s t a t e m e n t b l o c k s u n t i l m e s s a g e B i s i n q u e u e A . P r o m e l a a l s o c o n t a i n s a # d e f i n e i t y s t a t e m e n t a s i n C [ 6 5 ] t h a t d e fi n e s s i m p l e v a r i a b l e x t o t e x t u a l l y e q u i v a l e n t y , w h e r e y c a n b e s o m e c o m p l e x e x p r e s s i o n . T h e i n t e r p r e t a t i o n o f d e fi n e d v a r i a b l e s o c c u r s a t c o m p i l e t i m e . T h e n a m e o f t h e i n p u t q u e u e f o r m e s s a g e s t o a n o b j e c t i s C L A S S _ q , t h e r e - f o r e u s i n g t h e t t d e f i n e s t a t e m e n t , t h e v a r i a b l e s p a n d q a r e d e fi n e d b y p l a c i n g # d e f i n e p c o n t r o l _ q ? ? [ t a r g e t ] a n d # d e f i n e q r a d a r _ q ? ? [ a c k c o n t r o l ] a t t h e t o p o f t h e d r i v e r f i l e f o r t h e H y d r a t r a n s l a t i o n . T h e p r e d i c a t e p i s t r u e w h e n m e s s a g e “ t a r g e t ” i s w a i t i n g i n c l a s s c o n t r o l ’ s q u e u e a n d p r e d i c a t e q i s t r u e w h e n t h e a c k n o w l e d g e m e n t “ a c k - c o n t r o l ” h a s r e a c h e d r a d a r ’ s o b j e c t q u e u e . T h e s e q u e n c e p , t h e n q , i m p l i e s a t a r g e t h a s b e e n s e n s e d a n d h a s b e e n a c k n o w l e d g e d b y C o n t r o l . T h e L T L f o r m u l a i s p a s s e d t o S P I N a s ! ( [ ] ( p - > < > q ) ) , s o S P I N c a n g e n e r a t e a n a n a l y z e r w i t h t h e c o r r e s p o n d i n g n e v e r c l a i m i n c l u d e d . W h e n t h e r e s u l t i n g a n a l y z e r i s r u n , t h e u s u a l S P I N o u t p u t i s p r o d u c e d w i t h n o m e n t i o n o f a c l a i m v i o l a t i o n , t h u s i t i s a l w a y s t r u e t h a t a “ t a r g e t ” s i g n a l r e s u l t s i n a n “ a c k c o n t r o l ” s i g n a l . 9 . 7 . 7 A c c e p t a n c e C y c l e s i n N e v e r C l a i m s T h e o p p o s i t e o f a p r o g r e s s 1 0 0 p i s c a l l e d a n a c c e p t a n c e c y c l e . C h e c k i n g f o r a c c e p t a n c e c y c l e s i n s u r e s t h e r e a r e n o i n fi n i t e c y c l e s t h a t a r e m a r k e d . M a r k i n g o f a s t a t e i s a c c o m p l i s h e d b y p l a c i n g a l a b e l o n a P r o m e l a s t a t e m e n t f o r t h e s t a t e s t a r t i n g w i t h “ a c c e p t ” . I n o u r m o d e l , u s i n g a c c e p t a n c e m a r k i n g s w o u l d r e q u i r e m a r k i n g e v e r y b a d c y c l e . T h i s c o u l d b e h a r d t o d o 2 3 2 a n d m a y m i s s a n i m p o r t a n t c y c l e . B u t i n n e v e r c l a i m s , t h e a c c e p t a n c e c y c l e i s v e r y u s e f u l . F i g u r e 9 . 2 8 s h o w s t h e S P I N g e n e r a t e d n e v e r c l a i m f r o m F o r m u l a ( 9 . 2 ) . L i n e s 4 — 8 c o n t a i n t w o g u a r d s t h a t c a n b e s e l e c t e d n o n - d e t e r m i n i s t i c a l l y . I f p a n d q a r e t r u e , t h e n t h e r e i s a p a t h b a c k t o L i n e 4 . W h e n b o t h p a n d q a r e f a l s e , c o n t r o l t r a n s f e r s t o a c c e p t _ S 4 , w h i c h s t a r t s t h e a c c e p t a n c e l o o p . I f q r e m a i n s f a l s e , a n a c c e p t a n c e c y c l e e x i s t s a n d t h u s t h e c l a i m i s “ m a t c h e d ” . A m a t c h e d c l a i m s i g n i fi e s v i o l a t i o n o f t h e c l a i m . 1 n e v e r { I t ! ( [ ] ( p - > < > q ) ) 2 * / 3 I t > > 0 . 0 < < t / 4 T O - i n i t : 5 i f 6 ( ! ( ( q ) ) u ( p ) ) - > g o t o a c c e p t _ S 4 7 ( 1 ) - > g o t o T 0 - i n i t 8 f i ; 9 a c c e p t _ 8 4 : 1 0 i f 1 1 : 2 ( l ( ( q ) ) ) - > g o t o T 0 5 4 1 2 f i ; 1 3 T 0 5 4 : 1 4 i f 1 6 : : ( ! ( ( q ) ) ) - > g o t o a c c e p t _ S 4 1 6 f i ; 1 7 a c c e p t m l l : 1 8 s k i p 1 9 } F i g u r e 9 . 2 8 : N e v e r c l a i m t o c h e c k f o r t h e i s s u a n c e o f a n a c k n o w l e d g m e n t w h e n a t a r g e t m e s s a g e i s s e n t . T h i s c l a i m w a s g e n e r a t e d b y t h e i n p u t t o S P I N s e e n o n l i n e 1 . L i n e 1 w a s d e r i v e d f r o m F o r m u l a ( 9 . 2 ) . T h e r e q u i r e m e n t t o c h e c k f o r n e g a t i v e p r o p e r t i e s , a n d t h e m a n n e r i n w h i c h t h e a c c e p - t a n c e 1 0 0 p f u n c t i o n s , c a n m a k e a n a l y s i s w i t h S P I N ’ s n e v e r c l a i m s s o m e w h a t c o n f u s i n g . I n f a c t , i f t h e a n a l y z e r i s t o c h e c k f o r a n a c c e p t a n c e c y c l e , a s i s o f t e n f o u n d i n a n e v e r c l a i m , t h e n a s p e c i a l s w i t c h ( - a ) m u s t b e p a s s e d t o p a n a t e x e c u t i o n t i m e . O t h e r w i s e ( w i t h o u t a c c e p t a n c e l a b e l s ) , n o s w i t c h s h o u l d b e s p e c i fi e d . T h i s m e a n s t h a t e v e n i f t h e a n a l y s t a l l o w s S P I N t o g e n e r a t e a n e v e r c l a i m f r o m a L T L f o r m u l a , h e m u s t s t i l l k n o w i f a c c e p t l a b e l s a r e u s e d t o c o n s t r u c t t h e c l a i m s o h e k n o w s w h e t h e r o r n o t t o u s e t h e - a s w i t c h . F o r c o m p a r i s o n w i t h t h e c o r r e c t v e r s i o n o f t h e m o d e l , w e c a n m o d i f y t h e m o d e l a t 2 3 3 s - r e r o o p s t a t e “ m a i n t a i n ” i n C o n t r o l b y r e m o v i n g t h e a c k n o w l e d g e m e n t . T h i s s h o u l d c a u s e t h e n e v e r c l a i m g e n e r a t e d f r o m F o r m u l a ( 9 . 2 ) t o f a i l . F i g u r e 9 . 2 9 s h o w s t h e m o d i fi e d H y d r a s t a t e m e n t s f o r s t a t e “ m a i n t a i n ” t o c a u s e a c l a i m v i o l a t i o n . F i g u r e 9 . 3 0 s h o w s t h e o u t p u t f r o m a n a n a l y s i s u s i n g t h e m o d i fi e d m o d e l a n d t h e n e v e r c l a i m s h o w n i n F i g u r e 9 . 2 8 , w h i c h w a s g e n e r a t e d b y F o r m u l a ( 9 . 2 ) . A s F i g u r e 9 . 3 0 s h o w s , p a n n o w r e p o r t s a n a c c e p t a n c e c y c l e i n t h e n e v e r c l a i m , i m p l y i n g t h a t “ a c k c o n t r o l ” i s n e v e r s e n t . S t a t e m a i n t a i n { / * w a i t f o r t a r g e t a c q u i s i t i o n * / T r a n s i t i o n " t a r g e t " t o g e t x 1 ; / * a c k r e m o v e d f r o m t h i s s t m t * / T r a n s i t i o n " b r a k e s ‘ r a d a r . o f f ‘ c a r . u n s e t " t o c a r o f f ; F i g u r e 9 . 2 9 : M o d i fi c a t i o n o f t h e t r a n s i t i o n t o r e m o v e t h e a c k n o w l e d g e m e s s a g e . w a r n i n g : f o r p . o . r e d u c t i o n t o b e v a l i d t h e n e v e r c l a i m m u s t b e s t u t t e r - c l o s e d ( n e v e r c l a i m s g e n e r a t e d f r o m L T L f o r m u l a e a r e s t u t t e r - c l o s e d ) p a n : a c c e p t a n c e c y c l e ( a t d e p t h 2 9 8 ) p a n : w r o t e s c . v 9 . p r . t r a i l ( S p i n V e r s i o n 3 . 3 . 1 - - 1 1 J u l y 1 9 9 9 ) W a r n i n g : S e a r c h n o t c o m p l e t e d + P a r t i a l O r d e r R e d u c t i o n F u l l s t a t e s p a c e s e a r c h f o r : n e v e r - c l a i m a s s e r t i o n v i o l a t i o n s a c c e p t a n c e c y c l e s i n v a l i d e n d s t a t e s ( i f w i t h i n s c o p e o f c l a i m ) ( f a i r n e s s d i s a b l e d ) ( d i s a b l e d b y n e v e r - c l a i m ) + + + S t a t e - v e c t o r 5 0 0 b y t e , d e p t h r e a c h e d 2 9 9 , e r r o r s : 1 1 3 4 s t a t e s , s t o r e d ( 1 3 5 v i s i t e d ) 1 s t a t e s , m a t c h e d 1 3 6 t r a n s i t i o n s ( = v i s i t e d + m a t c h e d ) 3 2 a t o m i c s t e p s h a s h c o n f l i c t s : 0 ( r e s o l v e d ) ( m a x s i z e 2 ‘ 1 8 s t a t e s ) 1 . 4 9 3 m e m o r y u s a g e ( M b y t e ) F i g u r e 9 . 3 0 : A n a l y z e r o u t p u t u s i n g t h e n e v e r c l a i m i n F i g u r e 9 . 3 0 a n d a m o d i fi e d m o d e l t o d i s a b l e m e s s a g e a c k n o w l e d g e m e n t . 2 3 4 9 . 7 . 8 A n a l y s i s W i t h N o n - D e t e r m i n i s t i c T r a n s i t i o n s S o f a r , w e h a v e n o t e x a m i n e d t h e b e h a v i o r o f t h e b r a k e i n p u t t o t h e C o n t r o l o b j e c t . B r a k e i n p u t c a n o c c u r a t a n y t i m e a f t e r t h e c r u i s e i s s e t . T o v e r i f y t h e b e h a v i o r o f t h e m o d e l , w e w o u l d l i k e t o s p e c i f y t h a t b r a k e i n p u t c a n a r i s e a t a n y t i m e . T o a c c o m p l i s h t h i s , w e m o d i f y o b j e c t R a d a r a t s t a t e “ r 3 ” b y a d d i n g t h e n e w t r a n s i t i o n { T r a n s i t i o n " [ t m o d e & 1 < = 4 0 0 0 ] “ c o n t r 0 1 . b r a k e s " t o r _ a c k ; } t o s t a t e “ r 3 ” . F i g u r e 9 . 3 1 s h o w s t h e t r a n s i t i o n a d d i t i o n g r a p h i c a l l y , w h e r e d a s h e d l i n e s s h o w t h e e x i s t i n g t r a n s i t i o n s a n d t h e s o l i d l i n e s h o w s t h e p r o p o s e d n e w t r a n s t i o n . W h e n a : i s l e s s t h a n 4 0 0 f e e t , s t a t e “ r 3 ” c a n e i t h e r s e n d t h e m e s s a g e d i s t ( x ) o r b r a k e s , n o n - d e t e r m i n i s t i c a l l y . N o w , w e w a n t t o v e r i f y t h a t w h e n e v e r b r a k e i n p u t i s s e n t , o b j e c t C o n t r o l t u r n s o f f t h e r a d a r , d i s a b l e s t h e t h r o t t l e c o n t r o l , a n d r e t u r n s t o s t a t e “ i d l e ” . [ ~ t m o d e & x < = 4 0 0 1 [ t m o d e : = l " c o n t m l i a r g e t - - _ l ‘ 1 n 9 9 € & X > 4 0 0 1 2 € 9 9 t 5 0 1 1 0 § g l ' 3 l - - - - - - - - - - - - - - - [ t m o d e & x < = 4 0 0 ] - _ " c o n t r o l . d i s t ( x ) N o n d e t e n n i n i s t i c c h o i c e I I I I l b e t w e e n t h e s e t w o t r a n s t i o n s \ i n r [ t m o d e & x ( 3 , 0 0 1 : c a n o c c u r w h e n e v e r x < = 4 0 0 . ‘ l , l I ‘ / - _ { @ 9 4 9 4 5 2 4 . 0 9 1 . - - - - - _ - - _ - - _ - - _ _ _ A d d t h i s t r a n s i t i o n F i g u r e 9 . 3 1 : S t a t e “ r 3 ” a f t e r a d d i n g a n o t h e r t r a n s i t i o n t o c a u s e a b r a k e s m e s s a g e t o b e g e n e r a t e d n o n - d e t e r m i n i s t i c a l l y . T h e d a s h e d l i n e s s h o w t h e e x i s t i n g t r a n s i t i o n s a n d t h e s o l i d l i n e s h o w s t h e n e w t r a n s i t i o n . T h e p o s i t i v e c o n d i t i o n w e a r e t e s t i n g f o r i s “ b r a k e s l e a d s t o s t a t e i d l e ” . T o f o r m a n e v e r c l a i m , t h i s f o r m u l a i s n e g a t e d , a s b e f o r e . T h i s c l a i m f o l l o w s t h e f o r m o f F o r m u l a ( 9 . 2 ) e x a c t l y . A l l t h a t i s r e q u i r e d i s t o r e d e fi n e p a n d q . F o r t h e d e fi n i t i o n o f p , w e w a n t a s t a t e m e n t e x p r e s s i n g t h e p r e s e n c e o f a “ b r a k e s ” 2 3 5 m e s s a g e i n t h e i n p u t q u e u e f o r C o n t r o l . A s s e e n e a r i l e r , t h e f o r m o f t h e d e fi n e i s : # d e f i n e p c o n t r o l _ q ? ? [ b r a k e s ] . T h e d e fi n t i o n o f q i s d i f f e r e n t f r o m b e f o r e . W e w a n t “ b r a k e s ” t o l e a d t o a r e t u r n t o s t a t e “ i d l e ” i n C o n t r o l . T h i s w o u l d i n d i c a t e t h a t a l l s y s t e m s h a d b e e n r e s e t a n d t h e s y s t e m w a s r e a d y f o r a n e w “ s e t ” m e s s a g e . T h e P r o m e l a p r e d i c a t e t o t e s t p r e s e n c e a t a p a r t i c u l a r l a b e l i s c o n t r o l [ c o n t r o l p i d ] 0 i d l e , w h e r e c o n t r o l i s t h e n a m e o f t h e p r o c t y p e w h e r e l a b e l i d l e i s l o c a t e d a n d v a r i a b l e c o n t r o l p i d i s t h e P I D o f t h e p r o c t y p e f o r o b j e c t C o n t r o l . T h e r e f o r e , t h i s p r e d i c a t e i s t r u e w h e n p r o c t y p e c o n t r o l i s a t l a b e l i d l e . T h e e n t i r e d e fi n e i s : # d e f i n e q c o n t r o l E c o n t r o l p i d J i d l e . T h e fi r s t t i m e t h i s c l a i m w a s r u n , i t f a i l e d a s s h o w n i n F i g u r e 9 . 3 2 . T h e a n a l y z e r r e p o r t e d a n a c c e p t a n c e c y c l e a t l a b e l T 0 _ S 4 ( s e e F i g u r e 9 . 2 8 ) i m p l y i n g s t a t e “ i d l e ” w a s n o t r e - e n t e r e d . T h e t r a c e o u t p u t i n F i g u r e 9 . 3 2 a l s o s h o w s t h e p r e v i o u s s t a t e i n o b j e c t C o n t r o l w a s p r e v i o u s l y “ c a l c ” , t h e c u r r e n t s t a t e i s “ c a r o f f ” , a n d m o s t i m p o r t a n t l y , c o n t r o l _ q c o n t a i n s t h e m e s s a g e “ c a r s p e e d ” . F i g u r e 9 . 3 3 s h o w s t h e t h r e e r e l e v a n t s t a t e s f r o m F i g u r e 9 . 1 7 . T h e p r o b l e m i s n o t a c c o u n t i n g f o r a t r a n s i t i o n o n m e s s a g e “ c a r s p e e d ” a t s t a t e “ c a r o f f ” . I n o t h e r w o r d s , t h e C o n t r o l o b j e c t i s i n s t a t e “ c a r o f f ” w a i t i n g f o r o n e o f t h e l i s t e d m e s s a g e s , b u t m e s s a g e “ c a r s p e e d ” i s a t t h e f r o n t o f t h e m e s s a g e q u e u e . T h i s c r e a t e s a d e a d l o c k . W h e n “ c a r s p e e d ” i s a d d e d t o t h e s e l f - t r a n s i t i o n o n “ c a r o f f ” a s s h o w n i n F i g u r e 9 . 3 4 , t h e a n a l y z e r r e p o r t s n o a c c e p t a n c e c y c l e s , i m p l y i n g p r o p e r b e h a v i o r f o r t h e b r a k e m e s s a g e . 2 3 6 < < < < < S T A R T O F C Y C L E > > > > > 6 1 6 : p r o c 0 ( N E V E R ) l i n e 4 7 1 " n e v e r " 6 1 6 : p r o c - ( : n e v e r : ) l i n e 4 7 1 " s c . v 9 . p r " ( s t a t e 1 1 ) [ ( ! ( ( c 0 n t r o l [ c o n t r o l p i d ] . _ p = = i d l e ) ) ) ] c o n t r o l _ V . a = 1 5 c o n t r o l _ V . x c o a s t = 3 3 3 3 c o n t r o l _ V . s e t s p d = 1 1 0 0 c o n t r o l _ V . v = 2 0 0 c o n t r o l _ V . t m i n = 2 c o n t r o l _ V . x 1 = 3 7 0 0 c o n t r o l _ V . v c = 1 1 0 0 c o n t r o l _ V . x 2 = 3 5 0 0 c o n t r o l _ V . v t = 9 0 0 c o n t r o l _ V . z l = 1 6 2 0 c o n t r o l _ V . z 2 = 1 8 0 0 c o n t r o l _ V . x h i t = 1 3 3 3 c o n t r o l _ V . t i n c = 1 c o n t r o l _ V . c l o s i n g = 0 q u e u e 2 ( c o n t r o l - q ) : [ c a r s p e e d ] [ a c k c a r ] r a d a r _ V . x = 3 5 0 0 r a d a r _ V . t m o d e = 0 r a d a r _ V . v c = 1 1 0 0 r a d a r _ V . b r k s = O r a d a r _ V . v t = 9 0 0 r a d a r _ V . v = 2 0 0 q u e u e 4 ( r a d a r _ q ) : c a r _ V . r e a l v = 1 1 0 0 c a r _ V . s e t v = 1 1 0 0 q u e u e 3 ( c a r _ q ) : q u e u e 1 ( t ) : [ f r e e ] F i g u r e 9 . 3 2 : T r a c e o u t p u t s h o w i n g a c c e p t a n c e c y c l e i n n e v e r c l a i m u s e d t o v e r i f y b e h a v i o r o f “ b r a k e s ” m e s s a g e . 2 3 7 c a r s p w d ( v c ) I v : = ( x 1 - x 2 ) l t i n c ; V t : = v c - v : 2 2 : = v t ' t m i n ; 2 1 : = 2 2 - 2 2 1 1 0 ; d i s t ( x 2 ) " c a r . g e t s p e e d x 1 : = x 2 ; g e t s p d A i l c a l c t o s t a t e g e t x c b m k e s ‘ m d a r o f fl c a n u n s e t t o s t a t e i d l e a c k c a r > L c a r o f f d i s t ( x l ) I l o s t t a r g e t b r a k e s F i g u r e 9 . 3 3 : S t a t e s g e t s p d , c a l c , a n d c a r o f f f r o m o b j e c t C o n t r o l . l I d i s t ( x 2 ) " c a r . g e t s p e e d g e t s p d b m k e s " r a d a r . o f f " c a r . u n s e t > | c a l c c a r s p e e d ( v c ) I v : = ( x l - x 2 ) / t i n c ; v t : = v c - v ; 2 . 2 : = v t ’ t m i n ; 2 1 : = 2 2 - z 2 / l O ; x 1 : = x 2 ; t o s t a t e g e t x c [ A d d e d t r a n s i t i o n e v e n t I t o s t a t e i d l e a c k c a r c a r o f f d i s t ( x l ) l o s t t a r g e t b r a k e s ‘ c a n p e e d ( v c ) F i g u r e 9 . 3 4 : T h e t h r e e s t a t e s f r o m F i g u r e 9 . 3 3 m o d i fi e d t o a d d c a r s p e e d ( v c ) t r a n s i t i o n t o s t a t e “ c a r o fi ” 2 3 8 9 . 8 D i s c u s s i o n o f U s i n g S P I N f o r A n a l y s i s A n u m b e r o f d i f fi c u l t i e s a r o s e u s i n g S P I N t o a n a l y z e t h e s e m a n t i c s o f t h i s m a p p e d U M L m o d e l . T h i s s e c t i o n o v e r v i e w s t h e d i f fi c u l t i e s a n d t h e c a u s e s . 9 . 8 . 1 B u g s T h e fi r s t m a p p i n g o f s e m a n t i c s t o i m p l e m e n t q u e u e d m e s s a g e s f o r o b j e c t s u s e d a t w o - v a l u e d c h a n n e l d e c l a r e d a s : c h a n c o n t r o l _ q s [ 5 ] o f { m t y p e , i n t } ; w h e r e c o n t r o l . q i s t h e i n p u t q u e u e f o r c l a s s C o n t r o l . M o d e l s c o n s t r u c t e d w i t h t h e s e s e m a n t i c s e x e c u t e d p r o p e r l y i n s i m u l a t i o n , b u t d u r i n g a n a l y s i s , s e v e r a l a s s e r t i o n s t a t e m e n t s r e p o r t e d f a i l u r e , b u t t h e t r a c e o f t h e v a r i a b l e s i n t h e a s s e r t i o n s t a t e i n d i c a t e d t h a t t h e a s s e r t i o n c o u l d n o t h a v e f a i l e d . I n s o m e c a s e s , t h e a n a l y z e r r e p o r t e d i t h a d r u n o u t o f m e m o r y a f t e r a v e r y l o n g e x e c u t i o n . T r a c e o u t p u t a l s o c o n t a i n e d t r a n s i t i o n s fi r i n g w h e n t h e t r a c e o f v a r i a b l e v a l u e s s h o w e d t h e t r a n s i t i o n w a s i m p o s s i b l e . D i a g n o s t i c p r i n t s t a t e m e n t s a d d e d t o t h e g e n e r a t e d a n a l y z e r C c o d e l e a d u s t o t h e c o n - c l u s i o n t h a t v a r i a b l e s w e r e b e i n g i n e x p l i c a b l y c h a n g e d a r o u n d c h a n n e l r e c e i v e s t a t e m e n t s . T h e s e m a n t i c s o f t h e o b j e c t q u e u e w a s c h a n g e d t o u s e t w o q u e u e s w i t h s i n g l e v a l u e m e s s a g e s l o t s . O n e c a r r i e d t h e s i g n a l n a m e a s b e f o r e , w h i l e t h e o t h e r c a r r i e d t h e s i g n a l p a r a m e t e r . A f t e r m a k i n g t h e s e c h a n g e s , t h e s a m e m o d e l b e g a n e x h i b i t i n g e x p e c t e d b e h a v i o r a n d t h e a n a l y s i s r u n s s h o r t e n e d s i g n i fi c a n t l y . T h e e x p l a n a t i o n f o r t h e l o n g a n a l y s i s r u n s l i e s i n r a n d o m c h a n g e s t o m o d e l v a r i a b l e s . T h i s e f f e c t i v e l y g e n e r a t e s a l a r g e n u m b e r o f n e w g l o b a l s y s t e m s t a t e s t h a t i n c r e a s e s t h e s t o r a g e r e q u i r e m e n t s t o t h e l i m i t o f m e m o r y a n d i n c r e a s e s r u n t i m e s d r a m a t i c a l l y . A s m e n t i o n e d a b o v e , a n o t h e r p r o b l e m c o n c e r n s t h e s i m p l e a n a l y s i s o f s t a t e r e a c h a b i l i t y . 2 3 9 O c c a s i o n a l l y , t h e a n a l y z e r o m i t s a s t a t e i n i t s u n r e a c h e d s t a t e l i s t . A s d e s c r i b e d e a r l i e r , w e v e r i fi e d t h e b e h a v i o r o f t h e m o d e l i n t w o w a y s . F i r s t , p a n r e p o r t e d n o t r e a c h i n g P r o m e l a s t a t e m e n t s i m m e d i a t e l y a f t e r t h e fi r s t s t a t e m e n t i n t h e s t a t e . S i n c e t h e fi r s t s t a t e m e n t o f t h e s t a t e ( a p r i n t f ) c a n n o t b l o c k , i t m u s t a l s o h a v e b e e n r e a c h e d . S e c o n d l y , w e p l a c e d a n a s s e r t ( 0 ) s t a t e m e n t i n p l a c e o f t h e u n r e a c h e d s t a t e . S i n c e t h e s t a t e w a s n o t l i s t e d a s u n r e a c h e d , i t m u s t h a v e b e e n r e a c h e d , b u t t h e n t h e a s s e r t ( 0 ) w o u l d b e e x e c u t e d , c a u s i n g a n a s s e r t i o n v i o l a t i o n . N o a s s e r t i o n v i o l a t i o n s w e r e e n c o u n t e r e d . T h e c o n c l u s i o n i s t h e o m i t t e d s t a t e i s u n r e a c h e d b u t S P I N f a i l e d t o r e p o r t i t . 9 . 8 . 2 C h a l l e n g e s A s m e n t i o n e d i n S e c t i o n 9 . 7 . 4 , S P I N o c c a s i o n a l l y i g n o r e s p r i n t f a s b e i n g u n r e a c h e d i n a s t a t e a n a l y s i s . W h i l e i t i s t r u e t h a t p r i n t f h a s n o s i d e - e f f e c t , a n d i t s o u t p u t i s n o t r e q u i r e d , o r e v e n d e s i r e d d u r i n g s t a t e a n a l y s i s , t h e a n a l y z e r ( p a n ) s h o u l d a t l e a s t r e p o r t w h e t h e r t h e s t a t e m e n t w a s v i s i t e d o r n o t . T h i s c a u s e d u s d i f fi c u l t i e s b e c a u s e p r i n t f i s t h e fi r s t s t a t e m e n t i n a H y d r a g e n e r a t e d P r o m e l a s t a t e . F a i l u r e t o r e p o r t i t a s u n r e a c h e d m a d e t h e i n i t i a l a n a l y s i s o f t h e S m a r t C r u i s e m o d e l d i f fi c u l t . 9 . 8 . 3 L a c k o f F a i r n e s s A n o t h e r p r o b l e m c o n c e r n s f a i r n e s s . I n c o n c u r r e n t s y s t e m s , f a i r n e s s i s d e fi n e d a s t h e p r o p - e r t y o f a l l o w i n g e a c h p r o c e s s s o m e t i m e t o r u n . N o p r o c e s s i s c o m p l e t e l y s t 0 p p e d , o r s t a r v e d . A n e a r l y a t t e m p t t o i m p l e m e n t t h e “ b r a k e s ” m e s s a g e u s e d a n e x t r a c o n c u r r e n t s t a t e i n c l a s s R a d a r a s s h o w n i n F i g u r e 9 . 3 5 . T h e c o n c u r r e n t c o m p o n e n t c o n t a i n s a s i n g l e s t a t e w h o s e s o l e r e s p o n s i b i l i t y i s t o l i s t e n f o r t h e “ b r a k e s ” m e s s a g e a n d s e t a b o o l e a n v a r i a b l e t r u e . I n t h e m a i n p a r t o f t h e R a d a r c l a s s ( R M A I N ) , t h e v a l u e o f t h e v a r i a b l e i s c h e c k e d , a n d w h e n 2 4 0 s e t , c a u s e s a “ b r a k e s ” m e s s a g e t o b e s e n t t o c l a s s C o n t r o l . V e r i fi c a t i o n o f t h e b e h a v i o r o f t h e “ b r a k e s ” m e s s a g e w a s p e r f o r m e d n o n d e t e r m i n i s t i c a l l y w i t h n e v e r c l a i m s a s d e s c r i b e d e a r l i e r , b u t t h e n e v e r c l a i m a n a l y s i s c o n t i n u a l l y f a i l e d . ' I f a c e o u t p u t s h o w e d t h a t t h e c o n c u r r e n t s t a t e “ r - b r a k e s ” i n R B C H K w a s r e c e i v i n g t h e “ b r a k e s ” m e s s a g e b u t s t o p p i n g b e f o r e s e t t i n g t h e v a r i a b l e t r u e . I n o t h e r p a r t s o f t h e m o d e l , t h e c o n t r o l l o o p c o n t i n u e d t o e x e c u t e , a n d t h e r e f o r e , t h e “ b r a k e s ” m e s s a g e w a s n e v e r c o m m u - n i c a t e d . E v e n t h o u g h t h e i n t e n d e d s e m a n t i c s i s t o c o m p l e t e e a c h t r a n s i t i o n b e f o r e e n a b l i n g a n o t h e r , t h e t r a n s i t i o n i n R B C H K w o u l d n o t c o m p l e t e . W h e n s e v e r a l p r o c e s s e s w e r e r e a d y t o e x e c u t e , t h e a n a l y z e r a l w a y s c h o s e t h e w o r s t c a s e . C l e a r l y , t h i s i s a f a i r n e s s i s s u e . R A D A R V 3 T q f R M A I N a c k c o n t r o l " o o n t r o l . d i s t ( x ) l r ‘ l : l . _ _ . _ _ J [ ~ t m o d e a K M ] [ t m o d e I : l " c o m m L [ t m o d e & x > 4 0 0 ] “ e o n n o l l o s t I 3 L t a r g e t r [ a n o d e & x < = 4 0 0 1 J ‘ A c o n t r o l . c l i s w t ) i l l [ ~ t m o d e & x > 4 0 0 ] c a r v ( v c ) L a c k I v : = v c - v t ; X : 3 x - v — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — b r a k e s l b r k s : = l L a F i g u r e 9 . 3 5 : A e a r l i e r v e r s i o n o f t h e d y n a m i c m o d e l f o r c l a s s R a d a r u s i n g c o n c u r r e n t s u b s t a t e s . T h e m o d e l f a i l s d u e t o l a c k o f f a i r n e s s . 2 4 1 S P I N h a s a n o p t i o n t o e n a b l e “ w e a k f a i r n e s s ” i n i t s a n a l y s i s , b u t w h e n e n a b l e d , t h e c o n c u r r e n t p r o c e s s w a s s t i l l s t a r v e d . T o a l l e v i a t e t h e p r o b l e m , q u e u e i n g s e m a n t i c s w e r e a g a i n a l t e r e d a n d t h e m o d e l c h a n g e d t o c o n f o r m t o t h e n e w s e m a n t i c s . T h e o r i g i n a l q u e u e d s e m a n t i c s a l l o w e d a n y q u e u e d m e s s a g e t o c a u s e a t r a n s i t i o n . Q u e u e o r d e r w a s n o t e n f o r c e d . B e c a u s e o f l a c k o f f a i r n e s s , m e s s a g e s c a n r e m a i n i n t h e q u e u e w h i l e o t h e r m e s s a g e s a r e i n s e r t e d a n d r e t r i e v e d . T h e a l t e r e d s e m a n t i c s r e q u i r e s m e s s a g e s t o b e d i s p a t c h e d i n t h e o r d e r t h e y w e r e s e n t ( a F I F O q u e u e ) . T h e a l t e r e d q u e u e s e m a n t i c s r e - q u i r e d a d d i n g m o r e s t a t e s t o t h e m o d e l a n d m o d i f y i n g s e v e r a l t r a n s i t i o n s t o e n s u r e m e s s a g e s w e r e a l w a y s s e n t i n t h e o r d e r t h e y w e r e r e c e i v e d . A l t h o u g h f a i r n e s s c a n n o t a l w a y s b e a s s u m e d , t h e r e s h o u l d b e a m e a n s o f f o r c i n g i t w h e n i t i s r e q u i r e d . S P I N a p p a r e n t l y c o n t a i n s h e u r i s t i c s t h a t a l w a y s a s s u m e a l a c k o f f a i r n e s s . 9 . 8 . 4 N e v e r C l a i m s A s m e n t i o n e d e a r l i e r , n e v e r c l a i m c o n s t r u c t i o n i s a n o t h e r a r e a o f d i f fi c u l t y . T h e o r e t i c a l l y , t h e l a n g u a g e a c c e p t e d b y i n t e r s e c t i o n o f t h e a u t o m a t a p r e s e n t e d b y t h e m o d e l a n d t h e l a n g u a g e r e p r e s e n t e d b y t h e n e v e r c l a i m a u t o m a t a i s f o r m e d . I f p o s i t i v e c l a i m s w e r e a l l o w e d , t h e a n a l y z e r w o u l d h a v e t o v e r i f y t h a t e v e r y e x e c u t i o n s e q u e n c e c o n t a i n e d b o t h l a n g u a g e s . I t i s m u c h e a s i e r t o v e r i f y t h a t t h e i n t e r s e c t i o n i s n u l l . W r i t i n g a n e v e r c l a i m f o r s a f e t y p r o p e r t i e s i s n o t t o o d i f f i c u l t b e c a u s e w h a t m u s t n o t h a p p e n i s s p e c i fi e d , b u t w r i t i n g a n e v e r c l a i m f o r l i v e n e s s , o r p o s i t i v e b e h a v i o r s , c o n t a i n s m a n y p i t f a l l s . T h e p r o c e d u r e r e c o m m e n d e d b y H o l z m a n n [ 1 6 ] i s t o e x p r e s s t h e l i v e n e s s p r o p e r t y , t h e n n e g a t e i t . T h i s i s t h e p r o c e d u r e w e u s e d , b u t e v e n s o , a n e x p l a n a t i o n o f w h a t t h e a n a l y s i s s e e k s t o m a t c h i s s t i l l d i f f i c u l t . S P I N s o m e t i m e s f a i l e d t o i n c l u d e t h e n e v e r c l a i m w h e n a L T L f o r m u l a w a s s p e c i fi e d . A 2 4 2 m i s s i n g n e v e r c l a i m i s n o t d i s c o v e r e d u n t i l t r a c e o u t p u t r e p o r t s b e i n g u n a b l e t o fi n d a n e v e r c l a i m . T o b e s u r e t h e n e v e r c l a i m w a s i n p l a c e , w e g e n e r a t e d t h e n e v e r c l a i m s e p a r a t e l y f r o m t h e m o d e l u s i n g S P I N , a n d m a n u a l l y a p p e n d e d i t t o t h e P r o m e l a g e n e r a t e d b y H y d r a . 2 4 3 C h a p t e r 1 0 C o n c l u s i o n s a n d F u t u r e I n v e s t i g a t i o n s D i a g r a m m a t i c s p e c i fi c a t i o n s a s f o u n d i n U M L a r e g a i n i n g p o p u l a r i t y , p e r h a p s b e c a u s e i t i s e a s i e r t o c o m p r e h e n d g r e a t e r c o m p l e x i t y i n a s h o r t e r a m o u n t o f t i m e . F o r t h e s a m e r e a s o n , t h e t r e n d a w a y f r o m c o m m a n d l i n e c o m p u t e r i n t e r f a c e s t o w a r d s G r a p h i c a l U s e r I n t e r f a c e s ( G U I ) h a s a c c e l e r a t e d . P i c t u r e s s e e m m o r e i n t u i t i v e . S p e c i fi c a t i o n s w r i t t e n a s d i a g r a m s h a v e a p r o b l e m , h o w e v e r . T h e y a r e , a t b e s t , s e m i - f o r m a l . A t t h e s a m e t i m e , i n t e r e s t i n f o r m a l s y s t e m s t h a t c a n b e r i g o r o u s l y v e r i fi e d w i t h a u - t o m a t e d t o o l s h a s i n c r e a s e d . T h i s i s e s p e c i a l l y t r u e f o r e m b e d d e d s y s t e m s , w h i c h a r e 1 0 t o 1 0 0 0 t i m e s m o r e c o m m o n t h a n t h e i r d e s k t o p c o u n t e r p a r t s . O n e m u s t k n o w w i t h a h i g h d e g r e e o f c e r t a i n t y t h a t a n a u t o - p i l o t o r s t e e r - b y — w i r e s y s t e m d o e s n o t h a v e d a r k , h i d d e n c o r n e r s i n i t s b e h a v i o r . T h e t w o t r e n d s s e e m t o b e o r t h o g o n a l . H o w d o e s o n e a t t a i n r i g o r f r o m s e m i - f o r m a l i t y ? W h a t w e h a v e s h o w n i n t h i s r e s e a r c h i s t h a t s e m i - f o r m a l U M L m o d e l s o f e m b e d d e d s y s t e m s c a n b e m a p p e d t o a f o r m a l l a n g u a g e t o g a i n c o n c r e t e s e m a n t i c s . F u r t h e r m o r e , b y c h o o s i n g 2 4 4 t h e t a r g e t l a n g u a g e a p p r 0 p r i a t e l y , a n a l y s i s t o o l s , s u c h a s m o d e l c h e c k e r s c a n b e a p p l i e d t o t h e g r a p h i c a l d e s i g n m o d e l s f o r v e r i fi c a t i o n o f i m p o r t a n t p r o p e r t i e s a n d s u b s e q u e n t r e fi n e - m e n t o f t h e s y s t e m . O t h e r r e s e a r c h h a s m a p p e d s e m i - f o r m a l l a n g u a g e s t o f o r m a l l a n g u a g e s t o p r o v i d e s e - m a n t i c s , b u t a q u e s t i o n t h a t a r i s e s i s : h o w c a n o n e b e s u r e t h e m a p p i n g i s c o n s i s t e n t , a n d i n s o m e m e a s u r e , “ c o r r e c t ” ? T h i s r e s e a r c h h a s d e v e l o p e d a m a p p i n g t e c h n i q u e t h a t f o r m a l l y m a p s a m e t a m o d e l o f U M L t o a m e t a m o d e l o f a f o r m a l , t a r g e t l a n g u a g e . T h i s a p p r o a c h i n s u r e s c o n s i s t e n c y a n d p r o v i d e s a m e a n s o f c h e c k i n g e x a c t l y w h a t s e m a n t i c s a r e g e n e r a t e d . T h e m a p p i n g a l s o p r o v i d e s s u f fi c i e n t r i g o r t h a t a u t o m a t e d t o o l s c a n c a r r y o u t t r a n s l a t i o n s f r o m U M L d i a g r a m s t o t a r g e t l a n g u a g e s . T h i s r e s e a r c h h a s d e m o n s t r a t e d m a p p i n g s t o t w o t a r g e t l a n g u a g e s : V H D L a n d P r o m e l a / S P I N . H a v i n g a f o r m a l m a p p i n g b e t w e e n m e t a m o d e l s p r o v i d e s e x t r a fl e x i b i l i t y t o t h e e x p e r t d e s i g n e r . N o w t h e s e m a n t i c s a t t a c h e d t o a U M L d i a g r a m c a n b e m o d i fi e d b y a l t e r i n g t h e m a p p i n g ( a n d , c o n s e q u e n t l y , t h e u n d e r l y i n g t r a n s l a t i o n t o o l ) . I n a s e n s e , t h e s e m a n t i c s c a n b e t a i l o r e d t o t h e a p p l i c a t i o n . W e h a v e d e m o n s t r a t e d t h e d e s i g n m e t h o d o l o g y a n d m a p p i n g t e c h n i q u e s a r e v i a b l e f o r i n d u s t r i a l a p p l i c a t i o n s t h r o u g h a c a s e s t u d y o f a d e s i g n o f a s m a r t a u t o m o t i v e c r u i s e c o n t r o l . T h e c a s e s t u d y d e m o n s t r a t e s h o w s i m u l a t i o n a n d m o d e l c h e c k i n g c a n b e u s e d i n c o n c e r t , a n d d e m o n s t r a t e s h o w U M L s e m a n t i c s c a n b e m o d i fi e d t o fi t t h e a p p l i c a t i o n . 1 0 . 1 S u m m a r y o f C o n t r i b u t i o n s T h e r e w e r e t h r e e m a j o r o b j e c t i v e s f o r t h i s r e s e a r c h : 1 . T o e n a b l e t h e u s e o f i n t u i t i v e , g r a p h i c a l n o t a t i o n s f o r t h e d e s i g n o f e m b e d d e d s y s t e m s w h i l e p r o v i d i n g a m e a n s o f p r e c i s e l y s p e c i f y i n g t h e s e m a n t i c s o f t h e w r i t t e n d i a g r a m s . 2 4 5 2 . T o d e v e l o p a g e n e r a l f r a m e w o r k f o r c r e a t i n g m a p p i n g s f r o m d i a g r a m c o m p o n e n t s t o e l e m e n t s o f t h e t a r g e t f o r m a l s p e c i fi c a t i o n l a n g u a g e . T h e g e n e r a l f r a m e w o r k m u s t p r o v i d e t h e r i g o r t o e n s u r e c o n s i s t e n c y b e t w e e n t h e d i a g r a m s a n d f o r m a l s p e c i fi c a t i o n . I n a d d i t i o n , t h e g e n e r a l f r a m e w o r k m u s t e n a b l e u s t o m o d i f y t h e s e m a n t i c s o f t h e d i a g r a m . 3 . T o e n a b l e a n d e x e r c i s e c o m p l e m e n t a r y a n a l y s i s t e c h n i q u e s f o r t h e s e m i - f o r m a l d i a - g r a m v i a t h e i r f o r m a l s p e c i fi c a t i o n s . S p e c i fi c a l l y , w e w a n t e d t o i n v e s t i g a t e h o w m o d e l c h e c k i n g a n d s i m u l a t i o n c a n b e u s e d i n d e p e n d e n t l y a n d i n a n i n t e g r a t e d f a s h i o n t o a n a l y z e t h e s p e c i fi c a t i o n s . A n o v e r a r c h i n g o b j e c t i v e o f t h i s r e s e a r c h w a s t o e n a b l e p r a c t i t i o n e r s i n i n d u s t r y t o u s e f o r m a l t e c h n i q u e s w h i l e n o t s u r r e n d e r i n g s e m i - f o r m a l , m o r e i n t u i t i v e , m e t h o d s . F o r t h i s r e a s o n , w e c h o s e U M L a s t h e g r a p h i c a l d e s i g n l a n g u a g e s i n c e i t h a s b e c o m e t h e d e f a c t o s t a n d a r d , a n d c h o s e V H D L a n d P r o m e l a a s t w o f o r m a l i z a t i o n l a n g u a g e s . E a c h p r o v i d e s d i fi e r e n t s e m a n t i c s t o U M L , a n d e a c h c a n i t s e l f p r o v i d e v a r y i n g s e m a n t i c s . I n o r d e r f o r a p r a c t i t i o n e r t o b e a b l e t o t r a n s l a t e d i a g r a m s a c c u r a t e l y a c c o r d i n g t o t h e m a p p i n g r u l e s , a n a u t o m a t e d t o o l i s r e q u i r e d . W e c a l l t h e t o o l H y d r a . T h e s t r u c t u r e o f H y d r a i s s u c h t h a t o n l y s e l e c t e d c o m p o n e n t s c o r r e s p o n d i n g t o t h e m a p p i n g r u l e s n e e d t o b e r e p l a c e d t o m a p t o a n e w t a r g e t l a n g u a g e . I n s u m m a r y , t h i s d i s s e r t a t i o n m a k e s s e v e r a l c o n t r i b u t i o n s : 0 O v e r a l l F r a m e w o r k f o r P r o v i d i n g S e m a n t i c s A n o v e r a r c h i n g f r a m e w o r k b a s e d o n m a p p i n g s b e t w e e n m e t a m o d e l s h a s b e e n d e v e l - o p e d , a p p l i e d , a n d d e m o n s t r a t e d . W e h a v e s h o w n t h a t t h e s e m a n t i c s c a n b e c h e c k e d f o r c o n s i s t e n c y a n d c a n b e m o d i fi e d a s r e q u i r e d . 2 4 6 o U n i fi e d C l a s s / D y n a m i c M o d e l I n o r d e r t o m a k e t h e m a p p i n g m o r e s t r a i g h t f o r w a r d , t h e U M L c l a s s a n d d y n a m i c m e t a m o d e l s h a v e b e e n m e r g e d i n t o a s i n g l e m e t a m o d e l . O t h e r a p p r o a c h e s o f t e n i g n o r e t h e c l a s s - b a s e d n a t u r e o f o b j e c t - o r i e n t e d s y s t e m s a n d f o c u s o n t h e s t a t e m o d e l . C l a s s i n f o r m a t i o n i s c e n t r a l t o o u r a p p r o a c h . 0 M a p p i n g t o V H D L W e p r o v i d e d a d e t a i l e d f o r m a l i z a t i o n o f U M L i n t e r m s o f V H D L . V H D L w a s c h o s e n b e c a u s e i t i s a l r e a d y u s e d b y a l a r g e n u m b e r o f e m b e d d e d s y s t e m s p r a c t i t i o n e r s a n d i t i s c l o s e l y r e l a t e d t o t h e h a r d w a r e u s e d i n e m b e d d e d s y s t e m s . I n a d d i t i o n , a l a r g e n u m b e r o f c o m m e r c i a l t o o l s , t o o l e n v i r o n m e n t s , l i b r a r i e s , a n d s i m u l a t o r s a r e a v a i l a b l e t o s u p p o r t V H D L . F i n a l l y , V H D L i s o n e o f t h e f e w f o r m a l l a n g u a g e s t h a t c o n t a i n s t i m i n g c o n s t r a i n t s . 0 M a p p i n g t o P r o m e l a W e p r o v i d e d a m a p p i n g t o P r o m e l a s o t h a t U M L m o d e l c a n b e e i t h e r s i m u l a t e d o r a n a l y z e d w i t h t h e S P I N m o d e l c h e c k e r . O u t p u t f r o m S P I N a n a l y s i s i s u s e f u l f o r e i t h e r v e r i f y i n g t h e b e h a v i o r o f t h e s y s t e m , o r t o m a k e r e fi n e m e n t s t o t h e s y s t e m , a l l w i t h o u t w r i t i n g p r o g r a m m i n g c o d e . 0 U s e o f I n d u s t r i a l l y A v a i l a b l e L a n g u a g e s A s m e n t i o n e d e a r l i e r , a n o v e r a r c h i n g g o a l o f t h i s r e s e a r c h i s t e c h n o l o g y t r a n s f e r t o t h e p r a c t i t i o n e r . B y p i c k i n g s o u r c e i n f o r m a l a n d t a r g e t f o r m a l l a n g u a g e s w e l l - k n o w n i n t h e i n d u s t r i a l c o m m u n i t y , a n d i l l u s t r a t i n g t h e m o d e l i n g a n a l y s i s o f a n i n d u s t r i a l a p p l i c a t i o n , w e h a v e m a d e s i g n i fi c a n t p r o g r e s s t o w a r d s t h i s g o a l . 0 A D e v e l o p m e n t M e t h o d o l o g y B a s e d o n O u r F r a m e w o r k 2 4 7 C h a p t e r 4 d e s c r i b e s a d e s i g n m e t h o d o l o g y i n t e g r a t i n g U M L a n d o u r f r a m e w o r k f o r f o r m a l s e m a n t i c s . G i v e n t h e p r o p e r f o r m a l t a r g e t f o r m a l l a n g u a g e , t h e m e t h o d o l o g y l e a d s t o b e h a v i o r a l v e r i fi c a t i o n e a r l i e r i n t h e d e s i g n p r o c e s s . A r m e d e a r l y w i t h i n f o r m a t i o n a b o u t t h e s y s t e m b e h a v i o r , t h e d e s i g n e r c a n r e fi n e t o d e s i g n c h e a p e r a n d f a s t e r t h a n i f r e fi n e m e n t s a r e l e f t t o a l a t e r s t a g e . I n a d d i t i o n , t h e o p t i o n i s a v a i l a b l e t h r o u g h o u r h o m o m o r p h i c f r a m e w o r k t o a l t e r t h e s e m a n t i c s t o d y n a m i c m o d e l s d u r i n g d e s i g n . W e d e m o n s t r a t e d t h i s w i t h a n a l t e r a t i o n o f t h e s e m a n t i c s o f o b j e c t m e s s a g e p a s s i n g i n t h e i n d u s t r i a l c a s e s t u d y . 1 0 . 2 F u t u r e R e s e a r c h S e v e r a l a r e a s o f r e s e a r c h c a n b e e x p l o r e d b a s e d o n t h e r e s u l t s t h a t w e h a v e o b t a i n e d t h i s f a r . S e v e r a l c o m p l e m e n t a r y i n v e s t i g a t i o n s c a n b e d i r e c t l y p u r s u e d . F i r s t , U M L f o r m a l i z a - t i o n c a n b e e x p a n d e d t o o t h e r l a n g u a g e s . I n p a r t i c u l a r , t h e l a n g u a g e u s e d f o r t h e S M V m o d e l c h e c k e r s e e m s t o b e a g o o d c a n d i d a t e . I n m a n y r e s p e c t s , S M V o f f e r s b e t t e r ( a l - t h o u g h d i f f e r e n t ) m o d e l c h e c k i n g c a p a b i l i t i e s t h a n S P I N . T h i s w o u l d b e a n i n t e r e s t i n g t e s t i n a n o t h e r w a y : S M V p r o v i d e s n o s i m u l a t i o n . T h e s p e c i fi c a t i o n l a n g u a g e f o r t h e m o d e l i s s t r i c t l y f o r m o d e l c h e c k i n g . B o t h V H D L a n d P r o m e l a a r e “ e x e c u t a b l e ” i n t h e s e n s e o f a p r o g r a m . S M V i s n o t . S P I N u s e s L T L t e m p o r a l l o g i c , w h i l e S M V u s e s C T L t e m p o r a l l o g i c ( e a c h w a s e x p l a i n e d i n S e c t i o n 2 . 4 . 1 ) . W o r k o n t h e m a p p i n g t o P r o m e l a r e v e a l e d t h a t t h e r e a r e s e v e r a l c h o i c e s o f s e m a n t i c s f o r d y n a m i c m o d e l s . I n t h e a b s e n c e o f f a i r n e s s i n S P I N ’ s a n a l y z e r ( d i s c u s s e d i n S e c t i o n 9 . 8 . 3 ) , e x a m i n i n g a l t e r n a t e s e m a n t i c i n t e r p r e t a t i o n s f o r t r a n s i t i o n s a n d m e s s a g e p a s s i n g w o u l d b e i l l u m i n a t i n g . I t w o u l d a l s o b e i n t e r e s t i n g t o c o m p a r e t h e s e m a n t i c s a v a i l a b l e i n P r o m e l a w i t h t h o s e a v a i l a b l e b y u s i n g a n o t h e r m o d e l c h e c k i n g l a n g u a g e s , s u c h a s S M V . O n e r e a s o n f o r t h i s i s t h a t S M V h a s f a i r n e s s a l r e a d y b u i l t 2 4 8 i n . A n o t h e r r e a s o n i s t h a t S P I N u s e s t h e l o g i c L T L , w h i l e S M V u s e s t h e l o g i c C T L . S i n c e t h e l o g i c s a r e i n c o m p a r a b l e i n e x p r e s s i v e p o w e r [ 3 0 ] , v a r i o u s b e h a v i o r s n o t e x p r e s s i b l e i n L T L c o u l d b e e x p l o r e d i n C T L . T h e G U I c a p a b i l i t i e s o f H y d r a c o u l d b e i m p r o v e d s o t h a t a U M L c l a s s a n d d y n a m i c d i a g r a m c a n d i r e c t l y g e n e r a t e t h e t a r g e t l a n g u a g e , a n d t h u s f o r m a l s p e c i fi c a t i o n s . T h i s s h o u l d l a r g e l y b e a m a t t e r o f p u t t i n g t h e p r o p e r G U I d r a w i n g i n t e r f a c e i n f r o n t o f t h e H y d r a t r a n s l a t o r . T h i s h a s a l r e a d y b e e n e x p l o r e d t o a c e r t a i n e x t e n t i n a r e l a t e d p r o j e c t i n v o l v i n g H o n e y w e l l ’ s D O M E e d i t o r s [ 6 8 ] . O n c e t h i s i s d o n e , t h e o b v i o u s n e x t s t e p i s t o u s e t r a c e o u t p u t f r o m s i m u l a t i o n s o r m o d e l c h e c k i n g t o g r a p h i c a l l y h i g h l i g h t v i s i t e d s t a t e s , s t a t e c y c l e s , d e a d l o c k , a n d o t h e r p r o p e r t i e s , s o t h a t t h e m o d e l ’ s e x e c u t i o n c a n b e v i s u a l i z e d . P e r h a p s m o r e u s e f u l w o u l d b e t h e a b i l i t y t o v i s u a l i z e t h e r e s u l t s o f m o d e l c h e c k i n g t o d i r e c t t h e m o d i fi c a t i o n o f t h e U M L m o d e l . T h e s e s t e p s w o u l d r e q u i r e m o d i fi c a t i o n s t o t h e H y d r a t r a n s l a t o r , a n d a s y s t e m o n t h e b a c k e n d o f t h e f o r m a l l a n g u a g e a n a l y s i s t o o l s t o c a p t u r e a n d u s e t h e a n a l y s i s o u t p u t . T h e p r o c e s s o f g e n e r a t i n g V H D L a n d e s p e c i a l l y P r o m e l a i s n o t v e r y d i f f e r e n t f r o m g e n e r a t i n g a p r o g r a m i n a l a n g u a g e l i k e J a v a o r C + + . I f a n a l t e r n a t e m a p p i n g f o r a c o m m o n p r o d u c t i o n p r o g r a m m i n g l a n g u a g e c o u l d b e c o n s t r u c t e d s o t h a t t h e s e m a n t i c s m a t c h e d t h e m a p p i n g t o t h e f o r m a l t a r g e t l a n g u a g e u s e d f o r d e v e l o p m e n t a n d a n a l y s i s , t h e e n t i r e s y s t e m w o u l d c o n s i s t o f a g r a p h i c a l e d i t o r w h o s e d i a g r a m s c o u l d b e r u n d i r e c t l y i n s i m u l a t i o n , a n a l y z e d i n a m o d e l c h e c k e r , a n d fi n a l l y , t h e h y p o t h e t i c a l s y s t e m c o u l d g e n e r a t e p r o d u c t i o n c o d e f r o m t h e fi n a l d i a g r a m s . T h e k e y t o s u c c e s s f o r t h i s s y s t e m w o u l d b e a c a r e f u l m a t c h i n g o f t h e s e m a n t i c s o b t a i n e d f o r s i m u l a t i o n a n d a n a l y s i s w i t h t h e s e m a n t i c s o b t a i n e d i n t h e fi n a l p r o g r a m . T h i s s t e p i s e s s e n t i a l t o e n s u r e t h e r e s u l t s o f t h e a n a l y s i s a r e v a l i d . W e m u s t p o i n t o u t , h o w e v e r , t h a t s e m a n t i c s m a t c h i n g i s a l r e a d y a p r o b l e m i n 2 4 9 c o n v e n t i o n a l d e s i g n a n d a n a l y s i s . H o w d o e s t h e a n a l y s t k n o w t h a t t h e P r o m e l a m o d e l s h e h a s h a n d - c o d e d a n d v e r i fi e d m a t c h e s t h e C - c o d e d p r o g r a m c o n s t r u c t e d f r o m t h e s a m e s p e c i fi c a t i o n s ? F i n a l l y , w e h a v e b e e n a b l e t o f o r m a u n i fi e d c l a s s / d y n a m i c m e t a m o d e l f o r a s i n g l e h o m o m o r p h i c m a p p i n g t o a t a r g e t l a n g u a g e . T h e r e s h o u l d b e n o r e a s o n t o n o t i n c l u d e o t h e r U M L d i a g r a m s i n t h e u n i fi e d m e t a m o d e l . I n p a r t i c u l a r , u s e c a s e a n d / o r s e q u e n c e d i a g r a m s w o u l d p r o v i d e u s e f u l v e r i fi c a t i o n i n f o r m a t i o n . I f d e t a i l e d s e q u e n c e d i a g r a m s w e r e a l s o p a r t o f t h e m a p p i n g , t h e r e s u l t i n g s p e c i fi c a t i o n w o u l d b e c o n s t r a i n e d b y t h e s e q u e n c e d i a g r a m i n f o r m a t i o n s o t h a t a n a l y s i s w o u l d b e g r e a t l y e n h a n c e d . I n e f f e c t , t e s t c a s e s t o v e r i f y b e h a v i o r w o u l d b e a s s e m b l e d w i t h t h e c l a s s a n d d y n a m i c m o d e l . A l l t h a t w o u l d r e m a i n w o u l d b e t o f o r m u l a t e a p p r o p r i a t e t e m p o r a l l o g i c e x p r e s s i o n s f o r t h e a s s e m b l e d s y s t e m . 2 5 0 B i b l i o g r a p h y [ 1 ] B r u c e P o w e l l D o u g l a s s . R e a l — T i m e U M L . A d d i s o n — W e s l e y , 1 9 9 8 . [ 2 ] D a n i e l D . G a j s k i , F r a n k V a h i d , S a n j i v N a r a y a n , a n d J i e G o n g . S p e c i fi c a t i o n a n d D e s i g n o f E m b e d d e d S y s t e m s , c h a p t e r 1 . P T R P r e n t i c e H a l l , 1 9 9 4 . [ 3 ] J a m e s R u m b a u g h , M i c h a e l B l a h a , W i l l i a m P r e m e r l a n i , F r e d e r i c k E d d y , a n d W i l l i a m L o r e s e n s e n . O b j e c t O r i e n t e d M o d e l i n g a n d D e s i g n . P r e n t i c e H a l l , 1 9 9 1 . [ 4 ] G r a d y B o o c h . O b j e c t - O r i e n t e d A n a l y s i s a n d D e s i g n W i t h A p p l i c a t i o n s . A d d i s o n — W e s l e y , 1 9 9 4 . [ 5 ] B r a n S e l i c , G a r t h G u l l e k s o n , a n d P a u l T W a r d . R e a l - T i m e O b j e c t O r i e n t e d M o d e l i n g . J o h n W i l e y & S o n s , 1 9 9 4 . [ 6 ] R a t i o n a l S o f t w a r e C o r p o r a t i o n , S a n t a C l a r a , C A 9 5 0 5 1 - 0 9 5 1 . U M L N o t a t i o n G u i d e , 1 . 0 e d i t i o n , J a n u a r y 1 9 9 7 . [ 7 ] J a m e s R u m b a u g h , I v a r J a c o b s o n , a n d G r a d y B o o c h . T h e U n i fi e d M o d e l i n g L a n g u a g e R e f e r e n c e M a n u a l . A d d i s i o n - W e s l e y , 1 9 9 9 . [ 8 ] G r a d y B o o c h , J a m e s R u m b a u g h , a n d I v a r J a c o b s o n . T h e U n i fi e d M o d e l i n g L a n g u a g e U s e r G u i d e . A d d i s i o n — W e s l e y , 1 9 9 9 . [ 9 ] J e a n n e t t e M . W i n g . A S p e c i fi e r ’ s I n t r o d u c t i o n t o F o r m a l M e t h o d s . I E E E C o m p u t e r , 2 3 ( 9 ) : 8 — — 2 2 , s e p 1 9 9 0 . [ 1 0 ] I v a r J a c o b s o n . I s t h e O b j e c t T e c h n o l o g y S o f t w a r e ’ s I n d u s t r i a l P l a t f o r m ? I E E E S o f t - w a r e , 1 0 ( 1 ) : 2 4 — 4 2 , 1 9 9 3 . [ 1 1 ] P e t e r J A s h e n d e n . T h e D e s i g n e r ’ s G u i d e t o V H D L . M o r g a n K a u f m a n n P u b l i s h e r s , I n c . , 1 9 9 6 . [ 1 2 ] Z . N a v a b i . V H D L : A n a l y s i s a n d M o d e l i n g o f D i g i t a l S y s t e m s . M c G r a w - H i l l , I n c . , N e w Y o r k , 1 9 9 3 . [ 1 3 ] D . P e r r y . V H D L . M c G r a w - H i l l , N e w Y o r k , 1 9 9 1 . [ 1 4 ] I E E E . I E E E S t a n d a r d V H D L L a n g u a g e R e f e r e n c e M a n u a l , J u n e 1 9 9 4 . A N S I / I E E E S t d 1 0 7 6 - 1 9 9 3 . [ 1 5 ] G e r a l d J . H o l z m a n n . T h e M o d e l C h e c k e r S P I N . I E E E T r a n s a c t i o n s o n S o f t w a r e E n g i n e e r i n g , 2 3 ( 5 ) , m a y 1 9 9 7 . 2 5 1 [ 1 6 ] [ 1 7 ] [ 1 8 ] [ 1 9 ] [ 2 0 ] [ 2 1 ] [ 2 2 ] [ 2 3 ] [ 2 4 ] [ 2 5 ] [ 2 5 ] [ 2 7 ] [ 2 8 ] [ 2 9 ] G e r a l d J . H o l z m a n n . D e s i g n a n d V a l i d a t i o n o f C o m p u t e r P r o t o c o l s . P r e n t i c e - H a l l , 1 9 9 1 . E n o c h Y . W a n g a n d B e t t y H . C . C h e n g . A R i g o r o u s O b j e c t - O r i e n t e d D e s i g n P r o c e s s . P r o c . o f I n t e r n a t i o n a l C o n f e r e n c e o n S o f t w a r e P r o c e s s , N a p e r v i l l e , I L , 1 9 9 8 . R o b e r t H . B o u r d e a u a n d B e t t y H . C . C h e n g . A f o r m a l s e m a n t i c s o f o b j e c t m o d e l s . I E E E T r a n s . o n S o f t w a r e E n g i n e e r i n g , 2 1 ( 1 0 ) : 7 9 9 — 8 2 1 , O c t o b e r 1 9 9 5 . E n o c h Y . W a n g , H e a t h e r A . R i c h t e r , a n d B e t t y H . C . C h e n g . F o r m a l i z i n g a n d i n t e - g r a t i n g t h e d y n a m i c m o d e l w i t h i n O M T . I n P r o c . o f I E E E I n t e r n a t i o n a l C o n f e r e n c e o n S o f t w a r e E n g i n e e r i n g ( I C S E Q 7 ) , B o s t o n , M A , M a y 1 9 9 7 . E n o c h Y . W a n g a n d B e t t y H . C . C h e n g . F o r m a l i z i n g a n d i n t e g r a t i n g t h e f u n c t i o n a l m o d e l i n t o o b j e c t - o r i e n t e d d e s i g n . I n P r o c . o f I n t e r n a t i o n a l C o n f e r e n c e o n S o f t w a r e E n g i n e e r i n g a n d K n o w l e d g e E n g i n e e r i n g , J u n e 1 9 9 8 . N o m i n a t e d f o r B e s t P a p e r . J - M . B r u e l a n d R . B . F r a n c e . T r a n s f o r m i n g U M L m o d e l s t o f o r m a l s p e c i fi c a t i o n s . I n U M L ’ 9 8 - B e y o n d t h e n o t a t i o n , L N C S . S p r i n g e r , 1 9 9 8 . M a l c o l m S h r o f f a n d R o b e r t B fi a n c e . T o w a r d s a F o r m a l i z a t i o n o f U M L C l a s s S t r u c — t u r e s i n Z . I n P r o c e e d i n g s T w e n t y - F i r s t A n n u a l I n t e r n a t i o n a l C o m p u t e r S o f t w a r e a n d A p p l i c a t i o n s C o n f e r e n c e ( C O M P S A C ’ 9 7 ) , p a g e s 6 4 6 — 6 5 1 . I E E E C o m p u t . S o c , L o s A l a m i t o s , C A , U S A , a u g 1 9 9 7 . A . S . E v a n s , R . B . F r a n c e , K . C . L a n o , a n d B . R u m p e . T h e U M L a s a f o r m a l m o d e l l i n g n o t a t i o n . I n U M L ’ 9 8 - B e y o n d t h e n o t a t i o n , L N C S . S p r i n g e r , 1 9 9 8 . R a t i o n a l S o f t w a r e , M i c r o s o f t , H e w l e t t P a c k a r d , O r a c l e , S t e r l i n g S o f t w a r e , M C I S y s - t e m h o u s e , U n i s y s , I C O N C o m p u t i n g , I n t e l l i C o r p , i - L o g i x , I B M , O b j e c T i m e , P l a t i n u m T e c h n o l o g y , P T e c h T a s k o n , R e i c h T e c h n o l o g i e s , S o f t e m . U M L S e m a n t i c s , a d / 9 7 - 0 8 - 0 4 e d i t i o n , S e p t e m b e r 1 9 9 7 . a v a i l a b l e o n h t t p : / / w w w . r a t i o n a l . c o m . D . H a r e l . S t a t e C h a r t s : A V i s u a l F o r m a l i s m f o r C o m p l e x S y s t e m s . S c i e n c e o f C o m p u t e r P r o g r a m m i n g , 8 , 1 9 8 7 . R a t i o n a l S o f t w a r e , M i c r o s o f t , H e w l e t t P a c k a r d , O r a c l e , S t e r l i n g S o f t w a r e , M C I S y s - t e m h o u s e , U n i s y s , I C O N C o m p u t i n g , I n t e l l i C o r p , i - L o g i x , I B M , O b j e c T i m e , P l a t i n u m T e c h n o l o g y , P T e c h T a s k o n , R e i c h T e c h n o l o g i e s , S o f t e m . U M L S e m a n t i c s , a d / 9 7 - 0 8 - 0 4 e d i t i o n , S e p t e m b e r 1 9 9 7 . s e c t i o n 2 , p a g e 6 — 9 , a v a i l a b l e o n h t t p : / / w w w . r a t i o n a l . c o m . C . A . R . H o a r e . C o m m u n i c a t i n g s e q u e n t i a l p r o c e s s e s . C o m m u n i c a t i o n s o f t h e A C M , ( 8 ) 2 6 6 6 — 6 7 7 , A u g u s t 1 9 7 8 . T . B o l o g n e s i a n d E . B r i n k s m a . I n t r o d u c t i o n t o t h e I S O s p e c i fi c a t i o n l a n g u a g e L 0 - T O S . I n P . H . J . V . E i j k , C . A . V i s s e r s , a n d M . D i a z , e d i t o r s , T h e F o r m a l D e s c r i p t i o n T e c h n i q u e L O T O S , p a g e s 2 3 — 7 3 . N o r t h - H o l l a n d , 1 9 8 9 . E . W . D i j k s t r a . G u a r d e d c o m m a n d s , n o n - d e t e r m i n a c y a n d f o r m a l d e r i v a t i o n o f p r o - g r a m s . c a c m , 1 8 ( 8 ) : 4 5 3 — 4 5 7 , 1 9 7 5 . [ 3 0 ] E . A l l e n E m e r s o n a n d J o s e p h Y . H a l p e r n . “ S o m e t i m e s ” a n d “ N o t N e v e r ” R e v i s i t e d : O n B r a n c h i n g v e r s u s L i n e a r T i m e T e m p o r a l L o g i c . J o u r n a l o f t h e A C M , 3 3 ( 1 ) : 1 5 1 — 1 7 8 , J a n u a r y 1 9 8 6 . 2 5 2 [ 3 1 ] T o m m a s o B o l o g n e s i a n d E d B r i n k s m a . I n t r o d u c t i o n t o t h e I S O s p e c i fi c a t i o n l a n g u a g e L O T O S . C o m p u t e r N e t w o r k s a n d I S D N S y s t e m s , 1 4 ( 1 ) : 2 5 — 5 9 , 1 9 8 7 . [ 3 2 ] M a r t i n D . F r a s e r , K u l d e r p K u m a r , a n d V i j a y K . V a i s h n a v i . S t r a t e g i e s f o r i n c o r p o r a t i n g f o r m a l s p e c i fi c a t i o n s . C o m m u n i c a t i o n s o f t h e A C M , ( 1 0 ) : 7 4 — 8 6 , O c t o b e r 1 9 9 4 . [ 3 3 ] E n o c h Y . W a n g a n d B e t t y H . C . C h e n g . A r i g o r o u s o b j e c t - o r i e n t e d d e s i g n p r o c e s s . I n P r o c . o f I n t e r n a t i o n a l C o n f e r e n c e o n S o f t w a r e P r o c e s s , N a p e r v i l l e , I l l i n o s , J u n e 1 9 9 8 . [ 3 4 ] D a v i d G r i e s a n d F r e d B . S c h n e i d e r . A L o g i c a l A p p r o a c h t o D i s c r e t e M a t h . S p r i n g e r - V e r l a g , 1 9 9 4 . [ 3 5 ] Y i l e E n o c h W a n g . I n t e g r a t i n g I n f o r m a l a n d F o r m a l A p p r o a c h e s t o O b j e c t — O r i e n t e d A n a l y s i s a n d D e s i g n . P h D t h e s i s , M i c h i g a n S t a t e U n i v e r s i t y , m a r 1 9 9 8 . [ 3 6 ] B r u c e P o w e l l D o u g l a s s . R e a l — T i m e U M L , c h a p t e r 2 . A d d i s o n — W e s l e y , 1 9 9 8 . [ 3 7 ] J o h n R . E l l i s . O b j e c t i f y i n g R e a l - T i m e S y s t e m s . S I G S b o o k s , N e w Y o r k , 1 9 9 4 . [ 3 8 ] P a u l T W a r d a n d S t e p h e n J M e l l o r . S t r u c t u r e d D e v e l o p m e n t f o r R e a l - t i m e S y s t e m s , v o l u m e 2 . Y o u r d o n P r e s s , 1 9 8 5 . [ 3 9 ] D e r e k J H a t l e y a n d I m t i a z A P i r b h a i . S t r a t e g i e s f o r R e a l - t i m e S y s t e m S p e c i fi c a t i o n . D o r s e t H o u s e P u b l i s h i n g , 3 5 3 W e s t 1 2 t h S t r e e t N e w Y o r k , N Y , 1 9 8 7 . [ 4 0 ] P a u l T W a r d a n d S t e p h e n J M e l l o r . S t r u c t u r e d D e v e l o p m e n t f o r R e a l - T i m e S y s t e m s , v o l u m e 2 , c h a p t e r 2 . Y o u r d o n P r e s s , 1 9 8 5 . [ 4 1 ] G r a d y B o o c h , J a m e s R u m b a u g h , a n d I v a r J a c o b s o n . T h e U n i fi e d M o d e l i n g L a n g u a g e U s e r G u i d e , c h a p t e r 2 , p a g e 5 3 . A d d i s i o n — W e s l e y , 1 9 9 9 . [ 4 2 ] T o n y T o r r e . P r i v a t e C o m m u n i c a t i o n , 1 9 9 8 . P r i v a t e c o m m u n c a t i o n o f i n d u s t r i a l m e t h - o d s w h i l e w o r k i n g o n p r o j e c t s f o r E a t o n C o r p . [ 4 3 ] T o m D e m a r c o . S t r u c t u r e d A n a l y s i s a n d S y t e m S p e c i fi c a t i o n . P r e n t i c e - H a l l , E n g l e w o o d C l i f f s , N e w J e r s e y , 1 9 7 8 . [ 4 4 ] G e o r g e A M i l l e r . T h e M a g i c a l N u m b e r S e v e n , P l u s o f M i n u s T w o . T h e P s y c h o l o g i c a l R e v i e w , 6 3 ( 2 ) , m a r 1 9 5 6 . [ 4 5 ] B r u c e P o w e l D o u g l a s s . R e a l - T i m e U M L , c h a p t e r 1 . A d d i s o n — W e s l e y , 1 9 9 8 . [ 4 6 ] R o g e r S . P r e s s m a n . S o f t w a r e E n g i n e e r i n g A P r a c t i t i o n e e r ’ s A p p r o a c h . M c G r a w - H i l l , I n c . , 3 r d e d i t i o n , 1 9 9 2 . [ 4 7 ] W . S . D a v i s . T a o l s a n d T e c h n i q u e s f o r S t r u c t u r e d S y s t e m s A n a l y s i s a n d D e s i g n . A d d i s o n — W e s l e y , 1 9 8 3 . [ 4 8 ] J o h n E . H o p c r a f t a n d J e f f e r y D . U l l m a n . I n t r o d u c t i o n t o A u t o m a t a T h e o r y , a n d L a n - g u a g e s , a n d C o m p u t a t i o n . A d d i s o n - W e s l e y P u b l i s h i n g C o m p a n y , 1 9 7 9 . [ 4 9 ] D a v i d H a r e l a n d A m n o n N a a m a d . T h e S t a t e M a t e S e m a n t i c s o f S t a t e c h a r t s . A C M T r a n s . S o f t . E n g . M e t h o d , 1 9 9 6 . 2 5 3 [ 5 0 ] R a t i o n a l S o f t w a r e , M i c r o s o f t , H e w l e t t P a c k a r d , O r a c l e , S t e r l i n g S o f t w a r e , M C I S y s - t e m h o u s e , U n i s y s , I C O N C o m p u t i n g , I n t e l l i C o r p , i - L o g i x , I B M , O b j e c T i m e , P l a t - i n u m T e c h n o l o g y , P T e c h T a s k o n , R e i c h T e c h n o l o g i e s , S o f t e m . U M L N o t a t i o n G u i d e , a d / 9 7 - 0 8 - 0 4 e d i t i o n , S e p t e m b e r 1 9 9 7 . s e c t i o n 9 . 3 . 3 , p a g e 1 0 7 , a v a i l a b l e o n h t t p : / / w w w . r a t i o n a l . c o m . [ 5 1 ] D a n i e l D . G a j s k i , F r a n k V a h i d , a n d S a n j i v N a r a y a n . S p e c c h a r t s : A V H D L F r o n t - E n d f o r E m b e d d e d S y s t e m s . I E E E T r a n s a c t i o n s o n C o m p u t e r - A i d e d D e s i g n o f I n t e g r a t e d C i r c u i t s a n d S y s t e m s , 1 4 ( 6 ) : 6 9 4 — 7 0 6 , J u n e 1 9 9 5 . [ 5 2 ] J a m e s L . P e t e r s o n . P e t r i N e t T h e o r y a n d t h e M o d e l i n g o f S y s t e m s . P r e n t i c e — H a l l , 1 9 8 1 . [ 5 3 ] A . S . E v a n s a n d A . N . C l a r k . F o u n d a t i o n s o f t h e u n i fi e d m o d e l i n g l a n g u a g e . I n 2 n d N o r t h e r n F o r m a l M e t h o d s W o r k s h o p , I l k l e y , e l e c t r o n i c W o r k s h o p s i n C o m p u t i n g . S p r i n g e r - V e r l a g , 1 9 9 8 . [ 5 4 ] K e v i n C . L a n o . Z + + , a n O b j e c t O r i e n t e d E x t e n s i o n t o Z . I n J o h n E N i c h o l l s , e d i t o r , Z U s e r W o r k s h o p , p a g e s 1 5 1 — 1 7 2 , 1 9 9 1 . [ 5 5 ] R a t i o n a l S o f t w a r e , M i c r o s o f t , H e w l e t t P a c k a r d , O r a c l e , S t e r l i n g S o f t w a r e , M C I S y s t e m h o u s e , U n i s y s , I C O N C o m p u t i n g , I n t e l l i C o r p , i - L o g i x , I B M , O b j e c T i m e , P l a t i n u m T e c h n o l o g y , P T e c h T a s k o n , R e i c h T e c h n o l o g i e s , S o f t e m . O b j e c t C o n - s t r a i n t L a n g u a g e S p e c i fi c a t i o n , a d / 9 7 - 0 8 - 0 8 e d i t i o n , S e p t e m b e r 1 9 9 7 . a v a i l a b l e o n h t t p : / / w w w . r a t i o n a l . c o m . [ 5 6 ] L u i s M a n d e l a n d M a r i a V i c t o r i a C e n g a r l e . O n t h e E x p r e s s i v e P o w e r o f t h e O b j e c t C o n - s t r a i n t L a n g u a g e O C L . T e c h n i c a l r e p o r t , F o r s c h u n g s i n s t i t u t f i i r A n g e w a n d t e S o f t w a r e T e c h n o l o g i e , f e b 1 9 9 9 . [ 5 7 ] E . F . C o d d . A r e l a t i o n a l m o d e l o f d a t a f o r l a r g e s h a r e d d a t a b a n k s . a c m , 1 3 ( 6 ) : 3 7 7 — 3 8 7 , 1 9 7 0 . [ 5 8 ] P . C . K a n e l l a k i s . E l e m e n t s o f r e l a t i o n a l d a t a b a s e t h e o r y . I n J . V a n L e e u w e n , e d i t o r , H a n d b o o k o f T h e o r e t i c a l C o m p u t e r S c i e n c e , V o l u m e B F o r m a l M o d e l s a n d S e m a n t i c s , v o l u m e B , c h a p t e r 1 7 , p a g e s 1 0 7 5 — 1 1 5 6 . T h e M I T P r e s s , 1 9 9 0 . [ 5 9 ] D e r e k C o l e m a n , P a t r i c k A r n o l d , S t e p h a n i e B o d o f f , C h r i s D o l l i n , H e l e n a G i l c h r i s t , F i o n a H a y e s , a n d P a u l J e r e m a e s . O b j e c t - O r i e n t e d D e v e l o p m e n t t h e F U S I O N M e t h o d . P r e n t i c e H a l l , 1 9 9 4 . [ 6 0 ] R u t h M a l a n , R e e d L e t s i n g e r , a n d D e r e k C o l e m a n . O b j e c t - O r i e n t e d D e v e l o p m e n t a t W o r k : F U S I O N i n t h e r e a l w o r l d . P r e n t i c e H a l l , 1 9 9 6 . [ 6 1 ] R u t h M a l a n , R e e d L e t s i n g e r , a n d D e r e k C o l e m a n . O b j e c t - O r i e n t e d D e v e l o p m e n t a t W o r k : F U S I O N i n t h e r e a l w o r l d , c h a p t e r 1 2 , p a g e s 3 4 3 — 3 5 4 . P r e n t i c e H a l l , 1 9 9 6 . [ 6 2 ] R a l f J u n g c l a u s , G u n t e r S a a k e , T h o r s t e n H a r t m a n , a n d C h i r s t i n a S e r n a d a s . T R O L L — A L a n g u a g e f o r O b j e c t - O r i e n t e d S p e c i fi c a t i o n o f I n f o r m a t i o n S y s t e m s . A C M T r a n s a c - t i o n s o n I n f o r m a t i o n S y s t e m s , 1 4 ( 2 ) : 1 7 5 — 2 1 1 , A p r i l 1 9 9 6 . [ 6 3 ] J o h n V . G u t t a g a n d J a m e s J . H o r n i n g . L a r c h : L a n g u a g e s a n d T o o l s f o r F o r m a l S p e c - i fi c a t i o n . S p r i n g e r - V e r l a g , 1 9 9 3 . 2 5 4 [ 6 4 ] D . L a t e l l a , I . M a j z i k , a n d M . M a s s i n k . T o w a r d s a f o r m a l o p e r a t i o n a l s e m a n t i c s o f U M L s t a t e c h a r t d i a g r a m s . I n P r o c . F M O O D S ’ Q Q , I F I P T C 6 / W 0 6 1 T h i r d I n t e r n a t i o n a l C o n f e r e n c e o n F o r m a l M e t h o d s f o r O p e n O b j e c t — B a s e d D i s t r i b u t e d S y s t e m s , F l o r e n c e , I t a l y , F e b r u a r y 1 5 - 1 8 , 1 9 . 9 . 9 . K l u w e r , 1 9 9 9 . [ 6 5 ] S a m u e l P . H a r b i s o n a n d G u y L . S t e e l e J r . ” C ” A R e f e r e n c e M a n u a l . P r e n t i c e - H a l l , 1 9 8 7 . [ 6 6 ] L e s l i e L a m p o r t . L a T e X U s e r ’ s G u i d e a n d R e f e r e n c e M a n u a l . A d d i s o n — W e s l e y P u b - l i s h i n g C o m p a n y , 1 9 9 4 . [ 6 7 ] L e s l i e L a m p o r t . A S i m p l e A p p r o a c h t o S p e c i f y i n g C o n c u r r e n t S y s t e m s . T e c h n i c a l R e p o r t D E C S R C 1 5 , D i g i t a l S y s t e m s R e s e a r c h C e n t e r , D e c e m b e r 1 9 8 6 . [ 6 8 ] H o n e y w e l l C o r p r o r a t i o n . D O M E G u i d e , v e r s i o n 5 . 2 . 1 e d i t i o n , 1 9 9 9 . D O M E i s a v a i l a b l e o n t h e W E B a t w w w . h t c . h o n e y w e l l . c o m / d o m e . [ 6 9 ] J o h n R . L e v i n e , T o n y M a s o n , a n d D o u g B r o w n . l e z 6 3 y a c c . O ’ R e i l y & A s s o c i a t e s , 1 9 9 5 . 2 5 5 A P P E N D I C E S 2 5 6 A p p e n d i x A V H D L f o r F u r n a c e E x a m p l e T h i s a p p e n d i x g i v e s t h e e n t i r e t e x t o f t h e V H D L g e n e r a t e d b y H y d r a w i t h a V H D L L S C L f o r t h e f u r n a c e e x a m p l e f o u n d i n S e c t i o n 5 . 3 . T h i s c o d e e x e c u t e s c o r r e c t l y a s w r i t t e n , b u t s h o w s t h e i n c o r r e c t b e h a v i o r o f t h e s y s t e m t h a t a l l o w s h e a t i n g a n d c o o l i n g t o b e a c t i v e s i m u l t a n e o u s l y . T h i s u s e c a s e i s d e s c r i b e d i n m o r e d e t a i l i n S e c t i o n 5 . 3 . T h e d r i v e r o b j e c t t h a t i n s t a n t i a t e s t h e r e s t o f t h e m o d e l a n d p r o v i d e s e v e n t s t o t h e m o d e l i s f o u n d a t t h e e n d o f t h e V H D L l i s t i n g b e l o w . S i n c e t h e d r i v e r o b j e c t r e f e r e n c e s p a r t s o f t h e r e s t o f t h e m o d e l , V H D L r u l e s r e q u i r e i t t o b e l a s t i n t h e s o u r c e fi l e . 1 - T h i s V H D L w a s g e n e r a t e d b y H Y D R A . T h e c o m m e n t s w e r e i n s e r t e d b y h a n d . 2 u s e s t d . t e x t i o . a 1 1 ; 3 p a c k a g e e e s y i o i s 4 p r o c e d u r e s a y ( c o n s t a n t s t r : i n s t r i n g ) ; 5 e n d p a c k a g e e a s y i o ; 6 7 p a c k a g e b o d y e e s y i o i s 8 p r o c e d u r e s a y ( c o n s t a n t s t r : i n s t r i n g ) i s 9 v a r i a b l e m y l i n e : l i n e ; 1 0 b e g i n 1 1 w r i t e ( m y 1 i n e , n o w ) ; 1 2 w r i t e ( m y l i n e , " : ” ) ; 1 3 w r i t e ( m y l i n e , s t r ) ; 1 4 w r i t e l i n e ( o u t p u t , m y l i n e ) ; 1 5 e n d ; 1 6 e n d p a c k a g e b o d y e a s y i o ; 1 7 — — — — — — — — — — — — — — 1 8 1 9 p a c k a g e c o m m o n i s 2 0 - T h i s i s a n e n u m e r a t i o n o f t h e s i g n a l ’ d e m a n d ’ 2 1 t y p e d e m e n d t y p e i s ( n o n e , o f f , h e a t , c o o l , f a n o n , a u t o , e n o u g h ) ; 2 5 7 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 8 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 8 9 — S i m i l a r l y f o r s i g n a l ’ m o d e ’ t y p e m o d e t y p e i s ( n o n e , o f f , h e a t , c o o l , f a n o n , a u t o ) ; e n d p a c k a g e c o m m o n ; - T h i s i s t h e p a c k a g e a s s o c i a t e d w i t h t h e o b j e c t p a c k a g e p k - t o p i s - A l l s t a t e s i n t h e o b j e c t a r e e n u m e r a t e d h e r e . t y p e a t k . ( n o n e , C C S T A T E i , s e a s o n s w i t c h , S S H e a t , S S O f f , S S C o o l , f a n s w i t c h , F S A u t o , F S O n , f u r n r e l a y , F R O f f , F R O n , A C _ r e l a y , A C O f f , A C O n , f a n r e l a y , R A u t o , R O n ) ; t y p e s t . a i s a r r a y ( n a t u r a l r a n g e < > ) o f s t ; f u n c t i o n r e s o l v e - s t ( v : i n s t - a ) r e t u r n s t ; s u b t y p e r s _ s t i s r e s o l v e - s t s t ; a n d p a c k a g e p k - t o p ; - — T h i s i s t h e p a c k a g e c o n t a i n i n g t h e r e s o l u t i o n f u n c t i o n p a c k a g e b o d y p k - t o p i s f u n c fi o n r e s o l v e - s t ( v : i n s t _ a ) r e t u r n s t i s v a r i a b l e i : n a t u r a l ; b e g h l f o r i i n v ’ r a n g e l o o p W v ( i ) / - s t ’ ( n o n e ) t h e n r e t u r n v ( i ) ; e n d i f ; e n d l o o p ; r e t u r n s t ’ ( n o n e ) ; e n d f u n c t i o n ; e n d p a c k a g e b o d y ; _ — _ _ . _ . — — _ . — _ _ _ - - T h i s i s t h e s e a s o n s w i t c h c o m p o s i t e s t a t e - T h e ’ u s e ’ s t a t e m e n t s p i c k u p d e c l a r a t i o n s r e q u i r e d - b y t h e f o l o w i n g c o d e u s e s t d . t e x t i o . a l l ; u s e w o r k . e a s y i o . a l l ; u s e w o r k . c o m m o n . a l l ; u s e w o r k . p k - t o p . a l l ; e n t h y c s . s e a s o n s w i t c h k p o r t ( s t a t e : i n o u t r s _ s t ; m o d e : i n o u t m o d e t y p e ; d e m a n d : i n o u t d e m a n d t y p e ; i n s t a t e : o u t s t ; i n s . f a n s w i t c h : i n s t ; i n s - f u r n r e l a y : i n s t ; i n s J C J e l a y : i n s t ; i n s . f a n r e l a y : i n s t ) ; e n d e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f c h e a s o n s w i t c h i s b e g i n i n s t a t e < = s t a t e w h e n s t a t e / = s t ’ ( n o n e ) ; — A t y p i c a l s t a t e . T h e s t a t e h a n g s u n t i l s t a t e z S S H e a t , t h e n i s f a l l s t h r u — t o t h e e v e n t w a i t , b e l o w . e _ S S R e a t : p r o c e s s b e g i n w a i t u n t i l s t a t e s s t ’ ( S S H e a t ) ; s a y ( “ I n s t a t e S S H e a t " ) ; — W a i t i n g f o r a n e v e n t , m o d e = c o o l o r m o d e - : 0 1 ] I 0 0 9 w a i t u n t i l m o d e = m o d e t y p e ’ ( c o o l ) o r m o d e = m o d e t y p e ’ ( o f f ) ; H m o d e - m o d e t y p e ’ ( c o o l ) t h e n - A t y p i c a l t r a n s i t i o n . W r i t e a n e w v a l u e t o s t a t e ; 5 8 0 0 0 1 i n t h i s c a s e s t a t e < = s t ’ ( S S C o o l ) , n u l l a f t e r 1 f s ; e x i t ; e l s i f m o d e s m o d e t y p e ’ ( o f f ) t h e n s t a t e < = s t ’ ( S S O f f ) , n u l l a f t e r 1 1 3 ; e x i t ; e n d i f ; 2 5 8 9 0 9 1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 1 0 0 1 0 1 1 0 2 1 0 3 1 0 4 1 0 5 1 0 6 1 0 7 1 0 8 1 0 9 1 1 0 1 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 2 0 1 2 1 1 2 2 1 2 3 1 2 4 1 2 5 1 2 6 1 2 7 1 2 8 1 2 9 1 3 0 1 3 1 1 3 2 1 3 3 1 3 4 1 3 5 1 3 6 1 3 7 1 3 8 1 3 9 1 4 0 1 4 1 1 4 2 1 4 3 1 4 4 1 4 5 1 4 6 1 4 7 1 4 8 1 4 9 1 5 0 1 5 1 1 5 2 1 5 3 1 5 4 1 5 5 1 5 6 1 5 7 e n d l o o p ; e n d p r o c e s s ; s . S S O f : t : p r o c e s s b e g i n w a i t u n t i l s t a t e = s t ’ ( S S O f f ) ; s a y ( " I n s t a t e 8 5 0 1 1 " ) ; I c o n w a i t u n t i l m o d e = m o d e t y p e ’ ( h e a t ) o r m o d e m o d e t y p e ’ ( c o o l ) ; i f m o d e = m o d e t y p e ’ ( h e a t ) t h e n s t a t e < = s t ’ ( S S H e a t ) , n u l l a f t e r 1 1 3 ; e x i t ; e l s i f m o d e = m o d e t y p e ’ ( c o o l ) t h e n s t a t e < = s t ’ ( S S C o o l ) , n u l l a f t e r 1 f s ; e x i t ; e n d i f ; e n d l o o p ; e n d p r o c e s s ; e _ S S C o o l : p r o c e s s b e g i n w a i t u n t i l s t a t e = s t ’ ( S S C o o l ) ; s a y ( " I n s t a t e S S C o o l " ) ; l o o p w a i t u n t i l m o d e = m o d e t y p e ’ ( o f f ) o r m o d e = m o d e t y p e ’ ( h e a t ) ; i f m o d e s m o d e t y p e ’ ( o f f ) t h e n s t a t e < = s t ’ ( S S O f f ) , n u l l a f t e r 1 f s ; e x i t ; e l s i f m o d e = m o d e t y p e ’ ( h e a t ) t h e n s t a t e < = s t ’ ( S S l - l e a t ) , n u l l a f t e r 1 f s ; e x i t ; e n d i f ; e n d l o o p ; e n d p r o c e s s ; s - i n i t : p r o c e s s b e g i n w a i t u n t i l s t a t e - s t ’ ( s e a s o n s w i t c h ) ; s t a t e < = s t ’ ( S S O f f ) , n u l l a f t e r 1 1 3 ; e n d p r o c e s s ; e n d a b s t r a c t ; - T h i s i s t h e f a n s w i t c h c o m p o s i t e s t a t e u s e s t d . t e x t i o . a 1 1 ; u s e w o r k . e a s y i o . a l l ; u s e w o r k . c o m m o n . a l l ; u s e w o r k . p k _ t o p . a l l ; e n t h y c s _ f a n s w i t c h h p o r t ( s t a t e : i n o u t r s - s t ; m o d e : i n o u t m o d e t y p e ; d e m a n d : i n o u t d e m a n d t y p e ; i n s - s e a s o n s w i t c h : i n s t ; i n s t a t e : o u t s t ; i n s . f u r n r e l a y : i n s t ; i n s J C J e l a y : i n s t ; i n s . f a n r e l a y : i n s t ) ; e n d e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f c h a n s w i t c h i s b e g i n i n s t a t e 2 s t a t e w h e n s t a t e / = s t ’ ( n o n e ) ; - s t a t e F S A u t o . A l l s t a t e s s t a r t w i t h s _ N A M E s J - ‘ S l u t o : p r o c e s s b e g i n u n i t u n t fl s t a t e - s t ’ ( F S A u t o ) ; s a y ( " I n s t a t e F S A u t o " ) ; 2 5 9 1 5 8 1 5 9 1 6 0 1 6 1 1 6 2 1 6 3 1 6 4 1 6 5 1 6 6 1 6 7 1 6 8 1 6 9 1 7 0 1 7 1 1 7 2 1 7 3 1 7 4 1 7 5 1 7 6 1 7 7 1 7 8 1 7 9 1 8 0 1 8 1 1 8 2 1 8 3 1 8 4 1 8 5 1 8 6 1 8 7 1 8 8 1 8 9 1 9 0 1 9 1 1 9 2 1 9 3 1 9 4 1 9 5 1 9 6 1 9 7 1 9 8 1 9 9 2 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2 0 6 2 0 7 2 0 8 2 0 9 2 1 0 2 1 1 2 1 2 2 1 3 2 1 4 2 1 5 2 1 6 2 1 7 2 1 8 2 1 9 2 2 0 2 2 1 2 2 2 2 2 3 2 2 4 2 2 5 l o o p w a i t u n t i l m o d e s m o d e t y p e ’ ( f a n o n ) ; H m o d e - m o d e t y p e ’ ( f a n o n ) t h e n s t a t e < = s t ’ ( F S O n ) , n u l l a f t e r 1 f s ; e x i t ; e n d i f ; e n d l o o p ; e n d p r o c e s s ; s _ F S O n : p r o c e s s b e g i n w a i t u n t i l s t a t e s s t ’ ( F S O n ) ; s a y ( " I n s t a t e F S O n " ) ; I 0 0 9 w a i t u n t i l m o d e = m o d e t y p e ’ ( a u t o ) ; fl m o d e = m o d e t y p e ' ( a u t o ) t h e n s t a t e < = s t ’ ( F S A u t o ) , n u l l a f t e r 1 f s ; e x i t ; e n d i f ; e n d l o o p ; e n d p r o c e s s ; s - i n i t : p r o c e s s b e g i n w a i t u n t i l s t a t e l s t ’ ( f a n s u i t c h ) ; s t a t e < = s t ' ( F S A u t o ) , n u l l a f t e r 1 t s ; e n d p r o c e s s ; e n d a b s t r a c t ; u s e s t d . t e x t i o . a l l ; u s e w o r k . e a s y i o . a 1 1 ; u s e w o r k . c o m m o n . a l l ; u s e w o r k . p k - t o p . a l l ; e n t i t y c h u r n r e l a y i s p o r t ( s t a t e : i n o u t r s - s t ; m o d e : i n o u t m o d e t y p e ; d e m a n d : i n o u t d e m a n d t y p e ; i n s - s e a s o n s w i t c h : i n s t ; i n s . f a n s w i t c h : i n s t ; i n s t a t e : o u t s t ; i n s _ A C _ r e 1 a y : i n s t ; i n s . f a n r e 1 a y : i n s t ) ; e n d e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f c h u r n r e l a y i s b e g h i i n s t a t e < = s t a t e w h e n s t a t e / = s t ’ ( n o n e ) ; e _ F R O f f : p r o c e s s b e g i n u n fi t u n t fi s t a t e - s t ’ ( F R O f f ) ; s a y ( " I n s t a t e P R O f f " ) ; l o a n w a i t u n t i l d e m a n d s d e m a n d t y p e ’ ( h e a t ) ; H d e m a n d - d e m a n d t y p e ’ ( h e a t ) a n d i n s - s e a s o n s w i t c h = s t ’ ( S S H e a t ) t h e n s t a t e < = s t ’ ( F R O n ) , n u l l a f t e r 1 1 3 ; e x i t ; e n d i f ; e n d l o o p ; e n d p r o c e s s ; s . F R O n : p r o c e s s b e g i n w a i t u n t i l s t a t e - s t ’ ( F R O n ) ; s a y ( " I n s t a t e F R O n " ) ; l o a n 2 6 0 2 2 6 2 2 7 2 2 8 2 2 9 2 3 0 2 3 1 2 3 2 2 3 3 2 3 4 2 3 5 2 3 6 2 3 7 2 3 8 2 3 9 2 4 0 2 4 1 2 4 2 2 4 3 2 4 4 2 4 5 2 4 6 2 4 7 2 4 8 2 4 9 2 5 0 2 5 1 2 5 2 2 5 3 2 5 4 2 5 5 2 5 6 2 5 7 2 5 8 2 5 9 2 6 0 2 6 1 2 6 2 2 6 3 2 6 4 2 6 5 2 6 6 2 6 7 2 6 8 2 6 9 2 7 0 2 7 1 2 7 2 2 7 3 2 7 4 2 7 5 2 7 6 2 7 7 2 7 8 2 7 9 2 8 0 2 8 1 2 8 2 2 8 3 2 8 4 2 8 5 2 8 6 2 8 7 2 8 8 2 8 9 2 9 0 2 9 1 2 9 2 e n d w a i t u n t i l d e m a n d = d e m a n d t y p e ’ ( e n o u g h ) ; W d e m a n d = d e m a n d t y p e ’ ( e n o u g h ) t h e n s t a t e < = s t ' ( F R O fi ) , n u l l a f t e r 1 r s ; e x i t ; e n d i t ; e n d l o o p ; e n d p r o c e s s ; s - i n i t : p r o c e s s b e g h i w a i t u n t i l s t a t e n t ’ fl u r n r e l a y ) ; s t a t e < = s t ’ ( l ' — ' R 0 fl ) , n u l l a f t e r 1 i s ; e n d p r o c e s s ; a b s t r a c t ; s t d . t e x t i o . a l l ; u o r k . e a s y i o . a l l ; u o r k . c o m m o n . a l l ; v o r k . p k - t o p . a l l ; e n t i t y c h C J e l a y i s e n d p o r t ( s t a t e : i n o u t r s - s t ; n o d e : i n o u t m o d e t y p e ; d e m a n d : i n o u t d e m a n d t y p e ; i n s - s e a s o n s v i t c h : i n s t ; i n s J a n s v i t c h : i n s t ; i n s - t u r n r e l a y : i n s t ; i n s t a t e : o u t s t ; i n s . t a n r e 1 a y : i n s t ) ; e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f c h C J e l a y i s b e g i n i n s t a t e < = s t a t e w h e n s t a t e / = s t ’ ( n o n e ) ; s J C O f f : p r o c e s s b e g u n w a i t u n t i l s t a t e - s t ’ U C O fi ) ; s a y ( " I n s t a t e A 6 0 1 1 " ) ; I c o n u n fi t u n t fl d e m a n d = d e n a n d t y p e ’ ( c o o l ) ; i f d e m a n d l d e n a n d t y p e ’ ( c o o l ) a n d i n s - s e a s o n s w i t c h = s t ’ ( S S C o o l ) t h e n s t a t e < = s t ’ ( A C O n ) . n u l l a f t e r 1 t s ; e x i t ; e n d i f ; e n d l o o p ; e n d p r o c e s s ; e _ A C O n : p r o c e s s b e g i n w a i t u n t i l s t a t e - s t ' ( A C O n ) ; s a y ( " I n s t a t e A C O n " ) ; l o o p w a i t u n t i l d e m a n d s d e m a n d t y p e ’ ( e n o u g h ) ; N d e n a n d s d e n a n d t y p e ’ ( e n o u g h ) t h e n s t a t e < = s t ’ ( A C O f t ) . n u l l a f t e r 1 i s ; e x i t ; e n d i t ; e n d l o o p ; e n d p r o c e s s ; s _ i n i t : p r o c e s s b e g u n w a i t u n t i l s t a t e = s t ’ ( A C J e l a y ) ; I t e t e < = s t ’ ( A C 0 1 1 ) , n u l l a f t e r 1 f s ; e n d p r o c e s s ; 2 9 3 e n d a b s t r a c t ; 2 6 1 3 0 5 3 0 6 3 0 7 3 0 8 3 0 9 3 1 0 3 1 1 3 1 2 3 1 3 3 1 4 3 1 5 3 1 6 3 1 7 3 1 8 3 1 9 3 2 0 3 2 1 3 2 2 3 2 3 3 2 4 3 2 5 3 2 6 3 2 7 3 2 8 3 2 9 3 3 0 3 3 1 3 3 2 3 3 3 3 3 4 3 3 5 3 3 6 3 3 7 3 3 8 3 3 9 3 4 0 3 4 1 3 4 2 3 4 3 3 4 4 3 4 5 3 4 6 3 4 7 3 4 8 3 4 9 3 5 0 3 5 1 3 5 2 3 5 3 3 5 5 3 5 6 3 5 8 3 5 9 3 6 1 u s e s t d . t e x t i o . a l l ; u s e w o r k . e a s y i o . a l l ; u s e v o r k . c o m m o n . a l l ; u s e u o r k . p k _ t o p . a l l ; e n t i t y c h a n r e l a y i s p o r t ( s t a t e : i n o u t r s - s t ; m o d e : i n o u t m o d e t y p e ; d e m a n d : i n o u t d e m a n d t y p e ; i n s _ s e a s o n s v i t c h : i n s t ; i n s . f a n s v i t c h : i n s t ; i n s . 1 u r n r e l a y : i n s t ; i n s _ A C _ r e l a y : i n s t ; i n s t a t e : o u t s t ) ; e n d e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f c h a n r e l a y i s b e g u n i n s t a t e < = s t a t e w h e n s t a t e / = s t ’ ( n o n e ) ; s . R A u t o : p n o c e s s b e g i n w a i t u n t i l s t a t e s s t ’ fl u u t o ) ; s a y ( " I n s t a t e R A u t o " ) ; l o c o w a i t u n t i l i n s J a n s v i t c h s s t ’ ( F S O n ) ; i f i n s J a n s u i t c h = s t ’ ( F S O n ) e n d ( i n s - s e a s o n s w i t c h = s t ’ ( S S C o o l ) o r i n s J e a s o n s v i t c h - s t ’ ( S S H e a t ) ) t h e n s t a t e < = s t ’ ( R O n ) , n u l l a f t e r 1 1 s ; e x i t ; e n d i t ; e n d l o o p ; e n d p r o c e s s ; e _ R O n : p r o c e s s b e g i n w a i t u n t i l s t a t e a s t ’ ( R 0 n ) ; s a y ( " I n s t a t e R O n " ) ; l o o p w a i t u n t i l i n s . s e e s o n s v i t c h = s t ’ ( S S O fl ) ; i f i n s J e a s o n s u i t c h - s t ’ ( S S O f f ) t h e n s t a t e < = s t ’ ( l u u t o ) , n u l l a f t e r 1 f s ; e x i t ; e n d i t ; e n d l o o p ; e n d p r o c e s s ; s - i n i t : p r o c e s s b a s i n w e i t u n t i l s t a t e - s t ’ ( t a n r e l a y ) ; s t a t e ( 2 s t ' ( M u t o ) , n u l l a f t e r 1 i s ; e n d p r o c e s s ; e n d a b s t r a c t ; - T h i s i s t h e t o p l e v e l o b j e c t c o n t a i n e r f o r t h e c o n t r o l m o d u l e . - I t i s l o s t b e c a u s e i t r e f e r s t o a l l o t h e r c o m p o n e n t s i n t h e s y s t e m - a n d V H D L r e q u i r e d p r e - d e c l a r i n g n a m e s . u s e s t d . t e x t i o . a l l ; u s e w o r k . e a s y i o . a l l ; u s e s o r k . c o m m o n . a l l ; u s e u o r k . p k _ t o p . a l l ; e n t i t y o b j . t o p i s p o r t ( m o d e : i n o u t m o d e t y p e ; d e m a n d : i n o u t d e m a n d t y p e ) ; e n d e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f o b j _ t o p i s 2 6 2 3 6 2 s i g n a l s t a t e : r s - s t ; 3 6 3 — s i g n a l s f r o m C O S T A T E ] 3 6 4 s i g n a l s s - s e a s o n s w i t c h : r s - s t ; 3 6 5 s i g n a l s s J a n s w i t c h : r s - s t ; 3 6 6 s i g n a l s s J u r n r e l a y : r s - s t ; 3 6 7 s i g n a l s s J C J e l a y : r s - s t ; 3 6 8 s i g n a l s s J a n r e l a y : r s - s t ; 3 6 9 s i g n a l i n s J e a s o n s u i t c h : s t ; 3 7 0 s i g n a l i n s J a n s v i t c h : s t ; 3 7 1 s i g n a l i n s J u r n r e l a y : s t ; 3 7 2 s i g n a l i n s J C J e l a y : s t ; 3 7 3 s i g n a l i n s J a n r e l a y : s t ; 3 7 4 - s i g n a l s f r o m 3 7 5 b e g i n 3 7 6 — T h e s e a r e i n s t a n t i a t i o n s t a t e m e n t s g e n e r a t e d b y H y d r a t o s t a r t 3 7 7 — t h e c o n c u r r e n t s t a t e s . 3 7 8 - C C S t a t e o u t p u t 3 7 9 1 1 : e n t i t y c s - s e a s o n s w i t c h ( a b s t r a c t ) 3 8 0 - T h i s i s a t y p i c a l m a p p i n g o f p o r t s i n t o a c o n c u r r e n t c o m p o n e n t 3 8 1 p o r t m a p ( s t a t e = > s s - s e a s o n s w i t c h , m o d e = > m o d e , d e m a n d = > d e m a n d , 3 8 2 i n s t a t e = > i n s - s e a s o n s w i t c h . i n s J a n s v i t c h = > i n s J a n s v i t c h . 3 8 3 i n s J u r n r e l a y = > i n s - f u r n r e 1 a y , i n s J C J e l a y = > i n s - A C _ r e 1 a y , 3 8 4 i n s - 1 ' a n r e l a y = > i n s - 1 a n r e l a y ) ; 3 8 5 s s - s e a s o n s w i t c b < = s t ’ ( s e a s o n s v i t c h ) , n u l l a f t e r 1 i s w h e n 3 8 6 s t a t e - s t ’ ( s e a s o n s w i t c h ) o r s t a t e = s t ’ ( f a n s v i t c h ) o r 3 8 7 s t a t e s s t ’ U u r n r e l a y ) o r s t a t e = s t ’ ( A C - r e 1 a y ) o r s t a t e = s t ’ ( f a n r e l a y ) ; 3 8 8 1 2 : e n t i t y c s 1 a n s w i t c h ( a b s t r a c t ) 3 8 9 p o r t m a p ( s t a t e = > s s - t a n s v i t c h , m o d e = > m o d e , d e m a n d = > d e m a n d , 3 9 0 i n s - s e a s o n s v i t c h i ) i n s - s e a s o n s u i t c h , i n s t a t e = > i n s - 1 a n s w i t c h , 3 9 1 i n s J u r n r e l a y = > i n s _ f u r n r e l a y , i n s J C J e l a y = > i n s - A C . r e l a y , 3 9 2 i n s J a n r e l a y t > i n s - r a n r e l a y ) ; 3 9 3 s s J a n s v i t c h < = s t ’ ( f a n s v i t c h ) , n u l l a f t e r 1 t s w h e n 3 9 4 s t a t e - s t ’ ( s e a s o n s u i t c h ) o r s t a t e s s t ’ ( f a n s v i t c h ) o r 3 9 5 s t a t e l s t ’ U u r n r e l a y ) o r s t a t e = s t ’ ( A C - r e l a y ) o r s t a t e = s t ’ ( t a n r e l a y ) ; 3 9 6 1 3 : e n t i t y c h u r n r e l a y ( a b s t r a c t ) 3 9 7 p o r t m a p ( s t a t e = > s s - £ u r n r e l a y , m o d e = > m o d e , d e m a n d = > d e m a n d , 3 9 8 i n s - s e a s o n s w i t c h = > i n s _ s e a s o n s v i t c h , 3 9 9 i n s J a n s u i t c h = > i n s - f a n s v i t c h , i n s t a t e = > i n s _ f u r n r e l a y , 4 0 0 i n s J C J e l a y = > i n s J C J e 1 a y , i n s i a n r e l e y = > i n s - f a n r e l a y ) ; 4 0 1 s s J u r n r e l a y < = s t ’ ( f u r n r e 1 a y ) . n u l l a f t e r 1 i s w h e n 4 0 2 s t a t e - s t ’ ( s e a s o n s v i t c h ) o r s t a t e = s t ’ ( f a n s w i t c h ) o r 4 0 3 s t a t e - s t ’ ( t u r n r e 1 a y ) o r s t a t e = s t ’ ( A C _ r e l a y ) o r s t a t e = s t ’ ( f a n r e l a y ) ; 4 0 4 1 4 : e n t i t y c s _ A C _ r e l a y ( a b s t r a c t ) 4 0 5 p o r t m a p ( s t a t e = > s s - A C _ r e l a y , m o d e = > m o d e , d e m a n d = > d e m a n d , 4 0 6 i n s - s e a s o n s v i t c h = > i n s - s e a s o n s w i t c h , 4 0 7 i n s J a n s w i t c h = > i n s - f a n s v i t c h . i n s J u r n r e l a y = > i n s _ f u r n r e 1 a y , 4 0 8 i n s t a t e - > i n s - A C _ r e l a y , i n s J a n r e l a y = > i n s - f a n r e l a y ) ; 4 0 9 s s J C J e l a y < = s t ’ ( A C . r e l a y ) , n u l l a f t e r 1 t s w h e n 4 1 0 s t a t e s s t ’ ( s e a s o n s v i t c h ) o r s t a t e = s t ’ ( f a n s u i t c h ) o r 4 1 1 s t a t e s s t ’ ( 1 u r n r e l a y ) o r s t a t e = s t ’ ( A C _ r e l a y ) o r s t a t e = s t ’ ( f a n r e 1 a y ) ; 4 1 2 1 5 : e n t i t y c s 1 a n r e 1 a y ( a b s t r a c t ) 4 1 3 p o r t m a p ( s t a t e = > s s - f a n r e l a y , m o d e = > m o d e , d e m a n d = > d e m a n d . 4 1 4 i n s - s e a s o n s u i t c h = > i n s - s e a s o n s w i t c h , 4 1 5 i n s J a n s v i t c h = > i n s - f a n s w i t c h , i n s J u r n r e l a y = > i n s - f u r n r e 1 a y , 4 1 6 i n s J C . r e 1 a y = > i n s J C J e l a y , i n s t a t e = > i n s _ f a n r e l a y ) ; 4 1 7 s s J a n r e l a y < = s t ’ ( f a n r e l a y ) , n u l l a f t e r 1 t s w h e n 4 1 8 s t a t e I s t ' ( s e a s o n s u i t c h ) o r s t a t e = s t ’ ( f a n s w i t c h ) o r 4 1 9 s t a t e - s t ’ ( f u r n r e l a y ) o r s t a t e a s t ’ ( A C - r e 1 a y ) o r s t a t e = s t ’ ( f a n r e 1 a y ) ; 4 2 0 4 2 1 s - i n i t : p r o c e s s 4 2 2 b e g i n 4 2 3 s t a t e < = s t ’ ( s e a s o n s w i t c h ) , n u l l a f t e r 1 1 ' 3 ; 4 2 4 w a i t ; 4 2 5 e n d p r o c e s s ; 4 2 6 a n d a b s t r a c t ; 4 2 7 u s e s t d . t e x t i o . a l l ; 4 2 8 u s e u o r k . e a s y i o . a l l ; 4 2 9 u s e w o r k . c o m m o n . a 1 1 ; 2 6 3 4 3 0 4 3 1 4 3 2 4 3 3 4 3 4 4 3 5 4 3 6 4 3 7 4 3 8 4 3 9 4 4 0 4 4 1 4 4 2 4 4 3 4 4 4 4 4 5 4 4 6 4 4 7 4 4 8 4 5 0 4 5 1 4 5 2 4 5 3 4 5 4 4 5 5 4 5 6 4 5 7 4 5 8 4 5 9 4 6 0 4 6 1 4 6 2 4 6 3 4 6 4 4 6 5 4 6 6 4 6 7 u s e w o r k . p k - t o p . a l l ; e n t i t y c o n t e x t i s e n d e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f c o n t e x t i s s i g n a l d e m a n d : d e m a n d t y p e ; s i g n a l m o d e : m o d e t y p e ; b e g i n — T h i s d r i v e r i s h a n d c o d e d a n d i n c l u d e d i n t o H y d r a a t t r a n s l a t i o n t i m e . - I t e x e r c i s e s t h e s c e n a r i o o f d e m a n d i n g h e a t , t h e n c o o l , w h i c h c a u s e s — t h e A / C t o t u r n o n , i n c o r r e c t l y . - D r i v e r s y s t e m i n h e a t a n d c o o l a t s a m e t i m e - m o d e t o h e a t — d e m a n d h e a t - m o d e m t o c o o l - d e m a n d c o o l c o n t r o l l e r l : e n t i t y o b j _ t o p ( a b s t r a c t ) p o r t m a p ( d e m a n d = > d e m a n d , m o d e = > m o d e ) ; d r i v e r 1 : p r o c e s s b e g i n w a i t f o r 3 n s ; s a y ( " s e t t i n g m o d e t o H e a t " ) ; m o d e < = m o d e t y p e ’ O i e a t ) , m o d e t y p e ’ ( n o n e ) a f t e r 1 n s ; w a i t f o r 5 n s ; s a y ( " D e m a n d i n g h e a t ” ) ; d e m a n d < = d e m a n d t y p e ’ ( b e a t ) , d e m a n d t y p e ’ ( n o n e ) a f t e r 1 t s ; w a i t f o r 5 n s ; s a y ( " s e t t i n g m o d e t o C o o l " ) ; m o d e < = m o d e t y p e ’ ( c o o l ) . m o d e t y p e ’ ( n o n e ) a f t e r 1 t s ; w a i t f o r 5 n s ; s a y ( " D e m a n d i n g c o o l " ) ; d e m a n d < = d e m a n d t y p e ’ ( c o o l ) , d e m a n d t y p e ’ ( n o n e ) a f t e r 1 t s ; w a i t ; e n d p r o c e s s ; e n d a b s t r a c t ; 2 6 4 A p p e n d i x B H y d r a L a n g u a g e I n p u t f o r t h e S m a r t C r u i s e C a s e S t u d y T h i s a p p e n d i x c o n t a i n s t h e e n t i r e H y d r a l a n g u a g e t r a n s l a t e d o u t p u t f r o m t h e d i a g r a m s c o n t a i n e d i n C h a p t e r 9 , F i g u r e s 9 . 8 , 9 . 1 2 , 9 . 1 3 , 9 . 1 5 , a n d 9 . 1 7 . T h e P r o m e l a g e n e r a t e d f r o m t h i s s p e c i fi c a t i o n i s c o n t a i n e d i n A p p e n d i x C . T h e S Y S T E M c l a s s d r i v e r fi l e c a l l e d “ s c d r i v e r ” i n l i n e 2 o f t h e H y d r a l a n g u a g e l i s t i n g i s s h o w n b e l o w . T h e d i a g r a m b e l o w c o r r e s p o n d s d i r e c t l y w i t h t h e s t a t e m a c h i n e i n F i g u r e 9 . 1 5 . S Y S T E M c l a s s d r i v e r fi l e P r o m e l a s p e c i fi c a t i o n s [ s s d e t i n e p c o n t r o l . q ? ? [ t a r g e t 3 S d e t i n e q r a d a r _ q ? ? [ a c k c o n t r o l ] I " / S d e t i n e p c o n t r o l - q ? ? [ b r a k e s ] S d e t i n e q c o n t r o l E c o n t r o l p i d J O i d l e O d e t i n e m i n ( x . y ) ( x < y - > x : y ) M e t i n e m a x ( x . y ) ( x > y - > x : y ) i n t c o n t r o l p i d ; i n t r a d a r p i d ; i n i t { a t o m i c { r a d a r p i d = r u n r a d a r ( ) ; 2 6 5 c o n t r o l p i d - r u n c o n t r o l ( ) ; r u n c a r ( ) : } t i m e o u t - > c o n t r o l - q ! s e t ; p r i n t t ( " m o d e l s t a r t e d " ) ; I t i t a t o m i c { r a d a r . V . x > . 2 0 0 0 i t r a d a r _ V . x < 3 7 0 0 - > c o n t r o l . g l b r a k e s ; p r i n t t ( " s e n t b r a k e s " ) } t i 1 " / } H y d r a l a n g u a g e i n p u t f o r t h e S m a r t C r u i s e m o d e l 1 M o d e l S m a r t c r u i s e { 2 D r i v e r F i l e s c d r i v e r ; 3 4 O b j e c t c o n t r o l { 5 8 R a d a r S i g n a l s 6 S i g n a l t a r g e t ; 7 S i g n a l d i s t ( i n t ) ; 8 S i g n a l l o s t ; 9 S i g n a l a c k r a d a r ; 1 0 S i g n a l b r a k e s ; 1 1 1 2 8 C a r s i g n a l s 1 3 S i g n a l c a r s p e e d ( i n t ) ; 1 4 S i g n a l a c k c a r ; 1 5 1 6 8 U s e r s i g n a l s 1 7 S i g n a l s e t ; 1 8 1 9 I n s t a n c e V a r i n t x 1 ; I t l a s t x r e a d * I 2 0 I n s t a n c e V a r i n t x 2 ; / * x j u s t r e a d , c o p i e d t o x 1 * / 2 1 I n s t a n c e V a r i n t t i n c : = 1 ; / * t i m e i n c r e m e n t . 1 s e c o n d # / 2 2 I n s t a n c e V a r i n t v c ; I t v a t c a r # I 2 3 I n s t a n c e V a r i n t V t ; I t v o f t a r g e t * / 2 4 I n s t a n c e V a r i n t v ; I t c l o s i n g v . + 8 c l o s i n g * I 2 5 I n s t a n c e V a r i n t t m i n : = 2 ; I t m i n i m u m s p a c i n g i n s e c s a t v t * / 2 6 I n s t a n c e V a r i n t 2 1 ; I t c l o s e s t a l l o w a b l e d i s t a n c e . 1 0 % u n d e r t m i n # / 2 7 I n s t a n c e V a r i n t 2 2 ; I t c a l c u l a t e d t m i n d i s t # / 2 8 I n s t a n c e V a r i n t x h i t ; I t d i s t a n c e t o c o a s t t o h i t t a r g # / 2 9 I n s t a n c e V a r i n t x c o a s t ; I t d i s a t n c e t o c l o s e t o t a r g * / 3 0 I n s t a n c e V a r i n t a : 3 1 5 ; [ a d e c e l e r a t i o n s p e e d a t c a r t t / s e c t s e c * / 3 1 I n s t a n c e V a r i n t s e t s p d ; I t s p e e d c a r s e t t o m a i n t a i n t / 3 2 I n s t a n c e V a r b o o l c l o s i n g ; / * t r u e w h i l e a t t h r o t t l e , c l o s i n g * / 3 3 3 4 I n i t i a l i d l e ; 3 5 S t a t e i d l e { 3 6 T r a n s i t i o n " s e t ‘ c a r . g e t s p e e d " t o g o t i t ; 3 7 3 8 S t a t e g o t i t { I t w a i t t o r c a r s p e e d * I 3 9 T r a n s i t i o n " c a r s p e e d ( s e t s p d ) ‘ c a r . s e t s p e e d ( s e t s p d ) " t o s e t i t O ; 4 0 4 1 S t a t e s e t i t O { / # w a i t t o r r a d a r o n a n d s e t c a r s p e e d * / 4 2 T r a n s i t i o n " a c k c a r ‘ r a d a r . o n " t o s e t i t l ; 4 3 4 4 S t a t e s e t i t l { 4 5 T r a n s i t i o n " a c k r a d a r " t o m a i n t a i n ; 4 6 4 7 S t a t e m a i n t a i n { I t w a i t f o r t a r g e t a c q u i s i t i o n 1 " / 4 8 T r a n s i t i o n " t a r g e t ‘ r a d a r . a c k c o n t r o l “ t o g e t x l ; 4 9 T r a n s i t i o n " b r a k e s ‘ r a d a r . o t t ‘ c a r . u n s e t " t o c a r o t t ; 5 0 5 1 S t a t e a c k c a r O { 2 6 6 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 8 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 8 9 9 0 9 1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 1 0 0 1 0 1 1 0 2 1 0 3 1 0 4 1 0 5 1 0 6 1 0 7 1 0 8 1 0 9 1 1 0 1 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 T r a n s i t i o n " a c k c a r ‘ r a d a r . a c k c o n t r o l " t o m a i n t a i n ; } S t a t e g e t x 1 { I t w a i t t o r r a d a r x d i s t o r l o s t s i g * / T r a n s i t i o n " d i s t ( x 1 ) " . " / x c o a s t : 8 0 ; " , " c l o s i n g : I O " . “ “ r a d a r . a c k c o n t r o l " t o g e t s p d ; T r a n s i t i o n " l o s t ‘ c a r . s e t s p e e d ( s e t s p d ) " t o a c k c a r o ; / * l o s t t r a c k i n g 1 / T r a n s i t i o n " b r a k e s ‘ r a d a r . o t t ‘ c a r . u n s e t " t o c a r o t t ; } 3 B e g i n c o n t r o l s e q u e n c e S t a t e g e t s p d { / * g e t c a r s p e e d # / T r a n s i t i o n “ d i s t ( x 2 ) ‘ c a r . g e t s p e e d " t o c a l c ; T r a n s i t i o n " l o s t ‘ c a r . s e t s p e e d ( s e t s p d ) " t o a c k c a r O ; T r a n s i t i o n " b r a k e s ‘ r a d a r . o t t ‘ c a r . u n s e t " t o c a r o t t ; } S t a t e c a l c { I t p e r f o r m a l l t h e c a l c u l a t i o n s t / T r a n s i t i o n " c a r s p e e d ( v c ) " , " I w : - ( x 1 - x 2 ) / t i n c ; " , " v t : - v c - v ; " , " 2 2 : - v t t t m i n ; " , " 2 1 : 8 z 2 - z 2 / 1 0 ; " , " x 1 : - x 2 ; " . " p r i n t ( ’ v = % d , x 1 = % d , z 1 = % d z 2 = % d ’ . " , " v . x 1 , z 1 . z 2 ) " t o g e t x c ; T r a n s i t i o n ” b r a k e s ‘ r a d a r . o t t ‘ c a r . u n s e t " t o c a r o t t ; } S t a t e g e t x c { T r a n s i t i o n " [ c l o s i n g J " , " / x h i t : - ( v i v ) / ( 2 ¥ e ) ; " . " x c o a s t : 8 x h i t + z 2 + t i n c t v ; " , " p r i n t ( ’ x c o a s t = % d , x h i t = % d ’ , x c o a s t . x h i t ) " t o a l a r m ; T r a n s i t i o n " [ c l o s i n g ] " t o a l a r m ; } S t a t e a l a r m { / * M a k e s u r e w e ’ r e n o t t o o c l o s e I ‘ / T r a n s i t i o n " [ x 1 > - 2 1 ] " t o w a r n ; T r a n s i t i o n " [ x 1 < 2 1 ] " . I t T h i s i s r e a l b a d * / " / p r i n t ( ’ H A R N I N G : T 0 0 C L O S E ’ ) ; " , " p r i n t ( ’ x 1 = % d . 2 1 - Z d ’ , x 1 , 2 1 ) " . " ‘ c a r . u n s e t " t o a l l o t t ; } S t a t e w a r n { / * c h e c k t o s e e i t w e a r e g o i n g t o h i t h i m * / T r a n s i t i o n " [ x h i t < - x 1 ] " t o c l o s e ; / * w e w o n t h i t h i m . . . * / T r a n s i t i o n ” [ x h i t > x 1 ] " t o s e n d w a r n ; I t l o o k s l i k e w e w i l l h i t h i m # / } S t a t e s e n d w a r n { T r a n s i t i o n " / p r i n t ( ’ H A R N I N G : G O I N G T O H I T T A R G E T ’ ) " t o c l o s e ; S t a t e c l o s e { T r a n s i t i o n " [ c l o s i n g ] ‘ r a d a r . a c k c o n t r o l “ t o g e t s p d ; T r a n s i t i o n " [ c l o s i n g ] " t o w a i t i n g ; } S t a t e w a i t i n g { T r a n s i t i o n " [ x 1 > x c o a s t ] ‘ r a d a r . a c k c o n t r o l " t o g e t s p d ; T r a n s i t i o n " [ x 1 < - x c o a s t l l c l o s i n g : = 1 ‘ c a r . s e t s p e e d ( v t ) " t o a c ; } S t a t e a c { T r a n s i t i o n " a c k c a r ‘ r a d a r . a c k c o n t r o l " t o g e t s p d ; T r a n s i t i o n " b r a k e s ‘ r a d a r . o t t ‘ c a r . u n s e t " t o c a r o t f ; S t a t e a l l o t t { T r a n s i t i o n " a c k c a r r a d a r . o t t " t o i d l e ; T r a n s i t i o n " b r a k e s " t o a l l o t t ; S t a t e c a r o t t { T r a n s i t i o n " a c k c a r " t o i d l e ; T r a n s i t i o n " d i s t ( x 1 ) " t o c a r o t t ; 2 6 7 1 2 0 1 2 1 1 2 2 1 2 3 1 2 4 1 2 5 1 2 6 1 2 7 1 2 8 1 2 9 1 3 0 1 3 1 1 3 2 1 3 3 1 3 4 1 3 5 1 3 6 1 3 7 1 3 8 1 3 9 1 4 0 1 4 1 1 4 2 1 4 3 1 4 4 1 4 5 1 4 6 1 4 7 1 4 8 1 4 9 1 5 0 1 5 1 1 5 2 1 5 3 1 5 5 1 5 6 1 5 7 1 5 8 1 5 9 1 6 0 1 6 1 1 6 2 1 6 3 1 6 4 1 6 5 1 6 6 1 6 7 1 6 8 1 6 9 1 7 0 1 7 1 1 7 2 1 7 3 1 7 4 1 7 5 1 7 6 1 7 7 1 7 8 1 7 9 1 8 0 1 8 1 1 8 2 1 8 3 1 8 4 1 8 5 1 8 6 1 8 7 } T r a n s i t i o n " l o s t " t o c a r o t t ; T r a n s i t i o n “ t a r g e t " t o c a r o t t ; T r a n s i t i o n " b r a k e s " t o c a r o t t ; T r a n s i t i o n " c a r s p e e d ( v c ) " t o c a r o t t ; } O b j e c t r a d a r { S i g n a l c a r v ( i n t ) ; S i g n a l a c k c o n t r o l ; S i g n a l o n ; S i g n a l o t t ; S i g n a l b r a k e s ; [ e I M P O R T A N T : I n i t i a l i z e w t t o t a r g e t s p e e d . x t o t a r g e t d i s t a n c e * / [ a i n i t i a l t a r g e t s p e e d * / I n s t a n c e V a r i n t v t : 8 9 0 0 ; I n s t a n c e V a r i n t x : 3 4 5 0 0 ; I n s t a n c e V a r i n t v c ; I n s t a n c e V a r i n t v ; I n s t a n c e V a r b o o l t m o d e : t 0 ; I n s t a n c e V a r b o o l b r k s : = 0 ; I n i t i a l r - o t t ; S t a t e r _ o t t { T r a n s i t i o n " o n c o n t r o l . a c k r a d a r " t o r 0 ; T r a n s i t i o n “ o f t " t o r - o t t ; } S t a t e r 0 { T r a n s i t i o n " ‘ c a r . g e t v " t o r 1 ; } S t a t e r 1 { T r a n s i t i o n " c a r v ( v c ) / v : 2 v c - v t ; x : = x - v ; " , " p r i n t ( ’ x i s X d ’ . x ) “ t o r 3 ; S t a t e r 3 { T r a n s i t i o n " [ t m o d e & x < 8 4 0 0 0 ] " . " I t m o d e : - 1 ; p r i n t ( ’ F i r i n g t a r g e t ’ ) " , " ‘ c o n t r o l . t a r g e t " t o r 4 ; T r a n s i t i o n " [ t m o d e t x > 4 0 0 0 ] " t o r 0 ; T r a n s i t i o n " [ t m o d e & x > 4 0 0 0 ] ‘ c o n t r o l . l o s t " t o r _ a c k ; T r a n s i t i o n " [ t m o d e t x < 8 4 0 0 0 ] " . " / P r i n t ( ’ S e n d i n 8 x s x d t 0 C O D t I O l ’ » X ) " , " ‘ c o n t r o l . d i s t ( x ) " t o n e c k ; } I t T h e n e x t s t a t e m e n t n o n - d e t e r m i n i s t i a l l y a p p l i e s b r a k e s # / I t T r a n s i t i o n " [ t m o d e t x ( I 4 0 0 0 ] ‘ c o n t r o 1 . b r a k e s " t o r _ a c k ; # / } S t a t e r 4 { T r a n s i t i o n " a c k c o n t r o l ‘ c o n t r o l . d i s t ( x ) " t o r ; a c k ; T r a n s i t i o n " o f t / t m o d e : = 0 " t o r _ o t t ; S t a t e r . a c k { T r a n s i t i o n " a c k c o n t r o l " t o r 0 ; T r a n s i t i o n “ o f t / t m o d e : = O " t o r - o t t ; } O b j e c t c a r { I t i n i t i a l c a r s p e e d * / I n s t a n c e V a r i n t s e t v : 3 1 1 0 0 ; I n s t a n c e V a r i n t r e a l v : 3 1 1 0 0 ; S i g n a l s e t s p e e d ( i n t ) ; S i g n a l g e t s p e e d ( i n t ) ; S i g n a l g e t v ; S i g n a l u n s e t ; 2 6 K B 1 8 8 1 8 9 1 9 0 1 9 1 1 9 2 1 9 3 1 9 4 1 9 5 1 9 6 1 9 7 1 9 8 1 9 9 2 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2 0 6 2 0 7 2 0 8 2 0 9 2 1 0 2 1 1 2 1 2 2 1 3 2 1 4 2 1 5 2 1 6 2 1 7 2 1 8 2 1 9 2 2 0 2 2 1 2 2 2 2 2 3 2 2 4 2 2 5 2 2 6 2 2 7 2 2 8 2 2 9 2 3 0 2 3 1 2 3 2 2 3 3 2 3 4 2 3 5 2 3 6 2 3 7 2 3 8 2 3 9 2 4 0 2 4 1 2 4 2 I n i t i a l u p d a t e x ; C o n c u r r e n t S t a t e c c 2 { C o m p o s i t e S t a t e u p d a t e x { I n i t i a l c a r 1 ; S t a t e c a r 1 { I t T r a n s i t i o n " g e t v ‘ r a d a r . c a r v ( r e a l v ) " t o c a r 1 ; * / T r a n s i t i o n " g e t v E r e a l v < s e t v ] " , " I r e a l v : 8 r e a l v + 1 5 ; " , " r e a l v : 8 m i n ( r e a l v , s e t v ; " , " p r i n t ( ’ r e a l v = % d s e t v = Z d ’ , r e a l v , s e t v ) " , " ‘ r a d a r . c a r v ( r e a l v ) “ t o c a r 1 ; T r a n s i t i o n " g e t v E r e a l v > s e t V J ” , " l r e a l v : - r e a l v - 1 5 ; " , " r e a l v : 8 m a x ( r e a l v . s e t v ) ; " , " p r i n t ( ’ r e a l v = % d s e t v - % d ’ , r e a l v , s e t v ) " , " ‘ r a d a r . c a r v ( r e a l v ) " t o c a r 1 ; T r a n s i t i o n " g e t v E r e a l v = = s e t v ] " , " / p r i n t ( ’ r e a l v = Z d s e t v = % d ’ , r e a l v , s e t v ) " , " ‘ r a d a r . c a r v ( r e a 1 v ) “ t o c a r 1 ; } } C o m p o s i t e S t a t e u p d a t e s p d { I n i t i a l c a r 3 ; S t a t e c a r 3 { T r a n s i t i o n " s e t s p e e d ( s e t v ) " , " l p r i n t ( ’ c a r s p e e d s e t t o Z d ’ , s e t v ) " , " ‘ c o n t r o l . a c k c a r “ t o c a r 3 ; } } C o m p o s i t e S t a t e d o g e t s p d { I n i t i a l c a r 4 ; S t a t e c a r 4 { T r a n s i t i o n " g e t s p e e d ‘ c o n t r o l . c a r s p e e d ( r e a l v ) " t o c a r 4 ; } } C o m p o s i t e S t a t e d o u n s e t { I n i t i a l c a r 5 ; S t a t e c a r s { T r a n s i t i o n " u n s e t } l } a c o n t r o l . a c k c a r " t o c a r 5 ; } } 2 6 9 A p p e n d i x C P r o m e l a S p e c i fi c a t i o n s f o r S m a r t C r u i s e T h i s a p p e n d i x c o n t a i n s t h e e n t i r e fi n a l P r o m e l a s p e c i fi c a t i o n g e n e r a t e d b y H y d r a f r o m t h e H y d r a l a n g u a g e i n p u t s h o w n i n A p p e n d i x B f o r t h e S m a r t C r u i s e c a s e s t u d y . H o w v a r i o u s U M L s t r u c t u r e s b e c o m e P r o m e l a s t a t e m e n t s s e e n h e r e i s e x p l a i n e d i n C h a p t e r 6 . T h e d e s i g n a n d t e s t i n g o f t h e m o d e l t h i s s p e c i fi c a t i o n r e p r e s e n t s i s c o n t a i n e d i n C h a p t e r 9 . T h e S Y S T E M c l a s s b e h a v i o r , a n d h e n c e t h e c o n t e n t s o f t h e d r i v e r fi l e , a r e s e e n i n l i n e s 4 9 — 7 3 . T h e c o m m e n t e d o u t l i n e s 6 9 — 7 2 c o n t a i n a n e x p e r i m e n t t o p r o v i d e a 1 a l t e r n a t e m e a n s o f g e n e r a t i n g a b r a k e s s i g n a l . T h e fi n a l c o n t e n t s o f t h e d r i v e r fi l e s c d r i v e r a r e s h o w n b e l o w , f o l l o w e d b y t h e P r o m e l a f o r t h e e n t i r e m o d e l . 2 7 0 s c d r i v e r fi l e c o n t e n t s / * # d e t i n e p c o n t r o l _ q ? ? [ t a r g e t ] # d e f i n e q r a d a r _ q ? ? [ a c k c o n t r o l ] * / # d e f i n e p c o n t r o l _ q ? ? [ b r a k e s ] # d e f i n e q c o n t r o l [ c o n t r o l p i d ] Q i d 1 e # d e f i n e m i n ( x , y ) ( x < y - > x : y ) # d e f i n e m a x ( x , y ) ( x > y - > x : y ) i n t c o n t r o l p i d ; i n t r a d a r p i d ; i n i t { a t o m i c { r a d a r p i d = r u n r a d a r ( ) ; c o n t r o l p i d = r u n c o n t r o l ( ) ; r u n c a r ( ) ; } t i m e o u t - > c o n t r o l _ q l s e t ; p r i n t t ( " m o d e l s t a r t e d \ n " ) ; / * i f - : a t o m i c { r a d a r _ V . x > 2 0 0 0 & & r a d a r _ V . x < 3 7 0 0 - > c o n t r o l _ q l b r a k e s ; p r i n t t ( " s e n t b r a k e s \ n " ) } f i * / } P r o m e l a s p e c i fi c a t i o n s f o r t h e S m a r t C r u i s e m o d e l 1 c h a n e v q = [ 1 0 ] o t { m t y p e , i n t } ; 2 c h a n e v t 8 [ 1 0 ] o r { m t y p e , i n t } ; 3 t h a n w a i t - [ 1 0 ] o t { i n t , m t y p e } ; 4 m t y p e = { l o s t , a c k c a r , c a r s p e e d , t a r g e t , s e t , c a r v , u n s e t , n o n e , 5 a c k c o n t r o l , g e t s p e e d , d i s t , g e t v , b r a k e s , a c k r a d a r , o f t , o n , 6 s e t s p e e d } ; 7 t y p e d e t c o n t r o l - T { 8 i n t a ; 9 i n t x c o a s t ; 1 0 i n t s e t s p d ; 1 1 i n t v ; 1 2 i n t t m i n ; 1 3 i n t x 1 ; 1 4 i n t v c ; 1 5 i n t x 2 ; 1 6 i n t V t ; 1 7 i n t 2 1 ; 1 8 i n t 2 2 ; 1 9 i n t x h i t ; 2 0 i n t t i n c ; 2 7 1 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 O 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 8 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 i d l e : b o o l c l o s i n g ; c o n t r o l - T c o n t r o l - V ; c h a n c o n t r o l _ q = [ 5 ] o t { m t y p e } ; c h a n d i s t . p 1 = [ 5 ] o t { i n t } ; c h a n c a r s p e e d - p 1 = [ 5 ] o t { i n t } ; t y p e d e t r a d a r - T { i n t x ; b o o l t m o d e ; i n t v c ; b o o l b r k s ; i n t V t ; i n t v ; r a d a r _ T r a d a r _ V ; c h a n r a d a r _ q = [ 5 ] o t { m t y p e } ; c h a n c a r v - p 1 = [ 5 ] o t { i n t } ; t y p e d e t c a r J T { i n t r e a l v ; i n t s e t v ; } c a r ; T c a r . V ; c h a n c a r - q = [ 5 ] o t { m t y p e } ; c h a n g e t s p e e d - p 1 = [ 5 ] o t { i n t } ; c h a n s e t s p e e d _ p 1 = [ 5 ] o t { i n t } ; c h a n t = [ 1 ] o t { m t y p e } ; m t y p e = { t r e e } ; / * U s e r s p e c i t i e d d r i v e r t i l e * / t d e t i n e p c o n t r o l - q ? ? [ t a r g e t ] O d e t i n e q r a d a r - q ? ? [ a c k c o n t r o l ] [ r S d e t i n e p c o n t r o l - q ? ? [ b r a k e s ] s d e t i n e q c o n t r o l E c o n t r o l p i d J i d l e l ' / S d e t i n e m i n ( x , y ) ( x < y - > x : y ) S d e t i n e m a x ( x , y ) ( x > y - > x : y ) i n t c o n t r o l p i d ; i n t r a d a r p i d ; i n i t { a t o m i c { r a d a r p i d 8 r u n r a d a r ( ) ; c o n t r o l p i d I r u n c o n t r o l ( ) : r u n c a r ( ) ; } t i m e o u t - > c o n t r o l - g l s e t ; p r i n t t ( " m o d e l s t a r t e d " ) ; I t i t a t o m i c { r a d a r - V . x > 2 0 0 0 i t r a d a r _ V . x < 3 7 0 0 - > c o n t r o l - g l b r a k e s ; p r i n t t ( " s e n t b r a k e s " ) } 1 1 t / } p r o c t y p e c o n t r o l ( ) { a t o m i c { m t y p e m ; i n t d u m m y ; c o n t r o l - V . a I 1 5 ; c o n t r o l _ V . t m i n I 2 ; c o n t r o l _ V . t i n c = 1 ; / # I n i t s t a t e * / g o t o i d l e ; / ¢ S t a t e i d l e t / s k i p ; 2 7 2 8 9 9 0 i n - i d 1 e : 9 1 9 2 9 3 9 4 9 6 g o t i t : 9 6 9 7 i n _ g o t i t : 9 8 9 9 1 0 1 1 0 2 1 0 3 1 0 4 s e t i t 0 : 1 0 5 1 0 6 i n _ s e t i t 0 : 1 0 7 1 0 8 1 0 9 1 1 0 1 1 1 s e t i t 1 : 1 1 2 1 1 3 i n - s e t i t 1 : 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 m a i n t a i n : 1 1 9 1 2 0 i n _ m a i n t a i n : 1 2 1 1 2 2 1 2 3 1 2 4 1 2 5 1 2 6 a c k c a r 0 : 1 2 7 1 2 8 i n - a c k c a r 0 : 1 2 9 1 3 0 1 3 1 1 3 2 1 3 3 g e t x 1 : 1 3 4 1 3 5 i n . g e t x 1 : 1 3 6 1 3 7 1 3 8 1 3 9 1 4 0 1 4 1 1 4 2 1 4 3 1 4 4 1 4 5 g e t s p d : 1 4 6 1 4 7 i n _ g e t s p d : 1 4 8 1 4 9 1 5 0 1 5 1 1 5 2 1 5 3 1 5 4 1 5 5 1 5 6 c a l c : 1 5 7 p r i n t t ( " i n s t a t e c o n t r o l . i d l e " ) ; i t c o n t r o l - q ? s e t - > c a r _ q l g e t s p e e d ; g o t o g o t i t t i ; / * S t a t e g o t i t * / s k i p ; p r i n t t ( “ i n s t a t e c o n t r o l . g o t i t " ) ; i t c o n t r o l _ q ? c a r s p e e d - > c a r s p e e d _ p 1 ? c o n t r o l _ V . s e t s p d - > s e t i t O t i ; / * S t a t e s e t i t 0 a ] s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . s e t i t O " ) ; i t c o n t r o l - q ? a c k c a r - > r a d a r _ q l o n ; g o t o s e t i t 1 t i ; I t S t a t e s e t i t 1 a ] s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . s e t i t 1 " ) ; i t c o n t r o l _ q ? a c k r a d a r - > g o t o m a i n t a i n t i ; / * S t a t e m a i n t a i n t / s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . m a i n t a i n " ) ; i t c o n t r o l - q ? b r a k e s - > r a d a r - q ! o t t ; c a r - q ! u n s e t ; g o t o c a r o t t c o n t r o l - q ? t a r g e t - > r a d a r - q ! a c k c o n t r o l ; g o t o g e t x 1 t i ; / * S t a t e a c k c a r O I ' / s k i p ; p r i n t t ( “ i n s t a t e c o n t r o l . a c k c a r O " ) ; i t c o n t r o l _ q ? a c k c a r - > r a d a r _ q l a c k c o n t r o l ; g o t o m a i n t a i n t i ; / * S t a t e g e t x 1 # I s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . g e t x i " ) ; i t c o n t r o l . q ? b r a k e s - > r a d a r - q ! o t t ; c a r - q ! u n s e t ; g o t o c a r o t t c o n t r o l _ q ? l o s t - > a t o m i c { s e t s p e e d - p 1 ! c o n t r o l - V . s e t s p d ; c a r - q ! s e t s p e e d } ; g o t o a c k c a r O c o n t r o l _ q ? d i s t - > d i s t . p 1 ? c o n t r o l _ V . x 1 - > c o n t r o l - V . x c o a s t = 0 ; c o n t r o l _ V . c l o s i n g = 0 ; r a d a r - q ! a c k c o n t r o l ; g o t o g e t s p d t i ; I t S t a t e g e t s p d * / s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . g e t s p d " ) ; i t c o n t r o l . q ? b r a k e s - > r a d a r - q ! o t t ; c a r _ q ! u n s e t ; g o t o c a r o t t c o n t r o l - q ? l o s t - > a t o m i c { s e t s p e e d - p 1 ! c o n t r o l - V . s e t s p d ; c a r . q ! s e t s p e e d } ; g o t o a c k c a r O c o n t r o l . q ? d i s t - > d i s t . p 1 ? c o n t r o l _ V . x 2 - > c a r _ q l g e t s p e e d ; g o t o c a l c t i ; I t S t a t e c a l c * / s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . c a l c " ) ; 2 7 3 1 5 8 i n _ c a l c : 1 5 9 1 6 0 1 6 1 1 6 2 1 6 3 1 6 4 1 6 5 1 6 6 1 6 7 1 6 8 1 6 9 1 7 0 g e t x c : 1 7 1 1 7 2 i n - g e t x c : 1 7 3 1 7 4 1 7 5 1 7 6 1 7 7 1 7 8 1 7 9 1 8 0 1 8 1 1 8 2 1 8 3 1 8 4 1 8 5 1 8 6 a l a r m : 1 8 7 1 8 8 i n - a 1 a r m : 1 8 9 1 9 0 1 9 1 1 9 2 1 9 3 1 9 4 1 9 5 1 9 6 1 9 7 1 9 8 1 9 9 2 0 0 9 a r n : 2 0 1 2 0 2 i n . w a r n : 2 0 3 2 0 4 2 0 5 2 0 6 2 0 7 2 0 8 2 0 9 2 1 0 2 1 1 s e n d w a r n : 2 1 2 2 1 3 i n - s e n d w a r n : 2 1 4 2 1 5 2 1 6 2 1 7 2 1 8 c l o s e : 2 1 9 2 2 0 i n - c l o s e : 2 2 1 2 2 2 2 2 3 2 2 4 2 2 5 i t c o n t r o l - q ? b r a k e s - > r a d a r - q ! o t t ; c a r - q ! u n s e t ; g o t o c a r o t t c o n t r o l - q ? c a r s p e e d - > c a r s p e e d _ p 1 ? c o n t r o l - V . v c - > c o n t r o l - V . v 8 ( c o n t r o l - V . x 1 - c o n t r o l - V . x 2 ) / c o n t r o l - V . t i n c ; c o n t r o l _ V . v t 8 c o n t r o l - V . v c - c o n t r o l - V . v ; c o n t r o l _ V . z 2 8 c o n t r o l - V . v t s c o n t r o l - V . t m i n ; c o n t r o l - V . z 1 8 c o n t r o l - V . z 2 - c o n t r o l - V . z 2 / 1 0 ; c o n t r o l - V . x 1 8 c o n t r o l - V . x 2 ; p r i n t t ( " V 8 Z d , x 1 8 1 d , 2 1 = Z d z 2 = 2 d " , c o n t r o l - V . v , c o n t r o l - V . x 1 , c o n t r o l _ V . z 1 , c o n t r o l - V . z 2 ) ; g o t o g e t x c t i ; / * S t a t e g e t x c 8 / s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . g e t x c " ) ; i t 1 - > i t ! c o n t r o l - V . c l o s i n g - > c o n t r o l - V . x h i t 8 ( c o n t r o l _ V . v t c o n t r o l _ V . v ) / ( 2 * c o n t r o l - V . a ) ; c o n t r o l - V . x c o a s t 8 c o n t r o l - V . x h i t + c o n t r o l - V . z 2 + c o n t r o l - V . t i n c s c o n t r o l - V . v ; p r i n t t ( " x c o a s t = % d , x h i t = % d " , c o n t r o l - V . x c o a s t , c o n t r o l - V . x h i t ) ; g o t o a l a r m c o n t r o l - V . c l o s i n g - > g o t o a l a r m e l s e - > 0 t i t i ; I t S t a t e a l a r m * / s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . a 1 a r m " ) ; i t 1 - > i t c o n t r o l - V . x 1 > = c o n t r o l _ V . z 1 - > g o t o w a r n c o n t r o l - V . x 1 < c o n t r o l - V . 2 1 - > p r i n t t ( " H A R N I N G : T O O C L O S E " ) : ; p r i n t t ( " x 1 8 2 d , z 1 = % d “ , c o n t r o l - V . x 1 . c o n t r o l _ V . z l ) ; c a r . q ! u n s e t ; g o t o a l l o t t e l s e - > 0 t i t i ; I t S t a t e w a r n 8 / s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . w a r n " ) ; i t 1 - > i t c o n t r o l - V . x h i t < 8 c o n t r o l - V . x 1 - > g o t o c l o s e c o n t r o l - V . x h i t > c o n t r o l _ V . x 1 - > g o t o s e n d w a r n e l s e - > 0 t i t i ; [ 8 S t a t e s e n d w a r n # / s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . s e n d w a r n " ) : i t 1 - > p r i n t t ( " H A R N I N G : G O I N G T O H I T T A R G E T " ) ; ; g o t o c l o s e t i ; I t S t a t e c l o s e 8 / s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . c l o s e " ) ; i t 1 - > i t c o n t r o l _ V . c l o s i n g - > r a d a r _ q l a c k c o n t r o l ; g o t o g e t s p d ! c o n t r o l - V . c l o s i n g - > g o t o w a i t i n g e l s e - > 0 2 7 4 2 2 6 2 2 7 2 2 8 2 2 9 w a i t i n g : 2 3 0 2 3 1 i n - w a i t i n g : 2 3 2 2 3 3 2 3 4 2 3 5 2 3 6 2 3 7 2 3 8 2 3 9 2 4 0 2 4 1 2 4 2 2 4 3 a c : 2 4 4 2 4 5 i n - a c : 2 4 6 2 4 7 2 4 8 2 4 9 2 5 0 2 5 1 a l l o t t : 2 5 2 2 5 3 i n - a l l o t t : 2 5 4 2 5 5 2 5 6 2 5 7 2 5 8 2 5 9 c a r o t t : 2 6 0 2 6 1 i n - c a r o t t : 2 6 2 2 6 3 2 6 4 2 6 5 2 6 6 2 6 7 2 6 8 2 6 9 2 7 0 2 7 1 e x i t : 2 7 2 2 7 3 2 7 4 2 7 5 2 7 6 2 7 7 2 7 8 2 7 9 2 8 0 2 8 1 2 8 2 2 8 3 2 8 4 r - o t t : 2 8 5 2 8 6 i n . r - o f t : 2 8 7 2 8 8 2 8 9 2 9 0 2 9 1 2 9 2 r 0 : 2 9 3 t i t i ; / * S t a t e w a i t i n g 8 / s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . w a i t i n g " ) ; i t 1 - > i t c o n t r o l - V . x 1 > c o n t r o l _ V . x c o a s t - > r a d a r _ q l a c k c o n t r o l ; g o t o g e t s p d c o n t r o l _ V . x 1 < 8 c o n t r o l - V . x c o a s t - > c o n t r o l _ V . c l o s i n g 8 1 ; a t o m i c { s e t s p e e d - p 1 ! c o n t r o l - V . v t ; c a r _ q l s e t s p e e d } ; g o t o a c e l s e - > 0 t i t i ; / # S t a t e a c 8 / s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . a c ” ) : i t c o n t r o l - q ? b r a k e s - > r a d a r - q ! o t t ; c a r _ q ! u n s e t ; g o t o c a r o t t c o n t r o l . q ? a c k c a r - > r a d a r . q ! a c k c o n t r o l ; g o t o g e t s p d t i ; / 8 S t a t e a l l o t t 8 / s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . a l l o t t " ) ; i t c o n t r o l - q ? b r a k e s - > g o t o a l l o t t c o n t r o l _ q ? a c k c a r — > r a d a r _ q l o t t ; g o t o i d l e t i ; I t S t a t e c a r o t t 8 / s k i p ; p r i n t t ( " i n s t a t e c o n t r o l . c a r o t t " ) ; i t " c o n t r o l . q ? b r a k e s - > g o t o c a r o t t c o n t r o l - q ? l o s t - > g o t o c a r o t t c o n t r o l _ q ? d i s t - > d i s t . p 1 ? c o n t r o l - V . x 1 ~ > g o t o c a r o t t c o n t r o l . q ? a c k c a r - > g o t o i d l e c o n t r o l - q ? c a r s p e e d - > c a r s p e e d - p 1 ? c o n t r o l - V . v c - > g o t o c a r o t t c o n t r o l - q ? t a r g e t - > g o t o c a r o t t t i ; s k i p } } p r o c t y p e r a d a r ( ) { a t o m i c { m t y p e m ; i n t d u m m y ; r a d a r 4 V . x 8 4 5 0 0 ; r a d a r - V . v t 8 9 0 0 ; / 8 I n i t s t a t e 8 / g o t o r - o t t ; / * S t a t e r - o t t 8 / s k i p ; p r i n t t ( " i n s t a t e r a d a r . r _ o t t " ) ; i t r a d a r ; q ? o t t - > g o t o r - o t t r a d a r . q ? o n - > c o n t r o l _ q l a c k r a d a r ; g o t o r 0 t i ; I s S t a t e r 0 I * / s k i p ; p r i n t t ( " i n s t a t e r a d a r . r O " ) ; 2 7 5 2 9 4 i n . r 0 : 2 9 5 2 9 6 2 9 7 2 9 8 2 9 9 r 1 : 3 0 0 3 0 1 i n . r 1 : 3 0 2 3 0 3 3 0 4 3 0 5 3 0 6 3 0 7 3 0 8 r 3 : 3 0 9 3 1 0 i n . r 3 : 3 1 1 3 1 2 3 1 3 3 1 4 3 1 5 3 1 6 3 1 7 3 1 8 3 1 9 3 2 0 3 2 1 3 2 2 3 2 3 3 2 4 3 2 5 3 2 6 r 4 : 3 2 7 3 2 S i n . r 4 : 3 2 9 3 3 0 3 3 1 3 3 2 3 3 3 3 3 4 3 3 5 r - a c k : 3 3 6 3 3 7 i n . r . a c k : 3 3 8 3 3 9 3 4 0 3 4 1 3 4 2 e x i t : 3 4 3 3 4 4 3 4 5 3 4 6 3 4 7 3 4 8 3 4 9 3 5 0 3 5 1 3 5 2 3 5 3 3 5 4 3 5 5 3 5 6 t o - u p d a t e x : 3 5 7 t o _ u p d a t e s p d : 3 5 8 t o - d o g e t s p d : 3 5 9 t o - d o u n s e t : 3 6 0 3 6 1 i t 1 - > c a r _ q l g e t v ; g o t o r 1 t i ; / * S t a t e r 1 8 / s k i p ; p r i n t t ( " i n s t a t e r a d a r . r 1 " ) ; i t r a d a r . q ? c a r v - > c a r v - p 1 ? r a d a r - V . v c - > r a d a r _ V . v 8 r a d a r _ V . v c - r a d a r _ V . v t ; r a d a r _ V . x 8 r a d a r . V . x - r a d a r - V . v ; p r i n t t ( ” x i s Z d " , r a d a r - V . x ) ; g o t o r 3 t i ; / 8 S t a t e r 3 * / s k i p ; p r i n t t ( " i n s t a t e r a d a r . r 3 " ) ; i t 1 - > i t ! r a d a r - V . t m o d e 2 2 r a d a r _ V . x < 8 4 0 0 0 - > r a d a r - V . t m o d e 8 1 ; p r i n t t ( " F i r i n g t a r g e t “ ) ; ; c o n t r o l - g l t a r g e t ; g o t o r 4 ! r a d a r _ V . t m o d e I t r a d a r _ V . x > 4 0 0 0 - > g o t o r 0 r a d a r - V . t m o d e I t r a d a r - V . x > 4 0 0 0 - > c o n t r o l - q ! l o s t ; g o t o r . a c k r a d a r _ V . t m o d e t 2 r a d a r . V . x < 8 4 0 0 0 - > p r i n t t ( " S e n d i n g x 8 X d t o c o n t r o l " , r a d a r - V . x ) ; a t o m i c { d i s t - p 1 ! r a d a r _ V . x ; c o n t r o l _ q l d i s t } ; g o t o r _ a c k e l s e - > 0 t i t i ; I t S t a t e r 4 8 / s k i p ; p r i n t t ( " i n s t a t e r a d a r . r 4 " ) ; i t r a d a r ; q ? a c k c o n t r o l - > a t o m i c { d i s t - p 1 ! r a d a r - V . x ; c o n t r o l _ q l d i s t } ; g o t o r r a c k r a d a r . q ? o t t - > r a d a r _ V . t m o d e 8 0 ; g o t o r - o t t t i ; / * S t a t e r - a c k 8 / s k i p ; p r i n t t ( " i n s t a t e r a d a r . r - a c k " ) ; i t r a d a r ; q ? a c k c o n t r o l - > g o t o r 0 r a d a r ; q ? o t t - > r a d a r - V . t m o d e 8 0 ; g o t o r - o t f t i ; s k i p } } p r o c t y p e c a r ( ) { a t o m i c { m t y p e u p d a t e x - c o d e , u p d a t e s p d _ c o d e , d o g e t s p d - c o d e , d o u n s e t _ c o d e ; i n t u p d a t e x . p i d , u p d a t e s p d . p i d , d o g e t s p d - p i d , d o u n s e t - p i d ; m t y p e m ; i n t d u m m y ; c a r - V . r e a l v 8 1 1 0 0 ; c a r - V . s e t v 8 1 1 0 0 ; / 8 I n i t s t a t e 8 / g o t o t o . u p d a t e x ; a t o m i c { u p d a t e x _ p i d 8 r u n u p d a t e x ( n o n e ) ; 2 7 6 3 6 2 3 6 3 3 6 4 3 6 5 3 6 6 3 6 7 3 6 8 3 6 9 3 7 0 3 7 1 e x i t : 3 7 2 3 7 3 3 7 4 3 7 5 3 7 6 3 7 7 3 7 8 3 7 9 3 8 0 3 8 1 c a r 1 : 3 8 2 3 8 3 i n - c a r 1 : 3 8 4 3 8 5 3 8 6 3 8 7 3 8 8 3 8 9 3 9 0 3 9 1 3 9 2 3 9 3 3 9 4 3 9 5 3 9 6 3 9 7 3 9 8 3 9 9 4 0 0 4 0 1 4 0 2 e x i t : 4 0 3 4 0 4 4 0 5 4 0 6 4 0 7 4 0 8 4 0 9 4 1 0 4 1 1 4 1 2 4 1 3 c a r 3 : 4 1 4 4 1 5 i n - c a r 3 : 4 1 6 4 1 7 4 1 8 4 1 9 4 2 0 4 2 1 e x i t : 4 2 2 4 2 3 4 2 4 4 2 5 4 2 6 4 2 7 4 2 8 4 2 9 u p d a t e s p d . p i d 8 r u n u p d a t e s p a n o n e ) ; d o g e t s p d - p i d 8 r u n d o g e t s p d ( n o n e ) ; d o u n s e t - p i d 8 r u n d o u n s e t ( n o n e ) ; w a i t ? ? e v a l ( u p d a t e x - p i d ) , u p d a t e x - c o d e ; w a i t ? ? e v a l ( u p d a t e s p d - p i d ) , u p d a t e s p d - c o d e ; w a i t ? ? e v a l ( d o g e t s p d - p i d ) , d o g e t s p d - c o d e ; w a i t ? ? e v a l ( d o u n s e t - p i d ) , d o u n s e t _ c o d e ; a s s e r t ( 0 ) ; s k i p } } p r o c t y p e u p d a t e x ( m t y p e s t a t e ) { a t o m i c { m t y p e m ; i n t d u m m y ; / 8 I n i t s t a t e 8 / g o t o c a r 1 ; / # S t a t e c a r 1 I * / s k i p ; p r i n t t ( " i n s t a t e c a r . c a r 1 " ) ; i t c a r _ q ? g e t v - > i t c a r - V . r e a l v < c a r - V . s e t v - > c a r . V . r e a l v 8 c a r . V . r e a 1 v + 1 5 ; c a r - V . r e a l v 8 m i n ( c a r - V . r e a l v , c a r _ V . s e t v ) ; p r i n t t ( " r e a I V 8 X d s e t v = % d " , c a r _ V . r e a l v , c a r . V . s e t v ) ; a t o m i c { c a r v - p 1 ! c a r - V . r e a l v ; r a d a r _ q l c a r v } ; g o t o c a r 1 c a r - V . r e a l v > c a r - V . s e t v - > c a r . V . r e a l v 8 c a r - V . r e a l v - 1 5 ; c a r _ V . r e a l v 8 m a x ( c a r _ V . r e a l v , c a r ; V . s e t v ) ; p r i n t t ( ” r e a l V 8 Z d s e t v = % d " , c a r - V . r e a l v , c a r . V . s e t v ) ; a t o m i c { c a r v - p 1 ! c a r - V . r e a l v ; r a d a r - q ! c a r v } ; g o t o c a r 1 c a r - V . r e a l v = = c a r - V . s e t v - > p r i n t t ( " r e a l V 8 Z d s e t v = Z d " , c a r - V . r e a l v , c a r _ V . s e t v ) ; a t o m i c { c a r v - p 1 ! c a r - V . r e a l v ; r a d a r . q ! c a r v } ; g o t o c a r 1 e l s e - > g o t o i n - c a r 1 t i t i ; s k i p } } p r o c t y p e u p d a t e s p d ( m t y p e s t a t e ) { a t o m i c { m t y p e m ; i n t d u m m y ; / 8 I n i t s t a t e 8 / g o t o c a r 3 ; / * S t a t e c a r 3 8 / s k i p ; p r i n t t ( " i n s t a t e c a r . c a r 3 " ) ; i t c a r t q ? s e t s p e e d - > s e t s p e e d - p 1 ? c a r _ V . s e t v - > p r i n t t ( “ c a r s p e e d s e t t o % d " , c a r - V . s e t v ) ; c o n t r o l _ q l a c k c a r ; g o t o c a r 3 t i ; s k i p } } p r o c t y p e d o g e t s p d ( m t y p e s t a t e ) { a t o m i c { m t y p e m ; i n t d u m m y ; / * I n i t s t a t e 8 / 2 7 7 4 3 0 4 3 1 4 3 2 c a r 4 : 4 3 3 4 3 4 i n - c a r 4 : 4 3 5 4 3 6 4 3 7 4 3 8 4 3 9 e x i t : 4 4 0 4 4 1 4 4 2 4 4 3 4 4 4 4 4 5 4 4 6 4 4 7 4 4 8 4 4 9 4 5 0 c a r 5 : 4 5 1 4 5 2 i n _ c a r 5 : 4 5 3 4 5 4 4 5 5 4 5 6 e x i t : 4 5 7 4 5 8 4 5 9 4 6 0 4 6 1 4 6 2 4 6 3 4 6 4 4 6 5 4 6 6 4 6 7 4 6 8 4 6 9 4 7 0 4 7 1 4 7 2 4 7 3 4 7 4 4 7 5 4 7 6 4 7 7 4 7 8 4 7 9 4 8 0 4 8 1 e x i t : 4 8 2 g o t o c a r 4 ; I t S t a t e c a r 4 * / s k i p ; p r i n t t ( " i n s t a t e c a r . c a r 4 " ) ; i f c a r . q ? g e t s p e e d - > a t o m i c { c a r s p e e d - p 1 ! c a r - V . r e a l v ; c o n t r o l _ q l c a r s p e e d } ; g o t o c a r 4 t i ; s k i p } } p r o c t y p e d o u n s e t ( m t y p e s t a t e ) { a t o m i c { m t y p e m ; i n t d u m m y ; / 8 I n i t s t a t e 8 / g o t o c a r 5 ; I t S t a t e c a r 5 ‘ / s k i p ; p r i n t t ( " i n s t a t e c a r . c a r 5 " ) ; i t c a r - q ? u n s e t - > c o n t r o l - g l a c k c a r ; g o t o c a r 5 t i ; s k i p } } I t T h i s i s t h e u n i v e r s a l e v e n t d i s p a t c h e r r o u t i n e 8 / p r o c t y p e e v e n t ( m t y p e m s g ) { m t y p e t y p e ; i n t p i d ; a t o m i c { d o e v q ? ? [ e v a l ( m s g ) , p i d ] - > e v q ? ? e v a l ( m s g ) , p i d ; e v t ! m s g , p i d ; d o a s i f e v q ? ? [ t y p e , e v a l ( p i d ) ] - > e v q ? ? t y p e , e v a l ( p i d ) : : e l s e b r e a k ; t i o d : : e l s e - > b r e a k o d } s k i p 2 7 8 A p p e n d i x D Y a c c G r a m m a r f o r t h e H y d r a L a n g u a g e Y a c c [ 6 9 ] , s t a n d i n g f o r “ Y e t a n o t h e r c o m p i l e r c o m p i l e r ” , i s a t o o l t o h e l p d e s i g n e r s w r i t e c o m p i l e r s . Y a c c t a k e s a s i n p u t a g r a m m a r r e p r e s e n t i n g t h e l a n g u a g e t o b e p a r s e d a n d o u t p u t s r o u t i n e s s u i t a b l e f o r i n c l u s i o n i n c o m p i l e r - l i k e p r o g r a m s . H y d r a u s e s Y a c c t o p a r s e t h e H y d r a l a n g u a g e . T h i s a p p e n d i x c o n t a i n s t h e g r a m m a r f o r t h e H y d r a l a n g u a g e i n Y a c c f o r m . T o k e n s a r e s t r i n g s p r e - p r o c e s s e d b y t h e l e x i c a l a n a l y z e r f o r t h e p a r s e r . T h e t o k e n s a r e d e fi n e d a s f o l l o w s : M O D E L : T h e w o r d “ M o d e l ” I D : A n y s t r i n g i d e n t i f e r s t a r t i n g w i t h a l e t t e r . 0 N U M : A n u m b e r Q S T R : A d o u b l e q u o t e d s t r i n g i n c l u d i n g i t s c o n t e n t s . O B J E C T : T h e w o r d “ O b j e c t ” A S S O C : T h e w o r d “ A s s o c i a t i o n ” 2 7 9 e T Y P E : T h e w o r d “ T y p e ” 0 C C S T A T E : T h e w o r d “ C o n c u r r e n t S t a t e ” e C S T A T E : T h e w o r d “ C o m p o s i t e S t a t e ” e T O : T h e w o r d “ t o ” e E N U M : T h e w o r d “ E n u m ” e D R I V E R F I L E : T h e w o r d “ D r i v e r F i l e ” 0 S T A T E : T h e w o r d “ S t a t e ” e T R A N S : T h e w o r d “ T r a n s i t i o n ” e I N I T : T h e w o r d “ I n i t i a l ” e J O I N : T h e w o r d “ J o i n ” e H I S T O R Y : T h e w o r d “ H i s t o r y ” 0 F R O M : T h e w o r d “ f r o m ” e I N S T V A R : T h e w o r d “ I n s t a n c e V a r ” o S I G N A L : T h e w o r d “ S i g n a l ” Z t o k e n M O D E L , I D , N U M , Q S T R , 0 B J E C T , A S S O C , T Y P E , C C S T A T E , C S T A T E , T 0 , E N U M X t o k e n D R I V E R F I L E , S T A T E , T R A N S , I N I T , F O R M A L , J O I N , H I S T O R Y , F R O M , I N S T V A R X t o k e n S I G N A L X X m o d e l : M O D E L I D ’ { ’ m o d e l b o d y ’ } ’ m o d e l b o d y : m o d e l s t m t I m o d e l b o d y m o d e l s t m t m o d e l s t m t : E N U M I D l i s t ’ ; ’ l D R I V E R F I L E I D ’ ; ’ I O B J E C T I D ’ { ’ o b j e c t b o d y ’ } ’ o b j e c t b o d y : o b j e c t s t m t l o b j e c t b o d y o b j e c t s t m t o b j e c t s t m t : s i g n a l I c s t a t e l c c s t a t e | i n i t I j o i n I h i s t o r y I s t a t e | i n s t v a r s i g n a l : S I G N A L I D ’ ; ’ I S I G N A L I D ’ ( ’ I D ’ ) ’ ’ ; ’ 2 8 0 a s s o c i a t i o n : A S S O C I D ’ ; ’ l A S S O C I D ’ ( ’ I D I D ’ ) ’ ’ ; ’ c c s t a t e b o d y : c c s t a t e s t m t l c c s t a t e b o d y c c s t a t e s t m t c c s t a t e s t m t : s t a t e I c s t a t e ; c s t a t e b o d y : c s t a t e s t m t I c s t a t e b o d y c s t a t e s t m t i e s t a t e : C S T A T E I D ’ { ’ c s t a t e b o d y ’ } ’ i c s t a t e s t m t : s t a t e I i n i t | c s t a t e I j o i n l h i s t o r y | c c s t a t e s t a t e : S T A T E I D ’ { ’ s t a t e b o d y ’ } ’ s t a t e b o d y : s t a t e s t m t I s t a t e b o d y s t a t e s t m t s t a t e s t m t : t r a n s i t i o n i n i t : ; I N I T I D ’ ; ’ h i s t o r y z ; H I S T O R Y I D ’ ; ’ j o i n : J O I N I D F R O M I D T O I D ’ ; ’ t r a n s i t i o n : T R A N S q s t r l i s t T O I D ’ ; ’ I T R A N S T 0 I D ’ ; ’ c c s t a t e : C C S T A T E I D ’ { ’ c c s t a t e b o d y ’ } ’ i n s t v a r : I N S T V A R I D I D ’ ; ’ I I N S T V A R I D I D ’ : ’ ’ = ’ n u m i d ’ ; ’ l i s t : ’ ( ’ a l i s t ’ ) ’ a l i s t : I D I a l i s t ’ , ’ I D n u m i d : I D I N U M q s t r l i s t : Q S T R l q s t r l i s t ’ , ’ Q S T R 2 8 1 A p p e n d i x E U M L t o V H D L M a p p i n g R u l e s T h i s a p p e n d i x p r o v i d e s a c o n c i s e l i s t i n g o f t h e U M L t o V H D L m a p p i n g r u l e s . E x p l a n a t i o n a n d s a m p l e a p p l i c a t i o n o f t h e r u l e s i s c o n t a i n e d i n C h a p t e r 5 . 2 8 2 R u l e V H D L l F o r m a l i z e e a c h o b j e c t o f c l a s s C L A S S a s a n e n t i t y / a r c h i t e c t u r e p a i r a c c o r d i n g t h e f o l l o w i n g t e m p l a t e : e n t i t y o b j _ C L A S S i s p o r t ( s t a t e : i n o u t r s _ s t ; s i g _ 1 : i n o u t s i g _ 1 t y p e ; s i g _ n i n o u t s i g m t y p e ; i n s t a t e : o u t s t ; i n s _ s t a t e _ 1 : i n s t ; i n s _ s t a t e _ n : i n s t ) ; a n d e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f o b j _ C L A S S i s b e g i n i n s t a t e < = s t a t e w h e n s t a t e / = s t ’ ( n o n e ) ; — S t a t e m e n t s f o r s t a t e s a n d c o m p o s i t e s t a t e s g o h e r e a n d a b t r a c t ; s i g - 1 t h r o u g h s i g _ n a r e i n t e r - o b j e c t s i g n a l s . i n s t a t e i s u s e d f o r t h e I N ( ) s t a t e p r e d i c a t e t o c o n v e y t o o t h e r e n t i t y a r c h i t e c t u r e p a i r s ( t h a t r e p r e s e n t v a r i o u s o t h e r m a p p e d t e m p l a t e s ) t h e s i m p l e s t a t e s t h i s e n t i t y / a r c h i t e c t u r e i s i n . i n s - s t a t e _ 1 t h r o u g h i n s _ s t a t e _ n a r e i n c o m i n g V H D L s i g n a l s t h a t s i m p l e s t a t e s o f t h i s o b j e c t c a n t e s t f o r t h e I N ( ) p r e d i c a t e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e s a t i s f i e s t h e m a p p i n g o f C l a s s t o C l a s s . T h e s o u r c e a n d t a r g e t r e l a t i o n s h i p s a r e p r e s e r v e d b y i n c l u d i n g s i g n a l s i n t h e V H D L c l a s s d e f i n i t i o n . E n d o f R u l e V H D L l . 2 8 3 R u l e V H D L 2 C r e a t e a c l a s s p a c k a g e a n d p a c k a g e b o d y n a m e d p k _ c l a s s n a m e t o c o n t a i n d e c l a r a t i o n s f o r i n s t a n c e v a r i a b l e s , t h e l i s t o f s t a t e n a m e s , a n d t h e r e s o l u t i o n f u n c t i o n r e q u i r e d f o r t h e b u s s i g n a l s t a t e ( i n t r o d u c e d i n R u l e V H D L 5 ) . T h e p a c k a g e a n d p a c k a g e b o d y a r e c o n s t r u c t e d a c c o r d i n g t o t h e f o l l o w i n g t e m p l a t e : 1 p a c k a g e p k _ C L A S S i s 2 - S t a t e s i g n a l n a m e s 3 t y p e s t i s ( n o n e , s t a t e _ 1 , , s t a t e _ n ) ; 4 — — A n a r r a y r e q u i r e d f o r t h e r e s o l u t i o n f u n c t i o n 5 t y p e s t . a i s a r r a y ( n a t u r a l r a n g e < > ) o f s t ; 6 — I n s t a n c e v a r i a b l e s 7 s h a r e d v a r i a b l e v a r _ 1 < t y p e > ; 8 9 1 0 . 1 1 s h a r e d v a r i a b l e v a r _ n < t y p e > ; 1 2 e n d p a c k a g e p k . C L A S S ; 1 3 - R e s o l u t i o n f u n c t i o n f o r s t a t e b u s 1 4 p a c k a g e b o d y p k . C L A S S i s 1 5 f u n c t i o n r e s o l v e _ s t 1 6 ( v : i n s t . a ) r e t u r n s t i s 1 7 v a r i a b l e i : n a t u r a l ; 1 8 b e g i n 1 9 f o r i i n v ’ r a n g e l o o p 2 0 i f v ( i ) / = s t ’ ( n o n e ) t h e n 2 1 r e t u r n v ( i ) ; 2 2 e n d i f ; 2 3 e n d l o o p ; 2 4 r e t u r n s t ’ ( n o n e ) ; 2 5 e n d f u n c t i o n ; 2 6 e n d p a c k a g e b o d y ; W h e r e C L A S S i s t h e n a m e o f t h e c l a s s , a n d v a r _ i i s a n i n s t a n c e v a r i a b l e . P r e c e d e e a c h e n t i t y / a r c h i t e c t u r e w i t h a u s e w o r k . p k - C L A S S . a l l s t a t e m e n t . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e m a p p i n g o f I n s t a n c e V a r i a b l e t o I n s t a n c e V a r i a b l e . T h e a g g r e g a t i o n i s p r e s e r v e d b y i n c l u d i n g t h e p a c k a g e a b o v e t h e d e f i n i t i o n o f t h e c l a s s , t h u s c a u s i n g i n c l u s i o n o f t h e i n s t a n c e v a r i a b l e s i n t h e c l a s s . E n d o f R u l e V H D L 2 . 2 8 4 R u l e V H D L 3 C l a s s s p e c i a l i z a t i o n i s f o r m a l i z e d a s d u p l i c a t i o n o f t h e p a r e n t c l a s s c o m p o n e n t s , w i t h a p p r o p r i a t e r e n a m i n g o f t h e c o m p o n e n t s t h a t a r e n a m e d b y t h e c l a s s , f o l l o w e d b y m o d - i f i c a t i o n , a s r e q u i r e d . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e p r e s e r v e s t h e m a p p i n g o f G e n e r a l i z a t i o n t o G e n e r a l i z a t i o n . E n d o f R u l e V H D L 3 . R u l e V H D L 4 C l a s s a g g r e g a t i o n i s f o r m a l i z e d a s f o l l o w s : I n t h e c o l l e c t i o n a r c h i t e c t u r e b o d y , i n s t a n - t i a t e a s m a n y i n s t a n c e s o f t h e p a r t e n t i t y a s r e q u i r e d b y t h e i n s t a n t i a t i o n o f a p a r t i c u l a r m o d e l . T h e p o r t m a p o n t h e i n s t a n t i a t i o n m u s t m a t c h t h e p o r t d e c l a r a t i o n f o r t h e s u b c l a s s e n t i t y . A u n i q u e l a b e l m u s t b e p r o v i d e d o n e a c h e n t i t y i n s t a n t i a t i o n s t a t e m e n t . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p i l e s w i t h t h e m a p p i n g o f A g g r e g a t i o n t o A g g r e g a t i o n . E n d o f R u l e V H D L 4 . 2 8 5 R u l e V H D L 5 F o r s t a t e n a m e d s t a t e n a m e , e v e n t s E 1 , E 2 . , E n g u a r d e d b y g u a r d s G D l . G D g , , G D " , e v e n t l e s s t r a n s i t i o n s g u a r d e d b y g u a r d s E G D I , E G D 2 , , E G D n , a n d d e s t i n a t i o n s t a t e s n e x t s t a t e l , n e x t s t a t e g . , n e x t s t a t e n , f o r m a l i z e e a c h s i m p l e s t a t e a s a p r o c e s s a c c o r d i n g t o t h e f o l l o w i n g t e m p l a t e : s . s t a t e n a m e : p r o c e s s b e g i n w a i t u n t i l s t a t e = $ t a t e n a m e ; { e n t r y : p r o c e s s i n g s t a t e m e n t s } i f E 0 0 1 t h e n s t a t e < = n e x t s t a t e l ; e l s i f E G D 2 t h e n s t a t e < = n e m t s t a t e g ; e l s i f E G ’ D n t h e n s t a t e < = n e m t s t a t e n ; e n d i f l o o p w a i t u n t i l E 1 o r E 2 o r E n ; i f E 1 a n d G D l t h e n s t a t e < = n e x t s t a t e l , n u l l a f t e r 1 f s ; { O t h e r t r a n s i t i o n a c t i o n s } e x i t ; e l s i f E 2 a n d G D 2 t h e n s t a t e < = n e x t s t a t e g , n u l l a f t e r 1 f s ; { O t h e r t r a n s i t i o n a c t i o n s } e x i t ; e n d i f ; e n d l o o p : ( e x i t : p r o c e s s i n g s t a t e m e n t s } e n d p r o c e s s ; I f t h e r e a r e n o e v e n t - l e s s t r a n s i t i o n s f r o m t h i s s t a t e t h e n t h e i f c h e c k i n g g u a r d s E G D ; a b o v e t h e l o o p c a n b e e l i m i n a t e d . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e d e f i n e s t h e S t a t e P r o c e s s t e m p l a t e , w h i c h i s t h e h o m o m o r p h i c t a r g e t o f t h e S i m - p l e S t a t e c l a s s . T h e S t a t e P r o c e s s i s a S t a t e a n d S t a t e V e r t e x . S t a t e P r o c e s s h a s r e l a t i o n s h i p s w i t h A c t i o n S e q u e n c e a n d T r a n s i t i o n ( t h r o u g h t h e S t a t e V e r t e x c l a s s ) . T h e s e r e l a t i o n s h i p s a r e p r e s e r v e d t h r o u g h t h e c o n s t r u c t s i f E , f o r e v e n t s a n d g u a r d s . A c t i o n s e q u e n c e s a r e p r e s e r v e d w i t h i n t h e s a m e i f s t a t e m e n t . E n d o f R u l e V H D L 5 . 2 8 6 R u l e V H D L 6 F o r m a l i z e e a c h s i n g l e t h r e a d e d c o m p o s i t e s t a t e n a m e d C S T A T E a c c o r d i n g t o t h e f o l l o w i n g t e m p l a t e : e n t i t y a s s u r e i s p o r t ( s t a t e : i n o u t r s _ s t ; s i g - 1 : i n o u t < t y p e > ; s i g _ n : i n o u t < t y p e > ; l s i g - 1 : i n o u t < t y p e > ; l s i g _ n : i n o u t ( t y p e ) ; i n s . C S l : i n s t ; i n s _ C S 2 : i n s t ; i n s t a t e : o u t s t ) ; e n d e n t i t y ; a r c h i t e c t u r e a b s t r a c t o f c s _ C S T A T E i s b e g i n — t h e b o d y o f t h e c o m p o s i t e s t a t e f o l l o w s . C o n t e n t s m a y — i n c l u d e s i m p l e s t a t e s , c o m p o s i t e s t a t e s , c o n c u r r e n t c o m p o s i t e — s t a t e s , a n d p s e u d o - s t a t e s . e n d a b s t r a c t ; w h e r e s t a t e i s t h e s t a t e s i g n a l p e r R u l e V H D L 5 , s i g - i a r e t h e i n t e r - o b j e c t s i g n a l s p e r R u l e V H D L 1 , l s i g . i a r e i n t r a - o b j e c t s i g n a l s , i n s _ C S _ i a r e t h e s i g n a l s f o r t h e I N ( ) p r e d i c a t e , a n d i n s t a t e i s t h e s i g n a l c o n v e y i n g t h i s e n t i t y / a r c h i t e c t u r e ' s c u r r e n t s t a t e t o t h e r e s t o f t h e o b j e c t . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e m a p p i n g C o m p o s i t e S t a t e t o E a t / A r c h . T h e t e m p l a t e d e f i n e d r e s p o n d s t o s t a t e t r a n s i t i o n s a n d t h e r e f o r e i s a S t a t e a n d a S t a t e V e r t e x . O t h e r S t a t e V e r t e x c o m p o n e n t s a r e i n c l u d e d b e l o w t h e b e g i n s t a t e m e n t i n t h e t e m p l a t e i n c o m p l i a n c e w i t h t h e s u b s t a t e a g g r e g a t i o n . T h e s i g n a l d e c l a r a t i o n s p r o v i d e t h e l i n k s f o r i n c l u d e d S t a t e P r o c e s s e s , w h i c h a r e S t a t e V e r t i c e s . E n d o f R u l e V H D L 6 . 2 8 7 R u l e V H D L 7 I n t h e p a r e n t c o m p o s i t e s t a t e o r o b j e c t , i n s t a n t i a t e t h e c o m p o s i t e s t a t e a s f o l l o w s : 1 1 : e n t i t y c s _ C S T A T E ( a b s t r a c t ) p o r t m a p ( s t a t e = > s t a t e , s i g _ 1 = > s i g _ 1 , . . . , s i g _ n = > s i g _ n , l s i g _ 1 = > l s i g - 1 , . . . , l s i g _ n = > l s i g _ n , i n s _ C S 1 = > i n s _ C 8 1 , i n s _ C S T A T E = > i n s t a t e , i n s - C S _ n = > i n s _ C S _ n ) ; w h e r e t h e s i g n a l s a r e a s i n R u l e V H D L 6 . N o t e t h a t s i g n a l i n _ C S T A T E c o n n e c t s t o t h e c h i l d i n s t a t e s i g n a l . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e s s p e c i f i e s h o w t o s a t i s f y t h e o u t g o i n g a n d i n c o m i n g r e l a t i o n s h i p s b e t w e e n S t a t e V e r t e x a n d T r a n s i t i o n a n d t h e S t a t e V e r t e x i s a c o m p o s i t e s t a t e . E n d o f R u l e V H D L 7 . 2 8 8 R u l e V H D L 8 G i v e n c o m p o s i t e c o n c u r r e n t c h i l d s t a t e s c h i l d l , c h i l d g , . . . , c h i l d n , s e p a r a t e d b y d o t t e d l i n e s i n t h e c o m p o s i t e s t a t e , i n s t a n t i a t e e a c h c o m p o n e n t a s a c h i l d c o m p o s i t e s t a t e . E a c h c h i l d s t a t e s i g n a l i s c o n n e c t e d t o a u n i q u e s t a t e s i g n a l ( i n s t e a d o f s t a t e i n t h e p a r e n t ) i n t h e p o r t m a p . A l l c o n c u r r e n t s t a t e s a r e s t a r t e d i n p a r a l l e l b y a s s i g n i n g t h e i n i t i a l c o n c u r r e n t s t a t e n a m e t o t h e u n i q u e s i g n a l c r e a t e d . U s e t h e f o l l o w i n g t e m p l a t e f o r i n s t a n t i a t i n g t h e c h i l d c o n c u r r e n t s t a t e s : a r c h i t e c t u r e a b s t r a c t o f c s _ s t a t e i s s i g n a l s t a t e : r s _ s t ; s i g n a l s s - c h i l d 1 : r s _ s t ; s i g n a l s s _ c h i l d 2 : r s _ s t ; s i g n a l s s _ c h i l d n : r s _ s t ; b e g i n l 1 : e n t i t y c s _ c h i l d 1 ( a b s t r a c t ) p o r t m a p ( s t a t e = > s s . c h i l d 1 , ) l 2 : e n t i t y c s _ c h i l d 2 ( a b s t r a c t ) p o r t m a p ( s t a t e = > s s - c h i l d 2 , ) I n : e n t i t y c s _ c h i l d n ( a b s t r a c t ) p o r t m a p ( s t a t e = > s s _ c h i l d n , ) s s - c h i l d 1 < = c h i l d 1 , n u l l a f t e r 1 f s w h e n s t a t e = c h i l d 1 o r s t a t e = c h i l d 2 o r s t a t e = c h i l d n s s - c h i l d 2 < = c h i l d 2 , n u l l a f t e r 1 f s w h e n s t a t e = c h i l d 1 o r s t a t e = c h i l d 2 o r s t a t e = c h i l d n s s . c h i 1 d n < = C h i l d m n u l l a f t e r 1 f s w h e n s t a t e = c h i l d 1 o r s t a t e = c h i 1 d 2 o r s t a t e = c h i l d n w h e r e s s . c h i l d , - i s t h e t e m p o r a r y s t a t e s i g n a l s h o l d i n g c s _ c h i l d ; ' s t h r e a d . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e C o n c u r r e n t C o m p o s i t e t o C o n c u r r e n t C o m p o s i t e c l a s s m a p p i n g . T h e r u l e f u r t h e r d e f i n e s h o w t h e o u t g o i n g a n g i n c o m i n g r e l a t i o n s h i p s o n c l a s s S t a t e V e r t e x a r e m a i n t a i n e d . E n d o f R u l e V H D L 8 . 2 8 9 R u l e V H D L 9 I n t h e f o l l o w i n g t e m p l a t e c s n a m e n a r e t h e n a m e s o f t h e c o n c u r r e n t c o m p o s i t e s t a t e c o m p o n e n t s , j o i n i s t h e n a m e o f t h e j o i n s t a t e , a n d n e w s t a t e i s t h e n a m e o f t h e s t a t e e n t e r e d a f t e r t h e j o i n O p e r a t i o n . A j o i n p s e u d o s t a t e i s f o r m a l i z e d w i t h o n e c o n c u r r e n t s i g n a l a s s i g n m e n t p e r i n b o u n d t r a n s i t i o n a r c a n d a j o i n p r o c e s s . T h e s i g n a l a s s i g n m e n t s a n d t h e p r o c e s s t a k e t h e f o r m : j o i n . c s n a m e 1 < = j o i n w h e n s s - c s n a m e 1 = j o i n ; j o i n x s n a m e g < = j o i n w h e n s s _ c s n a m 6 2 = j o i n ; j o i n _ c s n a r n e n < = j o i n w h e n s s - c s n a m e n : j o i n ; p r o c e s s j o i n ; b e g i n w a i t u n t i l j o i n . c s n a m e 1 = j o i n a n d j o i n . c s n a m e 2 : : j o i n a n d _ ‘ j o i n . c s n a m e n = j o i n ; j o i n _ c s n a m e 1 < = n o n e ; j o i n _ c s n a m e 2 < = n o n e ; j o i n r s n a m e n < = n o n e ; s t a t e < = n e w s t a t e , n u l l a f t e r 1 f s ; e n d p r o c e s s ; E a c h j o i n _ c s n a m e n m u s t b e d e c l a r e d i n t h e e n c l o s i n g a r c h i t e c t u r e a s a n e n u m e r a t e d s i g n a l t y p e m a t c h i n g s t a t e i n t h e c u r r e n t c o m p o n e n t . T h e n a m e o f t h e j o i n p r o c e s s m u s t b e u n i q u e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e m a p p i n g J o i n t o . l - P r o c e s s . A J - P r o c e s s i s a k i n d o f S t a t e V e r t e x , t h u s t h e r u l e s d e f i n e s h o w t h e o u t g o i n g a n d i n c o m i n g r e l a t i o n s h i p s a r e m a i n t a i n e d . E n d o f R u l e V H D L 9 . 2 9 0 R u l e V H D L 1 0 M a p d e f a u l t i n i t i a l s t a t e s t o a s t a t e p r o c e s s n a m e d s - i n i t i a l a c c o r d i n g t o t h e f o l l o w i n g t e m p l a t e : s - i n i t : p r o c e s s b e g i n w a i t u n t i l s t a t e = s t ’ ( C S T A T E ) ; s t a t e < = s t ’ ( D E F A U L T ) , n u l l a f t e r 1 i s ; a n d p r o c e s s ; w h e r e C S T A T E i s t h e n a m e o f t h e e n c l o s i n g c o m p o s i t e s t a t e o r o b j e c t , a n d D E F A U L T i s t h e n a m e o f t h e d e a f u l t i n i t i a l s t a t e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e s c o m p l i e s w i t h t h e I n i t i a l t o l - P r o c e s s m a p p i n g . E n d o f R u l e V H D L 1 0 . R u l e V H D L 1 1 M a p h i s t o r y s t a t e s t o a n i n i t i a l s t a t e n a m e d s _ i n i t i a l a c c o r d i n g t o t h e f o l l o w i n g t e m p l a t e : s _ i n i t : p r o c e s s b e g i n w a i t u n t i l s t a t e = s t ’ ( C S T A T E : ) ; s t a t e < = s t ’ ( D E F A U L T ) , n u l l a f t e r 1 i s ; e n d p r o c e s s ; w h e r e C S T A T E i s t h e n a m e o f t h e e n c l o s i n g c o m p o s i t e s t a t e o r o b j e c t , a n d D E F A U L T i s t h e n a m e o f t h e d e f a u l t i n i t i a l s t a t e . I n a d d i t i o n , a d d t h e f o l l o w i n g s t a t e m e n t b e t w e e n t h e a r c h i t e c t u r e a n d b e g i n s t a t e m e n t f o r t h e c o m p o s i t e s t a t e : s i g n a l h i s t o r y : s t : = s t ’ ( D E F A U L T ) ; R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e H i s t o r y t o H - P r o c e s s m a p p i n g . E n d o f R u l e V H D L 1 1 . 2 9 1 R u l e V H D L 1 2 M a p a f i n a l s t a t e t o a s t a t e p r o c e s s n a m e d s . f i n a / w h o s e b o d y c o n t a i n s a s i n g l e w a i t w i t h n o p a r a m e t e r s . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e s c o m p l i e s w i t h t h e m a p p i n g o f F i n a l t o S - P r o c e s s E n d o f R u l e V H D L 1 2 . 2 9 2 A p p e n d i x F U M L t o P r o m e l a M a p p i n g R u l e s T h i s a p p e n d i x p r o v i d e s a c o n c i s e l i s t i n g o f t h e U M L t o P r o m e l a m a p p i n g r u l e s . E x p l a n a t i o n o f t h e r u l e s i n c o n t a i n e d i n C h a p t e r 6 . 2 9 3 c c c h h h a a a n n n e e w v v a q t i = = t [ [ = 1 1 [ 0 0 1 ] ] 0 ] o o f f 0 f { { m m { t t i y y n p p t e e , . , m i i t n n y t t p } } e 3 ; } ; R u l e P r o m e l a 1 E v e r y m o d e l m a p p e d f r o m U M L t o P r o m e l a c o n t a i n s t h e f o l l o w i n g c h a n n e l d e f i n i t i o n s a n d t h e d i s p a t c h i n g p r o c t y p e , c a l l e d e v e n t ( ) . t o h a n d l e i n t r a - o b j e c t t r a n s i t i o n s : / * T h e b o d y o f t h e m o d e l g o e s h e r e . T h i s s e c t i o n w i l l c o n t a i n p r o c t y p e s f o r o b j e c t s a n d c o m p o s i t e s t a t e s * / / * T h i s i s t h e u n i v e r s a l e v e n t d i s p a t c h e r r o u t i n e * / p r o c t y p e e v e n t ( m t y p e m s g ) { m t y p e t y p e ; i n t p i d ; a t o m i c { d o e v q ? ? [ e v a l ( m s g ) , p i d ] - > e v q ? ? e v a 1 ( m s g ) , p i d ; e v t ! m s g , p i d ; d o o . i f e v q ? ? [ t y p e , e v a 1 ( p i d ) ] - > e v q ? ? t y p e , e v a l ( p i d ) e l s e b r e a k ; f i o d e l s e - > b r e a k o d } e x i t : s k i p } R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e p r o v i d e s d e t a i l s t o c o m p l e t e t h e m a p p i n g f r o m M o d e l t o M o d e l E n d o f R u l e P r o m e l a l . 2 9 4 R u l e P r o m e l a 2 E a c h c l a s s i s f o r m a l i z e d i n P r o m e l a a s a p r o c t y p e d e f i n i t i o n . T h e b o d y o f t h e p r o c t y p e i s e n c l o s e d i n a n a t o m i c s t a t e m e n t . T h e p r o c t y p e a c c e p t s n o p a r a m e t e r s . T h e f o l - l o w i n g t e m p l a t e s h o w s t h e c l a s s c o n t a i n e r : p r o c t y p e C L A S S ( ) { a t o m i c { m t y p e m ; / * S t a t e m e n t s f o r t h e t o p l e v e l o f t h e o b j e c t g o h e r e * / e x i t : s k i p } R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e f o l l o w s f r o m t h e M o d e l t o O b j e c t P r o c t y p e m a p p i n g . T h e a g g r e g a t i o n i n M o d e l i s p r e s e r v e d b e c a u s e e a c h c l a s s i s c o n t a i n e d w i t h i n t h e P r o m e l a m o d e l f i l e . E n d o f R u l e P r o m e l a 2 . R u l e P r o m e l a 3 C l a s s S p e c i a l i z a t i o n i s f o r m a l i z e d a s d u p l i c a t i o n o f t h e p a r e n t c l a s s c o m p o n e n t s , f o l l o w e d b y m o d i f i c a t i o n , a s r e q u i r e d . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e f o l l o w s d i r e c t l y f r o m t h e d e p i c t i o n o f t h e m e t a m o d e l s . T h e t y p e r e l a t i o n s h i p w i t h R e l a t i o n s h i p s i s p r e s e r v e d . E n d o f R u l e P r o m e l a 3 . R u l e P r o m e l a 4 A g g r e g a t i o n i s f o r m a l i z e d a s a n i n s t a n t i a t i o n o f t h e “ p a r t " c l a s s a s m a n y t i m e s a r e r e - q u i r e d o r s p e c i f i e d . T h e a g g r e g a t e o b j e c t a n d p a r t o b j e c t s c o m m u n i c a t e w i t h m e s s a g e s . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e f o l l o w s d i r e c t l y f r o m t h e d e p i c t i o n o f t h e m e t a m o d e l s . T h e t y p e r e l a t i o n s h i p w i t h R e l a t i o n s h i p s i s p r e s e r v e d . E n d o f R u l e P r o m e l a 4 . 2 9 5 R u l e P r o m e l a 5 I n s t a n c e v a r i a b l e s a r e f o r m a l i z e d a s m e m b e r s o f a t y p e d e f s t r u c t u r e s t a t e m e n t n a m e d u n i q u e l y f o r t h e c l a s s a c c o r d i n g t h e t h e f o l l o w i n g t e m p l a t e : t y p e d e f C L A S S J I ‘ { < t y p e > v a r _ 1 ; < t y p e > v a r _ n ; } C L A S S J I ' C L A S S _ V ; w h e r e C L A S S i s t h e n a m e o f t h e c l a s s . T h e m a p p e d i n s t a n c e v a r i a b l e d e c l a r a t i o n s a r e p l a c e d a t t h e b e g i n n i n g o f t h e P r o m e l a s p e c i f i c a t i o n s b e f o r e a n y p r o c t y p e s . R e l a t i o n s h i p t o H o m o m o r p h i s m T h e t e m p l a t e l i s t e d a b o v e f o r m s t h e I n s t a n c e V a r i a b l e c l a s s i n t h e P r o m e l a m e t a m o d e l . T h e a g g r e g a t i o n i s p r e s e r v e d b y n a m i n g c o n v e n t i o n s a n d t h e g e n e r a t i o n o f P r o m e l a s t a t e m e n t s f o r t h e c l a s s , w h i c h r e f e r e n c e t h e t y p d e f a n d C L A S S J I d e c l a r a t i o n d e s c r i b e d a b o v e . E n d o f R u l e P r o m e l a 5 . 2 9 6 R u l e P r o m e l a 6 F o r m a l i z e i n t e r - o b j e c t r e l a t i o n s h i p s a s a s e t o f P r o m e l a c h a n n e l s . F o r c l a s s C L A S S , s i g n a l t y p e s S I G _ 1 t h r o u g h S I G _ n , w h e r e e a c h s i g n a l t y p e h a s a n u m b e r o f v a r i a b l e s , u s e t h e t e m p l a t e b e l o w . I n t h e t e m p l a t e , a s s u m e S I G _ 1 h a s m v a r i a b l e s , S I G _ 2 h a s n v a r i a b l e s , a n d 8 1 6 . ] : h a s 0 v a r i a b l e s . < t y p e > r e p r e s e n t s t h e t y p e o f t h e v a r i a b l e p a s s e d i n t h e m e s s a g e . c h a n C L A S S . q = [ 5 ] o f { m t y p e } c h a n S I G _ 1 . p 1 = [ 5 ] o f < t y p e > ; c h a n S I G _ 1 . p m = [ 5 ] o f < t y p e > ; c h a n S I G _ 2 _ p 1 = [ 5 ] o f < t y p e > ; c h a n S I G _ 2 _ p n = [ 5 ] o f < t y p e > ; c h a n S I G _ k . p 1 = [ 5 ] o f < t y p e > ; c h a n S I G _ k _ p o = [ 5 ] o f < t y p e > ; T h e r e s u l t o f t h i s t e m p l a t e i s p l a c e d a t t h e b e g i n n i n g o f t h e P r o m e l a s p e c i f i c a t i o n s . R e l a t i o n s h i p t o H o m o m o r p h i s m T h e a b o v e t e m p l a t e f o r m s t h e R e l a t i o n s h i p s c l a s s i n t h e P r o m e l a m e t a m o d e l . E n d o f R u l e P r o m e l a 6 . 2 9 7 R u l e P r o m e l a 7 S i m p l e s t a t e s a r e f o r m a l i z e d a s a S t a t e B l o c k , w h i c h i s c o n s t r u c t e d f r o m t h e f o l l o w i n g t e m p l a t e : s t a t e - n a m e : p r i n t f ( ” i n s t a t e o b j e c t - n a m e . s t a t e - n a m e " ) ; H _ c o m p o s i t e - s t a t e - n a m e = s t . s t a t e n a m e ; e v t ! ( e v e n t - n a m e 1 > , _ p i d ; e v t ! ( e v e n t - n a m e 2 > , _ p i d ; e v t ! < e v e n t - n a m e n > , _ p i d ; i f < t r a n s i t i o n e v e n t e x p r e s s i o n 1 > - > < g u a r d l i s t 1 ) < a c t i o n l i s t 1 ) < s e n d l i s t 1 > g o t o n e x t s t a t e < t r a n s i t i o n e v e n t e x p r e s s i o n 2 ) - > < g u a r d l i s t 2 > < a c t i o n l i s t 2 ) < s e n d l i s t 2 ) g o t o n e x t s t a t e < t r a n s i t i o n e v e n t e x p r e s s i o n n > - > ( g u a r d l i s t n > < a c t i o n l i s t n > < s e n d l i s t n > g o t o n e x t s t a t e f i ; I n t h i s t e m p l a t e , s t a t e - n a m e i s t h e n a m e o f t h e s t a t e , o b j e c t - n a m e i s t h e n a m e o f t h e e n c l o s i n g o b j e c t , a n d c o m p o s i t e - s t a t e - n a m e i s t h e n a m e o f t h e e n c l o s i n g c o m p o s i t e s t a t e ( o r o b j e c t i f t h i s i s t h e h i g h e s t l e v e l ) . T h e m e t a t e r m s a r e d e f i n e d a s : < t r a n s i t i o n e v e n t e x p r e s s i o n i > a r e c h a n n e l r e c e i v e e x p r e s s i o n s f o r < e v e n t - n a m e i ) a s d e s c r i b e d i n R u l e s P r o m e l a 1 0 a n d P r o m e l a 1 1 , < g u a r d l i s t i ) i s t h e c o n s t r u c t i o n f o r t r a n s i t i o n g u a r d s a s d e s c r i b e d i n R u l e P r o m e l a 1 6 , < a c t i o n l i s t i > i s a l i s t o f s t a t e m e n t s f o r t h e a c t i o n o n t h e t r a n s i t i o n . a n d < s e n d l i s t i > i s a l i s t o f c h a n n e l s e n d o p e r a t i o n s f o r m e s s a g e s s e n t b y t h e t r a n s i t i o n . T h e s e c o n d l i n e o f t h e t e m p l a t e i s p r e s e n t o n l y i f a h i s t o r y s t a t e i s p r e s e n t i n t h e e n c l o s i n g c o m p o s i t e s t a t e . ' R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e p r o v i d e s t h e S t a t e B l o c k c l a s s i n t h e P r o m e l a m e t a m o d e l . T h e t e m p l a t e a b o v e d e - s c r i b e s e v e n t d i s p a t c h i n g a n d a c t i o n s e q u e n c e s t h a t p r e s e r v e t h e o u t g o i n g , i n c o m i n g , e n t r y , a n d e x i t r e l a t i o n s h i p s . S t a t e B l o c k i s a S t a t e s i n c e i t h a n d l e s e v e n t s a n d m a i n t a i n s t h e s t a t e o f t h e o b j e c t . E n d o f R u l e P r o m e l a 7 . 2 9 8 R u l e P r o m e l a 8 A c o m p o s i t e s t a t e n a m e d c o m p o s i t e - s t a t e - n a m e i s f o r m a l i z e d a s a p r o c t y p e w i t h a f o r m a l p a r a m e t e r o f t y p e m t y p e . A p r o c t y p e r e p r e s e n t i n g a c o m p o s i t e s t a t e i s a c t i v a t e d i n t h e p a r e n t c o m p o s i t e s t a t e o r o b j e c t w i t h a r u n ( f i r s t - s t a t e - n a m e ) s t a t e m e n t t h a t p a s s e s t h e n a m e o f t h e s t a t e t o b e g i n , o r n o n e w h e n t h e t r a n s i t i o n i s t o t h e b o u n d a r y o f t h e c o m p o s i t e s t a t e . U s e t h e f o l l o w i n g t e m p l a t e f o r t h e c o m p o s i t e s t a t e p r o c t y p e : p r o c t y p e c o m p o s i t e - s t a t e - n a m e ( m t y p e s t a t e ) { a t o m i c { ( i n i t i a l s t a t e s e q u e n c e ) ( s t a t e s e q u e n c e s ) e x i t : s k i p } } T h e m e t a s e q u e n c e s a r e d e f i n e d a s : < i n i t i a 1 s t a t e s e q u e n c e ) i s e i t h e r a h i s t o r y s t a t e c o n s t r u c t o r a n i n i t i a l s t a t e c o n s t r u c t , a s r e q u i r e d . S e e R u l e s P r o m e l a 1 9 a n d P r o m e l a 2 0 . T h e b o d y o f t h e s i m p l e s t a t e s a n d t r a n s f e r s t o c o m p o s i t e s t a t e s a r e c o n t a i n e d i n < s t a t e s e q u e n c e s > . R e l a t i o n s h i p t o H o m o m o r p h i s m C l a s s P r o c t y p e h o l d s s i m p l e s t a t e s a n d h o l d s o t h e r c o m p o s i t e s t a t e s t h r o u g h r e f e r e n c e s ( c a l l i n g s e q u e n c e s ) t o t h e p r o c t y p e s t h a t r e p r e s e n t t h e c o m p o s i t e s t a t e s , h e n c e P r o c - t y p e i s a S t a t e a n d a n a g g r e g a t i o n o f S t a t e V e r t e x . E n d o f R u l e P r o m e l a 8 . 2 9 9 R u l e P r o m e l a 9 C o n c u r r e n t c o m p o s i t e s t a t e s a r e f o r m a l i z e d a s c o m p o s i t e s t a t e s p e r R u l e P r o m e l a 8 . b u t a r e a c t i v a t e d i n p a r a l l e l u s i n g t h e t e m p l a t e b e l o w . L e t c p l , c p 2 . . . c p n b e t h e n a m e s o f n c o n c u r r e n t c o m p o s i t e s t a t e c o m p o n e n t s . T h e n , i n t h e p a r e n t c o m p o s i t e s t a t e t h a t a c t i v a t e s c h i l d c o n c u r r e n t c o m p o s i t e s t a t e s , d e c l a r e v a r i a b l e s i n t c p 1 . p i d , , i n t c p n _ p i d t o h o l d t h e c h i l d P l e . S i m i l a r l y , d e c l a r e m t y p e v a r i a b l e s , m t y p e c p 1 - c o d e , . . . , c p n . . c o d e f o r e a c h c o m p o n e n t . T h e t e m p l a t e f o r t h e d e c l a r e s i s a s f o l l o w s : i n t c p 1 _ p i d , c p 2 . p i d , . . . , c p n _ p i d ; m t y p e c p 1 - c o d e , c p 2 _ c o d e , . . . , c p n - c o d e ; T h e d e c l a r a t i o n s a r e p l a c e d a t t h e b e g i n n i n g o f t h e p a r e n t p r o c t y p e . T h e n , t h e f o l l o w i n g t e m p l a t e i s u s e d : / e C o m p o u n d l a b e l s f o r a t r a n s f e r t o t h e c o n c u r r e n t s t a t e c o m p o n e n t b o u n d a r y . * / t o _ c p 1 : t o - c p 2 : t o - c p n : c p 1 _ p i d : 8 r u n c p 1 ( n o n e ) ; c p 2 . p i d I r u n c p 2 ( n o n e ) : c p n . p i d I r u n c p n ( n o n e ) ; v e i t ? ? e v a 1 ( c p 1 _ p i d ) , c p 1 _ c o d e ; v a i t ? ? e v a 1 ( c p 2 - p i d ) , c p 2 - c o d e ; v a i t ? ? e v a 1 ( c p n _ p i d ) , c p n - c o d e ; I t T h e j o i n s e q u e n c e s a r e o p t i o n a l * / < j o i n s e q u e n c e 1 ) ( j o i n s e q u e n c e n > T h e m e t a t e r m < j o i n s e q u e n c e > i s e i t h e r a s s e r t ( 0 ) i f n o j o i n c o n s t r u c t h a s b e e n s p e c i f i e d , o r o n e o r m o r e j o i n s e q u e n c e s a s d e s c r i b e d i n R u l e P r o m e l a 1 8 . T h e c o n c u r r e n t c o m p o s i t e s t a t e i s a c t i v a t e d b y t r a n s f e r r i n g c o n t r o l t o a n y o f t h e l a b e l s t o _ c p 1 t h r o u g h t o _ c p n . R e l a t i o n s h i p t o H o m o m o r p h i s m A C o n c u r r e n t P r o c t y p e i s a t y p e o f P r o c t y p e a s d e s c r i b e d a b o v e . T h i s r u l e d e t a i l s t h e s p e - c i a l i z a t i o n f o r t h e C o n c u r r e n t P r o c t y p e a n d a l s o p r e s e r v e s t h e j o i n r e l a t i o n s h i p b y s e t t i n g u p t h e m e c h a n i s m s r e q u i r e d t o m a p j o i n t o W a i t - j o i n . E n d o f R u l e P r o m e l a 9 . 3 0 0 “ s a s s : R u l e P r o m e l a 1 0 A n i n t r a - o b j e c t t r a n s i t i o n i s f o r m a l i z e d a s 3 s e n d o p e r a t i o n s e n d i n g a m e s s a g e c o n t a i n i n g t h e e v e n t n a m e a n d P I D t o c h a n n e l e v q t o s i g n i f y t h e t r a n s i t i o n ’ s r e a d i n e s s , a n d a r e c e i v e s t a t e m e n t t h a t w a i t s f o r t h e s a m e m e s s a g e t o o c c u r o n c h a n n e l e v t . T h e f o l l o w i n g t e m p l a t e s h o w s t h e P r o m e l a c o n s t r u c t i o n : e v q ! e 1 , . p i d ; e v q l e 2 , . p i d ; e v q ! e l , _ p i d ; i f e v t ? ? e 1 , e v a l ( _ p i d ) - ) ( t r a n s i t i o n a c t i o n s ) e v t ? ? e 2 , e v a 1 ( _ p i d ) - > ( t r a n s i t i o n a c t i o n s ) e v t ? ? e 1 , e v a l ( _ p i d ) - ) < t r a n s i t i o n a c t i o n s ) f i ; E v e n t s a r e d i s p a t c h e d b y r u n n i n g t h e m o d e l - w i d e p r o c e d u r e e v e n t ( ) . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e T r a n s i t i o n t o T r a n s i t i o n m a p p i n g a n d c o m p l i e s w i t h t h e t r i g g e r r e l a t i o n s h i p s b e t w e e n E v e n t a n d T r a n s i t i o n . A s t h e m e t a m o d e l d e p i c t s , t h e r e a r e t w o s u b t y p e s o f E v e n t - D i s p a t c h . T h i s r u l e a l s o c o v e r s t h e R u n - E v e n t ( ) s u b c l a s s . E n d o f R u l e P r o m e l a 1 0 . 3 0 1 R u l e P r o m e l a 1 1 A n i n t e r - o b j e c t t r a n s i t i o n e v e n t u s i n g q u e u e d s e m a n t i c s i s f o r m a l i z e d a s a r e c e i v e O p e r - a t i o n o n t h e s e t o f c h a n n e l s c o r r e s p o n d i n g t o t h e e v e n t a n d i t s p a r a m e t e r s g e n e r a t e d b y R u l e P r o m e l a 6 . I f s i g n a l p a r a m e t e r s a r e p r e s e n t , t h e n p a s s e a c h i n a c h a n n e l n a m e d f o r t h e s i g n a l p e r R u l e P r o m e l a 6 . E a c h p a r a m e t e r c h a n n e l i s d e c l a r e d a s a s i n g l e e n t r y m e s s a g e q u e u e o f t h e s a m e t y p e a s t h e s i g n a l p a r a m e t e r . A n i n t e r - o b j e c t s i g n a l s e n d i s f o r m a l i z e d a s a s e t o f c h a n n e l w r i t e s t a t e m e n t s t o s e n d t h e p a r a m e t e r s a n d s i g n a l t o t h e c h a n n e l s a s s o c i a t e d w i t h t h e d e s t i n a t i o n o b j e c t . F o r c l a s s C L A S S , a n d i n t e r - o b j e c t s i g n a l E t h a t r e c e i v e s m e s s a g e v a l u e s i n t o i n s t a n c e v a r i a b l e s v a r 1 , v a r 2 , . . . , v a r n , t h e f o l l o w i n g t e m p l a t e s h o w s t h e m e s s a g e s e n d o p e r a t i o n : E . p 1 ! p a r m 1 ; E _ p 2 ! p a r m 2 ; . . . E _ p n ! p a r m n ; C L A S S _ q ! E ; a n d t h e c o r r e s p o n d i n g r e c e i v e a n d t r a n s i t i o n s t a t e m e n t s a r e : i f C L A S S _ q ? E - > E _ p 1 ? C L A S S . V . v a r 1 ; E _ p 2 ? C L A S S . V . v a r 2 ; E _ p n ? C L A S S _ V . v a r n - > < t r a n s i t i o n a c t i o n s ) f i ; R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e T r a n s i t i o n m a p p i n g a n d a l s o r e f l e c t s t h e s u p e r c l a s s — s u b c l a s s s t r u c t u r e o f E v e n t - D i s p a t c h i n t h e P r o m e l a m e t a m o d e l . T h e i n c o m i n g r e l a t i o n s h i p b e t w e e n T r a n s i t i o n a n d S t a t e V e r t e x i s p r e s e r v e d b y t h e P r o m e l a c o n s t r u c t s s p e c i f i e d a b o v e . E n d o f R u l e P r o m e l a 1 1 . R u l e P r o m e l a 1 2 F o r m a l i z e a m i s s i n g e v e n t o n a t r a n s i t i o n a s “ " , 1 o r t r u e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e T r a n s i t i o n m a p p i n g a n d t h e E v e n t a g g r e g a t i o n . A s n o t e d o n t h e m e t a m o d e l , a t r a n s i t i o n d o e s n o t r e q u i r e a n e v e n t . W h e n a b s e n t , t h i s r u l e p r o v i d e s s e m a n t i c s f o r t h e m i s s i n g e v e n t . E n d o f R u l e P r o m e l a 1 2 . 3 0 2 R u l e P r o m e l a 1 3 A n i n t r a - c o m p o s i t e - s t a t e t r a n s i t i o n i s f o r m a l i z e d a s a g o t o t r a n s f e r r i n g c o n t r o l t o t h e l a b e l o n t h e S t a t e B l o c k r e p r e s e n t i n g t h e d e s t i n a t i o n s t a t e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e T r a n s i t i o n m a p p i n g a n d t h e r e l a t i o n s h i p s w i t h S t a t e V e r t e x . T h i s r u l e a l s o r e f l e c t s t h e s u p e r c l a s s — s u b c l a s s r e l a t i o n s h i p f o r E v e n t - D i s p a t c h i n t h e P r o m e l a m e t a m o d e l . E n d o f R u l e P r o m e l a 1 3 . R u l e P r o m e l a 1 4 A T r a n s i t i o n t h a t c r o s s e s t h e c o m p o s i t e - s t a t e b o u n d a r y d o w n w a r d i n t h e s t a t e h i e r a r c h y i s f o r m a l i z e d a s a r u n ( ) s t a t e m e n t t h a t s t a r t s t h e c h i l d c o m p o s i t e s t a t e p r o c t y p e t h a t e i t h e r c o n t a i n s t h e d e s t i n a t i o n s t a t e , o r i s o n t h e t r a n s i t i o n p a t h t o t h e d e s t i n a t i o n s t a t e . I f t h e d e s t i n a t i o n s t a t e i s n o t t h e i m m e d i a t e c h i l d c o m p o s i t e - s t a t e b o u n d a r y , t h e n t h e r u n ( ) s t a t e m e n t c o n t a i n s a p a r a m e t e r n a m i n g t h e d e s t i n a t i o n s t a t e . A s s u m e t h e n e x t c o m p o s i t e s t a t e d o w n w a r d o n t h e p a t h t o t h e d e s t i n a t i o n i s C S T A T E : a n d t h e d e s t i n a t i o n s t a t e i s n a m e d D e s t , t h e n t h i s p o r t i o n o f t h e m a p p i n g g e n e r a t e s t h e s t a t e m e n t : r u n C S T A T E ( D e s t ) ; R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e f u r t h e r d e s c r i b e s t h e T r a n s i t i o n m a p p i n g a n d p r e s e r v e s t h e r e l a t i o n s h i p s w i t h S t a t e V e r t e x . s p e c i f i c a l l y , d o w n t o t h e P r o c t y p e P r o m e l a m e t a m o d e l c l a s s . E n d o f R u l e P r o m e l a 1 4 . R u l e P r o m e l a 1 5 A t r a n s i t i o n t h a t c r o s s e s a c o m p o s i t e - s t a t e b o u n d a r y u p w a r d i n t h e s t a t e h i e r a r c h y i s f o r m a l i z e d a s a c h a n n e l s e n d o p e r a t i o n f o l l o w e d b y a n e x i t f r o m t h e c o m p o s i t e s t a t e . T h e m e s s a g e s e n t c o n s i s t s o f t h e c u r r e n t p r o c e s s e s P I D a n d t h e n a m e o f t h e d e s t i n a t i o n s t a t e . T h e s t a t e m e n t t e m p l a t e f o r t h e t r a n s i t i o n t o s t a t e D e s t i s : w a i t ! . p i d , D e s t ; g o t o e x i t ; R e l a t i o n s h i p t o H o m o m o r p h i s m T h e c o m m e n t s f o r R u l e P r o m e l a 1 4 a r e a p p l i c a b l e t o t h i s r u l e . E n d o f R u l e P r o m e l a 1 5 . 3 0 3 R u l e P r o m e l a 1 6 F o r m a l i z e a g u a r d o n a t r a n s i t i o n a s a n i f - f i b l o c k l o c a t e d i m m e d i a t e l y a f t e r t h e s t a t e - m e n t s r e p r e s e n t i n g t h e e v e n t r e c e p t i o n . G a t h e r a l l l i k e e v e n t s i n t o o n e w a i t s t a t e m e n t . F o r o n e o r m o r e t r a n s i t i o n s o n e v e n t E g u a r d e d b y 6 1 t h r o u g h G n , a n d w a i t e x p r e s s i o n 0 ( Q i s s o m e f o r m o f a w a i t o n a c h a n n e l p e r R u l e P r o m e l a 1 0 , R u l e P r o m e l a 1 1 , o r R u l e P r o m e l a 1 2 ) t h e f o l l o w i n g t e m p l a t e a p p l i e s : i f Q ? E - > i f G 1 - > ( t r a n s i t i o n 1 ) G 2 - ) ( t r a n s i t i o n 2 ) C u - > ( t r a n s i t i o n 1 1 ) e l s e g o t o i n _ S T A T E ; i i F o r e v e n t l e s s t r a n s i t i o n s g u a r d e d a s a b o v e , r e p l a c e t h e f i n a l e l s e w i t h e l s e 0 . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e G u a r d t o l F G u a r d m a p p i n g a n d p r e s e r v e s t h e a g g r e g a t i o n b e t w e e n G u a r d a n d T r a n s i t i o n i n t h e U M L m e t a m o d e l . E n d o f R u l e P r o m e l a 1 6 . R u l e P r o m e l a 1 7 T i m e d e v e n t s a r e m a p p e d t o u n i q u e l y n a m e d e v e n t s f o l l o w i n g t h e n a m i n g c o n v e n t i o n T E l , T E 2 , . . . , T E n . T h e m o d e l e r i s r e s p o n s i b l e f o r g e n e r a t i n g t h e s e e v e n t s e l s e w h e r e i n t h e m o d e l . R e l a t i o n s h i p t o H o m o m o r p h i s m C l a s s T i m e E v e n t i s m a p p e d t o E v e n t - D i s p a t c h b e c a u s e t h e r e a r e n o c o n s t r u c t s i n P r o m e l a f o r t i m e - c o n s t r a i n e d e v e n t s . T h e r e f o r e , t o c o m p l e t e t h e m a p p i n g , t i m e o u t s a n d i n t e r v a l w a i t s a r e m a p p e d t o u s e r - g e n e r a t e d e v e n t s . E n d o f R u l e P r o m e l a 1 7 . 3 0 4 t fi r - r j R u l e P r o m e l a 1 8 E a c h J o i n p s e u d o - s t a t e i s f o r m a l i z e d a s a i f - f i b l o c k . F o r e a c h J o i n , c o n s t r u c t a g u a r d c o n s i s t i n g o f a _ c o n ' u n c t t e s t i n g e a c h c o n c u r r e n t c o m p o n e n t ' s r e t u r n c o d e f o r a t r a n s n t i o n t o t h a t J o m . e J o m t e m p l a t e I S a s f o l l o w s : 1 i f 2 " c p 1 - c o d e = 8 s t - j o i n 1 l l c p 2 _ c o d e = = s t _ j o i n 1 . . . i t c p n _ c o d e = = s t _ j o i n 1 3 - > g o t o d e s t i 4 c p 1 - c o d e 8 : s t - j o i n 2 t i c p 2 _ c o d e = = s t - j o i n 2 . . . i t c p n _ c o d e = = s t - j o i n 2 5 - > g o t o d e s t 2 8 7 8 9 c p 1 - c o d e = = s t - j o i n n a n c p 2 - c o d e = = s t - j o i n n . . . a t c p n _ c o d e = = s t - j o i n n 1 0 - > g o t o d e s t n 1 1 f i W h e r e c p n _ c o d e i s t h e r e t u r n c o d e f r o m t h e n - t h p r o c e s s i n d i c a t i n g t h e j o i n s t a t e , s t _ j o i n n i s t h e n a m e o f t h e n - t h j o i n , a n d d e s t n i s t h e d e s t i n a t i o n f r o m t h e n - t h j o i n . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e m a p p i n g o f J o i n t o W a i t - j o i n . l n P r o m e l a , t h e j o i n c o n s t r u c t o c c u p i e s t h e s a m e r e l a t i v e p o s i t i o n a s a s t a t e , a n d h a s a d e s t i n a t i o n l a - b e | . T h e r e f o r e , i t q u a l i f i e s a s a s u b t y p e o f P s e u d o s t a t e . E n d o f R u l e P r o m e l a 1 8 . R u l e P r o m e l a 1 9 E a c h I n i t i a l p s e u d o - s t a t e i s f o r m a l i z e d a s a g o t o t o t h e i n i t i a l s t a t e . T h e g o t o i s l o c a t e d a t t h e s t a r t o f t h e P r o m e l a p r o c e d u r e a s s o c i a t e d w i t h t h e c o m p o s i t e s t a t e o r o b j e c t . R e l a t i o n s h i p t o H o m o m o r p h i s m I n i t - g o t o i s m a p p e d f r o m S t a r t . T h e P r o m e l a i m p l e m e n t i n g i n i t f i t s w i t h i n a c o m - p o s i t e s t a t e o r o b j e c t e n v e l o p e , a n d h a s a n o u t b o u n d t r a n s i t i o n . T h e r e f o r e , i t q u a l i f i e s a s a s u b t y p e o f t h e s u p e r t y p e P s e u d o s t a t e . E n d o f R u l e P r o m e l a 1 9 . 3 0 5 s - i m w p m m u m R u l e P r o m e l a 2 0 F o r m a l i z e e a c h H i s t o r y p s e u d o - s t a t e a s a n i f - f i b l o c k a t t h e t o p o f t h e P r o m e l a p r o c e d u r e r e p r e s e n t i n g t h e c o m p o s i t e s t a t e . T h e i f - f i b l o c k t e s t s t h e v a l u e o f a v a r i a b l e h o l d i n g t h e n a m e o f t h e l a s t s t a t e . W h e n a m a t c h i s f o u n d , t h e i f - f i t r a n s i t i o n s t o t h e s t a t e w i t h a g o t o a s i n o t h e r t r a n s i t i o n s . T h e i f - f i b l o c k f o l l o w s t h e f o l l o w i n g t e m p l a t e : i f H _ c o m p o s i t e - s t a t e - n a m e = = s t - a t a t e I - > g o t o s t a t e i ; H _ c o m p o s i t e - s t a t e - n a m e = = s t - a t a t e 2 - > g o t o s t a t e 2 ; H _ c o m p o s i t e - s t a t e - n a m e = f i ; s t _ s t a t e n - > g o t o s t a t e n ; W h e r e c o m p o s i t e - s t a t e - n a m e i s t h e n a m e o f t h e c o m p o s i t e s t a t e ( o b j e c t s m a y n o t c o n t a i n h i s t o r y p s e u d o - s t a t e s a t t h e i r t o p l e v e l ) , a n d s t a t e i i s t h e n a m e o f t h e i - t h s t a t e i n t h e c o m p o s i t e s t a t e . W h e n a H i s t o r y s t a t e i s p r e s e n t , l i n e 2 i n t h e t e m p l a t e i n R u l e P r o m e l a 7 m u s t b e p r e s e n t a n d t h e v a r i a b l e H _ c o m p o s i t e - s t a t e - n a m e i s d e c l a r e d a s t y p e m t y p e i n t h e g l o b a l d e c l a r a t i o n s . T h e i n i t i a l v a l u e o f I L c o m p o s i t e - s t a t e - n a m e i s t h e d e f a u l t i n i t i a l s t a t e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h e c o m m e n t s f o r R u l e s P r o m e l a 1 8 a n d P r o m e l a 1 9 a p p l y t o t h i s r u l e , w h i c h m a p s H i s t r o y t o H i s t o r y - g o t o . E n d o f R u l e P r o m e l a 2 0 . R u l e P r o m e l a 2 1 F o r m a l i z e e a c h F i n a l p s e u d o - s t a t e a s a t r a n s f e r ( g o t o ) t o l a b e l e x i t : a t t h e e n d o f t h e c o n t a i n i n g P r o m e l a p r o c e d u r e . R e l a t i o n s h i p t o H o m o m o r p h i s m T h i s r u l e c o m p l i e s w i t h t h e m a p p i n g o f F i n a l t o G o t o - e x i t , a n d t h e p r e v i o u s c o m m e n t s f o r P s e u d o s t a t e s a p p l y . E n d o f R u l e P r o m e l a 2 1 . 3 0 6 A p p e n d i x G V H D L L C S F i l e s T h e l i s t i n g s b e l o w c o n t a i n t h e P e r l s o u r c e c o d e f o r H y d r a f o r t h e V H D L t r a n s l a t i o n s . T h e H y d r a C l a s s L i b r a r y c o n s i s t s o f t h e fi l e s ( m a r k e d i n t h e l i s t i n g ) C C S t a t e . p m , C o n t e x t p m , I n i t . p m , O b j e c t . p m , C S t a t e . p m , H i s t o r y . p m , J o i n . p m , a n d S t a t e . p m . # l / u s r / b i n / p e r l # T h e m a i n V H D L H y d r a r o u t i n e . T h e m a i n p r o g r a m p a s s e s t h e A S T t o # M o d e l . S u b M o d e l i s t h e b e g i n n i n g o f t h e A S T W a l k e r , w h i c h i s t h e n # c o n t a i n e d i n t h e b a l a n c e o f t h i s s o u r c e f i l e . T h e C l a s s L i b r a r y # r o u t i n e s a r e l i s t e d a s s e p a r a t e f i l e s b e l o w . { u s e Y a c c ; u s e C S t a t e ; u s e C C S t a t e ; u s e S t a t e ; u s e O b j e c t ; u s e C o n t e x t ; u s e H i s t o r y ; u s e J o i n ; u s e I n i t ; S t r e e = Y a c c - > P a r s e ( $ A R G V [ 0 ] ) ; p r i n t " p a r s e c o m p l e t e \ n " ; C o n t e x t - > 0 u t F i l e ( ’ p a n ’ ) ; H o d e l C S t r e e ) ; C o n t e x t - > 0 u t p u t ; 3 0 7 # S t a r t o f t h e A S T W a l k e r r o u t i n e s . s u b M o d e l { m y ( S t r e e ) = 0 - ; p r i n t " m o d e l n a m e = $ $ t r e e { I D } \ n " ; m y S s t m t = $ $ t r e e { m o d e l b o d y } { m o d e l s t m t l i s t } ; m y S e n t ; f o r e a c h S e n t ( Q S s t m t ) { # E a c h o n e o f t h e s e i s a h a s h i f ( $ $ e n t { t y p e } e q ’ E n u m ’ ) { p r i n t " E n u m $ $ e n t { I D } = $ $ e n t { l i s t } \ n " ; m y G l i s t ; $ $ e n t { l i s t } = ' s / ‘ \ ( ( . + ) \ ) $ / $ 1 / ; O l i s t = s p l i t ( / , / . $ $ e n t { 1 i s t } ) ; C o n t e x t - > E n u m ( $ $ e n t { I D } . @ l i s t ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ D r i v e r f i l e ’ ) { p r i n t " D r i v e r f i l e = $ $ e n t { I D } \ n " ; C o n t e x t - > D r i v e r F i l e ( $ $ e n t { I D } ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ O b j e c t ’ ) { p r i n t " O b j e c t $ $ e n t { I D } \ n " ; O b j e c t ( $ e n t ) ; : l s e { d i e " h a d t y p e $ $ e n t { t y p e } " } } } : u b O b j e c t m y ( $ t r e e ) = 0 , ; $ $ t r e e { t y p e } e q ’ O b j e c t ’ l l d i e " t h i s i s n o t a n O b j e c t n o d e " ; p r i n t " I n O b j e c t . O b j e c t N a m e = $ $ t r e e { I D } \ n " ; m y $ o b j r e f = n e w O b j e c t ( $ $ t r e e { I D } ) ; m y $ b o d y = $ $ t r e e { o b j e c t b o d y } { o b j e c t s t m t l i s t } ; m y $ e n t ; m y X n a m e t o r e f ; m y O j o i n l i s t ; f o r e a c h $ e n t ( Q $ b o d y ) { i f ( $ $ e n t { t y p e } e q ’ A s s o c ’ ) { p r i n t " A s s o c $ $ e n t { I D } t y p e $ $ e n t { a s s o c t y p e } \ n " ; $ 0 b j r e f - > A s s o c ( $ $ e n t { I D } , $ $ e n t { a s s o c t y p e } ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ C S t a t e ’ ) { $ n a m e t o r e f { $ $ e n t { I D } } = C S t a t e ( $ e n t , $ o b j r e f ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ C C S t a t e ’ ) { m y S r e f = C C S t a t e ( $ e n t , $ o b j r e f ) ; $ n a m e t o r e f { $ $ e n t { I D } } = $ r e f ; m y Q n a m e s ; 3 0 8 m y O m e m b e r s ; O m e m b e r s = $ r e f - > G e t M e m b e r s ; m y $ t h i n g ; p r i n t " # * * * * C S t a t e s i n $ $ e n t { I D } \ n " ; p r i n t " r e f i s a " , r e f ( $ r e f ) , " \ n " ; f o r e a c h $ t h i n g ( Q m e m b e r s ) { m y $ n a m e = $ t h i n g - > G e t N a m e ; $ n a m e t o r e f { $ n a m e } = S t h i n g ; p r i n t " $ n a m e i s a " , r e f ( $ n a m e t o r e f { $ n a m e } ) , " \ n " ; } p r i n t " C C S t a t e $ $ e n t { I D } \ n " ; } e l s i f ( $ $ e n t { t y p e } e q ’ S t a t e ’ ) { $ n a m e t o r e f { $ $ e n t { I D } } = S t a t e ( $ e n t , $ o b j r e f ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ I n i t ’ ) { p r i n t " I n i t s t a t e j u m p s t o $ $ e n t { I D } \ n " ; i f ( $ i n i t ) { p r i n t ” E R R O R : $ $ t r e e { i d } h a s m o r e t h a n o n e i n i t s t a t e \ n " ; } s i n i t = $ $ e n t { I D } ; } e l s i f ( $ $ e n t { t y p e } e q ’ J o i n ’ ) { p u s h ( 0 j o i n l i s t , [ $ $ e n t { I D } , $ $ e n t { f r o m } , $ $ e n t { t o } ] ) ; } e l s e { d i e " b a d t y p e $ $ e n t { t y p e } " } } p r i n t " O b j e c t r e f k e y s \ n " ; f o r e a c h S e n t ( k e y s Z n a m e t o r e f ) { p r i n t " $ e n t i s a " , r e f ( $ n a m e t o r e f { $ e n t } ) . " \ n " ; } f o r e a c h S e n t ( Q j o i n l i s t ) { p r i n t " M a k i n g J o i n $ $ e n t [ 0 ] f r o m $ $ e n t [ 1 ] t o $ $ e n t [ 2 ] \ n " ; n e w J o i n ( $ o b j r e f , $ $ e n t [ 0 ] , $ n a m e t o r e f { $ $ e n t [ 1 ] } , $ $ e n t [ 2 ] ) ; } i f ( $ i n i t ) { n e w I n i t ( $ o b j r e f , $ n a m e t o r e f { $ i n i t } ) } } s u b C S t a t e { m y ( S t r e e , S p a r e n t ) = Q _ ; $ $ t r e e { t y p e } e q ’ C S t a t e ’ l l d i e " n o d e i s n o t a C S t a t e " ; p r i n t " I n C S t a t e . C S t a t e n a m e = $ $ t r e e { I D } \ n " ; m y $ c s t a t e r e f = n e w C S t a t e ( $ p a r e n t , $ $ t r e e { I D } ) ; m y $ b o d y = $ $ t r e e { b o d y } { c s t a t e s t m t l i s t } ; # L i s t o f s t m t s m y Z n a m e t o r e f ; m y ( S e n t , S i n i t , $ h i s t o r y ) ; f o r e a c h S e n t ( O $ b o d y ) { 3 0 9 p r i n t " - - N e w n o d e t y p e $ $ e n t { t y p e } \ n " ; i f ( $ $ e n t { t y p e } e q ’ S t a t e ’ ) { m y 8 r = S t a t e ( $ e n t , $ c s t a t e r e f ) ; $ n a m e t o r e f { $ $ e n t { I D } } = 8 r ; # s a v e r e f b y n a m e } e l s i f ( $ $ e n t { t y p e } e q ’ C S t a t e ’ ) { m y $ r = C S t a t e ( $ e n t , $ c s t a t e r e f ) ; $ n a m e t o r e f f $ $ e n t { I D } } = 8 r ; # s a v e r e f b y n a m e } e l s i f ( $ $ e n t { t y p e } e q ’ I n i t ’ ) { p r i n t " I n i t s t a t e j u m p s t o $ $ e n t { I D } \ n " ; i f ( $ i n i t ) { p r i n t " E R R O R : $ $ t r e e { i d } h a s m o r e t h a n o n e i n i t s t a t e \ n " ; } $ i n i t = $ $ e n t { I D } ; } e l s i f ( $ $ e n t { t y p e } e q ’ H i s t o r y ’ ) { p r i n t " H i s t o r y s t a t e j u m p s t o $ $ e n t { I D } \ n " ; i f ( $ h i s t o r y ) { p r i n t " E R R O R : $ $ t r e e { i d } h a s m o r e t h a n o n e H i s t o r y s t a t e \ n " ; } $ h i s t o r y = $ $ e n t { I D } ; } e l s i f ( $ $ e n t { t y p e } e q ’ C C S t a t e ’ ) { m y Z n a m e s ; Z n a m e s = C C S t a t e ( $ e n t , $ o b j r e f ) ; m y $ k e y ; f o r e a c h $ k e y ( k e y s X n a m e s ) { $ n a m e t o r e f { $ k e y } = $ n a m e { $ k e y } } p r i n t " C C S t a t e $ $ e n t { I D } \ n " ; } e l s e { d i e " b a d t y p e $ $ e n t { t y p e } " } } # N o w t o I n i t s t a t e s } p r i n t " C S t a t e r e f k e y s \ n " ; f o r e a c h S e n t ( k e y s Z n a m e t o r e f ) { p r i n t " s e n t i s a " , r e f ( $ n a m e t o r e f { $ e n t } ) , " \ n " ; } i f ( $ h i s t o r y ) { p r i n t " - - c a l l i n g h i s t o r y . P a r e n t i s " , $ c s t a t e r e f — > G e t N a m e , " \ n " ; n e w H i s t o r y ( $ c s t a t e r e f , $ n a m e t o r e f { $ h i s t o r y } ) ; } i f ( s i n i t ) { p r i n t " - - c a l l i n g i n i t \ n " ; n e w I n i t ( $ c s t a t e r e f , $ n a m e t o r e f { $ i n i t } ) ; } e l s e { " W a r n i n g : T h e r e i s n o t I N I T s t a t e f o r $ $ t r e e { I D } \ n " } p r i n t " - - R e t u r n f r o m C S t a t e \ n " ; r e t u r n $ c s t a t e r e f ; # r e t u r n t h e r e f t o t h i s C S t a t e s u b C C S t a t e { t T h e o n l y l e g a l s t a t e m e n t s f o r t h i s c o n t a i n e r i s C S t a t e . T r a n s i t i o n s ( s u c h # a s i n i t s ) m a y w a n t t o t r a n s i t i o n t o o n e o f o u r c o m p o n e n t s , w h i c h s t a r t s t h e 3 1 0 # t h r e a d s r u n n i n g . T h e r e f o r e , w e p a s s b a c k a h a s h o f C S t a t e r e f s i n d e x e d b y # C S t a t e n a m e . m y ( $ t r e e , S p a r e n t ) = 0 _ ; p r i n t " I n C C S t a t e . C C S t a t e n a m e = $ $ t r e e i I D } \ n " ; m y $ c c s t a t e = n e w C C S t a t e ( $ p a r e n t ) ; m y $ b o d y = $ $ t r e e { b o d y } { c c s t a t e s t m t l i s t } ; # L i s t o f s t m t s m y S e n t ; f o r e a c h $ e n t ( Q $ b o d y ) { i f ( $ $ e n t { t y p e } e q ’ S t a t e ’ ) { S t a t e ( $ e n t , $ c c s t a t e ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ C S t a t e ’ ) { C S t a t e ( $ e n t , $ c c s t a t e ) ; } e l s e { d i e " b a d t y p e $ $ e n t { t y p e } " } } r e t u r n $ c c s t a t e ; } s u b S t a t e { m y ( $ t r e e . $ p a r e n t ) = o _ ; $ $ t r e e { t y p e } e q ’ S t a t e ’ I I d i e ’ N o d e i s n o t a S t a t e n o d e ’ ; p r i n t " S t a t e n a m e = $ $ t r e e { I D } \ n " ; m y $ s t a t e o b j = n e w S t a t e ( $ p a r e n t . $ $ t r e e { I D } ) ; m y S b o d y = $ $ t r e e { s t a t e b o d y } { s t a t e s t m t l i s t } ; m y S e n t ; f o r e a c h $ e n t ( Q S b o d y ) { i f ( $ $ e n t { t y p e } n e ’ T r a n s ’ ) { d i e " s o m e t h i n g o t h e r t h a n T r a n s i n a s t a t e " ; } p r i n t " T r a n s i t i o n $ $ e n t { t r a n } t o s t a t e $ $ e n t { d e s t } \ n " ; m y $ t r a n ; ( $ t r a n ) = $ $ e n t { t r a n } = ~ / “ " ( . + ) " $ / ; S s t a t e o b j - > T r a n ( $ t r a n , $ $ e n t { d e s t } ) ; } r e t u r n $ s t a t e o b j ; # r e t u r n t h e r e f t o t h i s s t a t e } # l / u s r / b i n / p e r l p a c k a g e C C S t a t e ; # I n s t a n c e V a r s i f m e m b e r s : l i s t o f r e f s t o m e m b e r c s t a t e s # P a r e n t : w h o o w n s m e ( w h e r e I g e t i n c l u d e d ) # N e e d a C C S t a t e t o h o l d C S t a t e s , w h i c h r u n c o n c u r r e n t l y . A C C S t a t e i s a k i n d # 0 1 ' c o n t a i n e r t h a t h o l d s C S t a t e s , t h a t h o l d s t a t e s . 1 ‘ C C S t a t e h a s n o o u t p u t m e t h o d b e c a u s e i t o n l y g e n e r a t e s i n s t a n t i a t i o n 1 ‘ 3 1 7 - n i t s w i t h i n t h e t h i n g ( C S t a t e , p r o b a b l y ) t h a t i t i s i n . I t h a s L c l O u t p u t # b e c a u s e i t n e e d s t o w r i t e s t a t e m e n t s i n t o t h e t h i n g i t i s i n . 3 1 1 t i t Q # # T h e i d e a i s t o c r e a t e a n e w s t a t e s i g n a l f o r e a c h p a r a l l e l c o m p o n e n t a n d i n s t a n t i a t e a e n t / a r c h f o r e a c h o n e . W e a l s o l i s t e n f o r a n y o f t h e C S t a t e n a m e s a n d s t a r t t h e t h r e a d s i f w e g e t o n e . T h i s m e a n s t r a n s i t i o n s i n t o C C S t a t e s i s n o t a l l o w e d . # Y o u h a v e t o c a l l R e c o r d S t a t e t o r e c o r d a n e w C S t a t e t h a t i s w i t h i n t h i s # C C S t a t e . T h i s i s e q u i v a l e n t t o c a l l i n g S t a t e w i t h i n C S t a t e . s u b n e w { m y ( $ c l a s s , $ p a r e n t ) = Q _ ; $ o b j = { } ; b l e s s $ o b j ; $ C O U N T + + ; $ $ o b j { n a m e } = " C C S T A T E $ C O U N T " ; $ $ o b j { p a r e n t } = S p a r e n t ; $ p a r e n t - > A d d S t a t e ( $ o b j ) ; # a d d t o i n s t a n t i a t i o n l i s t o f p a r e n t $ $ o b j { o b j r e f } = $ p a r e n t - > G e t 0 b j R e f ; # g e t r e f t o o b j e c t C o n t e x t - > D e p e n d ( $ o b j , S p a r e n t ) ; # R e g i s t e r d e p e n d e n c y # d e t e r m i n e d o m i n a n t ( h i g h e s t ) C C S t a t e . C S t a t e r e t u r n s w h a t i t ’ s p a r e n t # d o e s a n d O b j e c t r e t u r n s n u l l , s o a n u l l m e a n s w e a r e h i g h e s t . A l s o r e c o r d # i f t h i s i s t h e d o m i n a n t c c s t a t e . T h i s i s u s e d f o r ’ i n ’ s t a t e p r e d i c a t e . $ $ o b j { d o m c c } = $ p a r e n t - > H i C C S t a t e ; i f ( ! $ $ o b j { d o m c c } ) { p r i n t " I A M t h e d o m n i a n t C C S T A T E \ n " ; $ $ o b j { d o m c c } = $ o b j ; $ $ o b j { m e d o m c c } = 1 ; } e l s e { $ $ o b j { m e d o m c c } = 0 } r e t u r n $ o b j ; } s u b H i C C S t a t e # r e t u r n d o m i n a n t c c s t a t e . p e r h a p s m e . { $ o b j = s h i f t ; r e t u r n $ $ o b j { d o m c c } ; } s u b R e c o r d C S t a t e # r e c o r d a n e w C S t a t e a d d e d s o m e w h e r e w i t h i n t h i s C C S t a t e c o n t e x t { m y ( S o b j , $ c s ) = 0 _ ; p r i n t " C S t a t e " , 8 c s - > G e t N a m e , " r e c o r d e d i n C C s t a t e \ n " ; p u s h ( 0 { $ $ o b j { c s l i s t } } , $ c s ) ; } s u b G e t C S t a t e L i s t { r e t u r n O { $ $ o b j { c s l i s t } } ; } s u b G e t O b j R e f 3 1 2 m y $ o b j = s h i f t ; r e t u r n $ $ o b j { o b j r e f } ; } s u b A d d S t a t e { # $ s t a t e i s r e f t o s t a t e - o b j a d d e d t o t h i s C C S t a t e # I t h a d b e t t e r b e a C S t a t e . m y ( $ o b j , $ s t a t e ) = O _ ; p u s h ( @ { $ $ o b j { m e m b e r s } } , $ s t a t e ) ; m y $ n a m e ; # C C S t a t e s n e e d n o t h a v e t h e i r n a m e r e c o r d e d b e c a u s e t h e r e i s n o o f f i c i a l # ( g i v e n b y u s e r ) n a m e . A l s o , w e d o n ’ t w a n t a s t a t e t r a n s i t i o n f o r # C C S t a t e s i f ( r e f ( $ s t a t e ) e q ’ C C S t a t e ’ ) { r e t u r n } $ n a m e = $ s t a t e - > G e t N a m e ; # a d d t h e n a m e o f t h i s s t a t e t o t h e c o n t a i n i n g o b j e c t i f ( $ n a m e ) { $ $ o b j { o b j r e f } - > A d d S t a t e N a m e ( $ n a m e ) } } s u b G e t N a m e { r e t u r n $ $ o b j { n a m e } ; } s u b L c l O u t p u t { m y $ o b j = s h i f t ; P u t C o n t e x t 0 , " - - C C S t a t e o u t p u t \ n " ; O p o r t s = $ $ o b j { o b j r e f } - > G e t P o r t N a m e s ; m y $ w h e n = ” ; m y e n a m e s ; f o r e a c h $ c s ( Q { $ $ o b j { m e m b e r s } } ) { m y S n a m e = $ c s — > G e t N a m e ; p u s h ( 0 n a m e s , $ n a m e ) ; i f ( $ w h e n ) { $ w h e n . = " o r s t a t e = s t ’ ( $ n a m e ) " } e l s e { $ w h e n = " w h e n s t a t e = s t ’ ( $ n a m e ) " } } # n o w r u n t h r u l i s t o f n a m e s a n d m a k e i n s t a n t i a t i o n s m y $ c s ; f o r e a c h S h a m e ( O n a m e s ) { S l a b e l = C o n t e x t - > G e t L a b e l ; P u t C o n t e x t 1 , " $ l a b e 1 : e n t i t y c s _ $ n a m e ( a b s t r a c t ) \ n " ; m y S p o r t = " p o r t m a p ( s t a t e = > s s _ $ n a m e " ; f o r e a c h $ a ( o n r t s ) { $ p o r t . = " , $ a = > $ a " ; } # d o t h e p o r t s f o r t h e i n s t a t e p r e d i c a t e f o r e a c h $ c s ( $ $ o b j { d o m c c } - > G e t C S t a t e L i s t ) { m y $ c s n a m e = $ c s - > G e t N a m e ; i f ( $ n a m e e q $ c s n a m e ) { $ p o r t . = " , i n s t a t e = > i n s _ $ n a m e " } e l s e { $ p o r t . = " , i n s _ $ c s n a m e = > i n s _ $ c s n a m e " } } P u t C o n t e x t 2 , " $ p o r t ) ; \ n " ; 3 1 3 P u t C o n t e x t 1 , " s s _ $ n a m e < = s t ’ ( $ n a m e ) , n u l l a f t e r 1 f s $ w h e n ; \ n " ; } } s u b O u t p u t S i g n a l s { m y $ o b j = s h i f t ; f o r e a c h $ s t a t e ( 0 { $ $ o b j { m e m b e r s } } ) { m y $ n a m e = $ s t a t e — > G e t N a m e ; P u t C o n t e x t 1 , " s i g n a l s s _ $ n a m e : r s _ s t ; \ n " ; } i f ( $ $ o b j { m e d o m c c } ) { m y $ c s ; f o r e a c h $ c s ( 0 { $ $ o b j { c s l i s t } } ) { m y $ n a m e = $ c s - > G e t N a m e ; P u t C o n t e x t 1 , " s i g n a l i n s _ $ n a m e : s t ; \ n " ; } } } s u b G e t S t a t e N a m e L i s t { # r e t u r n a l i s t o f C S t a t e s t h a t l i e w i t h i n t h e C C S t a t e . C a l l e d b y J o i n . # w o r k s b y r u n n i n g t h r u t h e l i s t o f m e m b e r s c a l l i n g e a c h ’ s G e t N a m e m e t h o d . m y $ o b j = s h i f t ; m y $ c s ; m y O n a m e s = C ) ; f o r e a c h $ c s ( 0 { $ $ o b j { m e m b e r s } } ) { m y $ n a m e = $ c s - > G e t N a m e ; p u s h ( 0 n a m e s , $ n a m e ) ; } r e t u r n O n a m e s ; } s u b G e t M e m b e r s { # R e t u r n a l i s t o f m e m b e r s o f t h i s C C S t a t e m y $ o b j = s h i f t ; r e t u r n O { $ $ o b j { m e m b e r s } } ; } 1 ; # l / u s r / b i n / p e r l p a c k a g e C S t a t e ; u s e S t a t e ; # n a m e : m y n a m e # o b j n a m e : n a m e o f o b j e c t o w n i n g t h i s s t a t e # o b j r e f : r e f e r e n c e t o o b j e c t o w n i n g t h i s s t a t e # s t a t e : l i s t o f n a m e s o f s t a t e s t o i n s t a n t i a t e w i t h i n m y a r c h b o d y # p a r e n t : r e f t o w h o o w n s m e s u b n e w { 3 1 4 # M a k e a n e w C o m p o s i t e s t a t e w i t h p a r e n t r e f t o e n c l o s i n g o b j e c t , s t a t e , e t c m y ( $ c l a s s , S p a r e n t , $ n a m e ) = O _ ; p r i n t " M y p a r e n t i s " , 8 p a r e n t - > G e t N a m e , " \ n " ; m y $ o b j = i } ; b l e s s $ o b j ; $ $ o b j { n a m e } = $ n a m e ; $ $ o b j { p a r e n t } = $ p a r e n t ; $ $ o b j { o b j r e f } = $ p a r e n t - > G e t 0 b j R e f ; $ p a r e n t - > A d d S t a t e ( $ o b j ) ; C o n t e x t - > D e p e n d ( $ o b j , $ p a r e n t ) ; # n e x t f i n d h i g h e s t ( m o s t c o n t a i n i n g ) C C S t a t e , i f a n y . I f t h e r e i s o n e , # a d d m e t o h i s l i s t . T h i s i s f o r ’ i n ’ p r e d i c a t e p r o c e s s i n g $ $ o b j { d o m c c } = $ p a r e n t - > H i C C S t a t e ; p r i n t " C S t a t e g o t a " , r e f ( $ $ o b j { d o m c c } ) , " b a c k f o r H i C C \ n " ; i f ( $ $ o b j { d o m c c } ) { p r i n t " T h e r e I S a d o m i n a n t C C S t a t e \ n " ; $ $ o b j { d o m c c } - > R e c o r d C S t a t e ( $ o b j ) ; # i f e x i s t s , a d d m e . } e l s e { p r i n t " t h e r e i s n o d o m i n a n t C C S t a t e \ n " } r e t u r n $ o b j ; } s u b H i C C S t a t e { # T h i s j u s t p a s s e s t h e c a l l t h r u . S e e C C S t a t e f o r d e t a i l s o f w h a t ’ s g o i n g # o n . m y $ o b j = s h i f t ; r e t u r n $ $ o b j { p a r e n t } - > H i C C S t a t e ; } s u b G e t N a m e { m y $ o b j = s h i f t ; r e t u r n $ $ o b j { n a m e } ; } s u b G e t O b j R e f { # r e t u r n a r e f e r e n c e t o t h e O b j e c t ( h i g h e s t l e v e l ) m y $ o b j = s h i f t ; r e t u r n $ $ o b j { o b j r e f } ; } s u b A d d S t a t e { # c a l l e d b y s i m p l e s t a t e p r o c e s s t o i n c l u d e s t a t e i n m y l i s t o f s t a t e s m y ( $ o b j , S s t a t e ) = 0 _ ; p u s h ( 0 { $ $ o b j { s t a t e s } } , $ s t a t e ) ; m y $ n a m e ; S h a m e = $ s t a t e - > G e t N a m e ; p r i n t " = 8 : C S t a t e n a m e $ $ o b j { n a m e } a d d i n g s t a t e $ n a m e \ n " ; i f ( S n a m e ) { 3 1 5 $ $ o b j { o b j r e f } - > A d d S t a t e N a m e ( $ n a m e ) ; } } s u b G e t S t a t e N a m e L i s t { m y $ o b j = s h i f t ; m y ( $ s t a t e , $ n a m e , 0 1 i s t ) ; f o r e a c h $ s t a t e ( C { $ $ o b j { s t a t e s } } ) { s n a m e = $ s t a t e - > G e t N a m e ; i f ( $ n a m e ) { p u s h ( @ l i s t , $ n a m e ) } } r e t u r n Q l i s t ; } s u b O u t p u t S i g n a l s { r e t u r n ; } s u b L c l O u t p u t m y $ o b j = s h i f t ; m y $ l a b e l = C o n t e x t - > G e t L a b e l ; m y o n r t s ; O p o r t s = $ $ o b j { o b j r e f } - > G e t P o r t N a m e s ; P u t C o n t e x t 1 , " $ l a b e l : e n t i t y c s - $ $ o b j { n a m e } ( a b s t r a c t ) \ n " ; m y $ p o r t = ’ p o r t m a p ( s t a t e = > s t a t e ’ ; f o r e a c h $ v a r ( O p o r t s ) { s p o r t . = " , S v a r = > $ v a r " ; } # d o t h e p o r t s f o r t h e i n s t a t e p r e d i c a t e i f ( $ $ o b j { d o m c c } ) { m y S e e ; m y S p a r e n t n a m e = $ $ o b j { p a r e n t } — > G e t N a m e ; f o r e a c h $ c s ( $ $ o b j { d o m c c } - > G e t C S t a t e L i s t ) { m y $ c s n a m e = $ c s — > G e t N a m e ; i f ( $ $ o b j { n a m e } e q $ c s n a m e ) { S p o r t . = " , i n s t a t e = > i n s _ $ $ o b j { n a m e } " } e l s i f ( S p a r e n t n a m e e q $ c s n a m e ) { $ p o r t . = " , i n s _ $ c s n a m e = > i n s t a t e " } e l s e { S p o r t . = " , i n s _ $ c s n a m e = > i n s _ $ c s n a m e " } } } P u t C o n t e x t 2 , " $ p o r t ) ; \ n " ; } s u b O u t p u t { m y S o b j = s h i f t ; m y $ s t a t e ; P u t C o n t e x t O , " u s e s t d . t e x t i o . a l l ; \ n " ; P u t C o n t e x t O , " u s e w o r k . e a s y i o . a l l ; \ n " ; P u t C o n t e x t O , " u s e w o r k . e o m m o n . a l l ; \ n " ; m y $ o b j n a m e = $ $ o b j { o b j r e f } — > G e t N a m e ; P u t C o n t e x t O , " u s e w o r k . p k _ $ o b j n a m e . a l l ; \ n " ; 3 1 6 P u t C o n t e x t O , " e n t i t y c s _ $ $ o b j { n a m e } i s \ n " ; m y O p o r t s = $ $ o b j { o b j r e f } - > G e t P o r t N a m e s ; m y o n r t t y p e = $ $ o b j { o b j r e f } - > G e t P o r t T y p e s ; m y 3 i ; i f ( O p o r t s = = 0 ) { P u t C o n t e x t 1 , " p o r t ( s t a t e : i n o u t r s _ s t ) ; \ n " } e l s e { P u t C o n t e x t 1 , " p o r t ( s t a t e : i n o u t r s _ s t ; \ n " } f o r ( $ i = 0 ; $ i < 0 p o r t s ; $ i + + ) { i f ( $ i > 0 ) { P u t C o n t e x t O , " ; \ n " } P u t C o n t e x t 2 , " $ p o r t s [ $ i ] : i n o u t $ p o r t t y p e [ $ i ] " ; } i f ( $ $ o b j { d o m c c } ) { m y O i n s p o r t s = $ $ o b j { d o m c c } - > G e t C S t a t e L i s t ; m y $ c s o b j ; m y $ c s n a m e ; f o r e a c h $ c s o b j ( @ i n s p o r t s ) { $ c s n a m e = $ c s o b j - > G e t N a m e ; P u t C o n t e x t O , " ; \ n " ; i f ( $ c s n a m e e q $ $ o b j { n a m e } ) { P u t C o n t e x t 2 , " i n s t a t e : o u t s t " } e l s e { P u t C o n t e x t 2 , " i n s _ $ c s n a m e : i n s t " } } } P u t C o n t e x t O , " ) ; \ n " ; P u t C o n t e x t O , " e n d e n t i t y ; \ n \ n " ; P u t C o n t e x t 0 , " a r c h i t e c t u r e a b s t r a c t o f c s _ $ $ o b j { n a m e } i s \ n " ; # A d d s i g n a l s f o r s t a t e s f o r e a c h $ s t a t e ( O { $ $ o b j { s t a t e s } } ) { $ s t a t e - > O u t p u t S i g n a l s ; } P u t C o n t e x t 0 , " b e g i n \ n " ; # I f t h e r e a r e ’ i n ’ p r e d i c a t e s , n e e d t h i s s t m t t o s e t i n s t a t e . i f ( $ $ o b j { d o m c c } ) { P u t C o n t e x t 1 , " i n s t a t e < = s t a t e w h e n s t a t e / = s t ’ ( n o n e ) ; \ n " ; } f o r e a c h $ s t a t e ( G { $ $ o b j { s t a t e s } } ) { $ s t a t e - > L c l O u t p u t ; } P u t C o n t e x t O , " e n d a b s t r a c t ; \ n " ; P u t C o n t e x t 0 , " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ n \ n " ; } 1 ; # l / u s r / b i n / p e r l p a c k a g e C o n t e x t ; u s e F i l e H a n d l e ; s u b B E G I N { O O b j e c t L i s t = ( ) ; } s u b E n u m { # H a n d l e E N U M t y p e s . T h e s e w i l l g o i n t o p a c k a g e c o m m o n 3 1 7 m y ( $ c l a s s , $ n a m e , G l i s t ) = @ _ ; $ E n u m { $ n a m e } = [ O l i s t ] ; } s u b O u t F i l e { m y ( $ c l a s s , $ f i l e n a m e ) = @ _ ; o p e n ( O U T , " > 8 f i l e n a m e . v h d l " ) ; } s u b P u t { # P r o d u c e o u t p u t . i n d e n t f o r l o o k s . F i r s t p a r m i s i d e n t s p a c e s X 4 . V a l u e # o f - 1 = = > w r i t e o u t f i r s t e n t r y a s i s . m y ( $ c l a s s , $ i n d e n t , @ a ) = C _ ; i f ( $ i n d e n t e q - 1 ) { p r i n t O U T $ a [ O ] ; r e t u r n ; } $ i n d e n t * = 4 ; m y $ t e x t = j o i n ( ” , 0 a ) ; w h i l e ( l e n g t h ( $ t e x t ) + $ i n d e n t > 7 2 ) { f o r ( $ i = 7 2 - $ i n d e n t ; $ i ; $ i - - ) { i f ( s u b s t r ( $ t e x t , $ i , 1 ) e q ’ ’ ) { l a s t } } p r i n t O U T ’ ’ x $ i n d e n t , s u b s t r ( $ t e x t , 0 , $ i ) , " \ n " ; $ t e x t = s u b s t r ( $ t e x t , $ i + 1 ) ; } p r i n t O U T ’ ’ x $ i n d e n t , $ t e x t ; } s u b G e t L a b e l { $ C o u n t + + ; r e t u r n " 1 8 C o u n t " ; } s u b A d d O b j { m y $ c l a s s = s h i f t ; m y S o b j = s h i f t ; p u s h ( O O b j e c t L i s t , $ o b j ) ; } s u b I n i t i a l { m y $ t e x t = < < " E O F " ; u s e s t d . t e x t i o . a l l ; p a c k a g e e a s y i o i s p r o c e d u r e s a y ( c o n s t a n t s t r : i n s t r i n g ) ; e n d p a c k a g e e a s y i o ; 3 1 8 p a c k a g e b o d y e a s y i o i s p r o c e d u r e s a y ( c o n s t a n t s t r : i n s t r i n g ) i s v a r i a b l e m y l i n e : l i n e ; b e g i n w r i t e ( m y l i n e , n o w ) ; w r i t e ( m y l i n e , " : " ) ; w r i t e ( m y l i n e , s t r ) ; w r i t e l i n e ( o u t p u t , m y l i n e ) ; e n d ; a n d p a c k a g e b o d y e a s y i o ; p a c k a g e c o m m o n i s E O F P u t C o n t e x t - 1 , $ t e x t ; m y $ x ; f o r e a c h 8 x ( k e y s Z E n u m ) { P u t C o n t e x t 1 , " t y p e $ x i s ( " , j o i n ( ’ , ’ , © { $ E n u m { $ x } } ) , " ) ; \ n " ; } P u t C o n t e x t 0 , " e n d p a c k a g e c o m m o n ; \ n \ n " ; f o r e a c h 8 x ( Q O b j e c t L i s t ) { p r i n t " c o n t e x t d o i n g i n i t i a l f o r o b j e c t " , $ x - > G e t N a m e , " \ n " ; $ x - > I n i t i a l ; } s u b D e p e n d { 4 b d e p e n d s o n a , t h a t i s , a s h o u l d o c c u r f i r s t i n t h e o u t p u t . T h i s # m e t h o d s k e e p s t r a c k o f e a c h C S t a t e a n d C C S t a t e a n d k e e p s t h e m i n o r d e r . m y ( $ c l a s s , $ a , 8 b ) = 0 _ ; i f ( ! s b ) { p u s h ( O D e p e n d , 8 a ) ; r e t u r n ; } f o r ( $ i = 0 ; $ 1 , 0 D e p e n d ; $ i + + ) { i f ( $ D e p e n d [ $ i = = $ b ) { s p l i c e ( O D e p e n d , $ i , O , $ a ) ; r e t u r n ; } } p u s h ( O D e p e n d , $ a , $ b ) ; } s u b P u t S t a t e 2 C S { # S a v e n a m e o f p a r e n t s t a t e u n d e r t h i s s t a t e n a m e s o w e c a n f i n d o u t 3 t o w h o m a s t r a t e b e l o n g s . m y ( S c l a s s , $ s t a t e , $ c s ) = @ _ ; $ S t a t e 2 C S { $ s t a t e } = $ c s ; 3 1 9 } s u b S t a t e 2 C S { # R e t u r n t o w h o m a s t a t e ( b y n a m e ) b e l o n g s ( n a m e o f c o n t e x t ) m y ( $ c l a s s , $ s t a t e ) = o _ ; r e t u r n $ S t a t e 2 C S { $ s t a t e } ; } s u b D r i v e r F i l e { # T h e f i l e n a m e o f t h e d r i v e r i s s p e c i f i e d h e r e . A l l w e n e e d i s a n # a r c h i t e c t u r e a b s t r a c t o f c o n t e x t , d e c l a r e t h e s i g n a l s n e e d e d , # i n s t a n t i a t e t h e t o p o b j e c t a b d b e g i n d r i v i n g . m y ( $ c 1 a s s , $ f i l e n a m e ) = Q _ ; $ D r i v e r F i l e = $ f i 1 e n a m e ; s u b O u t p u t { # T h i s i s t h e m a i n o u t p u t r o u t i n e . I t c y c l e s t h r u t h e l i s t o f C S t a t e s a n d # C C S t a t e s , w h i c h a r e i n d e p e n d e n c y o r d e r , a n d c a l l s i t ’ s o u t p u t r o u t i n e . C o n t e x t - > I n i t i a l ; p r i n t " E n t i t i e s o r d e r : \ n " ; m y ( $ n a m e , $ e n t ) ; f o r e a c h S e n t ( O D e p e n d ) { i f ( r e f ( $ e n t ) e q ’ C C S t a t e ’ ) { n e x t } S h a m e = $ e n t - > G e t N a m e ; p r i n t " $ n a m e \ n " ; 8 e n t - > O u t p u t ; } P u t C o n t e x t O , " u s e s t d . t e x t i o . a l l ; \ n " ; P u t C o n t e x t O , " u s e w o r k . e a s y i o . a l l ; \ n " ; P u t C o n t e x t O , " u s e w o r k . e o m m o n . a l l ; \ n " ; f o r e a c h $ o b j ( O O b j e c t L i s t ) { S n a m e = S o b j - > G e t N a m e ; P u t C o n t e x t O , " u s e w o r k . p k _ $ n a m e . a l l ; \ n " ; } P u t C o n t e x t O , " e n t i t y c o n t e x t i s \ n " ; P u t C o n t e x t O , " e n d e n t i t y ; \ n \ n " ; o p e n ( I N , $ D r i v e r F i 1 e ) I I d i e " N o d r i v e r f i l e s p e c i f i e d \ n " ; w h i l e ( $ 1 = < I N > ) { P u t C o n t e x t 0 , 8 1 ; } c l o s e ( I N ) ; } 1 ; # l / u s r / b i n / p e r l p a c k a g e H i s t o r y ; s u b n e w { 3 2 0 # $ p a r e n t i s a n o b j r e f , S d e s t i s a r e f t o d e s t s t a t e ( d e f a u l t s t a r t ) m y ( $ c l a s s , $ p a r e n t , $ d e s t ) = 0 _ ; m y S o b j = i } ; b l e s s S o b j ; $ $ o b j { p a r e n t } = $ p a r e n t ; $ $ o b j { d e s t } = $ d e s t ; $ p a r e n t - > A d d S t a t e ( $ o b j ) ; r e t u r n $ o b j ; s u b G e t N a m e { r e t u r n ” ; } s u b O u t p u t S i g n a l s { m y $ o b j = s h i f t ; m y S h a m e = $ $ o b j { d e s t } — > G e t N a m e ; P u t C o n t e x t 1 , " s i g n a l h i s t o r y : s t : = s t ’ ( $ $ o b j { d e s t } ) ; \ n " ; } s u b L c l O u t p u t { m y $ o b j = s h i f t ; m y O l i s t ; m y $ w h e n = ” ; m y $ n a m e ; O l i s t = $ $ o b j { p a r e n t } - > G e t S t a t e N a m e L i s t ; f o r e a c h $ n a m e ( O l i s t ) { i f ( $ w h e n e q ” ) { $ w h e n = " s t a t e = s t ’ ( $ n a m e ) " } e l s e { $ w h e n . = " o r s t a t e = s t ’ ( $ n a m e ) " } } P u t C o n t e x t 0 , " \ n " ; P u t C o n t e x t 1 , " h i s t o r y < = s t a t e w h e n $ w h e n ; \ n " ; P u t C o n t e x t 1 , " s _ i n i t : p r o c e s s \ n " ; P u t C o n t e x t 1 , " b e g i n \ n " ; P u t C o n t e x t 2 , " s a y ( \ " I n s t a t e $ $ o b j { n a m e } h i s t o r y \ " ) ; \ n " ; P u t C o n t e x t 2 , " w a i t u n t i l s t a t e = s t ’ ( " , $ $ o b j { p a r e n t } - > G e t N a m e , " ) ; \ n " ; P u t C o n t e x t 2 , " s t a t e < = h i s t o r y , n u l l a f t e r 1 f s ; \ n " ; P u t C o n t e x t 1 , " e n d p r o c e s s ; \ n " ; } 1 ; # l / u s r / b i n / p e r l p a c k a g e I n i t ; # C r e a t e a n I n i t s t a t e . W e c a n h a n d l e t r a n s i t i o n s t o t h e C S t a t e b e c a u s e # w e b u i l d w a i t s t h a t l i s t e n f o r t h e C S t a t e n a m e . s u b n e w # p a r e n t i s t h e c o n t i n i n g e n t i t i y ( l i k e C S t a t e ) , $ d e s t i s r e f t o s t a r t # s t a t e w h i c h m a y b e a C S t a t e o r a S t a t e . N O T E : d e s t i s a R E F . { 3 2 1 # % # # % # # % m y ( $ c l a s s , S p a r e n t , $ d e s t ) = 0 _ ; m y $ o b j = { } ; b l e s s $ o b j ; $ $ o b j { p a r e n t } = $ p a r e n t ; $ $ o b j { d e s t } = $ d e s t ; $ p a r e n t - > A d d S t a t e ( $ o b j ) ; r e t u r n $ o b j ; s u b G e t N a m e { r e t u r n ” ; } s u b O u t p u t S i g n a l s { r e t u r n ; } s u b L c l O u t p u t m y $ o b j = s h i f t ; m y $ o b j e c t = $ $ o b j { p a r e n t } - > G e t O b j R e f ; P u t C o n t e x t 0 , " \ n " ; P u t C o n t e x t 1 , " s _ i n i t : p r o c e s s \ n " ; P u t C o n t e x t 1 , " b e g i n \ n " ; # I f I n i t i s n o t c o n t a i n e d i n O b j e c t ( t o p l e v e l ) , t h e n w e h a v e t o l i s t e n # f o r o u r p a r e n t ’ s n a m e , a n d I m u s t b e i n a C S t a t e ( C C S t a t e ’ s d o n ’ t h a v e # o f f i c i a l n a m e s . I f I A M a t t h e O b j e c t l e v e l , j u s t i n i t i a l i z e t h e f i r s t # s t a t e a n d b e g i n i f ( $ o b j e c t ! = $ $ o b j { p a r e n t } ) { m y $ n a m e = $ $ o b j { p a r e n t } - > G e t N a m e ; P u t C o n t e x t 2 , " w a i t u n t i l s t a t e = s t ’ ( $ n a m e ) ; \ n " ; } P u t C o n t e x t 2 , " s t a t e < = s t ’ ( " , 8 $ o b j { d e s t } - > G e t N a m e , " ) , n u l l a f t e r 1 f s ; \ n " ; i f ( $ o b j e c t = = $ $ o b j { p a r e n t } ) { P u t C o n t e x t 2 , " w a i t ; \ n " } P u t C o n t e x t 1 , " e n d p r o c e s s ; \ n " ; } 1 ; # l / u s r / b i n / p e r l p a c k a g e J o i n ; T h i s o b j e c t b u i l d s a j o i n c o n s t r u c t i n s i d e a c o m p o s i t e s t a t e o f s o m e s o r t . I t c r e a t e s a s i g n a l f o r e a c h p a r a l l e l s t a t e i n t h e C C s t a t e t h e n w a i t s f o r a t r a n s i t i o n t o i t ’ s n a m e f r o m t h a t C C s t a t e c o m p o n e n t . T h i s i s n o t c o m p l e t e : I f a t h r e a d j u s t s t o p s , t h e j o i n w i l l n e v e r c o m p l e t e , b u t t h e n w e d o n ’ t h a v e a ’ s t o p ’ y e t . I t i s e q u i v a l e n t t o j u s t g o t o t h e j o i n . J o i n g e t s i t ’ s l i s t o f C S t a t e s f r o m i t ’ s p a r e n t C C S t a t e , s o t h e j o i n c a n o n l y b e o n e l e v e l a b o v e t h e C C S t a t e . s u b n e w { # n e w J o i n ( p a r e n t , m y - n a m e , C C s t a t e , d e s t ) # S p a r e n t i s r e f t o w h e r e t o p u t t h e j o i n c o n s t r u c t . # m y _ n a m e i s t h e s t a t e n a m e w h e r e t r a n s i t i o n s g o t o j o i n ; j o i n n a m e ( l i t e r a l ) 3 2 2 # $ C C s t a t e i s t h e c o n c u r r e n t s t a t e r e f f r o m w h i c h t h e j o i n i s c o m i n g # S p a r e n t , $ c c s t a t e a r e o b j r e f s # $ n a m e a n d $ d e s t a r e l i t e r a l s m y ( $ c l a s s , $ p a r e n t , $ n a m e , $ c c s t a t e , $ d e s t ) = @ _ ; p r i n t " J O I N $ n a m e t o $ d e s t \ n " ; m y $ o b j = { } ; b l e s s S o b j ; 8 $ o b j { c c s t a t e } = $ c c s t a t e ; $ $ o b j { d e s t } = $ d e s t ; $ $ o b j { n a m e } = $ n a m e ; $ $ o b j { p a r e n t } = $ p a r e n t ; $ p a r e n t - > A d d S t a t e ( $ o b j ) ; r e t u r n $ o b j ; } s u b G e t N a m e { m y S o b j = s h i f t ; r e t u r n $ $ o b j { n a m e } ; } s u b O u t p u t S i g n a l s { m y $ o b j = s h i f t ; e s t a t e s = $ $ o b j { c c s t a t e } - > G e t S t a t e N a m e L i s t ; f o r e a c h $ s t a t e ( e s t a t e s ) { P u t C o n t e x t 1 , " s i g n a l $ $ o b j { n a m e } _ $ s t a t e : s t ; \ n " ; } } s u b L c l O u t p u t m y S o b j = s h i f t ; m y e s t a t e s ; O s t a t e s = $ $ o b j { c c s t a t e } - > G e t S t a t e N a m e L i s t ; P u t C o n t e x t 0 , " \ n " ; m y s a n d ; # b u i l d s t a t i c s i g n a l s f r o m C C S t a t e l i s t f o r e a c h $ c s ( Q s t a t e s ) { P u t C o n t e x t 1 , " $ $ o b j { n a m e } _ $ c s < = s s _ $ c s " . " w h e n s s _ $ c s = s t ’ ( $ $ o b j { n a m e } ) ; \ n " ; i f ( S a n d ) { $ a n d . = " a n d " } S a n d . = " $ $ o b j { n a m e } _ $ c s = s t ’ ( $ $ o b j { n a m e } ) " ; } P u t C o n t e x t 1 , " s _ $ $ o b j { n a m e } : p r o c e s s \ n " ; P u t C o n t e x t 1 , " b e g i n \ n " ; P u t C o n t e x t 2 , " w a i t u n t i l $ a n d ; \ n " ; P u t C o n t e x t 2 , " s a y ( \ " $ $ o b j { n a m e } j o i n c o m p l e t e \ " ) ; \ n " ; P u t C o n t e x t 2 , " s t a t e < = s t ’ ( $ $ o b j { d e s t } ) , n u l l a f t e r 1 f s ; \ n " ; f o r e a c h S c s ( Q s t a t e s ) { P u t C o n t e x t 2 , " $ $ o b j { n a m e } _ $ c s < = s t ’ ( n o n e ) ; \ n " ; } 3 2 3 P u t C o n t e x t 1 , " e n d p r o c e s s ; \ n \ n " ; } s u b G e t S i g n a l s { m y $ o b j = s h i f t ; m y $ s t a t e ; f o r e a c h S s t a t e ( $ $ o b j { c c s t a t e } - > G e t S t a t e N a m e L i s t ) { P u t C o n t e x t 1 , " s i g n a 1 $ $ o b j { n a m e } _ $ c s : s t ; \ n " ; } } 1 ; # l / u s r / b i n / p e r l p a c k a g e O b j e c t ; u s e S t a t e ; u s e C C S t a t e ; # n a m e : m y n a m e # s t a t e s : l i s t o f r e f s o f s t a t e s t o i n s t a n t i a t e # s t a t e n a m e s : l i s t o f n a m e s o f s t a t e s f o r s t a t e t y p e d c l # p o r t n a m e s : l i s t o f p o r t v a r i a b l e s f o r e n t i t y # p o r t t y p e s : c o r r e s p o n d i n g t y p e o f p o r t s # L c l O u t p u t v s . O u t p u t : # M e t h o d O u t p u t p r o d u c e s a n d E n t / A r c h o f s o m e t y p e . # M e t h o d s L c l O u t p u t p r o d u c e s c o n t e n t i n t e n d e d t o b e i n s i d e a n a r c h , # s o S t a t e , H i s t o r y , I n i t h a v e L c l O u t p u t ’ s o n l y . # C S t a t e , C C S t a t e , h a v e b o t h ( o n e t o m a k e t h e E n t / a r c h , a n o t h e r # f o r t h e p a r e n t t o b u i l d s t m t s t o c a l l i t . ) s u b n e w { m y ( $ c l a s s , $ n a m e ) = 0 _ ; $ o b j = { } ; b l e s s $ o b j ; $ $ o b j { n a m e } = $ n a m e ; $ $ o b j { o r d e r n a m e } [ 0 ] = S n a m e ; $ $ o b j { o r d e r r e f } [ 0 ] = $ o b j ; C o n t e x t - > A d d 0 b j ( $ o b j ) ; # a d d t h i s o b j e c t t o l i s t o f o b j e c t s C o n t e x t - > D e p e n d ( $ o b j ) ; r e t u r n $ o b j ; s u b H i C C S t a t e { r e t u r n ” ; } s u b A s s o c m y ( S o b j , $ v a r , $ t y p e ) = C _ ; p u s h ( 0 { $ $ o b j { p o r t n a m e s } } , $ v a r ) ; p u s h ( 0 { $ $ o b j { p o r t t y p e s } } , S t y p e ) ; 3 2 4 s u b G e t P o r t N a m e s { S o b j = s h i f t ; r e t u r n 0 { $ $ o b j { p o r t n a m e s } } ; } s u b G e t P o r t T y p e s { S o b j = s h i f t ; r e t u r n O { $ $ o b j { p o r t t y p e s } } ; } s u b G e t N a m e { m y S o b j = s h i f t ; r e t u r n $ $ o b j { n a m e } ; } s u b G e t O b j R e f { # r e t u r n a r e f e r e n c e t o m y s e l f , s i n c e I a m t h e O b j e c t . m y S o b j = s h i f t ; r e t u r n $ o b j ; } s u b A d d S t a t e { # c a l l e d b y s i m p l e s t a t e p r o c e s s t o i n c l u d e s t a t e i n m y l i s t o f s t a t e s m y ( $ o b j , $ s t a t e ) = O _ ; p u s h ( 0 { $ $ o b j { s t a t e s } } , S s t a t e ) ; m y S n a m e ; S n a m e = S s t a t e - > G e t N a m e ; $ 0 b j - > A d d S t a t e N a m e ( $ n a m e ) ; } s u b A d d S t a t e N a m e { m y ( S o b j , $ n a m e ) = @ _ ; i f ( S h a m e n e ” ) { p u s h ( 0 { $ $ o b j { s t a t e n a m e s } } , $ n a m e ) } } s u b O u t p u t { m y $ o b j = s h i f t ; m y $ s t a t e ; P u t C o n t e x t O , " u s e s t d . t e x t i o . a l l ; \ n " ; P u t C o n t e x t O , " u s e w o r k . e a s y i o . a l l ; \ n " ; P u t C o n t e x t O , " u s e w o r k . c o m m o n . a l l ; \ n " ; P u t C o n t e x t O , " u s e w o r k . p k _ $ $ o b j { n a m e } . a l l ; \ n " ; P u t C o n t e x t O , " e n t i t y o b j _ $ $ o b j { n a m e } i s \ n " ; m y O p o r t s = $ o b j - > G e t P o r t N a m e s ; 3 2 5 fi t t t fi m y O p o r t t y p e = $ o b j - > G e t P o r t T y p e s ; m y $ 1 ; P u t C o n t e x t 1 , " p o r t ( $ p o r t s [ 0 ] : i n o u t $ p o r t t y p e [ 0 ] " ; f o r ( $ i = 1 ; $ i < 0 p o r t s ; $ i + + ) { P u t C o n t e x t O , " ; \ n " ; P u t C o n t e x t 2 , " $ p o r t s [ $ i ] : i n o u t $ p o r t t y p e [ $ i ] " ; } P u t C o n t e x t O , " ) ; \ n " ; P u t C o n t e x t O , " e n d e n t i t y ; \ n \ n ” ; P u t C o n t e x t 0 , " a r c h i t e c t u r e a b s t r a c t o f o b j _ $ $ o b j { n a m e } i s \ n " ; # A d d s i g n a l s f o r s t a t e s P u t C o n t e x t 1 , " s i g n a l s t a t e : r s _ s t ; \ n " ; f o r e a c h $ s t a t e ( @ { $ $ o b j { s t a t e s } } ) { P u t C o n t e x t O , " - - s i g n a l s f r o m " , $ s t a t e - > G e t N a m e , " \ n " ; $ s t a t e - > O u t p u t S i g n a l s ; } P u t C o n t e x t 0 , " b e g i n \ n " ; f o r e a c h $ s t a t e ( C { $ $ o b j { s t a t e s } } ) { $ s t a t e - > L c l O u t p u t ; } P u t C o n t e x t O , " e n d a b s t r a c t ; \ n " ; } s u b D c l { # J u s t h o l d o n t o a b u n c h o f o b j e c t l e v e l d e c l a r e s . U s e d f o r a s s o c p o r t # s i g n a l s . } m y ( $ o b j , $ v a r ) = O _ ; p u s h ( @ { $ $ o b j { d c l s } } , $ v a r ) ; s u b I n i t i a l { # # m y $ o b j = s h i f t ; P u t C o n t e x t O , " p a c k a g e p k _ $ $ o b j { n a m e } i s \ n " ; m y $ d c l ; f o r e a c h $ d c 1 ( O { $ $ o b j { d c l s } } ) { P u t C o n t e x t 1 , " $ d c l \ n " ; } P u t C o n t e x t 1 , " t y p e s t i s ( n o n e " , m y $ 3 ; m y $ 3 = j o i n ( ’ , ’ , 0 { $ $ o b j { s t a t e n a m e s } } ) ; P u t C o n t e x t 1 , " t y p e a t i s ( n o n e , $ s ) ; \ n " ; f o r e a c h 8 8 ( k e y s % { $ $ o b j { s t a t e n a m e s } } ) { P u t C o n t e x t 0 , " , $ s " ; } P u t C o n t e x t 0 , " ) ; \ n " ; P u t C o n t e x t - 1 , < < " E O F " ; t y p e s t _ a i s a r r a y ( n a t u r a l r a n g e < > ) o f s t ; f u n c t i o n r e s o l v e _ s t ( v : i n s t _ a ) r e t u r n s t ; 3 2 6 _ - s u b t y p e r s - s t i s r e s o l v e _ s t s t ; e n d p a c k a g e p k _ $ $ o b j { n a m e } ; p a c k a g e b o d y p k _ $ $ o b j { n a m e } i s f u n c t i o n r e s o l v e _ s t ( v : i n s t _ a ) r e t u r n s t i s v a r i a b l e i : n a t u r a l ; b e g i n f o r i i n v ’ r a n g e l o o p i f v ( i ) / = s t ’ ( n o n e ) t h e n r e t u r n v ( i ) ; e n d i f ; e n d l o o p ; r e t u r n s t ’ ( n o n e ) ; e n d f u n c t i o n ; e n d p a c k a g e b o d y ; E O F } 1 ; # l / u s r / b i n / p e r l p a c k a g e S t a t e ; u s e C o n t e x t ; u s e C S t a t e ; # n a m e : n a m e o f s t a t e # p a r e n t : m y o w i n g c o m p o s i t e s t a t e ( o r o b j e c t ) # ( t h e n e x t 3 a r e s e q u e n c e d t o g e t h e r ) # e v e n t : l i s t o f e v e n t s # g u a r d : l i s t o f g u a r d s ; n u l l e n t r y = n o g u a r d # d e s t : l i s t o f d e s t s t a t e s # ( t h e n e x t 2 s e q u e n c e d t o g e t h e r ) # n o e v e n t g u a r d : l i s t o f g u a r d w i t h o u t e v e n t s # n o e v e n t d e s t : m a t c h i n g d e s t s f o r t r a n s w i t h o u t g u a r d s s u b n e w { m y ( $ c l a s s , S p a r e n t , $ n a m e ) = 0 _ ; m y $ o b j = { } ; b l e s s S o b j ; $ $ o b j { e v e n t } = [ ] ; $ $ o b j { g u a r d } = [ ] ; $ $ o b j { d e s t } = [ ] ; $ $ o b j { n o e v e n t g u a r d } = [ ] ; $ $ o b j { n o e v e n t d e s t } = [ ] ; $ $ o b j { p a r e n t } = S p a r e n t ; $ $ o b j { n a m e } = S n a m e ; $ p a r e n t — > A d d S t a t e ( $ o b j ) ; # a d d m y s e l f t o p a r e n t ’ s l i s t # T h i s i s a k i n d a a h a c k t o f i n d t h e C S t a t e f r o m t h e s t a t e n a m e C o n t e x t - > P u t S t a t e 2 C S ( $ n a m e , $ p a r e n t - > G e t N a m e ) ; r e t u r n $ o b j ; } s u b G e t N a m e 3 2 7 m y S o b j = s h i f t ; r e t u r n $ $ o b j { n a m e } ; } s u b T r a n { m y ( $ o b j , $ t r a n , $ d e s t ) = @ _ ; m y ( $ g d , S e c t i o n , $ m s g , $ s u b g d ) ; # F o r e v e n t [ g d ] / a c t i o n “ m s g , s t r i p o f s t u f f a f t e r e v e n t l e a v i n g r a w e v e n t . # S i n c e t h e s e e x p r e s s i o n s h a v e r e g e x c h a r s i n t h e m , t h e $ s u b g d s t a t e m e n t s # a r e e s c a p i n g t h e s e s o t h e t r a n = “ s / . . . w o r k s r i g h t $ t r a n . = ’ ; ’ ; i f ( $ t r a n = " / \ [ ( [ “ \ l ; ] + ) \ l / x ) { # L o o k f o r g u a r d $ s u b g d = $ g d = $ 1 ; $ s u b g d = “ s / ( [ ( ) \ [ \ ] ] ) / \ \ $ 1 / g ; # e s c a p e r e g e x $ t r a n = ” s / \ [ $ s u b g d \ ] / / ; # g e t r i d o f g u a r d } i f ( $ t r a n = " / \ / ( [ “ \ “ ; ] + ) / x ) { # L o o k f o r a c t i o n $ s u b a c t i o n = $ a c t i o n = $ 1 ; S s u b a c t i o n = ' s / ( [ ( ) \ [ \ l ] ) / \ \ $ 1 / g ; # e s c a p e r e g e x $ t r a n = ” 8 { \ / $ a c t i o n } { } ; # d e l e t e a c t i o n f r o m t r a n } i f ( S t r a n = “ / \ “ ( [ ‘ ; ] + ) / ) { # L o o k f o r m s g $ m s g = $ 1 ; $ t r a n = " s { \ “ $ m s g } { } ; # d e l e t e a c t i o n f r o m t r a n } c h o p $ t r a n ; # g e t r i d o f ’ ; ’ m y $ e v e n t = $ t r a n ; # n e x t 4 s t m t s t a k e c a r e o f i n ( . . . ) p r e d i c a t e a n d a d d q u o t e t o e n u m s , l i k e # t y p e ’ ( v a l u e ) . E n u m s c o u n t o n f o r m : t y p e ( v a l u e ) = v a l u e S e v e n t = I n T r a n s f o r m ( $ e v e n t ) ; $ e v e n t = " s / ( [ A - z ] + ) = ( [ A - 2 ] + ) \ ( ( [ A - Z l + ) \ ) / $ 1 = $ 2 \ ’ ( $ 3 ) / g ; $ g d = I n T r a n s f o r m ( $ g d ) ; $ g d = ' s / ( [ A - z ] + ) = ( [ A - z ] + ) \ ( ( [ A - z ] + ) \ ) / $ 1 = $ 2 \ ’ ( $ 3 ) / g ; # e v e n t d r i v e n t r a n s i t i o n s t o r e d h e r e : i f ( S e v e n t ) { p r i n t " T R A N s a v i n g $ e v e n t , $ g d - > $ d e s t \ n " ; p u s h ( 0 { $ $ o b j { e v e n t } } , $ e v e n t ) ; p u s h ( 0 { $ $ o b j { g u a r d } } , $ g d ) ; p u s h ( 0 { $ $ o b j { d e s t } } , $ d e s t ) ; } # n o e v e n t ( g u a r d o n l y ) t r a n s i t i o n s e l s e { i f ( ! S g d ) { d i e " N o e v e n t o r g u a r d f o r t r a n s i t i o n $ t r a n f o r s t a t e $ $ o b j { n a m e } " ; } p u s h ( 0 { $ $ o b j { n o e v e n t g u a r d } } , I n T r a n s f o r m ( $ g d ) ) ; p u s h ( 0 { $ $ o b j { n o e v e n t d e s t } } . $ d e s t ) ; 3 2 8 } # L o c a l p r o c e d u r e c a l l e d b y T r a n . R e p l a c e s i n ( x ) p r e d i c a t e w i t h c o r r e c t # f o r m o f s i g n a l t e s t . s u b I n T r a n s f o r m { m y S i n = s h i f t ; w h i l e ( $ i n = “ / i n \ ( ( [ A - z O - 9 ] + ) \ ) / ) { m y S i n s = $ 1 ; m y $ c s = C o n t e x t - > S t a t e 2 C S ( $ i n s ) ; m y S i n s t r = " i n s - $ c s = s t ’ ( $ i n s ) " ; $ i n = ‘ s / i n \ ( ( [ A - 2 0 - 9 ] + ) \ ) / $ i n s t r / ; } r e t u r n $ i n ; } s u b O u t p u t S i g n a l s { } s u b L c l O u t p u t m y $ o b j = s h i f t ; P u t C o n t e x t 0 , " \ n " ; P u t C o n t e x t 1 , " s _ $ $ o b j { n a m e } : p r o c e s s \ n " ; P u t C o n t e x t 1 , " b e g i n \ n " ; P u t C o n t e x t 2 , " w a i t u n t i l s t a t e = s t ’ ( $ $ o b j { n a m e } ) ; \ n " ; P u t C o n t e x t 2 , " s a y ( \ " I n s t a t e $ $ o b j { n a m e } \ " ) ; \ n " ; i f ( O { $ $ o b j { n o e v e n t g u a r d } } = = 0 & & O { $ $ o b j { e v e n t } } = = 0 ) { p r i n t " W A R N I N G N o t r a n s i t i o n s f r o m s t a t e $ $ o b j { n a m e } \ n " ; } m y $ i ; i f ( O { $ $ o b j { n o e v e n t g u a r d } } > O ) { # p r o c e s s e v e n t - l e s s t r a n s i t i o n s m y $ f i r s t = 1 ; f o r ( $ i = 0 ; $ i < 0 { $ $ o b j { n o e v e n t g u a r d } } ; $ i + + ) { i f ( $ f i r s t ) { P u t C o n t e x t 2 , " i f $ $ o b j { n o e v e n t g u a r d } [ $ i ] t h e n \ n " } e l s e { P u t C o n t e x t 2 , " e l s i f $ $ o b j { n o e v e n t g u a r d } [ $ i ] t h e n \ n " } $ f i r s t = 0 ; P u t C o n t e x t 3 , " s t a t e < = s t ’ ( $ $ o b j { n o e v e n t d e s t } [ $ i ] ) , n u l l a f t e r 1 f s ; \ n " ; # A n y m e s s a g e s e n d i n g g o e s h e r e . . . . } P u t C o n t e x t 2 , " e n d i f ; \ n " ; } # = = = = > n o w d o r e g u l a r e v e n t d r i v e n t r a n s i t i o n s < = = = = = i f ( O { $ $ o b j { e v e n t } } > 0 ) { P u t C o n t e x t 2 , " l o o p \ n " ; # g e n e r a t e w a i t s t a t e m e n t f o r t r a n s i t i o n s P u t C o n t e x t 3 , " w a i t u n t i l $ $ o b j { e v e n t } [ 0 ] " ; i f ( 0 { $ $ o b j { e v e n t } } > 1 ) { P u t C o n t e x t 0 , " \ n " } # a d d - O R - a n d n e x t e v e n t 3 2 9 m y $ i ; f o r ( $ i = 1 ; $ i < @ { $ $ o b j { e v e n t } } ; $ i + + ) { i f ( $ i > 1 ) { P u t C o n t e x t 0 , " \ n " } P u t C o n t e x t 4 , " o r $ $ o b j { e v e n t } [ $ i ] " ; } P u t C o n t e x t O , " ; \ n " ; # N o w s e l e c t w h i c h e v e n t o c c u r r e d w i t h a n I F s t m t . G u a r d s a r e h e r e t o o . i f ( $ $ o b j { g u a r d } [ 0 ] n e ” ) { P u t C o n t e x t 3 , " i f $ $ o b j { e v e n t } [ 0 ] a n d $ $ o b j { g u a r d } [ 0 ] t h e n \ n " ; } e l s e { P u t C o n t e x t 3 , " i f $ $ o b j { e v e n t } [ 0 ] t h e n \ n " ; } P u t C o n t e x t 4 , " s t a t e < = s t ’ ( $ $ o b j { d e s t } [ 0 ] ) , n u l l a f t e r 1 f s ; \ n " ; P u t C o n t e x t 4 , " e x i t ; \ n " ; f o r ( $ i = 1 ; $ i < 0 { $ $ o b j { e v e n t } } ; $ i + + ) { m y $ g c ; i f ( $ $ o b j { g u a r d } [ $ i ] ) { $ g c = " a n d $ $ o b j { g u a r d } [ $ i ] " } e l s e { $ g c = ” } P u t C o n t e x t 3 , " e l s i f $ $ o b j { e v e n t } [ $ i ] $ g c t h e n \ n " ; P u t C o n t e x t 4 , " s t a t e < = s t ’ ( $ $ o b j { d e s t } [ $ i ] ) , n u l l a f t e r 1 f s ; \ n " - P u t C o n t e x t 4 , " e x i t ; \ n " ; } P u t C o n t e x t 3 , " e n d i f ; \ n " ; P u t C o n t e x t 2 , " e n d l o o p ; \ n " ; } P u t C o n t e x t 1 , " e n d p r o c e s s ; \ n " ; 3 3 0 A p p e n d i x H S P I N L C S F i l e s T h e l i s t i n g s b e l o w c o n t a i n t h e P e r l s o u r c e c o d e f o r H y d r a f o r t h e P r o m e l a t r a n s l a t i o n s . T h e H y d r a C l a s s L i b r a r y c o n s i s t s o f t h e fi l e s ( m a r k e d i n t h e l i s t i n g ) C C S t a t e . p m , C o n t e x t . p m , I n i t . p m , L o g . p m , S t a t e p m , C S t a t e . p m , H i s t o r y . p m , J o i n . p m , a n d O b j e c t p m . # l / u s r / b i n / p e r l { u s e Y a c c ; u s e C S t a t e ; u s e C C S t a t e ; u s e S t a t e ; u s e O b j e c t ; u s e C o n t e x t ; u s e H i s t o r y ; u s e J o i n ; u s e I n i t ; u s e L o g ; $ | = 1 ; # R e g i s t e r L o g ( S t a t e ) ; $ t r e e = Y a c c - > P a r s e ( " $ A R G V [ O ] . x y z " ) ; p r i n t " p a r s e c o m p l e t e \ n " ; C o n t e x t - > O u t F i l e ( " $ A R G V [ 0 ] . p r " ) ; M o d e l ( $ t r e e ) ; C o n t e x t - > O u t p u t ; s u b M o d e l m y ( S t r e e ) = O _ ; 3 3 1 m y $ s t m t = $ $ t r e e { m o d e l b o d y } { m o d e l s t m t l i s t } ; m y S e n t ; f o r e a c h S e n t ( Q $ s t m t ) { # E a c h o n e o f t h e s e i s a h a s h i f ( $ $ e n t { t y p e } e q ’ E n u m ’ ) { m y C l i s t ; $ $ e n t { l i s t } = ~ s / ‘ \ ( ( . + ) \ ) $ / $ 1 / ; O l i s t = s p l i t ( / , / . $ $ e n t { l i s t } ) ; C o n t e x t - > E n u m ( $ $ e n t { I D } . G l i s t ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ D r i v e r f i l e ’ ) { C o n t e x t - > D r i v e r F i l e ( $ $ e n t { I D } ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ O b j e c t ’ ) { O b j e c t ( $ e n t ) ; } e l s e { d i e " b a d t y p e $ $ e n t { t y p e } " } } } s u b O b j e c t { m y ( $ t r e e ) = 0 _ ; $ $ t r e e { t y p e } e q ’ O b j e c t ’ l l d i e " t h i s i s n o t a n O b j e c t n o d e " ; m y $ o b j r e f = n e w O b j e c t ( $ $ t r e e { I D } ) ; m y $ i n i t ; m y $ b o d y = $ $ t r e e { o b j e c t b o d y } { o b j e c t s t m t l i s t } ; m y S e n t ; m y Z n a m e t o r e f ; m y O j o i n l i s t ; f o r e a c h S e n t ( @ $ b o d y ) { i f ( $ $ e n t { t y p e } e q ’ S i g n a l ’ ) { S o b j r e f - > S i g n a l ( $ $ e n t { n a m e } , $ $ e n t { s i g t y p e } ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ C S t a t e ’ ) { $ n a m e t o r e f { $ $ e n t { I D } } = C S t a t e ( $ e n t , $ o b j r e f ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ C C S t a t e ’ ) { m y $ r e f = C C S t a t e ( $ e n t , $ o b j r e f ) ; # T h i s u s e d t o s a v e a r e f t o t h e C C S t a t e , b u t i t n e e d s t o s a v e r e f s t o # t h e C S t a t e s i n t h e C C S t a t e , h e n c e t h e f o l l o w i n g c o d e . F e t c h m e m b e r s , # t h e n g e t t h e i r n a m e s . W e s t i l l n e e d a r e f t o t h e C C S t a t e c o n t a i n e r . $ n a m e t o r e f { $ $ e n t { I D } } = $ r e f ; m y O m e m b e r s ; O m e m b e r s = $ r e f - > G e t M e m b e r s ; m y $ t h i n g ; f o r e a c h $ t h i n g ( @ m e m b e r s ) { m y S n a m e = $ t h i n g - > G e t N a m e ; $ n a m e t o r e f { $ n a m e } = $ t h i n g ; 3 3 2 s u b e l s i f ( $ $ e n t { t y p e } e q ’ S t a t e ’ ) { $ n a m e t o r e f { $ $ e n t { I D } } = S t a t e ( $ e n t , $ o b j r e f ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ I n i t ’ ) { i f ( $ i n i t ) { p r i n t " a r e : $ $ t r e e { i d } h a s m o r e t h a n o n e i n i t s t a t e \ n " ; } $ i n i t = $ $ e n t { I D } ; } e l s i f ( $ $ e n t { t y p e } e q ’ J o i n ’ ) { p u s h ( 0 j o i n l i s t , [ $ $ e n t { I D } , $ $ e n t { f r o m } , $ $ e n t { t o } ] ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ I n s t V a r ’ ) { $ o b j r e f - > I n s t V a r ( $ $ e n t { v t y p e } , $ $ e n t { v a r } , $ $ e n t { i n i t v a l } ) ; } e l s e { d i e " b a d t y p e $ $ e n t { t y p e } ” } } p r i n t " O b j e c t r e f k e y s \ n " ; f o r e a c h S e n t ( k e y s Z n a m e t o r e f ) { p r i n t " $ e n t i s a " , r e f ( $ n a m e t o r e f { $ e n t } ) . " \ n " ; } f o r e a c h S e n t ( O j o i n l i s t ) { p r i n t " M a k i n g J o i n $ $ e n t [ 0 ] f r o m $ $ e n t [ 1 ] t o $ $ e n t [ 2 ] \ n " ; n e w J o i n ( $ o b j r e f , $ $ e n t [ 0 ] , $ n a m e t o r e f { $ $ e n t [ 1 ] } . $ n a m e t o r e f { $ $ e n t [ 2 ] } ) ; } P u t L o g " O b j e c t $ o b j r e f - > N a m e i n i t i s $ i n i t " ; i f ( $ i n i t ) { n e w I n i t ( $ o b j r e f , $ n a m e t o r e f { $ i n i t } ) } C S t a t e m y ( $ t r e e , $ p a r e n t ) = @ _ ; $ $ t r e e { t y p e } e q ’ C S t a t e ’ l l d i e " n o d e i s n o t a C S t a t e " ; m y $ c s t a t e r e f = n e w C S t a t e ( $ p a r e n t , $ $ t r e e { I D } ) ; m y $ m y n a m e = $ $ t r e e { I D } ; m y $ b o d y = $ $ t r e e { b o d y } { c s t a t e s t m t l i s t } ; # L i s t o f s t m t s m y X n a m e t o r e f ; m y ( S e n t , $ i n i t , $ h i s t o r y ) ; f o r e a c h S e n t ( @ S b o d y ) { i f ( $ $ e n t { t y p e } e q ’ S t a t e ’ ) { m y $ r = S t a t e ( $ e n t , $ c s t a t e r e f ) ; $ n a m e t o r e f { $ $ e n t { I D } } = 8 r ; # s a v e r e f b y n a m e } e l s i f ( $ $ e n t { t y p e } e q ’ C S t a t e ’ ) { m y 8 r = C S t a t e ( $ e n t , $ c s t a t e r e f ) ; $ n a m e t o r e f { $ $ e n t { I D } } = $ r ; # s a v e r e f b y n a m e 3 3 3 e l s i f ( $ $ e n t { t y p e } e q ’ I n i t ’ ) { i f ( $ i n i t ) { p r i n t " * * * * $ $ t r e e { i d } h a s m o r e t h a n o n e i n i t s t a t e \ n " ; } $ i n i t = $ $ e n t { I D } ; } e l s i f ( $ $ e n t { t y p e } e q ’ H i s t o r y ’ ) { i f ( $ h i s t o r y ) { p r i n t " * * * * $ $ t r e e { i d } h a s m o r e t h a n o n e H i s t o r y s t a t e \ n " ; } $ h i s t o r y = $ $ e n t { I D } ; } e l s i f ( $ $ e n t { t y p e } e q ’ C C S t a t e ’ ) { m y Z n a m e s ; Z n a m e s = C C S t a t e ( $ e n t , $ o b j r e f ) ; m y $ k e y ; f o r e a c h $ k e y ( k e y s Z n a m e s ) { $ n a m e t o r e f { $ k e y } = $ n a m e { $ k e y } } } e l s e { d i e " h a d t y p e $ $ e n t { t y p e } " } } # N o w t o I n i t s t a t e s p r i n t " C S t a t e r e f k e y s \ n ” ; f o r e a c h $ e n t ( k e y s Z n a m e t o r e f ) { p r i n t " $ e n t i s a " , r e f ( $ n a m e t o r e f { $ e n t } ) , " \ n " ; } i f ( $ h i s t o r y ) { # T h i s d i f f e r s f r o m V H D L , w h e r e w e p a s s s t a t e n a m e i n s t e a d o f s t a t e r e f } n e w H i s t o r y ( $ c s t a t e r e f , $ n a m e t o r e f { $ h i s t o r y } ) ; } i f ( $ i n i t ) { i f ( ! e x i s t s ( $ n a m e t o r e f { $ i n i t } ) ) { p r i n t " F o r C S t a t e " , $ c s t a t e r e f - > G e t N a m e , " $ i n i t n o t f o u n d \ n " ; e x i t ( 1 ) ; } n e w I n i t ( $ c s t a t e r e f , $ n a m e t o r e f { $ i n i t } ) ; } e l s e { " W a r n i n g : T h e r e i s n o I N I T s t a t e f o r $ $ t r e e { I D } \ n " } r e t u r n $ c s t a t e r e f ; # r e t u r n t h e r e f t o t h i s C S t a t e s u b C C S t a t e { # T h e o n l y l e g a l s t a t e m e n t s f o r t h i s c o n t a i n e r i s C S t a t e . T r a n s i t i o n s ( s u c h # a s i n i t s ) m a y w a n t t o t r a n s i t i o n t o o n e o f o u r c o m p o n e n t s , w h i c h s t a r t s t h e # t h r e a d s r u n n i n g . T h e r e f o r e , w e p a s s b a c k a h a s h o f C S t a t e r e f s i n d e x e d b y # C S t a t e n a m e . m y ( $ t r e e , S p a r e n t ) = 0 _ ; m y $ c c s t a t e = n e w C C S t a t e ( $ p a r e n t , $ $ t r e e { I D } ) ; m y $ b o d y = $ $ t r e e { b o d y } { c c s t a t e s t m t l i s t } ; # L i s t o f s t m t s m y $ e n t ; f o r e a c h $ e n t ( O $ b o d y ) { i f ( $ $ e n t { t y p e } e q ’ S t a t e ’ ) { 3 3 4 S t a t e ( $ e n t , $ c c s t a t e ) ; } e l s i f ( $ $ e n t { t y p e } e q ’ C S t a t e ’ ) { C S t a t e ( $ e n t , $ c c s t a t e ) ; } e l s e { d i e " b a d t y p e $ $ e n t { t y p e } " } } r e t u r n $ c c s t a t e ; } s u b S t a t e { m y ( $ t r e e , S p a r e n t ) = 0 _ ; $ $ t r e e { t y p e } e q ’ S t a t e ’ l l d i e ’ N o d e i s n o t a S t a t e n o d e ’ ; m y $ s t a t e o b j = n e w S t a t e ( $ p a r e n t , $ $ t r e e { I D } ) ; m y $ b o d y = $ $ t r e e { s t a t e b o d y } { s t a t e s t m t l i s t } ; m y $ e n t ; f o r e a c h $ e n t ( @ $ b o d y ) { i f ( $ $ e n t { t y p e } n e ’ T r a n s ’ ) { d i e " s o m e t h i n g o t h e r t h a n T r a n s i n a s t a t e " ; } m y $ t r a n ; ( $ t r a n ) = $ $ e n t { t r a n } = ” / ‘ " ( . + ) " $ / ; $ s t a t e o b j - > T r a n ( $ t r a n , $ $ e n t { d e s t } ) ; } r e t u r n $ s t a t e o b j ; # r e t u r n t h e r e f t o t h i s s t a t e } # l / u s r / b i n / p e r l p a c k a g e C C S t a t e ; # T h i s o b j e c t c o o p e r a t e s w i t h J o i n c l o s e l y . T h e r e h a s t o b e a t l e a s t # o n e J o i n t o m a t c h e a c h C C S t a t e . T h e r e c a n b e m o r e t h a n o n e J o i n . s u b n e w { m y ( $ c l a s s , $ p a r e n t , $ n a m e ) = 0 _ ; m y $ o b j = { } ; b l e s s S o b j ; $ $ o b j { p a r e n t } = S p a r e n t ; $ $ o b j { n a m e } = $ n a m e ; $ $ o b j { o b j r e f } = $ p a r e n t - > G e t O b j R e f ; $ p a r e n t - > A d d S t a t e ( $ o b j ) ; $ $ o b j { s t a t e s } = [ ] ; r e t u r n $ o b j ; } s u b G e t O b j R e f { # r e t u r n a r e f t o t h e o b j e c t . I d o n ’ t k n o w w h e r e i t i s b u t m y p a r e n t d o e s . # E v e n t u a l l y , t h e ’ p a r e n t ’ I S t h e o b j e c t . m y S o b j = s h i f t ; 3 3 5 r e t u r n $ $ o b j { o b j r e f } s u b G o D o w n { # P a r e n t s c a l l t h i s r o u t i n e l o o k i n g f o r a d e s t s t a t e . W e d o n ’ t o w n a n y # s t a t e s e x c e p t m e m b e r C S t a t e s , w e d e l e g a t e d o w n r i g h t a w a y . m y ( $ o b j , $ d e s t ) = 0 _ ; # L o o k d o w n . E v e r y t h i n g h e r e h a s t o b e a C S t a t e f o r e a c h $ e n t ( Q { $ $ o b j { s t a t e s } } ) { i f ( $ e n t - > G o D o w n ( $ d e s t ) ) { r e t u r n 1 } # o n e o f m y c h i l d r e n h a s i t } # L o o k i n g u p m a k e s n o s e n s e b e c a u s e p a r e n t c a l l e d m e i n t h e f i r s t p l a c e . . . r e t u r n 0 ; } s u b G o U p { # M y c h i l d r e n c a l l m e h e r e l o o k i n g f o r d e s t s t a t e . W e h a v e n o l o c a l s i m p l e # s t a t e s . W e l o o k d o w n , t h e n u p a s b e f o r e . m y ( $ o b j , $ d e s t , $ c a l l e r ) = 0 _ ; L o o k a t o u r l o c a l C S t a t e s . N o r u n t a b r e q u i r e d b e c a u s e J o i n w i l l p i c k t h i s u p . T h e c h o i c e s o f d e s i g n a t e d n e x t s t a t e s f r o m t h e c h i l d r e n # a r e l i m i t e d ( t o J o i n s , t o b e p r e c i s e ) i f ( $ $ o b j { o w n d e s t } { $ d e s t } ) { r e t u r n [ ’ l c l c s ’ ] ; # S o m e o n e l o w e r t h a n m y c h i l d w i l l g e t t h i s # % } # L o o k d o w n , c y c l e t h r u c h i l d r e n f o r e a c h $ e n t ( O { $ $ o b j { s t a t e s } } ) { i f ( $ c a l l e r = = $ e n t ) { n e x t } i f ( $ e n t - > G o D o w n ( $ d e s t ) ) { r e t u r n 1 } # L o o k a t p a r e n t . i f ( $ $ o b j { p a r e n t } - > G o U p ( $ d e s t , $ o b j ) ) { r e t u r n [ ’ u p ’ ] ; # r e t u r n u p . . . s t i l l n o r u n t a b n e e d e d } # n o t f o u n d a n y w h e r e . . . . r e t u r n ( ) ; s u b A d d S t a t e { m y ( $ o b j , $ s t a t e ) = Q _ ; p u s h ( 0 { $ $ o b j { s t a t e s } } , $ s t a t e ) ; m y $ n a m e = $ s t a t e - > G e t N a m e ; $ $ o b j { o w n d e s t } { $ d e s t } = ’ 1 c l c s ’ ; 3 3 6 } s u b { s u b s u b s u b s u b A d e o i n m y ( $ o b j , $ j o i n ) = @ _ ; P u t L o g $ j o i n - > G e t N a m e ; p u s h ( 0 { $ $ o b j { j o i n s } } . $ j o i n ) ; G e t M e m b e r s m y ( $ o b j ) = 6 _ ; r e t u r n Q { $ $ o b j { s t a t e s } } ; G e t N a m e m y ( S o b j ) = O _ ; m y $ e n t ; m y C l i s t ; f o r e a c h $ e n t ( 0 { $ $ o b j { s t a t e s } } ) { p u s h ( @ l i s t , $ e n t - > G e t N a m e ) } r e t u r n C l i s t ; P r e P r o c e s s m y ( $ o b j ) = 0 _ ; m y $ e n t ; C o n t e x t - > A d d E n u m ( $ $ o b j { o b j r e f } - > G e t N a m e , ’ n o n e ’ ) ; f o r e a c h $ e n t ( 0 { $ $ o b j { s t a t e s } } ) { $ e n t - > P r e P r o c e s s } L c l O u t p u t m y ( $ o b j ) = 0 _ ; m y $ e n t ; m y O n a m e s ; P u t L o g " L c l O u t p u t c a l l e d " ; f o r e a c h $ e n t ( 0 { $ $ o b j { s t a t e s } } ) { m y $ n a m e = $ e n t - > G e t N a m e ; p u s h ( 0 n a m e s , $ n a m e ) ; P u t C o n t e x t 0 , " t o _ $ n a m e : " ; } P u t C o n t e x t 1 , " a t o m i c { " ; f o r e a c h $ e n t ( 0 n a m e s ) { P u t C o n t e x t 1 , " $ { e n t } _ p i d = r u n $ e n t ( n o n e ) ; " } P u t C o n t e x t 1 , " } " ; # w a i t ? ? e v a l ( c p 1 _ p i d ) , c p 1 _ c o d e ; f o r e a c h $ e n t ( O n a m e s ) { P u t C o n t e x t 1 , " w a i t ? ? e v a l ( $ { e n t } _ p i d ) , $ { e n t } _ c o d e ; " ; 3 3 7 : I } # T i m e t o d o J o i n s t u f f . i f ( O { $ $ o b j { j o i n s } } ) { P u t C o n t e x t 1 , " d o " ; f o r e a c h $ e n t ( Q { $ $ o b j { j o i n s } } ) { $ e n t - > L c l O u t p u t ; # w r i t e o u t t h e c o r r e c t i f - d i s p a t c h } P u t C o n t e x t 1 , " o d ; " ; } e l s e { p r i n t " * * * * W a r n i n g : n o j o i n f o r C C S t a t e $ $ o b j { n a m e } \ n " ; P u t C o n t e x t 1 , " a s s e r t ( 0 ) ; " ; } # T h a t ’ s i t . W e ’ r e d o n e . } s u b O u t p u t { m y ( $ o b j ) = 0 - ; m y $ e n t ; # I h a v e n o t h i n g t o w r i t e o u t , b u t m y C S t a t e s m u s t b e w r i t t e n . f o r e a c h $ e n t ( Q { $ $ o b j { s t a t e s } } ) { P u t L o g " c a l l i n g o u t p u t f o r " , $ e n t — > G e t N a m e , ” \ n " ; $ e n t - > O u t p u t ; } 1 ; # l / u s r / b i n / p e r l p a c k a g e C S t a t e ; u s e O b j e c t ; # R e s o l v e d e s t s , d i s p a t c h t a b l e s a n d r u n t a b l e s : # E a c h s i m p l e s t a t e h a s t o k n o w w h e r e i t ’ s d e s t i n a t i o n s t a t e i s f o r e a c h # t r a n s i t i o n . T h e r e a r e f o u r p o s s i b i l i t i e s : # 1 . L o c a l t r a n s i t i o n . g o t o s t a t e ; i s t h e c o n t r u c t # 2 . L o c a l t r a n s i t i o n t o c o m p o s i t e s t a t e . g o t o t o _ c s t a t e ; i s c o n t r u c t # 3 . T r a n s i t i o n d o w n i n t o c o m p o s i t e s t a t e . m = s t a t e ; g o t o t o _ c s t a t e ; # 4 . T r a n s i t i o n u p t o p a r e n t c o m p o s i t e s t a t e . w a i t ? ? e v a l ( p i d ) , m i s c o n s t r u c t 4 ! n a d d i t i o n , w e n e e d e s s e n t i a l l y a r o u t i n g f r o m a s r c t o a d e s t . S o e a c h C S t a t e o r O b j e c t m u s t k e e p a r o u t e ( l c l , l c l c s , u p , d o w n ) f o r e a c h d e s t t h a t m i g h t p a s s t h r u . # Q t T h i s i s d o n e b y p a s s i n g c o n t r o l t o e a c h s i m p l e s t a t e a t ’ R e s o l v e ’ w h e r e i t c a l l s i t ’ s p a r e n t ’ F i n d ’ . F i n d l o o k s l o c a l l y f o r s i m p l e s t a t e s a n d c o m p o s i t e s t a t e s ( r e t u r n s ’ l c l ’ a n d ’ l c l c s ’ ) , t h e n l o o k s d o w n i n t o i t ’ s c o m p o s i t e s t a t e s v i a ’ G o D o w n ’ . A h i t h e r e r e t u r n s ’ d o w n ’ a n d t h e n a m e o f t h e C S t a t e d o w n . F i n a l l y , i t l o o k s u p v i a G o U p . A h i t h e r e r e t u r n s ’ u p ’ . N o w t h e s i m p l e s t a t e s k n o w a l l t h e p r o p e r c o n s t r u c t s t o g e t t o t h e d e s t . % % % # # % # # C S t a t e s a n d O b j e c t m u s t a l s o k e e p t r a c k o f w h a t i t r e t u r n e d f o r t h e d e s t . 3 3 8 # # 4 # # x c s = ( C S t a t e = > 1 , C C S t a t e = > 1 ) ; # % % % & % % # # fi F o r a n ’ u p ’ , t h e ’ r u n c s t a t e ’ c o n s t r u c t h i g h e r u p i s g o i n g t o g e t a r e t u r n s t a t e f o r t h e n e x t d e s t , s o a t a b l e ( r u n t a b ) i s r e q u i r e d t o d i s p a t c h t h e n e x t d e s t p r o p e r l y . F o r ’ d o w n ’ , t h e r e c e i v i n g C S t a t e m u s t h a v e a n i n i t i a l d i s p a t c h t a b s o c o n t r o l c a n b e p a s s e d a s r e q u i r e d . T h e c h o i c e s a r e a s b e f o r e , l o c a l l y , l o c a l l y - t o - c s t a t e , u p ( s o m e m o r e ) , o r d o w n ( s o m e m o r e ) . F o r u p a n d d o w n , a n y g i v e n c s t a t e m a y o n l y b e a p a s s t h r u f o r a d e s t s e v e r a l l e v e l s d e e p . T h e ’ r u n c s t a t e ’ c o n s t r u c t i s c o n t r u c t e d b y L c l O u t p u t , s o i t h a s t o k n o w a b o u t w h a t t o e x p e c t b a c k . T h e C S t a t e i t s e l f m u s t k n o w a b o u t i n c o m i n g s t a t e s i n O u t p u t , b e c a u s e t h a t i s w h e r e t h e b o d y i s c o n t r u c t e d . S o S t a t e m u s t t e l l i t ’ s p a r e n t L c l O u t p u t a b o u t p o s s i b l e r e t u r n s , a n d i t ’ c h i l d O u t p u t a b o u t d i s p a t c h t a b l e e n t r i e s . S t a t e c a l l s B l d T a b o f p a r e n t w i t h ’ u p ’ , o r c a l l s c h i l d ’ d o w n ’ . E a c h C S t a t e p r o p o g a t e s t h e c a l l a c c o r d i n g i t ’ s r o u t e t a b e n t r y u n t i l ’ l c l ’ o r ’ l c l c s ’ i s f o u n d . s u b B E G I N { } s u b n e w { m y ( $ c l a s s , $ p a r e n t , $ n a m e ) = @ _ ; m y $ o b j = { } ; b l e s s $ o b j ; $ $ o b j { n a m e } = $ n a m e ; $ $ o b j { p a r e n t } = $ p a r e n t ; $ $ o b j { o b j r e f } = $ p a r e n t - > G e t O b j R e f ; # S e e G e t O b j R e f b e l o w $ $ o b j { o b j r e f } - > A l l S t a t e s ( $ o b j ) ; # a d d t o l i s t o f s t a t e s $ $ o b j { s t a t e s } = [ ] ; # r e f e r e n c e t o s t a t e s w e o w n $ $ o b j { o w n d e s t } = { } ; # t e x t n a m e s o f s t a t e s w e o w n $ $ o b j { i n i t t a b } = { } ; # l i s t o f s t a t e i n f o w e ’ l l g e t c a l l e d w i t h $ $ o b j { r u n t a b } = { } ; # l i s t o f s t a t e s t h a t m a y c o m e b a c k $ p a r e n t - > A d d S t a t e ( $ o b j ) ; # a d d m y s e l f t o p a r e n t ’ s l i s t r e t u r n $ o b j ; s u b G e t N a m e m y ( $ o b j ) = 0 - ; r e t u r n $ $ o b j { n a m e } ; s u b H i s t o r y P r e s e n t m y ( S o b j ) = 0 _ ; r e t u r n e x i s t s ( $ $ o b j { h i s t o r y p r e s e n t } ) ; s u b G e t O b j R e f 3 3 9 f # r e t u r n a r e f t o t h e o b j e c t . I d o n ’ t k n o w w h e r e i t i s b u t m y p a r e n t d o e s . # E v e n t u a l l y , t h e ’ p a r e n t ’ I S t h e o b j e c t . m y S o b j = s h i f t ; r e t u r n $ $ o b j { o b j r e f } } s u b A d d S t a t e { # c a l l e d b y s i m p l e s t a t e p r o c e s s t o i n c l u d e s t a t e i n m y l i s t o f s t a t e s m y ( $ o b j , $ s t a t e ) = Q _ ; p u s h ( 0 { $ $ o b j { s t a t e s } } , $ s t a t e ) ; m y $ n a m e ; $ n a m e = $ s t a t e - > G e t N a m e ; # l c l m e a n s s i m p l e l o c a l s t a t e , l c l c s m e a n s c o m p o s i t e s t a t e o f s o m e k i n d $ $ o b j { o w n d e s t } { $ n a m e } = r e f ( $ s t a t e ) e q ’ S t a t e ’ ? ’ l c l ’ : ’ l c l c s ’ ; i f ( r e f ( $ s t a t e ) e q ’ H i s t o r y ’ ) { $ $ o b j { h i s t o r y p r e s e n t } = $ s t a t e } } s u b G e t M e m b e r s { # T h i s m e t h o d p r o d u c e s a l i s t o f r e f s o f t h e s t a t e s w e o w n . m y ( $ o b j ) = 0 - : r e t u r n 0 { $ $ o b j { s t a t e s } } ; } s u b F i n d { # T h i s i s c a l l e d m y t h e s i m p l e s t a t e w e o w n t o r e s o l v e a d e s t m y ( $ o b j , $ d e s t ) = 0 - ; P u t L o g " F i n d f o r e s t a t e $ $ o b j { n a m e } c a l l e d . L o o k i n g f o r $ d e s t " ; # L o o k l o c a l l y f i r s t . i f ( e x i s t s ( $ $ o b j { o w n d e s t } { $ d e s t } ) ) { r e t u r n $ $ o b j { o w n d e s t } { $ d e s t } } # N e x t , l o o k d o w n t h r u C S t a t e n o d e s f o r e a c h $ e n t ( Q { $ $ o b j { s t a t e s } } ) { i f ( ! S C S { r e f ( $ e n t ) } ) { n e x t } # S k i p a l l n o n - C S t a t e s i f ( $ e n t - > G o D o w n ( $ d e s t ) ) { # p a r e n t - > c h i l d c a l l $ $ o b j { r u n t a b } { $ d e s t } = [ ’ d o w n ’ , $ e n t - > G e t N a m e ] ; P u t L o g " F i n d i n $ $ o b j { n a m e } $ d e s t i s d o w n " ; r e t u r n ( ’ d o w n ’ , $ e n t - > G e t N a m e ) ; } # F i n a l l y l o o k u p a l e v e l ; c h i l d - > p a r e n t i f ( $ $ o b j { p a r e n t } - > G o U p ( $ d e s t , $ o b j ) ) { $ $ o b j { r u n t a b } { $ d e s t } = [ ’ u p ’ ] ; P u t L o g " F i n d i n $ $ o b j { n a m e } $ d e s t i s u p " ; r e t u r n ( ’ u p ’ ) ; } d i e " c a n ’ t f i n d $ d e s t " ; 3 4 0 t 3 t 3 # # t G G o U p r e t u r n s t h e c o n t e x t i n w h i c h i t f i n d s t h e d e s t , b u t f o r L c l O u t p u t i n S t a t e s a n d C S t a t e s , t h i s i s h o w t h e l a b e l w i l l l o o k b e c u a s e t h a t i s w h e r e t h e L c l O u p u t c o d e w i l l b e . . . i n t h e p a r e n t . O n l y G o U p c a l l s G o U p , G o U p a l s o r e c o r d s t h e d e s t c o n t e x t t h e c a l l t o t h e p a r e n t r e t u r n s . 3 o D o w n j u s t r e t u r n s t r u e i f i t f i n d s t h e l a b e l d o w n , b u t t h e ’ c a l l e d ’ G o D o w n s h o u l d e x p e c t t h i s d e s t c o m i n g i n t o t h e c o d e b u i l t b y O u t p u t . . . 3 t h e b o d y o f t h e C S t a t e . S o G o D o w n r e c o r d s i n i t t a b e n t r i e s % 8 T h e p r o c e s s s t a r t s w i t h a c a l l t o G o U p f r o m a s i m p l e S t a t e c o m i n g f r o m # R e s o l v e D e s t . s u b G o D o w n { # P a r e n t s c a l l t h i s r o u t i n e l o o k i n g f o r a d e s t s t a t e . m y ( S o b j , $ d e s t ) = 0 _ ; P u t L o g " G o D o w n o f $ $ o b j { n a m e } c a l l e d , l o o k i n g f o r $ d e s t " ; # F i r s t , l o o k l o c a l l y i f ( e x i s t s ( $ $ o b j { o w n d e s t } { $ d e s t } ) ) { $ $ o b j { i n i t t a b } { $ d e s t } = [ $ $ o b j { o w n d e s t } { $ d e s t } ] ; r e t u r n 1 ; } # L o o k d o w n f o r e a c h $ e n t ( O { $ $ o b j { s t a t e s } } ) { i f ( ! 8 C S { r e f ( $ e n t ) } ) { n e x t } i f ( $ e n t - > G o D o w n ( $ d e s t ) ) { m y $ c s n a m e = $ e n t - > G e t N a m e ; $ $ o b j { i n i t t a b } { $ d e s t } = [ ’ d o w n ’ , $ c s n a m e ] ; r e t u r n 1 ; } } # L o o k i n g u p m a k e s n o s e n s e b e c a u s e p a r e n t c a l l e d m e i n t h e f i r s t p l a c e . . . r e t u r n 0 ; } s u b G o U p { # M y c h i l d r e n c a l l m e h e r e l o o k i n g f o r d e s t s t a t e . I w i l l n o t c a l l # t h e c h i l d t h a t c a l l e d m e , h e n c e t h e $ c h i l d p a r m . m y ( S o b j , $ d e s t , S c h i l d ) = 0 _ ; P u t L o g " G o U p o f e s t a t e $ $ o b j { n a m e } c a l l e d , l o o k i n g f o r $ d e s t " ; # L o o k l o c a l l y . C a n ’ t b e m e ; n o w a y t o w r i t e t h i s . i f ( e x i s t s ( $ $ o b j { o w n d e s t } { $ d e s t } ) ) { P u t L o g " i n $ $ o b j { n a m e } $ d e s t i s $ $ o b j { o w n d e s t } { $ d e s t } " ; r e t u r n [ $ $ o b j { o w n d e s t } { $ d e s t } ] ; } # L o o k d o w n , c y c l e t h r u c h i l d r e n m y $ e n t ; 3 4 1 f o r e a c h $ e n t ( O { $ $ o b j { s t a t e s } } ) { i f ( $ e n t = = $ c h i l d ) { n e x t } # d o n ’ t l o o p b a c k d o w n t o s a m e o b j e c t i f ( ! $ C S { r e f ( $ e n t ) } ) { n e x t } i f ( $ e n t - > G o D o w n ( $ d e s t ) ) { m y $ c s n a m e = $ e n t - > G e t N a m e ; $ $ o b j { r u n t a b } { $ d e s t } = [ ’ d o w n ’ , $ c s n a m e ] ; P u t L o g " i n $ $ o b j { n a m e } d e s t i s d o w n " ; r e t u r n [ ’ d o w n ’ , $ c s n a m e ] ; } # L o o k u p a l e v e l t o m y p a r e n t . R e t u r n v a l u e g i v e s c o n t e x t p a r e n t s e e # d e s t ( i f a n y ) , s o w e s a v e t h i s b e c a u s e t h i s i s w h e r e o u r L c l O u t p u t c o d e # w i l l b e c o n s t r u c t e d . i f ( S r e f = $ $ o b j { p a r e n t } - > G o U p ( $ d e s t , $ o b j ) ) { P u t L o g " $ $ o b j { n a m e } g o t b a c k $ $ r e f [ O ] . $ $ r e f [ 1 ] " ; $ $ o b j { r u n t a b } { $ d e s t } = S r e f ; P u t L o g " g o t b a c k $ $ r e f [ 0 ] , $ $ r e f [ 1 ] f r o m " , $ $ o b j { p a r e n t } - > G e t N a m e ; r e t u r n [ ’ u p ’ ] ; } # n o t f o u n d a n y w h e r e . . . . r e t u r n ( ) ; } s u b P r e P r o c e s s { m y ( $ o b j ) = 0 - ; # O u r p a r e n t c a l l s u s h e r e w h e n a l l t h e i n p u t i s p a r s e d . W e n e e d t o d o # a n y f i n a l s e t u p s , l i k e r e s o l v i n g d e s t s , m a k i n g C C S t a t e m e m b e r s a p p e a r # l o c a l , e t c . T h i s i s c a l l e d b e f o r e a n y o u t p u t r o u t i n e . # F i r s t , w e n e e d t o m a k e c h i l d r e n o f C C S t a t e s w e o w n l o o k l o c a l t o u s . # C C S t a t e - > G e t N a m e r e t u r n s a l i s t o f C S t a t e s i t o w n s . m y $ i n i t ; f o r e a c h $ e n t ( O { $ $ o b j { s t a t e s } } ) { i f ( r e f ( $ e n t ) e q ’ I n i t ’ ) { $ i n i t = 1 } i f ( r e f ( $ e n t ) e q ’ C C S t a t e ’ ) { f o r e a c h $ n a m e ( $ e n t - > G e t N a m e ) { $ $ o b j { o w n d e s t } { $ n a m e } = ’ l c l c s ’ } } $ e n t - > P r e P r o c e s s ; } i f ( ! $ i n i t ) { p r i n t " * * * * W a r n i n g C S t a t e $ $ o b j { n a m e } h a s n o i n i t i a l s t a t e \ n " ; } m y $ k e y ; P u t L o g " H e r e i s $ $ o b j { n a m e } o w n d e s t : " ; f o r e a c h $ k e y ( k e y s % { $ $ o b j { o w n d e s t } } ) { P u t L o g " s t a t e = $ k e y , v a l u e = $ $ o b j { o w n d e s t } { $ k e y } " ; } } s u b L c l O u t p u t { 3 4 2 m y ( S o b j ) = O _ ; m y $ n a m e = $ $ o b j { n a m e } ; P u t C o n t e x t 0 , " / * L i n k t o c o m p o s i t e s t a t e $ n a m e * / " ; P u t C o n t e x t 0 , " t o - $ n a m e : $ { n a m e } _ p i d = r u n $ n a m e ( m ) ; " ; P u t C o n t e x t 1 , " w a i t ? ? e v a l ( $ { n a m e } _ p i d ) , m ; " ; # N o w d o r u n t a b P u t L o g " b u i l d i n g r u n t a b f o r " , $ e n t - > G e t N a m e ; P u t C o n t e x t 1 , " i f " ; f o r e a c h $ e n t ( k e y s % { $ $ o b j { r u n t a b } } ) { P u t L o g " d e s t = $ e n t $ $ o b j { r u n t a b } { $ e n t } [ 0 ] , $ $ o b j { r u n t a b } { $ e n t } [ 1 ] " ; P u t N R C o n t e x t 1 , " : : m = = s t _ $ e n t — > " ; i f ( $ $ o b j { r u n t a b } { $ e n t } [ O ] e q ’ l c l ’ ) { P u t C o n t e x t O , " g o t o $ e n t ; " ; } e l s i f ( $ $ o b j { r u n t a b } { $ e n t } [ 0 ] e q ’ l c l c s ’ ) { P u t C o n t e x t O , " g o t o t o _ $ e n t ; " ; } e l s i f ( $ $ o b j { r u n t a b } { $ e n t } [ 0 ] e q ’ u p ’ ) { P u t C o n t e x t 0 , " w a i t ! _ p i d , s t _ $ e n t ; g o t o e x i t ; " ; } e l s i f ( $ $ o b j { r u n t a b } { $ e n t } [ 0 ] e q ’ d o w n ’ ) { P u t C o n t e x t O , " m = s t _ $ e n t ; g o t o t o _ $ $ e n t [ 2 ] ; " ; } } P u t C o n t e x t 1 , " f i ; " ; } s u b O u t p u t { m y $ o b j = s h i f t ; # - - - - - I n i t i a l s t u f f - - - - - - # C a t e g o r i z e s t a t e s w e o w n . m y O c s n a m e s ; m y Q c c n a m e s ; m y $ i n i t ; f o r e a c h $ e n t ( 0 { $ $ o b j { s t a t e s } } ) { i f ( r e f ( $ e n t ) e q ’ C S t a t e ’ ) { p u s h ( 0 c s n a m e s , $ e n t - > G e t N a m e ) } e l s i f ( r e f ( $ e n t ) e q ’ C C S t a t e ’ ) { p u s h ( 0 c c n a m e s , $ e n t - > G e t N a m e ) } e l s i f ( r e f ( $ e n t ) e q ’ H i s t o r y ’ l l r e f ( $ e n t ) e q ’ I n i t ’ ) { $ i n i t = $ e n t } } P u t C o n t e x t O , " p r o c t y p e $ $ o b j { n a m e } ( m t y p e s t a t e ) " ; P u t C o n t e x t 0 , " { " ; # d e c l a r e p i d v a r s f o r r u n s a n d w a i t s . m y $ d c l ; i f ( c h n a m e s > 0 ) { f o r e a c h $ e n t ( @ c s n a m e s ) { $ i n t . = " $ { e n t } _ p i d , " } } # d e c l a r e p i d v a r s f o r C C S t a t e r u n s i f ( O c c n a m e s > 0 ) { f o r e a c h $ e n t ( @ c c n a m e s ) { $ i n t . = " $ { e n t } _ p i d , " ; $ m t y p e . = " $ { e n t } _ c o d e , " ; 3 4 3 } c h o p $ m t y p e ; P u t C o n t e x t 0 , " m t y p e = { $ m t y p e } ; " ; } P u t L o g " i n t = $ i n t " ; i f ( $ i n t ) { $ i n t s ‘ s / ‘ ( . + ) . $ / $ 1 / ; P u t C o n t e x t 0 , " i n t $ i n t ; " ; } P u t C o n t e x t O , " m t y p e m ; " ; P u t C o n t e x t 0 , " i n t d u m m y ; " ; # b u i l d i n i t i a l d i s p a t c h t a b l e i f ( k e y s % { $ $ o b j { i n i t t a b } } ) { P u t C o n t e x t 1 , " i f " ; f o r e a c h $ e n t ( k e y s % { $ $ o b j { i n i t t a b } } ) { i f ( $ $ o b j { i n i t t a b } { $ e n t } [ 0 ] e q ’ l c l ’ ) { P u t C o n t e x t 1 , " : : s t a t e = = s t - $ e n t - > g o t o $ e n t " ; } e l s i f ( $ $ o b j { i n i t t a b } { $ e n t } [ 0 ] e q ’ l c l c s ’ ) { P u t C o n t e x t 1 , " : : s t a t e = = s t _ $ e n t - > g o t o t o _ $ e n t " ; } e l s i f ( $ $ o b j { i n i t t a b } { $ e n t } [ 0 ] e q ’ d o w n ’ ) { P u t C o n t e x t 1 , " : : s t a t e = = s t _ $ e n t - > g o t o t o _ $ $ o b j { i n i t t a b } { $ e n t } [ 1 ] " ; } e l s e { d i e " b a d i n i t a b e n t r y " ) } # P i c k s u p d e f a u l t i n i t i a l s t a t e , o r d i e s ( t o c a t c h t r a n s l a t i o n e r r o r s ) i f ( $ i n i t ) { P u t C o n t e x t 1 , " : : e l s e - > s k i p / * d r o p t o i n i t s t a t e * / " } e l s e { P u t C o n t e x t 1 , " : : e l s e - > a s s e r t ( O ) / * n o i n i t s t a t e - " . " d i e i f b a d s t a t e * / " } P u t C o n t e x t 1 , " f i ; " ; } # D o i n i t s t a t e o r h i s t o r y s e t u p i f ( $ i n i t ) { $ i n i t - > L c l O u t p u t } # n o w p u t o u t c o d e f o r s t a t e s a n d c s t a t e s . f o r e a c h $ e n t ( O { $ $ o b j { s t a t e s } } ) { i f ( r e f ( $ e n t ) e q ’ J o i n ’ ) { n e x t } # S k i p J o i n s . C C S t a t e w i l l h a n d l e # W e a l r e a d y d i d i n i t a n d h i s t o r y i f ( r e f ( $ e n t ) e q ’ I n i t ’ | | r e f ( $ e n t ) e q ’ H i s t o r y ’ ) { n e x t } $ e n t - > L c l O u t p u t ; } # W i n d u p t h i s C S t a t e P u t C o n t e x t O , " e x i t : s k i p " ; P u t C o n t e x t 0 , " } " ; P u t C o n t e x t 0 ; P u t C o n t e x t 0 ; # O u t p u t b o d y o f c o m p o s i t e s t a t e s w e o w n f o r e a c h $ e n t ( 0 { $ $ o b j { s t a t e s } } ) { $ e n t - > O u t p u t } } 3 4 4 1 ; # l / u s r / b i n / p e r l p a c k a g e C o n t e x t ; u s e O b j e c t ; s u b O u t F i l e { 3 S a v e t h e n a m e o f t h e o u t p u t f i l e . m y ( $ c l a s s , $ f i l e ) = @ _ ; $ O U T F I L E = $ f i l e ; } s u b D r i v e r F i l e { # s a v e t h e d r i v e r f i l e n a m e . m y ( $ c l a s s , $ f i l e ) = 0 _ ; $ D R I V E R F I L E = $ f i l e ; } s u b E n u m { # I t h i n k I c a n i g n o r e E n u m s . W e g e t t h i s i n f o f r o m t r a n s i t i o n s r e t u r n ; } s u b A d d E n u m { # s a v e t h e e n u m s w e n e e d g l o b a l l y . T h i s i s t h e d e f i n t i o n o f m t y p e . T h e # o b j n a m e i s p a s s e d j u s t s o w e c a n d o e r r o r c h e c k i n g . m y ( $ c l a s s n a m e , $ o b j n a m e , $ e n u m ) = Q _ ; m y ( $ c l a s s , $ f , $ 1 i n e ) = c a l l e r ; P u t L o g " e n u m $ e n u m a d d e d . $ c l a s s ( $ 1 i n e ) c a l l e d m e " ; i f ( e x i s t s ( $ e n u m s { $ e n u m } ) a s $ e n u m s { $ e n u m } n e $ o b j n a m e ) { p r i n t " * * * * O b j e c t $ o b j n a m e a d d i n g E n u m $ e n u m a l r e a d y a d d e d b y " " $ e n u m s { $ e n u m } \ n " ; r e t u r n ; } $ e n u m s { $ e n u m } = $ o b j n a m e } s u b A d d O b j { # k e e p a l i s t o f o b j e c t s i n t h e m o d e l m y ( $ c l a s s , $ o b j ) = O _ ; p u s h ( O O b j e c t s , $ o b j ) ; } s u b O p e n { m y ( $ c l a s s , $ f i l e ) = Q _ ; ° P e n ( O U T . " > $ f i l e " ) ; 3 4 5 } s u b O u t p u t { # T h i s i s w h e r e t h e g o o d s t u f f s t a r t s . W e n e e d t o d o t h e f o l l o w i n g t h i n g s : # 1 . w r i t e o u t g l o b a l m t y p e s e n u m s # 2 . w r i t e o u t g l o b a l m t y p e s f o r a s s o c i a t i o n s # 3 . g r a b t h e d r i v e r f i l e a n d p u t i f o u t . # 4 . c y c l e t h r u t h e o b j e c t s i n t h e m o d e l c a l l i n g e a c h ’ s O u t p u t o p e n ( O U T , " > $ O U T F I L E " ) ; P u t C o n t e x t O , " c h a n e v q = [ 1 0 ] o f { m t y p e , i n t } ; " ; P u t C o n t e x t O , " c h a n e v t = [ 1 0 ] o f { m t y p e , i n t } ; " ; P u t C o n t e x t O , " c h a n w a i t = [ 1 0 ] o f { i n t , m t y p e } ; " ; m y $ e n t ; f o r e a c h $ e n t ( Q O b j e c t s ) { $ e n t - > P r e P r o c e s s ; } # E n u m s m y $ l i s t = j o i n ( ’ , ’ , k e y s ( % e n u m s ) ) ; P u t C o n t e x t 0 , " m t y p e = \ { $ l i s t \ } ; " ; f o r e a c h $ e n t ( Q O b j e c t s ) { $ e n t - > G l o b a l O u t p u t ; } P u t C o n t e x t O , " c h a n t = [ 1 ] o f { m t y p e } ; " ; P u t C o n t e x t 0 , " m t y p e = { f r e e } ; " ; # D r i v e r f i l e : o p e n ( D R V , " $ D R I V E R F I L E . p r " ) l l d i e " c a n ’ t o p e n d r i v e r f i l e " ; P u t C o n t e x t 0 ; P u t C o n t e x t 0 , " / * U s e r s p e c i f i e d d r i v e r f i l e * / " ; w h i l e ( $ 1 = < D R V > ) { c h o p $ 1 ; P u t C o n t e x t O , $ l } P u t C o n t e x t 0 ; c l o s e ( D R V ) ; # C y c l e t h r u o b j e c t s a n d g e t o u t p u t f o r e a c h $ e n t ( Q O b j e c t s ) { $ e n t - > O u t p u t ; } p r i n t O U T < < " E O F " ; / * T h i s i s t h e u n i v e r s a l e v e n t d i s p a t c h e r r o u t i n e * / p r o c t y p e e v e n t ( m t y p e m s g ) { m t y p e t y p e ; i n t p i d ; a t o m i c { 3 4 6 d o ' : e v q ? ? [ e v a l ( m s g ) , p i d ] - > e v q ? ? e v a l ( m s g ) , p i d ; e v t ! m s g , p i d ; d o ' : i f ' : e v q ? ? [ t y p e , e v a l ( p i d ) ] - > e v q ? ? t y p e , e v a l ( p i d ) ' : e l s e b r e a k ; f i o d : : e l s e - > b r e a k o d } e x i t : s k i p } E O F c l o s e ( O U T ) ; } s u b M a k e O u t { m y ( S l v l , $ t x t ) = Q _ ; m y ( S o u t , S m a r g i n ) ; m y ( S l a b e l , S r e s t ) ; ( S l a b e l , $ r e s t ) = S t x t = " / ‘ ( [ A - z O - 9 ] + : ) ( . * ) / s ; S m a r g i n = l e n g t h ( $ l a b e l ) > S L E F T M A R G I N ? l e n g t h ( $ l a b e l ) + 1 : S L E F T M A R G I N ; i f ( S l a b e l ) { S o u t = S l a b e l . ’ ’ x ( S m a r g i n - l e n g t h ( S l a b e l ) ) . S r e s t } e l s e { S o u t = ’ ’ x S t a b [ S l v l ] . S t x t } r e t u r n $ o u t ; } s u b c u t { m y ( S s t r , S l e n ) = Q _ ; m y ( S i , S p , S l a s t i , $ r e t , $ r e s t , $ i n q ) ; f o r ( S i = 0 ; S i < 1 e n g t h ( $ s t r ) ; $ i + + ) { S i n q = s u b s t r ( S s t r , $ i , 1 ) e q ’ " ’ ? + + S i n q % 2 : S i n q ; i f ( $ i n q ) { n e x t } i f ( s u b s t r ( S s t r , S i , 1 ) e q ’ ’ ) { i f ( $ i + 1 > $ l e n ) { S p = S l a s t i ? S l a s t i : $ i ; S r e t = s u b s t r ( $ s t r , 0 , $ p ) ; S r e s t = s u b s t r ( $ s t r , $ p + 1 ) ; r e t u r n ( $ r e t , S r e s t ) ; } e l s e { S l a s t i = S i } } } i f ( S l a s t i ) { r e t u r n ( s u b s t r ( S s t r , 0 , S l a s t i ) , s u b s t r ( $ s t r , $ l a s t i + 1 ) ) } e l s e { r e t u r n ( S s t r , ” ) } 3 4 7 s u b P u t { # P u t ( l v l , G l i s t ) w r i t e a s t r i n g o u t i n d e n t e d a c c o r d i n g t o l e v e l . I f t h e # s t r i n g h a s a l a b e l , i s i s p l a c e d a t t h e l e f t . I f t h e s t r i n g i s o v e r # 7 2 c h a r s , i t i s s p l i t t o a n e x t l i n e i n d e n t e d a t l v l + 1 . # I f P u t , l v l = 0 f o l l o w s a P u t N R , t h e s t r i n g i s p l a c e d o n t h e r i g h t # e n d o f t h e p r e v i o u s P u t N R a n d i f f o l d e d , f o l d e d a t t h e P u t N R l v l + 1 # I f m u l t i p l e P u t s a r e r e q ’ d , d o t h i s : P u t N R l v l , t e x t f o r t h e f i r s t w i t h # l v l s e t t o w h a t i s r e q ’ d . T h e d o P u t N R O , t e x t a s m a n y t i m e s a s n e e d e d , # t h e n P u t O , t e x t . m y ( S c l a s s , S l v l , Q l i s t ) = o _ ; m y S o u t = M a k e O u t ( S l v l , j o i n ( ” , O l i s t ) ) ; S o u t = S S T R ? S S T R . S o u t : S o u t ; S l v l = ! S l v l & & S L A S T L V L ? S L A S T L V L : S l v l ; m y S l v l 2 = S l v l ; m y S x ; i f ( l e n g t h ( S o u t ) > 7 2 ) { i f ( S o u t = " / ‘ + ( . + ) / ) { S o u t = $ 1 } w h i l e ( l e n g t h ( S o u t ) > 7 2 - S t a b [ $ l v l 2 ] ) { ( S x , S o u t ) = c u t ( $ o u t , 7 2 - S t a b [ $ l v l 2 ] ) ; p r i n t O U T ’ ’ x S t a b [ S l v l 2 ] , " S x \ n " ; $ 1 v l 2 = S l v l + 1 ; } i f ( S o u t ) { p r i n t O U T ’ ’ x S t a b [ S l v l 2 ] , " S o u t \ n " } } e l s e { p r i n t O U T " $ o u t \ n " } S S T R = ” ; S L A S T L V L = O ; } s u b P u t N R { m y ( S c l a s s , S l v l , C l i s t ) = 0 _ ; i f ( ! S S T R ) { $ L A S T L V L = $ 1 v l ; S S T R = M a k e O u t ( S l v l , j o i n ( ” , Q l i s t ) ) ; } e l s e { S S T R . = M a k e O u t ( O , j o i n ( ” , G l i s t ) ) } r e t u r n ; } s u b S e q { r e t u r n $ $ E Q + + } s u b B E G I N S L E F T M A R G I N = 1 0 ; S I N C = 3 ; S t a b [ O ] = O ; S t a b [ l ] = S L E F T M A R G I N ; m y $ 1 = S L E F T M A R G I N + S I N C ; 3 4 8 m y S j 8 2 ; w h i l e ( $ 1 < 7 2 ) { $ t a b [ $ j + + ] = S i ; S i + = S I N C ; } S S E Q = 1 ; } 1 ; # l / u s r / b i n / p e r l p a c k a g e H i s t o r y ; s u b n e w { # B o t h p a r e n t a n d s t a r t a r e r e f s . m y ( S c l a s s , S p a r e n t , S s t a r t ) = Q _ ; m y S o b j = { } ; b l e s s $ o b j ; $ $ o b j { p a r e n t } 3 S p a r e n t ; $ $ o b j { s t a r t } = S s t a r t ; S p a r e n t - > A d d S t a t e ( S o b j ) ; S S o b j { o b j r e f } = S p a r e n t - > G e t O b j R e f ; S S o b j { o b j r e f } - > A l l S t a t e s ( S o b j ) ; # W e w a n t a c a l l t o R e s o l v e D e s t l a t e r r e t u r n $ o b j ; s u b G e t N a m e { r e t u r n ’ H i s t o r y ’ } s u b P r e P r o c e s s m y ( S o b j ) = 0 _ ; m y S e n t ; f o r e a c h S e n t ( $ $ o b j { p a r e n t } - > G e t M e m b e r s ) { i f ( $ e n t = = S o b j ) { n e x t } # s k i p s e l f C o n t e x t - > A d d E n u m ( S S o b j { o b j r e f } - > G e t N a m e , " s t _ " . S e n t - > G e t N a m e ) ; } # d e c l a r e t h e g l o b a l v a r t o h o l d h i s t o r y . m y S p n 8 S S o b j { p a r e n t } - > G e t N a m e ; S S O b j { o b j r e f } - > A d t h y p e ( " H _ S p n " , " s t _ " . $ $ o b j { s t a r t } - > G e t N a m e ) ; s u b O u t p u t { r e t u r n } s u b R e s o l v e D e s t { # T h i s i s c a l l e d w h i l e s t a t e s a r e r e s o l v i n g d e s t s . W e u s e t h e c a l l t o # t e l l t h e o b j e c t t o d e c l a r e t h e h i s t o r y m t y p e g l o b a l l y m y ( S o b j ) = O _ ; m y S h a m e = S S 0 b j { p a r e n t } - > G e t N a m e ; m y S d e s t = S S o b j { s t a r t } - > G e t N a m e ; i f ( r e f ( $ $ o b j { s t a r t } ) e q ’ C S t a t e ’ l l r e f ( $ $ o b j { s t a r t } ) e q ’ C C S t a t e ’ ) { 3 4 9 $ $ o b j { o b j r e f } - > A d t h y p e ( " H _ S n a m e " , " t o _ S d e s t " ) ; } e l s e { $ $ o b j { o b j r e f } - > A d t h y p e ( " H _ S n a m e " , S d e s t ) } } s u b L c l O u t p u t { m y ( $ o b j ) = 0 _ ; # I f t h e i n t i a l s t a t e i s C S t a t e , w e n e e d a ’ t o _ s t a t e ’ t y p e l a b e l . m y S n a m e = S S o b j { s t a r t } - > G e t N a m e ; m y e s t a t e s = S S o b j { p a r e n t } - > G e t M e m b e r s ; m y S c s n a m e = $ $ o b j { p a r e n t } - > G e t N a m e ; m y S n a m e ; P u t C o n t e x t O , " / * H i s t o r y p s e d u o s t a t e c o n s t r u c t * / " ; P u t C o n t e x t 1 , " i f " ; f o r e a c h S e n t ( Q s t a t e s ) { i f ( S e n t = = S o b j ) { n e x t } # B u t n o t m e . . . . $ n a m e = $ e n t - > G e t N a m e ; i f ( r e f ( S e n t ) e q ’ C S t a t e ’ ) { P u t C o n t e x t 1 , " : : H _ S c s n a m e = = s t _ S n a m e - > g o t o t o _ $ n a m e ; " ; } e l s e { P u t C o n t e x t 1 , " : : H _ S c s n a m e = = s t _ S n a m e — > g o t o S n a m e ; " } } P u t C o n t e x t 1 , " f i ; " ; } 1 ; # l / u s r / b i n / p e r l p a c k a g e I n i t ; s u b n e w { # B o t h p a r e n t a n d s t a r t a r e r e f s . m y ( S c l a s s , S p a r e n t , S s t a r t ) = @ _ ; P u t L o g " p a r e n t i s a " , r e f ( S p a r e n t ) , " s t a r t i s a " , r e f ( S s t a r t ) ; m y $ o b j = { } ; b l e s s S o b j ; S S o b j { p a r e n t } = S p a r e n t ; i f ( r e f ( S s t a r t ) n e ’ S t a t e ’ & & r e f ( S s t a r t ) n e ’ C S t a t e ’ & & r e f ( S s t a r t ) n e ’ C C S t a t e ’ ) { p r i n t " * * * * I n i t f o r " , S p a r e n t - > G e t N a m e , " i s u n d e f i n e d \ n " ; e x i t ( 1 ) ; } $ $ o b j { s t a r t } = S s t a r t ; S p a r e n t - > A d d S t a t e ( S o b j ) ; r e t u r n $ o b j ; } s u b G e t N a m e { r e t u r n ’ I n i t ’ } s u b P r e P r o c e s s { r e t u r n } s u b O u t p u t { r e t u r n } 3 5 0 s u b L c l O u t p u t { m y ( S o b j ) = C _ ; P u t L o g " D o i n g I n i t f o r " , $ $ o b j { p a r e n t } - > G e t N a m e ; # I f t h e i n t i a l s t a t e i s C S t a t e , w e n e e d a ’ t o _ s t a t e ’ t y p e l a b e l . m y S n a m e = S S o b j { s t a r t } - > G e t N a m e ; P u t C o n t e x t 0 , " / * I n i t s t a t e * / " ; i f ( r e f ( $ $ o b j { s t a r t } ) e q ’ C S t a t e ’ ) { P u t C o n t e x t 1 , " g o t o t o _ S n a m e ; " ; } e l s e { P u t C o n t e x t 1 , " g o t o S n a m e ; " } } 1 ; # l / u s r / b i n / p e r l p a c k a g e J o i n ; u s e C C S t a t e ; s u b n e w { # A l l o f t h e s e a r e r e f s e x c e p t S n a m e , w h i c h i s m y j o i n n a m e ( e q u i v t o # s t a t e n a m e ) m y ( S c l a s s , S p a r e n t , S n a m e , S c c s t a t e , S d e s t ) = Q _ ; m y S o b j = { } ; b l e s s $ o b j ; $ $ o b j { n a m e } = S n a m e ; S S o b j { d e s t } = S d e s t ; S S o b j { p a r e n t } = S p a r e n t ; S S o b j { o b j r e f } = S p a r e n t - > G e t 0 b j R e f ; $ $ o b j { o b j r e f } - > A l l S t a t e s ( S o b j ) ; # t e l l o u r o b j e c t w e ’ r e h e r e . S p a r e n t - > A d d S t a t e ( S o b j ) ; S S o b j { c c s t a t e } = S c c s t a t e ; S c c s t a t e - > A d e o i n ( S o b j ) ; # t e l l C C S t a t e a b o u t o u r j o i n . r e t u r n $ o b j ; } B u b G e t N a m e { m y ( $ o b j ) = O _ ; } r e t u r n $ $ o b j { n a m e } ; s u b R e s o l v e D e s t { # N e e d t o r e s o l v e t h e d e s t h e r e j u s t l i k e w e d o f o r s t a t e s , e x c e p t t h e r e i s # o n l y o n e . m y ( $ o b j ) = 0 _ ; P u t L o g " R e s o l v e c a l l e d f o r j o i n $ $ o b j { n a m e } " ; m y ( S d i r , S c s t a t e ) = S S o b j { p a r e n t } - > F i n d ( $ $ o b j { d e s t } - > G e t N a m e ) ; 3 5 1 P u t L o g " $ $ o b j { n a m e } g o t b a c k S d i r , S c s t a t e " ; i f ( ! S d i r ) { d i e " J o i n c a n ’ t f i n d d e s t S S o b j { d e s t } " } S S o b j { d e s t t y p e } = S d i r ; S S o b j { c s t a t e } = S c s t a t e ; # e x c e p t f o r ’ d o w n ’ , t h i s i s n u l l } s u b P r e P r o c e s s { r e t u r n } s u b O u t p u t { r e t u r n } s u b L c l O u t p u t { m y ( $ o b j ) = 0 _ ; ( S c l a s s , S f , S l i n e ) = c a l l e r ; P u t L o g " I w a s c a l l e d b y S c l a s s ( $ l i n e ) " ; # G e t a l i s t o f a l l t h e C S t a t e s i n t h e C C S t a t e m y c h n a m e s = S S o b j { c c s t a t e } - > G e t N a m e ; # H e r e i s w h a t I a m b u i l d i n g : # : : c p 1 _ c o d e = = s t _ j o i n & & c p 2 _ c o d e = = s t _ j o i n - > g o t o s t a t e P u t N R C o n t e x t 1 , " : : " ; m y S d e s t = S S o b j { d e s t } - > G e t N a m e ; P u t L o g " d e s t = S d e s t , t y p e = " , r e f ( $ $ o b j { d e s t } ) ; m y S f i r s t = 1 ; f o r e a c h S e n t ( O c s n a m e s ) { i f ( S f i r s t ) { P u t N R C o n t e x t 0 , " S { e n t } _ c o d e = = s t _ S S o b j { n a m e } " ; $ f i r s t = 0 ; } e l s e { P u t N R C o n t e x t 0 , " & & S { e n t } _ c o d e = = s t _ $ $ o b j { n a m e } " } } P u t N R C o n t e x t 0 , " - > " ; # N o w d e t e r m i n e w h a t k i n d o f d i s p a t c h w e n e e d . w r i t e _ t r a n ( S S o b j { d e s t t y p e } , S d e s t , ” ) ; } s u b w r i t e - t r a n { m y ( S d e s t t y p e , S d e s t , S c s t a t e ) = 0 _ ; # T h i s i s a l o c a l r o u t i n e t o w r i t e o u t t h e r i g h t k i n d o f t r a n s i t i o n . P u t L o g " W r i t e T r a n d e s t t y p e = $ d e s t t y p e , d e s t = S d e s t , c s t a t e = S c s t a t e " ; # l o c a l s t a t e t r a n s i t i o n , u s e g o t o i f ( S d e s t t y p e e q ’ l c l ’ ) { P u t C o n t e x t O , " g o t o S d e s t ; " ; } e l s i f ( S d e s t t y p e e q ’ l c l c s ’ ) { P u t C o n t e x t O , " g o t o t o _ $ d e s t ; " ; } # t r a n s i t i o n t o s t a t e u p s o m e w h e r e ( h i g h e r l e v e l ) e l s i f ( S d e s t t y p e e q ’ u p ’ ) { P u t C o n t e x t 0 , " w a i t ! _ p i d , s t _ S d e s t ; g o t o q u i t ; " ; } # t r a n s i t i o n t o l o w e r C S t a t e 3 5 2 e l s i f ( S d e s t t y p e e q ’ d o w n ’ ) { P u t C o n t e x t O , " m = s t _ S d e s t ; " , " g o t o t o - $ c s t a t e ; " ; } # w h o o p s ! w e h a v e a p r o b l e m h e r e . . . . e l s e { d i e " d e s t i n a t i o n < S d e s t t y p e > n o t t y p e d " } } 1 ; # ! / u s r / b i n / p e r l p a c k a g e L o g ; s u b P u t { m y ( S c l a s s , @ m ) = C _ ; ( S c l a s s , S f , S l i n e ) = c a l l e r ; i f ( S t r a c k { S c l a s s } ) { p r i n t " S c l a s s ( $ l i n e ) " . j o i n ( ’ ’ , @ m ) . " \ n " ; } } # T r a c k L o g ( p k g , p k g , . . . ) # T h i s r o u t i n e a c c e p t s p a c k a g e n a m e s f o r l o g o u t p u t . # I f R e g i s t e r i s n o t c a l l e d w i t h t h e p a c k a g e n a m e , i t i s n o t l o g g e d s u b R e g i s t e r { m y ( S c l a s s , Q n a m e s ) = Q _ ; m y S n a m e ; f o r e a c h S n a m e ( Q n a m e s ) { S t r a c k { S n a m e } = 1 ; } } 1 ; # l / u s r / b i n / p e r l p a c k a g e O b j e c t ; s u b B E G I N { X C S = ( C S t a t e = > 1 a C C S t a t e = > 1 ) ; } . s u b n e w m y ( S c l a s s , S n a m e ) = 0 _ ; m y S o b j = { } ; S S o b j { a l l s t a t e s } = [ ] ; # a l l s t a t e s i n o b j e c t a t a n y l e v e l S S o b j { s t a t e s } = [ ] ; # M y i m m e d i a t e l o c a l s t a t e s S S o b j { e n u m s } = { } ; # g l o b a l e n u m s w e ’ r e a s k e d t o d e c l a r e $ $ o b j { n a m e } = S n a m e ; C o n t e x t - > A d d O b j ( S o b j ) ; # a d d m e t o t h e c o n t e x t ( m o d e l ) 3 5 3 b l e s s $ o b j ; r e t u r n $ o b j ; } s u b G e t N a m e { m y ( $ o b j ) = 0 - ; r e t u r n $ $ o b j { n a m e } ; } s u b G e t O b j R e f # I a m t h e t o p ( t h e o b j e c t ) s o t h i s i s t h e r e f e r e n c e e v e r y o n e w a n t s m y $ o b j = s h i f t ; r e t u r n $ o b j ; } s u b S i g n a l { # S a v e s i g n a l w e e x p e c t f r o m o t h e r o b j e c t s . S i g n a l m a y h a v e i n t p a r m . # S i g n a l s a r e n a m e d o b j n a m e _ s i g n a m e , b u t t h i s i s d o n e i n t h e o u t p u t 8 r o u t i n e s . m y ( S o b j , S n a m e , $ t y p e ) = O _ ; # m a r k t h i s e v e n t a s a s i g n a l a n d s a v e p a r m v a r i f t h e r e i s o n e . S S o b j { s i g n a l } { $ n a m e } = S t y p e ; P u t L o g " r e g i s t e r i n g s i g n a l S n a m e t y p e S t y p e " ; C o n t e x t - > A d d E n u m ( $ $ o b j { n a m e } , S n a m e ) ; # a d d t h e s i g n a l n a m e } s u b I s A S i g n a l { # D e t e r m i n e i s a n e v e n t i s a o b j e c t - > o b j e c t s i g n a l m y ( S o b j , S e v e n t ) = O _ ; r e t u r n e x i s t s ( S S o b j { s i g n a l } { $ e v e n t } ) ; } s u b G e t S i g n a l V a r { # d e t e t m i n e i s o b j - > o b j s i g n a l h a s a p a r m m y ( S o b j , S e v e n t ) = O _ ; r e t u r n S S o b j { s i g n a l } { $ e v e n t } ; } s u b I n s t V a r { m y ( S o b j , S t y p e , S v a r , S i n i t v a l ) = o _ ; } $ $ o b j { i n s t v a r } { $ v a r } = [ S t y p e , S i n i t v a l ] ; s u b H i s t o r y P r e s e n t { 3 5 4 m y ( $ o b j ) = 0 _ ; r e t u r n e x i s t s ( $ $ o b j { h i s t o r y p r e s e n t } ) ; } s u b A l l S t a t e s { # E v e r y s i m p l e s t a t e e v e r y w h e r e i s r e c o r d e d h e r e . W e c y c l e t h r u t h e m l a t e r t o # r e s o l v e d e s t s o n t r a n s . C o m p o s i t e s t a t e s d o n ’ t h a v e d e s t s m y ( S o b j , S s t a t e ) = 0 _ ; P u t L o g " A l l S t a t e s c a l l e d b y " , S s t a t e - > G e t N a m e ; i f ( r e f ( S s t a t e ) a s ’ S t a t e ’ & & r e f ( S s t a t e ) n e ’ J o i n ’ ) { P u t L o g S s t a t e - > G e t N a m e , " i s n o t s i m p l e s t a t e o r j o i n " ; r e t u r n ; } p u s h ( 0 { $ $ o b j { a l l s t a t e s } } , S s t a t e ) ; r e t u r n S o b j ; } s u b A d d S t a t e { # c a l l e d b y s t a t e p r o c e s s t o i n c l u d e s t a t e i n M Y l i s t o f s t a t e s # T h i s d i f f e r s f r o m A l l S t a t e s b y o n l y h a v i n g t h e s t a t e s i n t h e t o p # l e v e l , w h e r e t h e f o r m e r h a s A L L S T A T E S i n t h e e n t i r e o b j e c t . m y ( S o b j , S s t a t e ) = 0 _ ; p u s h ( 0 { $ $ o b j { s t a t e s } } . $ S t a t e ) ; m y S n a m e ; S n a m e = S s t a t e - > G e t N a m e ; # l c l m e a n s s i m p l e l o c a l s t a t e , l c l c s m e a n s c o m p o s i t e s t a t e o f s o m e k i n d S S o b j { o w n d e s t } { S n a m e } = r e f ( S s t a t e ) e q ’ S t a t e ’ ? ’ l c l ’ : ’ l c l c s ’ ; i f ( r e f ( S s t a t e ) e q ’ H i s t o r y ’ ) { S S o b j { h i s t o r y p r e s e n t } = S s t a t e } } s u b G e t M e m b e r s { # T h i s m e t h o d p r o d u c e s a l i s t o f r e f s o f t h e s t a t e s w e o w n . m y ( $ o b j ) = 0 _ ; r e t u r n O { $ $ o b j { s t a t e s } } ; } s u b F i n d { m y ( S o b j , S d e s t ) = 0 _ ; P u t L o g " F i n d f o r o b j e c t $ $ o b j { n a m e } c a l l e d . L o o k i n g f o r S d e s t " ; # L o o k l o c a l l y f i r s t . i f ( e x i s t 8 ( $ $ o b j { o w n d e s t } { $ d e s t } ) ) { r e t u r n ( $ $ o b j { o w n d e s t } { $ d e s t } , ” ) } P u t L o g " S d e s t n o t l o c a l " ; # N e x t , l o o k d o w n t h r u C S t a t e n o d e s f o r e a c h S e n t ( 0 { $ $ o b j { s t a t e s } } ) { i f ( r e f ( S e n t ) n e ’ C S t a t e ’ ) { n e x t } # S k i p a l l n o n - C S t a t e s i f ( S e n t - > G o D o w n ( S d e s t ) ) { # p a r e n t - > c h i l d c a l l 3 5 5 r e t u r n ( ’ d o w n ’ , $ e n t - > G e t N a m e ) ; } } # I f n o t f o u n d b y n o w , t h e n i t d o e s n ’ t e x i s t d i e " o b j e c t $ $ o b j { n a m e } c a n ’ t f i n d d e s t S d e s t " ; } # N o G o D o w n m e t h o d b e c a u s e I d o n ’ t h a v e a n y p a r e n t s t h a t c a n c a l l m e . # S e e C S t a t e f o r d e s c r i p t i o n o f G o U p a n d G o D o w n . s u b G o U p { # M y c h i l d r e n c a l l m e h e r e l o o k i n g f o r d e s t s t a t e . m y ( S o b j , S d e s t , S c a l l e r ) = 0 _ ; P u t L o g " G o U p o f o b j e c t $ $ o b j { n a m e } c a l l e d , l o o k i n g f o r S d e s t " ; # L o o k l o c a l l y i f ( e x i s t s ( $ $ o b j { o w n d e s t } { $ d e s t } ) ) { # w e o w n t h i s s i m p l e s t a t e r e t u r n [ $ $ o b j { o w n d e s t } { $ d e s t } ] ; # r e t u r n o u r c o n t e x t f o r S d e s t } # L o o k d o w n , c y c l e t h r u c h i l d r e n f o r e a c h S e n t ( @ { S S o b j { s t a t e s } } ) { i f ( S c a l l e r = 3 S e n t ) { n e x t } # D o n ’ t l o o p b a c k t o c a l l e r o b j e c t i f ( ! S C S { r e f ( S e n t ) } ) { n e x t } i f ( S e n t - > G o D o w n ( $ $ o b j { S d e s t } ) ) { r e t u r n [ ’ d o w n ’ , S e n t - > G e t N a m e ] ; } } # I f n o t f o u n d b y n o w , t h e n i t d o e s n ’ t e x i s t i n t h i s o b j e c t p r i n t " * * * * E R R O R : o b j e c t $ $ o b j { n a m e } c a n ’ t f i n d d e s t S d e s t " ; e x i t ( 1 ) ; } s u b A s s o c { # A l l e v e n t s f l o w t h r u e v q a n d e v t c h a n n e l s f o r n o w . S i n c e t h e y ’ l l a p p e a r # a s e v e n t s , w e c a n i g n o r e t h e m h e r e . T h i s w i l l w o r k u n t i l w e n e e d t o # p a s s v a l u e s o n a s s o c . T h e n w e ’ l l n e e d l e g i t i m a t e c h a n n e l s . r e t u r n ; } s u b D c l { m y ( S o b j , S v a r , S t y p e ) = C _ ; # S a v e d e c l a r e d i n s t a n c e v a r . S S o b j { i v a r s } { S v a r } = S t y p e ; } s u b A d t h y p e { 3 5 6 # T h i s r o u t i n e a l l o w s g l o b a l d e l c a r a t i o n o f m t y p e v a r i a b l e s ; n o t d e f i n i t i o n . # S e e A d d E n u m a b o v e f o r d e f i n t i o n o f m t y p e v a l u e . m y ( S o b j , S v a r , S i n i t i a l ) = O _ ; S S o b j { m t y p e s } { S v a r } = S i n i t i a l ; } s u b A d d W h e n { m y ( S o b j , S n a m e , $ c l a u s e ) = Q _ ; } $ $ o b j { w h e n } { $ n a m e } = S c l a u s e ; s u b I N T a r g e t { m y ( S o b j , S n a m e ) = Q _ ; # W e a r e b e i n g t o l d o f a s t a t e n a m e t h a t i s t h e t a r g e t o f a n I N p r e d i c a t e # s o m e w h e r e i n t h e o b j e c t . W e n e e d t o m a k e e n e n u m , a n e n u m v a r i a b l e , a n d # s a v e s t a t e n a m e s o i t c a n b e q u e r i e d l a t e r . P u t L o g " S n a m e a d d e d a s I N t a r g e t " ; i f ( ! e x i s t s ( $ $ o b j { I N } ) ) { S o b j - > A d t h y p e ( $ $ o b j { n a m e } . ’ _ s t a t e ’ ) ; $ $ o b j { I N } = 1 ; } C o n t e x t - > A d d E n u m ( $ $ o b j { n a m e } , " s t _ $ n a m e " ) ; # m a k e s u r e s t a t e n a m e d e c l a r e d S S o b j { I N t a r g e t } { $ n a m e } = 1 ; } s u b I s A I N T a r g e t { m y ( S o b j , S n a m e ) = O _ ; # r e t u r n t r u e i f S n a m e i s a t a r g e t o f a n I N p r e d i c a t e r e t u r n e x i s t s ( $ $ o b j { I N t a r g e t } { $ n a m e } ) ; } s u b P r e P r o c e s s { m y ( $ o b j ) = 0 - ; # C o n t e x t c a l l s u s h e r e w h e n a l l t h e i n p u t i s p a r s e d . W e n e e d t o d o # a n y f i n a l s e t u p s , l i k e r e s o l v i n g d e s t s , m a k i n g C C S t a t e m e m b e r s a p p e a r # l o c a l , e t c . T h i s i s c a l l e d b e f o r e a n y o u t p u t r o u t i n e . # F i r s t , w e n e e d t o m a k e c h i l d r e n o f C C S t a t e s w e o w n l o o k l o c a l t o u s . # C C S t a t e - > G e t N a m e r e t u r n s a l i s t o f C S t a t e s i t o w n s . W e a l s o c a l l o t h e r # P r e P r o c e s s m e t h o d s . m y $ e n t ; m y S i n i t ; m y $ n a m e ; f o r e a c h $ e n t ( O { $ $ o b j { s t a t e s } } ) { i f ( r e f ( S e n t ) e q ’ I n i t ’ ) { $ i n i t = 1 } S e n t - > P r e P r o c e s s ; i f ( r e f ( S e n t ) e q ’ C C S t a t e ’ ) { f o r e a c h S n a m e ( S e n t - > G e t N a m e ) { S S o b j { o w n d e s t } { $ n a m e } = ’ l c l c s ’ } 3 5 7 } } m y S k e y ; P u t L o g " H e r e i s $ $ o b j { n a m e } o w n d e s t : " ; f o r e a c h S k e y ( k e y s % { $ $ o b j { o w n d e s t } } ) { P u t L o g " s t a t e = S k e y , v a l u e = S S o b j { o w n d e s t } { $ k e y } " ; } # S e e i f t h e r e i s a n I n i t s t a t e i f ( ! S i n i t ) { p r i n t " * * * * W a r n i n g : O b j e c t $ $ o b j { n a m e } h a s n o I n i t s t a t e \ n " ; } # T h i s i s a g o o d t i m e t o r e s o l v e a l l d e s t i n a t i o n s m y S i = 0 { $ $ o b j { a l l s t a t e s } } ; P u t L o g " P r e P r o c e s s c a l l e d f o r $ $ o b j { n a m e } . S i s t a t e s " ; f o r e a c h S e n t ( O { S S o b j { a l l s t a t e s } } ) { S e n t - > R e s o l v e D e s t } P u t L o g " $ $ o b j { n a m e } d e s t s a l l r e s o l v e d " ; } s u b G l o b a l O u t p u t { m y ( $ o b j ) = O _ ; 8 T h i s i s t h e f i r s t o u t p u t r o u t i n e c a l l e d . A l l g l o b a l d e c l a r e s n e e d t o # w r i t t e n a t t h i s t i m e . E x c e p t i o n : M t y p e d c l s a r e a t t h e c o n t e x t l e v e l # b e c a u s e o b j e c t s c a n s h a r e s i g n a l s ( n o . . . m o v e i t b a c k h e r e . p r e f i x # s i g n a l w i t h o b j e c t n a m e . m y S e n t ; # W r i t e o u t g l o b a l m t y p e v a r i a b l e d c l s . S o m e h a v e i n i t i a l i z e r s ( h i s t o r y ) f o r e a c h S e n t ( k e y s % { $ S o b j { m t y p e s } } ) { i f ( S S o b j { m t y p e s } { $ e n t } ) { P u t C o n t e x t 0 , " m t y p e $ e n t = $ $ o b j { m t y p e s } { $ e n t } ; " ; } e l s e { P u t C o n t e x t O , " m t y p e $ e n t ; " } } # w r i t e o u t m y i n s t a n c e v a r s P u t L o g " s t a r t i n g t o w r i t e i n s t v a r s i n $ $ o b j { n a m e } " ; i f ( k e y s % { S S o b j { i n s t v a r } } ) { P u t C o n t e x t 0 , " t y p e d e f $ $ o b j { n a m e } - T { " ; f o r e a c h S e n t ( k e y s % { $ $ o b j { i n s t v a r } } ) { P u t C o n t e x t 1 , " $ $ o b j { i n s t v a r } { $ e n t } [ 0 ] S e n t ; " ; } P u t C o n t e x t 1 , " } " ; P u t C o n t e x t 0 , " $ $ o b j { n a m e } _ T $ $ o b j { n a m e } _ V ; " ; } # H a n d l e s i g n a l s i f ( k e y s % { $ S o b j { s i g n a l } } ) { P u t C o n t e x t O , " c h a n $ $ o b j { n a m e } _ q = [ 5 ] o f { m t y p e } ; " ; } # s h a r e d v a r i a b l e s f o r s i g n a l s . . . 3 5 8 # W A R N I N G : s h a r e d v a r i a b l e s m a y g e t o v e r w r i t t e n . # f o r e a c h S e n t ( % { $ S o b j { s i g n a l } } ) { r i f ( $ $ o b j { s i g n a 1 } { $ e n t } ) { # P u t C o n t e x t 0 , " $ $ o b j { s i g n a l } { S e n t } $ { e n t } v ; " # } s } # P a r a m e t e r c h a n n e l f o r s i g n a l s . R e p l a c e m e n t f o r s h a r e d v a r i a b l e . f o r e a c h $ e n t ( % { S S o b j { s i g n a l } } ) { i f ( $ $ o b j { s i g n a l } { $ e n t } ) { P u t C o n t e x t O , " c h a n $ { e n t } - p 1 = [ 5 ] o f { S S o b j { s i g n a 1 } { $ e n t } } ; " ; } } P u t L o g " g l o b a l o u t p u t d o n e i n $ $ o b j { n a m e } " ; } s u b O u t p u t { m y S o b j = s h i f t ; # - - - - - I n i t i a l s t u f f - - - - - - # C a t e g o r i z e s t a t e s w e o w n . m y e c s n a m e s ; m y O c c n a m e s ; m y ( S i n t , S m t y p e ) ; m y S i n i t ; f o r e a c h S e n t ( O { S S o b j { s t a t e s } } ) { i f ( r e f ( S e n t ) e q ’ C S t a t e ’ ) { p u s h ( @ c s n a m e s , $ e n t - > G e t N a m e ) } e l s i f ( r e f ( S e n t ) e q ’ C C S t a t e ’ ) { p u s h ( @ c c n a m e s , S e n t - > G e t N a m e ) } e l s i f ( r e f ( S e n t ) e q ’ H i s t o r y ’ l l r e f ( S e n t ) e q ’ I n i t ’ ) { S i n i t = S e n t } } P u t C o n t e x t O , " p r o c t y p e S S o b j { n a m e } ( ) " ; P u t C o n t e x t 0 , " { " ; # d e c l a r e p i d v a r s f o r r u n s a n d w a i t s . m y S d c l ; i f ( O c s n a m e s > 0 ) { f o r e a c h S e n t ( c h n a m e s ) { $ i n t . = " S { e n t } _ p i d , " } } # d e c l a r e p i d v a r s f o r C C S t a t e r u n s i f ( O c c n a m e s > O ) { i f ( S i n t ) { $ i n t . = ’ , ’ } f o r e a c h S e n t ( O c c n a m e s ) { t i n t . = " $ { e n t } - p i d . " ; S m t y p e . = " $ { e n t } _ C 0 d e . " ; } P u t L o g " m t y p e i s < $ m t y p e > " ; S m t y p e = “ s / . $ / / ; P u t C o n t e x t O , " m t y p e S m t y p e ; " ; } # f r o m c s n a m e c o d e a b o v e i f ( $ i n t ) { 3 5 9 S i n t = " s / , $ / / ; P u t C o n t e x t 0 , " i n t $ i n t ; " ; } P u t C o n t e x t O , " m t y p e m ; " ; P u t C o n t e x t 0 , " i n t d u m m y ; " ; D e b u g g i n g o u t p u t t o l i s t t o s e e e n u m s f o r e a c h S e n t ( k e y s % { S $ o b j { e n u m s } } ) { P u t C o n t e x t 1 , " p r i n t f ( \ " $ e n t = % d \ \ n \ " , $ e n t ) ; " ; } I n s t a n c e v a r i n i t i a l i z e r s f o r e a c h S e n t ( k e y s % { $ $ o b j { i n s t v a r } } ) { i f ( $ $ o b j { i n s t v a r } { $ e n t } [ 1 ] ) { P u t C o n t e x t 1 , " S S o b j { n a m e } - V . S e n t = S S o b j { i n s t v a r } { $ e n t } [ 1 ] ; " ; } } S t a r t w h e n p r o c s f o r e a c h S e n t ( k e y s % { $ $ o b j { w h e n } } ) { P u t C o n t e x t 1 , " r u n p r o c S e n t ( ) ; " ; } D o i n i t s t a t e o r h i s t o r y s e t u p i f ( $ i n i t ) { $ i n i t - > L c l O u t p u t } n o w p u t o u t c o d e f o r s t a t e s a n d c s t a t e s . f o r e a c h S e n t ( 0 { $ S o b j { s t a t e s } } ) { i f ( r e f ( S e n t ) e q ’ J o i n ’ ) { n e x t } # S k i p J o i n s . C C S t a t e w i l l h a n d l e i f ( r e f ( S e n t ) e q ’ H i s t o r y ’ l l r e f ( S e n t ) e q ’ I n i t ’ ) { n e x t } $ e n t - > L c l O u t p u t ; } W i n d u p t h i s O b j e c t P u t C o n t e x t O , " e x i t z s k i p " ; P u t C o n t e x t 0 , ” } " ; P u t C o n t e x t 0 ; O u t p u t b o d y o f c o m p o s i t e s t a t e s w e o w n f o r e a c h S e n t ( Q { S S o b j { s t a t e s } } ) { P u t L o g " o b j e c t n a m e $ $ o b j { n a m e } o u t p u t i n g t y p e " , r e f ( S e n t ) ; S e n t - > O u t p u t ; } P u t L o g " c o m p o s i t e s t a t e s d o n e " ; O u t p u t w h e n c l a u s e m o n i t o r s f o r e a c h S e n t ( k e y s % { S S o b j { w h e n } } ) { P u t C o n t e x t 0 ; P u t C o n t e x t O , " p r o c t y p e p r o c S e n t ( ) " ; P u t C o n t e x t 0 , " { " ; P u t C o n t e x t 1 , " d o " ; P u t C o n t e x t 2 , " : : S S o b j { w h e n } { $ e n t } - > r u n e v e n t ( S e n t ) " ; P u t C o n t e x t 1 , " o d " ; P u t C o n t e x t 0 , " } " ; 3 6 0 } P u t C o n t e x t 0 ; 1 ; # l / u s r / b i n / p e r l p a c k a g e S t a t e ; u s e T r a n Y a c c ; s u b B E G I N { S E V E N T C N T = 1 ; # T h i s c o u n t s n o - e v e n t t r a n s i t i o n s w i t h o u t g u a r d s . } s u b n e w { m y ( S c l a s s , S p a r e n t , S n a m e ) = Q _ ; m y $ o b j = { } ; b l e s s $ o b j ; S S o b j { p a r e n t } = S p a r e n t ; $ $ o b j { n a m e } = S n a m e ; S S o b j { o b j r e f } = S p a r e n t - > G e t 0 b j R e f ; # g e t a r e f t o o b j e c t w e ’ r e i n . $ $ o b j { d e s t } = [ ] ; S p a r e n t - > A d d S t a t e ( S o b j ) ; S S o b j { o b j r e f } - > A l l S t a t e s ( S o b j ) ; # t e l l o u r o b j e c t w e ’ r e h e r e . r e t u r n $ o b j ; } s u b G e t N a m e { m y ( $ o b j ) = 0 - ; r e t u r n $ $ o b j { n a m e } ; } s u b T r a n { t W e p a r s e t h e t r a n s a c t i o n . T h i s p r o d u c e s a d e l i m i t e d s t r i n g o f e v e n t , g u a r d # a c t i o n , m s g . S a v e e a c h i n a h a s h b y i t ’ s d e l i m i t e r t y p e . I f e v e n t = n u l l # g r a b a n u m b e r f o r a p l a c e h o l d e r o n t h e e v e n t h a s h . m y ( S o b j , S t r a n , S d e s t ) = O _ ; m y S r e t ; i f ( s t r a n ) { T r a n Y a c c - > S e t O b j N a m e ( $ $ o b j { o b j r e f } - > G e t N a m e ) ; # t e l l p a r s e r o b j e c t n a m e P u t L o g " t r a n s i t i o n b e f o r e p a r s e < S t r a n > " ; S r e t = T r a n Y a c c - > P a r s e ( S t r a n ) ; i f ( ! S r e t ) { p r i n t " B a d t r a n s i t i o n e x p r e s s i o n : S t r a n \ n " ; e x i t ; } } e l s e { S r e t = ” } 3 6 1 P u t L o g " t r a n r e t = $ r e t " ; m y Q l i s t = s p l i t ( / \ # / , S r e t ) ; m y Z t a b ; m y ( S t y p e , $ t h i n g ) ; w h i l e ( Q l i s t ) { S t y p e = s h i f t ( 0 1 i s t ) ; S t h i n g = s h i f t ( 0 1 i s t ) ; $ t a b { $ t y p e } = S t h i n g ; } # C h e c k t o s e e i f t h e r e I S a n e v e n t . i f ( ! e x i s t s ( S t a b { E } ) l l $ t a b { E } e q ’ N U L L ’ ) { $ t a b { E } = ’ N O E V E N T ’ } # N o e v e n t , p l a c e h o l d e r . # C h e c k f o r ’ w h e n ’ c l a u s e a n d r e g i s t e r i s t h e r e i s . i f ( e x i s t s ( $ t a b { E } ) & & $ t a b { E } = ~ / “ w h e n \ ( ( . + ) \ ) $ / ) { m y S e x p = $ 1 ; $ t a b { E } = ’ w h e n ’ . C o n t e x t - > S e q ; $ $ o b j { o b j r e f } - > A d d W h e n ( $ t a b { E } , S e x p ) ; # r e g i s t e r w h e n c l a u s e } # T h i s p a t t e r n i s u n i q u e t o I N p r e d i c a t e b e c a u s e o f p a r s e r . T e l l o b j e c t # w h o i s t h e t a r g e t o f t h e I N p r e d i c a t e . T h a t s t a t e n e e d s t o b u i l d t r a c k i n g # c o d e . i f ( e x i s t s ( S t a b { G } ) & & S t a b { G } = ” / s t a t e = = s t _ ( [ ‘ ] + ) / ) { m y S v a r = $ 1 ; S S o b j { o b j r e f } - > I N T a r g e t ( S v a r ) ; } p u s h ( 0 { $ $ o b j { e v e n t } { $ t a b { E } } } , [ $ t a b { G } , S t a b { A } , $ t a b { M } , S d e s t l ) ; S S o b j { s i g v a r } { S t a b { E } } = S t a b { V } ; P u t L o g " e v e n t = $ t a b { E } " ; P u t L o g " v a r = $ t a b { V } " ; P u t L o g " g u a r d = $ t a b { G } " ; P u t L o g " a c t i o n = S t a b { A } " ; P u t L o g " m s g = $ t a b { M } " ; P u t L o g " d e s t = S d e s t " ; s u b G e t P a r e n t { # r e t u r n m y p a r e n t c o m p o s i t e t h i n g y ( C S t a t e o r O b j e c t ) r e t u r n S S o b j { o b j r e f } ; } # O k , h e r e ’ s w h a t w e d o b e l o w : T h e o b j e c t k n o w s a b o u t e v e r y s t a t e . A t o u t p u t # t i m e , t h e o b j e c t c y c l e s t h r u t h e s t a t e s , a n d e a c h s t a t e r e s o l v e s w h e r e # e a c h d e s t i s r e l a t i v e t o t h e o w n e r o f t h i s s t a t e . R e s u l t s c a n b e ’ u p ’ , # ’ d o w n ’ , o r ’ l c l ’ . I f d o w n , w e n e e d t h e e s t a t e t o g o d o w n t o . s u b R e s o l v e D e s t { m y S o b j = s h i f t ; P u t L o g " R e s o l v e c a l l e d f o r s t a t e $ $ o b j { n a m e } " ; m y S p a r e n t = $ $ o b j { p a r e n t } ; 3 6 2 m y ( S e n t , $ d i r , $ c s n a m e , S r e f ) ; f o r e a c h S e ( k e y s % { S S o b j { e v e n t } } ) { # t h i s g e t s e a c h e v e n t f o r e a c h S g ( O { $ $ o b j { e v e n t } { $ e } } ) { # t h i s g e t s e a c h g u a r d / a c t i o n S d e s t = S S g [ 3 ] ; # g e t t h e d e s t # T h i s h a n d l e s t r a n s i t i o n t o ’ e x i t ’ s t a t e i f ( S d e s t e q ’ e x i t ’ ) { S S o b j { d e s t t y p e } { $ d e s t } = ’ l c l ’ ; n e x t ; } S r e f = $ $ o b j { p a r e n t } - > G o U p ( $ d e s t , $ o b j ) ; # r e s o l v e d i r e c t i o n P u t L o g " G o t b a c k : S S r e f [ O ] , $ $ r e f [ 1 ] " ; i f ( ! S S r e f [ O ] ) { d i e " c a n ’ t f i n d d e s t $ d e s t " } S S o b j { d e s t t y p e } { $ d e s t } = $ $ r e f [ 0 ] ; # s a v e d i r e c t i o n S S o b j { c s t a t e } { $ d e s t } = $ $ r e f [ 1 ] ; # s a v e r e f t o C S t a t e , i f r e q ’ d # S e t u p e n u m f o r s t a t e n a m e i f ( $ $ r e f [ 0 ] e q ’ u p ’ l l $ $ r e f [ 0 ] e q ’ d o w n ’ ) { C o n t e x t - > A d d E n u m ( $ $ o b j { o b j r e f } - > G e t N a m e , " s t _ S d e s t " ) ; } } s u b P r e P r o c e s s { m y S o b j = s h i f t ; # T h e o n l y t h i n g w e d o i s s c a n a l l e v e n t s a n d r e g i s t e r e n u m s f o r # t h o s e t h a t a r e N O T s i g n a l s . ’ O b j e c t ’ a l r e a d y r e g i s t e r e d s i g n a l s . # N O T E : w e c o n t i n u e t o s a v e s i g n a l s b y t h e i r n a m e w i t h o u t t h e O B J - p r e f i x . m y $ 6 ; m y S o b j r e f = S S o b j { o b j r e f } ; f o r e a c h S e ( k e y s % { $ $ o b j { e v e n t } } ) { i f ( S e n e ’ N O E V E N T ’ & & ! S o b j r e f — > I s A S i g n a l ( S e ) ) { C o n t e x t - > A d d E n u m ( S o b j r e f - > G e t N a m e , S e ) } i f ( g r e p ( $ $ _ [ 0 ] , 0 { $ $ o b j { e v e n t } { $ e } } ) > O ) { $ $ o b j { n e e d l a b e l } = 1 } s u b O u t p u t { r e t u r n } s u b L c l O u t p u t m y S o b j = s h i f t ; P u t L o g " L c l O u t p u t f o r s t a t e $ $ o b j { n a m e } " ; m y S o b j r e f = S S o b j { o b j r e f } ; # g e t o b j r e c t r e f t o s a v e w r i t i n g . m y S o b j n a m e 8 S o b j r e f - > G e t N a m e ; # g e t n a m e o f o b j e c t P u t C o n t e x t 0 , " / * S t a t e $ $ o b j { n a m e } * / " ; P u t C o n t e x t O , " S S o b j { n a m e } : p r i n t f ( \ " i n s t a t e S o b j n a m e . $ $ o b j { n a m e } \ \ n \ " ) ; " ; # D o w e n e e d t o s a v e s t a t e f o r h i s t o r y i f ( S S o b j { p a r e n t } - > H i s t o r y P r e s e n t ) { 3 6 3 fi fi t i t 3 t 3 t # # fi fi fl t fl i t P u t C o n t e x t 1 , " H _ " , $ $ o b j { p a r e n t } - > G e t N a m e , " = s t _ $ $ o b j { n a m e } ; " . " / * S a v e s t a t e f o r h i s t o r y * / " ; } D o w e n e e d g u a r d e d t r a n s i t i o n l a b e l ? S e e b e l o w . i f ( $ $ o b j { n e e d l a b e l } ) { P u t C o n t e x t 0 , " S S o b j { n a m e } \ _ G : " } S e t u p e v e n t s w e l o o k f o r . I n c o m i n g s i g n a l s a r e p r e f i x e d w i t h o b j n a m e f o r e a c h S e ( k e y s % { S S o b j { e v e n t } } ) { P u t L o g " s e t t i n g u p e v e n t S e i n s t a t e S o b j n a m e " ; i f ( S e e q ’ N O E V E N T ’ ) { n e x t } # a n o e v e n t t r a n s i t i o n q u e u e d s e m a n t i c s i f ( l S o b j r e f - > I s A S i g n a l ( S e ) ) { P u t C o n t e x t 1 , " e v q ! $ e , _ p i d ; " } n o t q u e u e d s e m a n t i c s i f ( S o b j r e f - > I s A S i g n a l ( S e ) ) { P u t C o n t e x t 1 , " e v q ! S e , _ p i d ; " } } I f w e a r e t a r g e t o f I N p r e d i c a t e , n e e d a s s i g n m e n t s t m t i f ( S o b j r e f - > I s A I N T a r g e t ( $ $ o b j { n a m e } ) ) { P u t C o n t e x t 1 , " S { o b j n a m e } _ s t a t e = s t - $ $ o b j { n a m e } ; " ; } P u t C o n t e x t 1 , " a t o m i c { i f : : ! t ? [ f r e e ] - > t ! f r e e : : e l s e s k i p f i ; } " ; W a i t f o r e v e n t s , a n d b u i l d t r a n s i t i o n s , a c t i o n s , s e n d m s g s . I f e v e n t i s s i g n a l , a n d t h e r e i s a p a r m , s a v e i t . K e y s a r e e v e n t s , s a v e d a s ( g u a r d , a c t i o n , m s g , d e s t , v a r ] F i r s t c h e c k i f t h e r e a r e g u a r d s ( t h e g r e p ) m y S d e s t ; P u t C o n t e x t 1 , " i f " ; f o r e a c h S e ( k e y s % { $ $ o b j { e v e n t } } ) { P u t L o g " w o r k i n g o n e v e n t S e i n s t a t e $ $ o b j { n a m e } " ; i f ( S e e q ’ N O E V E N T ’ ) { P u t N R C o n t e x t 1 , " : : 1 - > " } # n o e v e n t e l s i f ( S o b j r e f - > I s A S i g n a l ( S e ) ) { P u t L o g " S e i s a s i g n a l v a r = S S o b j { s i g v a r } { $ e } " ; i f ( $ $ o b j { s i g v a r } { S e } ) { q u e u e d s e m a n t i c s P u t N R C o n t e x t 1 , " : : a t o m i c { $ { o b j n a m e } - q ? $ e - > " , " $ { e } - p 1 ? S S o b j { s i g v a r } { $ e } } - > " ; T h e n e x t s t a t e m e n t u s e s a t e m p v a r i a b l e : W A R N I N G t h e r e i s n o t h i n g t o g u a r r a n t e e t h a t t h i s v a r i a b l e w o n ’ t g e t o v e r w r i t t e n . " S S o b j { s i g v a r } { $ e } = $ { e } v } - > " ; n o n q u e u e d s e m a n t i c s P u t N R C o n t e x t 1 , " : : a t o m i c { e v t ? ? $ e , e v a 1 ( _ p i d ) - > " , " S S o b j { s i g v a r } { $ e } = $ { e } v } - > " ; } e l s e { q u e u e d s e m a n t i c s P u t N R C o n t e x t 1 , " : : S { o b j n a m e } _ q ? $ e - > " ; n o n - q u e u e d P u t N R C o n t e x t 1 , " : : e v t ? ? $ e , e v a l ( _ p i d ) - > " ; } } e l s e { P u t N R C o n t e x t 1 , " : : e v t ? ? S e , e v a l ( _ p i d ) - > " } 3 6 4 P u t N R C o n t e x t O , " t ? f r e e ; " ; # I f I N p r e d i c a t e , w e n e e d t o c l e a r v a r i a b l e i f ( S o b j r e f - > I s A I N T a r g e t ( $ $ o b j { n a m e } ) ) { P u t N R C o n t e x t 0 , " S { o b j n a m e } _ s t a t e = n o n e ; " ; } N o w f o r t h e c o d e t h a t f o l l o w s t h e e v e n t . 0 = g u a r d , 1 = a c t i o n 2 = m s g 3 = d e s t 4 = v a r F i r s t w e c h e c k t o s e e i f t h e r e a r e a n y g u a r d s . I f s o , w e n e e d a n ’ i f ’ c o n s t r u c t . N o c o n d i t i o n i s ’ 1 ’ i f ( g r e p ( $ $ _ [ O ] , O { $ $ o b j { e v e n t } { $ e } } ) ) { # a n y g u a r d s ? P u t L o g " g u a r d s p r e s e n t " ; P u t C o n t e x t 0 , “ i f " ; # ’ i f ’ f o r g u a r d f o r e a c h S g ( Q { $ S o b j { e v e n t } { $ e } } ) { # e n u m e r a t e c o n d i t i o n s P u t L o g " g d = $ $ g [ 0 l , a c t i o n = S S g [ 1 ] , m s g = S S g [ 2 ] " , " d e s t = $ $ g [ 3 ] . v a r = $ $ g [ 4 ] " ; % % % % 3 c h e c k f o r g u a r d . N o g u a r d g e t s a ’ 1 ’ i f ( $ $ g [ 0 ] ) { P u t N R C o n t e x t 2 , " : : S S g E O ] - > " } e l s e { P u t N R C o n t e x t 2 , " : : 1 - > " } c o d e s e q ( S g , S o b j ) ; # w r i t e o u t c o d e s e q } # N e e d t h i s t o f l u s h e v e n t i f g u a r d i s f a l s e . P u t C o n t e x t 2 , " : : e l s e - > g o t o S S o b j { n a m e } \ _ G " ; P u t C o n t e x t 2 , " f i " ; } # W e a r e h e r e i s t h e r e a r e n o g u a r d s , a n d h e n c e o n e s e t o f c o d e f o r t h i s e v e n t e l s e { P u t L o g " n o g u a r d s " ; c o d e s e q ( $ $ o b j { e v e n t } { $ e } [ 0 ] , S o b j ) ; # t h e r e i s o n l y 1 i t e m o n l i s t } } P u t C o n t e x t 1 , " f i ; " ; # i f t h a t c l o s e s o f f e v e n t d i s p a t c h } s u b c o d e s e q { # T h i s r o u t i n e w r i t e s a s s u m e s t h e r e i s a n a c t i o n o r m s g m y ( S g , $ o b j ) = 0 - ; # c h e c k f o r a c t i o n i f ( S S g [ 1 ] ) { P u t N R C o n t e x t 0 , " $ $ g [ 1 ] " } # c h e c k f o r m s g i f ( S S g [ 2 ] ) { P u t N R C o n t e x t 0 , " $ $ g [ 2 ] " } # F i n a l l y , w r i t e d e s t e x p r e s s i o n w r i t e _ t r a n ( $ $ o b j { d e s t t y p e } { S S g [ 3 ] } , S S g [ 3 l . $ $ o b j { c s t a t e } { $ $ g [ 3 ] } ) ; P u t C o n t e x t 0 ; } s u b w r i t e _ t r a n { m y ( S d e s t t y p e , S d e s t , S c s t a t e ) = C _ ; 3 6 5 # T h i s i s a l o c a l r o u t i n e t o w r i t e o u t t h e r i g h t k i n d o f t r a n s i t i o n . P u t L o g " W r i t e T r a n d e s t t y p e = $ d e s t t y p e , d e s t = S d e s t , c s t a t e = S c s t a t e " ; # l o c a l s t a t e t r a n s i t i o n , u s e g o t o i f ( S d e s t t y p e e q ’ l c l ’ ) { P u t N R C o n t e x t 0 , " g o t o S d e s t " ; } e l s i f ( S d e s t t y p e e q ’ l c l c s ’ ) { P u t N R C o n t e x t 0 , " g o t o t o _ S d e s t " ; } # t r a n s i t i o n t o s t a t e u p s o m e w h e r e ( h i g h e r l e v e l ) e l s i f ( S d e s t t y p e e q ’ u p ’ ) { P u t N R C o n t e x t 0 , " w a i t ! _ p i d , s t _ S d e s t ; g o t o e x i t " ; } # t r a n s i t i o n t o l o w e r C S t a t e e l s i f ( S d e s t t y p e e q ’ d o w n ’ ) { P u t N R C o n t e x t 0 , " m = s t _ $ d e s t ; " , " g o t o t o _ S c s t a t e " ; } # w h o o p s ! w e h a v e a p r o b l e m h e r e . . . . e l s e { d i e " d e s t i n a t i o n < S d e s t t y p e > n o t t y p e d " } } 1 ; 3 6 6