" Software developers using the SoftBench Framework can customize their tool interaction environments to meet their individual needs, in seconds, by pointing and clicking. Tool interaction branching and chaining are supported. No user training is required. ! /'4&.$) &33"(& /..&$4/2 *3 4)& 53&2 4//, *.4&2"$4*/. '"$*,*49 /' 4)& /'4&.$) 2"-&7/2+ 3 /0&. *.4&(2"4*/. 3/'47"2& '2"-&7/2+ &33"(& /..&$4/2 ",,/73 53&23 4/ $/..&$4 ".9 4//, 4)"4 3500/243 /'4&.$) 2"-&7/2+ -&3; 3"(*.( 4/ ".9 /4)&2 4//,3 4)"4 3500/24 /'4&.$) 2"-&7/2+ -&33"(*.( 7*4)/54 )"6*.( 4/ 5.%&234".% 4)& 5.%&2,9*.( -&3; 3"(*.( 3$)&-& 3&23 /' 4)& '2"-&7/2+ $". &"3*,9 $534/-*:& 4)&*2 4//, *.4&2"$4*/. &.6*2/.-&.43 4/ -&&4 4)&*2 *.%*6*%5", .&&%3 *. ,*4&2",,9 3&$/.%3 #9 3*-0,9 0/*.4*.( ".% $,*$+*.( &/0,& '"-*,*"2 7*4) 4)& 4&2- /'4&.$) -"9 +./7 *4 5.%&2 /.& /2 #/4) /' *43 47/ *%&.4*4*&3 )& 4&2- /'4&.$) 535",,9 2&'&23 4/ " 3/'47"2& $/.3425$4*/. 4//,3&4 )& 4&2- /'4; &.$) 2"-&7/2+ 2&'&23 4/ ". /0&. *.4&(2"4*/. 3/'47"2& '2"-&7/2+ /'4&. 53&% 4/ %&6&,/0 $534/- &.6*2/.-&.43 &/0,& '"-*,*"2 7*4) /'4&.$) 4)& 4//,3&4 3)/5,% +./7 4)"4 5.%&2,9*.( 4)& 4//,3&4 *3 4)& /'4&.$) 2"-&7/2+ &33"(& /..&$4/2 $". #& 53&% 4/ &34"#,*3) $/..&$4*/.3 #&47&&. ".9 /'4&.$) 4//,3 7*4)/54 5.%&234".%*.( 4)& 5.%&2,9*.( '2"-&7/2+ )& &%*4/2 $". #& $/..&$4&% 4/ 4)& #5*,%&2 7)*$) $". #& $/..&$4&% 4/ 4)& -"*, '"$*,*49 ".% 4)& %&#5((&2 ".% 3/ /. &33"(& /..&$4/2 %/&3 ./4 $"2& 7)"4 4//,3 7*,, #& $/..&$4&% "3 ,/.( "3 4)/3& 4//,3 )"6& " /'4; &.$) 2"-&7/2+ -&33"(& *.4&2'"$& )& -&33"(& *.4&2'"$& *3 "%%&% #9 53*.( 4)& /'4&.$) .$"035,"4/2 7)*$) ",,/73 53&23 4/ "44"$) -&33"(&3 4/ 4)& '5.$4*/.3 /' -/34 4//,3 &3; 3"(& /..&$4/2 53&3 4)& -&33"(& *.4&2'"$& %*2&$4,9 ".% 7*4); /54 -/%*'*$"4*/. / %"4& /6&2 3&6&.49 +./7. 3/'47"2& 4//,3 '2/- " 7*%& 6"2*&49 /' $/-0".*&3 )"6& " /'4&.$) -&33"(& *.4&2'"$& 4 *3 ",3/ &34*-"4&% 4)"4 " -5$) ,"2(&2 .5-#&2 /' 5.+./7. 4//,3 )"6& " /'4&.$) -&33"(& *.4&2'"$& 3&23 /' 4)& /'4&.$) 2"-&7/2+ $". ./7 42&"4 4//,3 "3 $/-0/.&.43 /' " 0&23/.", 7/2+ &.6*2/.-&.4 4)"4 *3 4"*,/2&% 30&$*'*$",,9 #9 4)&- ".% /.,9 4"+&3 -*.54&3 4/ $/.3425$4 !)"4 %/&3 *4 -&". 4/ 42&"4 4//,3 "3 $/-0/.&.43 / 42&"4 " 4//, "3 " $/-0/.&.4 -&".3 4)"4 4)& 4//, 02/6*%&3 3/-& '5.$4*/.",*49 4)"4 *3 0"24 /' " ,"2(&2 4"3+ 4 *3 5.02/%5$4*6& 4/ '/2$& 4//, 53&23 4/ *.4&2"$4 7*4) 3&6&2", *.%*6*%5", 4//,3 4/ "$$/-0,*3) " 3*.(,& 4"3+ #54 ./ 4//, 6&.%/2 *3 "#,& 4/ 02&; %*$4 ",, /' 4)& 0/33*#,& 7"93 *. 7)*$) " 4//,3 '5.$4*/.",*49 7*,, #& 53&% 3*.( &33"(& /..&$4/2 3&6&2", 4//,3 $". 5.& &7,&44;"$+"2% /52.", #& $/..&$4&% 4/(&4)&2 35$) 4)"4 4)&9 *.4&2"$4 7*4) &"$) /4)&2 "54/-"4*$",,9 )*3 "54/-"4*$ *.4&2"$4*/. ",,/73 4)& 53&2 4/ '/$53 /. 4)& 4"3+ "4 )".% ./4 /. 4)& 4//,3 53&% 4/ "$$/-0,*3) 4)& 4"3+ 3*-0,& #54 0/7&2'5, &8"-0,& *3 %&4&$4*.( 30&,,*.( &22/23 *. " %/$5-&.4 4&84 '*,& -"*, /2 ".9 /4)&2 4&84 $2&"4&% #9 " 53&2 )& 4"3+ *3 4/ $2&"4& 4&84 '2&& /' 30&,,*.( &22/23 )& 4//,3 *.6/,6&% "2& " 4&84 &%*4/2 ".% " 30&,, $)&$+&2 . 42"%*; 4*/.", 4//, 53& 4)& &%*4/2 *3 53&% 4/ $2&"4& 4)& 4&84 ".% 4)&. 4)& 30&,, $)&$+&2 *3 53&% 4/ $)&$+ 4)& 4&84 . 3*-0,& ./4&3 /2 '*,&3 4)& 4&84 *3 /'4&. ./4 $)&$+&% '/2 &22/23 #&$"53& *4 2&15*2&3 *.4&2"$4*.( 7*4) "./4)&2 4//, 7)*$) '/2 3*-0,& 4&84 *3 ./4 7/24) 4)& &''/24 !)&. 42&"4*.( 4//,3 "3 $/-0/.&.43 4)& 53&2 3*-0,9 &%*43 ".% 3"6&3 4&84 ".% 4)& 30&,, $)&$+&2 $)&$+3 4)& 4&84 "54/-"4*$",,9 /.,9 -"+*.( *43 02&3&.$& +./7. 7)&. &22/23 &8*34 /4& 4)"4 *. 42"%*4*/.", 4//, 53& 4)&2& *3 /.& 4"3+ #54 47/ 2&15*2&% 4//, *.4&2"$4*/.3 . 4)& $/-0/.&.4 53& -/%&, 4)&2& *3 /.& 4"3+ ".% /.& 2&15*2&% 4//, *.4&2"$4*/. 3&& *( 3*.( &33"(& /..&$4/2 " 53&2 $". &34"#,*3) 4)"4 7)&. 4)& &%*4/2 3"6&3 " '*,& 4)& 30&,, $)&$+&2 7*,, 4)&. $)&$+ 4)"4 30&$*'*$ '*,& )*3 *3 "$$/-0,*3)&% "3 '/,,/73 &15&34 4)"4 &33"(& /..&$4/2 $2&"4& " .&7 2/54*.& 2/54*.& *3 4)& ."-& (*6&. 4/ ".9 WHEN/THEN 4//, *.4&2"$4*/. &,&$4 4)& WHEN: 4//, 4/ 42*((&2 ". "$4*/. &%*4/2 &,&$4 4)& 30&$*'*$ '5.$4*/. /' 4)& WHEN: 4//, 4)"4 7*,, 42*((&2 4)& "$4*/. '*,& 3"6&% &,&$4 4)& THEN: 4//, 4/ 2&30/.% 4/ 4)& "$4*/. 30&,, $)&$+&2 &,&$4 4)& 30&$*'*$ '5.$4*/. 4)"4 7*,, 2&30/.% $)&$+ '*,& )".(& 4)& WHEN: ".% THEN: '*,& '*&,%3 4/ 30&$*'9 4)"4 4)& '*,& 3"6&% 7*,, #& 4)& '*,& $)&$+&% "6& 4)& 2/54*.& 2/54*.&3 "2& 0&23*34&.4 '*,&3 ",,/7*.( 4//, *.4&2"$4*/.3 4/ #& 2&4"*.&% ".% 452.&% /. ".% /'' "3 %&3*2&% ."#,& 4)& 2/54*.& /7 ".9 4*-& 4)& &%*4/2 3"6&3 " '*,& 4)"4 '*,& 7*,, "54/-"4*; $",,9 #& 30&,, $)&$+&% )& '/$53 /' $2&"4*.( 4&84 '2&& /' 30&,,*.( &22/23 *3 ./7 4)& &%*4/2 ",/.& )& 30&,, $)&$+*.( *3 %2*6&. #9 &%*4/2 &6&.43 ./4 #9 4)& 53&2 User Editor User Source Saved Spell Checker Editor Editor Complexity Too High Complexity Analysis Spell Checker Complexity Acceptable File Saved Spell Checker Text Saved Build Failed Builder Required User Interaction Build Succeeded Automatic Tool Interaction Using Message Connector +#-#('% -((% ., % - (&)+ 0#-" -((%, , -,$ (&4 )(''-, +#!"- ,#'! -" ( -'" ,,! (''-(+ -" .,+ ' ,- .) +(.-#' ,( -"- 0"'/+ #% #, ,/ 2 -" #-(+ ##, .-(&-#%%2 ,)%% "$ " ,)%% "$+ (, '(- "/ -( 1)%##-%2 #'/($ 2 -" .,+ "#% -" (/ 1&)% #, /+2 ,#&)% #- ))%#, *.%%2 0%% -( '2 '.&+ ( -((% #'-+-#(', - #, %,( )(,,#% -( +- +'"#'! ( #'-+-#(' , .)(' -" ,.,, (+ #%.+ ( ,)# # -((% -( )+ (+& ,)# # .'-#(' , #! (+ 1&)% 0"' -" .#% -((% +-, '0 14 .-% )+(!+& -"' #,)%2 %( ' 1.- -" '0 )+(!+& 0#-"#' -" .!!+ 0"' -" .#% -((% #%, -( +- '0 1.-% -"' !( -( -" %#' #' -" #-(+ 0"+ -" #%.+ (.++ - #, )(,,#% -( #' #'-+-#(', , .)(' ,)# # #% -2) ' #- #, %,( )(,,#% -( "#' -" #'-+-#(', , #! , ' 1&)% 0"' -" #-(+ ,/, -1- #% -"' ,)%% "$ -"- #% 0"' -" #-(+ ,/, ,(.+ ( #% -"' )+ (+& (&)%1#-2 '%2,#, .)(' -"- #% 0"' (&)%1#-2 '%2,#, #, )+ (+& (' #% ' -"+ + '( .'-#(', -"- 1 !#/' (&)%1#-2 -"+,"(% -"' .#% -" #% 0"' -" (&)%1#-2 #, -(( "#!" !( -( -" .'-#(' #' -" #-(+ -"- 1, -" !#/' (&)%1#-2 -"+,"(% 0"' -" .#% -((% +-, '0 1.-% Builder Build Succeeded Debugger Build Failed Editor Automatic Tool Interaction Using Message Connector ,,! (''-(+ ,.))(+-, -((% #'-+-#(' +'"#'! # +'- -((% #, #'/($ .-(&-#%%2 )'#'! (' -" +,.%- ( )+/#(., ()+-#(' Version Control Debugger Static Analysis Automatic Tool Interaction Using Message Connector ((% #'-+-#(' "#'#'! )+(!+& -"' #,)%2 %( ' 1.- -" '0 )+(!+& 0#-"#' -" .!!+ +%( -" '0 1.-% #'-( -" ,--# '%2,#, -((% ' ,/ /+,#(' ( -" ,(.+ #% 0"' -" .#% -((% #%, -( +- '0 1.-% -"' !( -( -" %#' #' -" #-(+ 0"+ -" #%.+ (.++ "#, 1&)% ( #'-+-#(' "#'#'! %%(0, -" .,+ -( (., (' -" -,$ ( +-#'! -4 + -1- ' ,(.+ #%, " .,+, (., #, (' -" #-(+ ' %% (-"+ -((%, +*.#+ -( /+# 2 ++(+4 + #%, + +#/' .-(&-#%%2 2 #-(+ /'-, '(- 2 -" .,+ " -((%, "/ (& (&)(''-, ( .,+ -,$ " +"#--.+ ( ,,! (''-(+ (%%(0, -" (&)(4 ''- &(% ( ., '(.+! 2 ,,! (''-(+ , ,"(0' #' #! ,,! (''-(+ #, ,- ( -"+ ,)4 +- (&)(''-, " (&)(''- #, +,)(',#% (+ ,)4 +- .'-#(' ' 0(+$, 0#-" -" (-"+ (&)(''-, -"+(.!" -" ( -'" +&0(+$ &,,!#'! ,2,-& " +(.-#' &'!+ )+(/#, -" #%#-2 -( '% #,% (+!'#3 ' !'+%%2 &'! -" +(.-#', " +(.-#' #-(+, .'-#(' #, +(.-#' +-#(' ' #-#'! " +(.-#' '!#', .'-#(' #, -( -#/- ' 1.- +(.-#', " #&)(+-' ( -"#, +"#--.+ #, -"- #- %%(0, ,,! (''-(+ -" -((% -"- %%(0, (-"+ -((%, -( -+- , (&)(''-, -( -+- , ,- ( (&)(''-, "#, %4 %(0, -" .,+ (+ 1&)% -( +*.,- -"- -" +(.-#' '!#' '% (+ #,% '(-"+ +(.-#' 0#-"#' +(.-#' - %%(0, -" .,+ -( +.' ,- ( +(.-#', .,#'! -" +(.-#' '!#' 0#-"(.- .,+ #'-+ - %%(0, -" .,+ -( +*.,- -"- -" +(.-#' '!#' .-(&-#%%2 '% '2 +(.-#' ,/ 2 -" +(.-#' #-(+ '2 (-"+ 1&)%, ( -" /'-!, ( -" +"#--.+ ' !#/' " +(.-#' &'!+ ,#&)%2 !#/, -" .,+ !+)"#% &-"( ( &'!#'! +(.-#', "' '%23#'! -" -,$, .' 0%--4$+ (.+'% ASCII Message Connector Tool Catalog Files Message Connector Routine Manager Message Connector Routine Editor Binary Routine Files Message Connector Routine Engine Spell Checker SoftBench Framework Messaging System ,, (''-(+ .,+ 0(.% )+(+& "- 0, ('%. -!- -! +(.-"' &' + 0(.% "' -! .,+, '/"+('&'&(,- ( -! -"& - 0, %,( ('%. -!- -! +(.-"' &' + 0(.% ' "(' &(,- ( -! -"& , +,.%- -! ," ' (% (+ -! +(.-"' &' + 0, -( (.)2 , %"--% ,+' ,) &&(+2 ' )+(,, ,) , )(,,"% , ," ' ' "&)%&'- %+ )(+-"(' ( -! +(.-"' &' +, .,+ "'-+ ,"&)%2 ,', &,, -( -! (-5 '! +&0(+$ +*.,-"' -!- ,+/" )+(+& , ' 1&)% -! Enable ' Disable (&&' .--(', ,"&)%2 ,' &,, +*.,-"' -!- -! +(.-"' ' "' '% (+ ",% -! ,%- +(.-"' ! +(.-"' &' + 0, 5 ," ' "&)%&'- ' -,- (+ -! "&)%&'--"(' ( -! +(.-"' "-(+ ' -! +(.-"' ' "' ! +(.-"' "-(+ )+(/ -( /+2 !%%' "' ! ,5 , (''-(+ )+(#- (% ,-- -!- 4,, (''-(+ 0"%% )+(/" (-'! +&0(+$ /%. -( %% %/%, ( ' .,+, "' &"'.-, !"% ,"&)% ,--&'- -! "&)%"-"(', 0+ /+2 )(0+.% 4%% %/%, ( ' .,+, "&)%" -!0!-/+ -! "-(+ " ",)%2"' -! .'+%2"' +0 +&0(+$ 0(.% '/+ &- -! (% %% "'(+&-"(' 0(.% !/ -( !" !%2 ,-+- ' 2- +0 "'(+&-"(' &.,- '+- ' (.% '(- %(,- 4%% %/%, ( ' .,+, %,( "&)%" -!- '2 .,+ (.% &,, "' -((%, -( -! ('-+(% ( ,, (''-(+ ,( ,, (''-(+ (.% '(- !/ ,--" /"0 ( -! +&0(+$ ' "-, .++'-((%, 4' &"'.-, "&)%" -!- -!+ 0(.% '( ' -( + &'.% (' ,)"" -((%, &,, "'-+ ' (+&- -( ,, -! -((%, .'-"('%"-2 - %,( "&)%" -!-! +(.-"' "-(+ -((% %",- ' -((% .'-"(' %",-, &.,- %(%"3% 2 -! .,+ 0"-!(.- ",-.+"' -! +*."+ +0 +&0(+$ "'(+&-"(' 4' &"'.-, %,( "&)%" -!- -!+ 0(.% '( 0+"-"' ( ( -( (''- -((%, ! +(.-"' "-(+ .'+0'- ,"1-2 ))+ )+(-(-2) +/","(', " !-' ( +/","(', ' (.'-%,, (+&% ' "'(+&% ( '"-"/ -,-, 0"-! .,+, +' "' +(& &"'",-+-"/ ,,",5 -'-, -( -'.+ ( /%()&'- ' "'+, - ", "+('" -!(' +,.%- ( (.,"' &#(+ )(+-"(' ( -! )+(#- -&, (+- (' -! +(.-"' "-(+ !, ' -!- /+"(., )()% "'/(%/ 0"-! )+(&(-"' -! )+(.- !/ (&)%"' -!- "", -(( ,2 -( ., ))+'-%2 )()% 1)- "'- +-"(' -( "".%- ' 0"-!(.- &(',-+-"(' )(-'-"% .,-(&5 +, *.,-"(' -! "'- +"-2 ( -! )+,(' ,+""' ,, (''-(+ !' ,(&(' ", -(% -!- -!+ ", -((% -!' (''- (-!+ ",)+- -((%, -!- !/ '( $'(0% ( .' 0%--5$+ (.+'% Text Editor (-'! ,, (''-(+ +!"--.+ ! -!+ &#(+ ,, (''-(+ &(5 .%,6-! +(.-"' &' + -! +(.-"' "-(+ ' -! +(.-"' ' "'6+ -+- , (&)(5 ''-, %"$ -! -((%, ! (-!+ "' &"%%"(', ( )(,,"% 02, "' ,(', 0"-!(.0+"-"' ( "- ", +-!+ !+ -( %"/ ! +(.-"' ' "' -.+' (.- -( ' (#-5(+"'- 0('5 + ! +(.-"' ' "' &.,- /+2 ,- - ,-(+, ")!+, &-!, ' ,.,-"-.-, )(+-"(', ( +&0(+$ &,, , "+"/, ' +,)(', -( +)" ,.,,"(' ( %+ '.&5 + ( -+" + &,, , ' "- (&&(-, .-.+ '5 !'&'-, ! +(.-"' ' "' ", -! +"' !+- ' ,(.% ( ,, (''-(+ ' ", (&)%-%2 "'/","% %$"' -!+(. ! -! " !- ,-), "' -! ,"&)% "-(+,)%% !$+ 1&)% (/ 0"%% ,!(0 -! "'-+-"(' 0"-!"' ' -0' ! ( -! ,, (''-(+ (&)(''-, !", ,-) ", (&)%",! .,"' -! +(.-"' &' + , " ! +(.-"' &' +, -,$ ", -( )+(&)- -! .,+ (+ +(.-"' '& ',.+ -!- -! '& !, -! )+()+ "% 1-',"(' .mcr ' -!' ,"&)%2 ,' +*.,- -( -! &,5 , ,+/+ -( "- -! '& +(.-"' ! +(.-"' &' +, +(% ", %+ %2 ((+"'-"(' - !, '( "'-"&- $'(0% ( -! +(.-"' "-(+ -+ ,'"' -! +*.,- -( -! &,, ,+/+ -( "- -! '& +(.-"' -! +(.-"' &' + 0"%% 0"- '(-""-"(' +(& -! &,, ,+/+ ( 0!-!+ -! "- 0, ,.,, (+ "%.+ ! +(.-"' &' + -!' )(,-, -! ,--., ( -! +*.,- ,)+- +(.-"' "-(+ ", ,-+- (+ ! +(.-"' "- +5 *.,- +"/ 2 -! &,, ,+/+ !' -! +(.-"' &' + ,', +*.,- -( -! &,, ,+/+ -( "- +(.-"' -! &,, ,+/+ ,-+-, +(.-"' "-(+ ' -! +(.-"' "-(+ "'"-"%"3, "-,% ' ,', '(-""-"(' ( ,.,, (+ "%.+ $ -( -! &,, ,+/+ " ,!(0, -2)"% +(.-"' "-(+ ,+' WHEN: ' -! , ( +-"' '0 +(.-"' -!+ ", '( +(.-"' -( %( "'-( -! "-(+ ' -!+(+ -! WHEN: ' THEN: "%, + ",)%2 &)-2 ! +(.-"' "-(+ ,+!, (+ ' ",)%2, %% )(,,"% -((%, /"%% (+ ,, (''-(+ -( &'").%- - ", "&)(+-'- -!- ,, (''-(+ ", -.5 %%2 ,+!"' (+ ,, (''-(+ -((% -%( "%, '(-! -((%, -!&,%/, (+ ! "% (.' -! "% '& ", ",)%2 , -((% "' -! +(.-"' "-(+ '' #""(#& (## ( # ' #"(" (& !. $#&("( $' # "#&!(#" ( # ' & ' (( #"(" ( &+ !''' &%)& (# '' ( )"(#"' # ( (## " ( # ( # ' '# #"(" ( '(&(#"' # ( &+ !''' (' & '. $ - (# ( )'& "#( ( &+ !''' " "- !'' $ (( !- &%)& - )'& #& !#'( (## ' ( (. # ' $&#* #& ( )'& - ( $&'#" +# ( !'' "(& ( ( # #' "#( ,'( #& $&() & (## ( " &( )'" (( (## ' !'' "(& #)!"((#" ( # #' "#( * (# &( - ( (## $&#*& ( # ' " '# ( - ( )'& (# " ( '(&(#" '$ - #& (# '#! # ( ' #! )' )"(#"' " ( )'& ' (' (## &#! ( '' #""(#& &#)(" (#& (## '( ( &#)(" (#& #' #)( " $&'' ( (## ' ( # #& $$ !'' '(&(#"' " '$ -' (#' '(&(#"' WHEN: -$ &#)(" !"& '&" " )'& ' (' WHEN: )"(#" " #$' (( )"(#" (# ( WHEN: '((!"( ( &#)(" (#& &' ( )". (#"' &+ !'' " ( '(&(#" # ( &+ !'' " - ( '(&(#" ' '$ - (# ( )'& )( #( ( &+ !'' " ( '(&(#" & (!$#&& - $&'&* )"( ( )'& '*' ( &#)(" -$ &#)(" (#& '&" )" + ((.& #)&" 4. Select the THEN: tool to respond to the action. 5. Select the specific function that will respond. # . ./ +. - .$($'- /* /# WHEN: ./ +. 6. Change the WHEN: and THEN: file fields. #$. .$(+'4 ''*2. /# 0. - /* #)" /# 1'0 . $.+'4 *) /# .- ) *- /# . 1'0 . 2#/ $. . ) *) /# .- ) $. 2#/ 2$'' 0. 2# ) /# 0. - . ' /. Save Routine 7. Save the routine. #$. ./ + /& . '' *! /# -2 ( .." . /# ( .." ./-7 /$*). ) /# .- ) 1'0 . ) .. (' . /# ( $)/* ) $)/ -)' -*0/$) !$' !*-(/ 2#$# */# /# -*0/$) $/*- ) /# -*0/$) )"$) - ' /* - # -*0/$) $/*- /# ) 2-$/ . *0/ $)-4 / !$' $)/* /# -*0/$) !$' $)" $/ ) /# ) ,0$/. 8. Enable the routine. #$. ./ + $. -$1 ) 4 /# -*0/$) ()" - 0/ $. + -!*-( 4 /# -*0/$) )"$) # 0. - . ' /. /# -*0/$) *! $)/ - ./ /# ) . ' /. /# Enable Routine 0//*) *) /# -*0/$) ()" - "$) /# -*0/$) ()" -. +-$(-4 -*' $. **-$)/$*) # ) /# 0. - . ' /. /# Enable Routine 0//*) /# -*0/$) ()" - .$(+'4 !$). /# -*0/$) . ' / ) . ). - 7 ,0 ./ /* /# ( .." . -1 - /* )' /# )( -*0/$) # -*0/$) )"$) - $1 . /# )' - ,0 ./ !-*( /# ( .." . -1 - ) - . /# )( -*0/$) !/ - - $)" /# -*0/$) /# -*0/$) )"$) ./'$.# . /# WHEN: ( .7 ." *)) /$*) /* /# ( .." . -1 - #$. WHEN: *)) 7 /$*) $. . " ) -' . - ,0$- ! /# 0. - 0. . )4 2$'-. $) /# WHEN: .// ( )/ /# -*0/$) )"$) 2$'' ./'$.# " ) -' WHEN: ( .." *)) /$*) ) /# ) 2$/ 0)/$' /# ( .." . -1 - !*-2-. ( .." /#/ (/# . /# -*0/$) )"$) . ( .." *)) /$*) ! /# ( .." . -1 - !*-2-. (/#$)" ( .." /# -*0/$) )"$) . ). - ,0 ./ !*# *! /# THEN: .// ( )/. /* /# ( .." . -1 - .." *)) /*-. /-).!*-(/$*) !-*( *) +/ /* +-*0/ 2. 2*) -!0' #'' )" # /2* (*./ $(+*-/)/ ' ( )/. *! /#$. /-).!*-(/$*) 2 - -*..7!0)/$*)' / ( ) *(+' / +-*% / /- $'$/4 $.$*) 2. ( 7 !*- /# !$-./ +-*% / ( /$)" /* .. (' -*..7!0)/$*)' / ( $(( $/ '4 * (& /# / ( !! /$1 '' ( ( -. 2 - *).$ - ,0' $) '' / ( /$1$/4 / 2. ( ' /#/ /# .0 .. *- !$'0- *! /# +-*% / 2. /# .0 .. *!$'0- *! /# )/$- / ( #$. /0-) *0/ /* /# (*./ $(+*-/)/ $.$*) *! /# .." *)) /*- +-*% / # / ( *).$./ *! + *+' !-*( #0() !/*-. ' -)$)" +-*7 0/. +-*0/ (-& /$)" - . -# ) 1 '*+( )/ +-*(*7 /$*)' (-& /$)" ) / #)$' 0./*( - .0++*-/ *./ *! /# / ( ( ( -. *)'4 .+ )/ +*-/$*) *! /# $- /$( *) /# .." *)) /*- +-*% / *2 1 - .('' - "-*0+ *! !0''7/$( + *+' *0' ) 1 - #1 .0./$/0/ !*- .." *)) /*-. -*..7!0)/$*)' / ( # *'' /$1 &)*2' " *! /# / ( *1 - 1 -4 .+ / *! +-*0/ - ,0$- ( )/. .$") 1 '*+( )/ '$1 -4 /-$)$)" ) +-*(*/$*) 0-7 $)" /# )/$- '$! *! /# +-*% / )*/#$)" 2. !*-"*// ) ) /# - 2 - )* .0-+-$. . 2$/# /# 3 +/$*) *! ./)$)" *1/$*) !*''*2$)" (*)./-/$*) / .' . /-$)$)" # / ( 0) 2' //7&- *0-)' 2*-& .* 2 '' /#/ $/ "0$ ) *-- / $/. '! / 1 -4 %0)/0- *! /# +-*% / ) -$/$' - .*) /# / ( 2*-& .* 2 '' 2. /# . *) (*./ $(+*-/)/ ' ( )/ *! /# +-*% /8*(+' / +-*% / /- $'$/4 # - 2. )*/ .$)"' ' ( )/ *! /# +-*% / /#/ *0' )*/ $- /'4 /- & /* /# +-*% / "*' #$. /- $'$/4 +-*1$ 3 '' )/ *((0)$/$*) ) $7 - /$*) !*- # / ( ( ( - ) /# !$-./ /2* $)/ ). 2 &. *! /# +-*% / /# / ( ( / /2$ + - 4 *) #*0- + ( /$)" # . ( /$)". -$1 /# +-*% / "*' *% /$1 . .0"*'. 4 / ( !$)$/$*) ) - ,0$- ( )/. # -0' *! /# . ( /$)". 2. .$(+' 2#$' $) /#$. +*-/$*) *! /# +-*%7 / )* ) 2 ' 1 ' *! /$' 2. // (+/ 0)/$' /# 0-- )/ ' 1 ' 2. !0''4 !$) 0) -./** ) #'' )" 4 '' ( ( -. . # ) 2 ' 1 ' *! /$' 2. !$) *) -$/ 7 -$*) 2. /#/ $/ (0./ $- /'4 -$1 !-*( /# ' 1 ' *1 8"$) *(+' / +-*% / /- $'$/4 # +-*% / "*' 2. /# ) +*./ $) 1 -4 / ( ( ( -. *!!$ /* +-*1$ *)./)/ - ($) - /* (& /# *-- / /- 7*!!. 2# ) 2*-&7 $)" *) .." *)) /*- #$. (*0)/ *! /$( ) /- 7 $'$/4 . ( 3 ..$1 /* .*( + *+' *0/.$ *! /# / ( 0/ $/ +-*1 /* 3/- ( '4 +-*0/$1 '' *! /# / ( ( ( -. &) 2 3/'4 2#/ /# 4 2 - *$)" 2#/ */# -. 2 - *$)" ) 2#4 /# 4 2 - *$)" $/ /#-*0"#*0/ /# '$! *! /# +-*% / # +-*% / "*' 2. ( .4 /* - ( ( - 0/ 2. 37 /- ( '4 #'' )"$)" 6 .." *)) /*- 2$'' +-*1$ *!/7 )# -( 2*-& 1'0 /* '' ' 1 '. *! ) 0. -. $) ($)0/ . / !$-./ "') /#$. . (. 1 -4 .$(+' - &$)" /# "*' +-/ /# - - /#- . +-/ 1 -4 #'' )"$)" +$ . /* /# "*' 6*!/ )# -( 2*-& 1'0 6'' ' 1 '. *! ) 0. -. ) 6$) ($)0/ . . ) 3(+' *! /# #'' )" ' /. '**& (*- '*. '4 / /# 6$) ($)0/ . +*-/$*) *! /# +-*% / "*' 6) ($)0/ . ( ). /#/ /# - $. - ,0$- ( )/ /#/ /# 0. !$) 1'0 $) '$/ -''4 ($)0/ . 0.$)" ) 2 +-*0/ /#/ 0. . -/# - *(+' 3 !-( 2*-& ) '-" )0( - *! 0)7 &)*2) /**'. /#/ + -!*-( ) 0)&)*2) . / *! !0)/$*)'$/4 *2 2*0' .." *)) /*- +-*1$ '' *! /#$. $)!*-(7 /$*) 2$/#*0/ - ,0$-$)" /# 0. - /* - ! - /* )4 *0( )/7 /$*) 6) ($)0/ . ( 1 -4 -(/$ $(+/ *) /# 0. $)/ -! 0. - *0( )//$*) ) 0. - /-$)$)" )* /-$)$)" $. - ,0$- # . /#- +$ . *! /# "*' '.* +-*1$ /# "-*0). !*- /# +-*% / *% /$1 . # +-*% / *% /$1 . /# ) +-*1$ /# .$. !*- /# +-*% / ) +-*0/ - ,0$- 7 ( )/. / # ) 2 ' 1 ' *! /$' $/ 2. - ..0-$)" /* /# / ( /#/ /# - 2. )* !!*-/ 3+ ) /#/ $ )*/ $- /'4 /- & /* /# +-*% / "*' # / ( *2) -.#$+ (*/$17 /$*) - /$1$/4 ) +-*0/$1$/4 +-*1 /* 3/- ( '4 #$"# .$)" .." *)) /*- 0. -. *! /# *!/ )# -( 7 2*-& ) .$'4 0./*($5 /# $- /**' $)/ -/$*) )1$-*)( )/ /* /- / /# $- /**'. . *(+*) )/. *! /.& $) '$/ -''4 . 7 *). 4 .$(+'4 +*$)/$)" ) '$&$)" #$. 2. '' ( +*..$' 4 $(( $/ '4 ./'$.#$)" -*..7!0)/$*)' / ( /* *2) /# +-*% / ) - ,0$-$)" *(+' / +-*% / /- $'7 $/4 ) $)/ - ./$)" !/ $. /#/ -'4 0. -. *! .." *)) 7 /*- 1 '*+ /2* ) 2 *(+*) )/. /#/ - . +-/ !-*( /# .." *)) /*- +-*0/ 0/ - )*2 .#$++ 2$/# $/ ) *(+*) )/ )( *!/.# '' 3 0/ . )4 .+ $!$ UNIX* command using messaging and can return the output of the command in a message. This allows a Message ConĆ nector user to execute UNIX commands directly as a result of an event of any tool. For example, when the user reĆ quests the editor to edit a file, if the file is readĆonly then execute the UNIX command to give the user write access. The second component (named XtoBMS) converts X WinĆ dows events into messages that Message Connector can use to request functionality from any component automatically. This means that when any tool maps a window to the screen, the user environment can respond with any action the user defines. This has been used extensively in process management tools so that the appearance of a tool on the screen causes the process tool to change the task a user is currently performing. The transformation of Message Connector from concept to product was the result of a very strong team effort. While there were many people involved with the project at various points, the core Message Connector team consisted of Alan Klein representing learning products, Jan Ryles representing human factors, Byron Jenings representing research and deĆ velopment, Gary Thalman representing product marketing, Carol Gessner and Wayne Cook representing technical cusĆ tomer support, Dave Willis and Tim Tillson representing project management, and the author representing research and development. The crossĆfunctional team approach caused roles and responsibilities to become pleasantly blurred. The entire team is the parent of Message Connector. 1. C. Gerety, A New Generation of Software Development Tools," Vol. 41, no. 3, June 1990, pp. 48Ć58. 2. M.R. Cagan, The HP SoftBench Environment: An Architecture for a New Generation of Software Tools," pp. 36Ć47. 3. B.D. Fromme, HP Encapsulator: Bridging the Generation Gap," pp. 59Ć68. UNIX is a registered trademark of UNIX System Laboratories Inc. in the U.S.A. and other countries. June 1994 HewlettĆPackard Journal