A COMPARISON OF VAX/VMS TO RATIONAL
Lewis Gray2 TRW Federal Systems Group
Fair fax,
Abstract
A recent study, completed in the early phase of a DoD contract to develop software in the Ada programming language for a large automated information
3 system , compared Digital Equipment Corporation's (DEC) VAX hardware, and VMS-based software development tools from several vendors, to the Rational RlOOO Development system5. The study made use of the Software ~ngineering Institute ' s (SEI) recently developed methodology for evaluating environment^.^
This paper summarizes the methods and results of the study. One result was that the VAX/VMS environment was recommended and acquired for the initial phase of the contract. But that environment will be re-evaluated, and possibly extended with specialized tools like the Rational products, before the second phase of the contract.
roduct IQQ
The two primary objectives of the study were the following:
1. to compare the DEC and Rational environments to the Army's ALS environment; and
2. to recommend one of them for use as the initial, foundational environment for the contract.
VAX/VMS-based tools were recommended, although the study showed them to be inferior in some cases to the Rational tools, because the sum of VAX hardware and software available came closer, as a whole, to meeting the initial needs of
This paper is declared a work of the U.S. Government and is not subject to copyright protection In the United Stales.
Virginia
the project than any combination of products available fcr the Rational.
The study complied with a contractually required, general purpose, system/design trade study data item
7 description . That had an effect on approach, terminology and topics. The four principal parts of the resulting report were
1. an introduction to the study that includes a list of important functional requirements an environment should satisfy and a discussion of the selection method,
2. a list of more detailed, derived, technical requirements to be tested,
3. an evaluation of how well the environments satisfy the functional and technical requirements, and
4. a recommendation.
This paper focuses on the last two of these, to present results of the evaluation, and a discussion of the final recommendation.
Use of the SRI Evaluation Methodoloav
The study was designed to make use of the Software Engineering Institute's (SEI) recently developed methodology for evaLuating environments, which was the most thorough, most objective evaluation method known to us. The SEI methodology has six phases, and they are graphically summarized in Figure 1. The first three phases are environment independent. They are performed only once for all environments, and they lead to a generic experiment that can be instantiated to evaluate any environment. Phases 4, 5, and 6 are particular to the environment being evaluated. In these phases, the generic experiment is instantiated to the specific environment, carried out on
t h a t environment , and t h e r e s u l t s a r e ana lyzed .
The s t u d y r e p o r t e d h e r e made u s e of two g e n e r i c exper iments . The f i r s t had a l r e a d y been deve loped by t h e SEI t o e v a l u a t e u n i t t e s t i n g and debugg ing f u n c t i o n a l i t y . The s t u d y i n s t a n t i a t e d i t f o r t h e R a t i o n a l Environment . The
- -
Figure 1. The S E I ' s Methodology
Phase 1 Phase 6
Activit ies ,:,
Generic \1
f Phase 2
Phase 4 f
i(Trans1ation))l Analysis
Phase 5
Evaluative Answers to Questions
Environment Environment Independent Dependent Products Products
second exper iment was deve loped d u r i n g t h e s t u d y , t o t e s t e n v i r o n m e n t a l f u n c t i o n s a s s o c i a t e d w i t h p r o d u c t i n t e g r a t i o n . I t was t h e n i n s t a n t i a t e d f o r b o t h env i ronments . The r e s u l t s of t h i s second exper iment a r e summarized below.
a l l a p a r t of t h e R a t i o n a l Environment ( e a r l y De l t a v e r s i o n ) .
F m i o n and Choice
The p r o d u c t i n t e g r a t i o n exper iment t e s t e d t h e e n v i r o n m e n t ' s a b i l i t y t o s u p p o r t t h e k i n d s o f a c t i v i t i e s t y p i c a l l y pe r fo rmed on l a r g e s o f t w a r e development e f f o r t s a f t e r u n i t t e s t i n g h a s c o n c l u d e d , a n d b e f o r e f o r m a l accep tance t e s t i n g h a s begun. Some of t h e a c t i v i t i e s t e s t e d a r e shown i n Table 1. I n t h e terminology of DOD-STD-2167, p r o d u c t i n t e g r a t i o n i s t h e C S C I n t e g r a t i o n a n d T e s t i n g p h a s e o f so f tware development.
P r o d u c t i n t e g r a t i o n i s s i m i l a r i n many r e s p e c t s t o t h e u n i t t e s t i n g and debugging a c t i v i t i e s t h a t p r e c e d e i t . But it d i f f e r s from them i n t h e s i z e of what i s t e s t e d , and b e c a u s e p r o d u c t i n t e g r a t i o n i s n o t c a r r i e d o u t by t h e s o f t w a r e d e v e l o p e r s themse lves , a s u n i t t e s t i n g and debugging i s , b u t r a t h e r by independen t t e s t e r s who i n t e g r a t e and t e s t c o m p i l a t i o n u n i t s t h a t r e s i d e i n many d i f f e r e n t d e v e l o p e r s ' l i b r a r i e s .
Those d i f f e r e n c e s g i v e r i s e t o d i f f e r e n t demands on a n env i ronment . Compiler s p e e d , f o r example , can be c r i t i c a l d u r i n g product i n t e g r a t i o n when e n t i r e s o f t w a r e sys tems , c o n s i s t i n g of hundreds of thousands of l i n e s of source code, may have t o b e recompi led because of c h a n g e s t o l o w - l e v e l c o m p i l a t i o n u n i t s . The c a p a b i l i t y t o r a p i d l y and e f f i c i e n t l y a c c e s s u n i t s r e s i d i n g i n many d i f f e r e n t d e v e l o p e r d i r e c t o r i e s i s a l s o impor tan t , f o r speedy i n t e g r a t i o n .
Three assumptions s e t t h e c o n t e x t f o r t h e g e n e r i c p r o d u c t i n t e g r a t i o n exper iment d e s c r i b e d below. F i r s t , i t was' assumed t h a t sys tem d e v e l o p e r s had cod,ed and u n i t t e s t e d a l l t h e components of a complexi ty measures t o o l r g and t h a t t h e y were ready f o r i n t e g r a t i o n .
A p r e v i o u s s t u d y by t h e SEI had Second, i t was assumed t h a t t h e e v a l u a t e d t h e VAX Ada compi le r and ACS source code f o r t h e t o o l was d i s t r i b u t e d l i b r a r y manager, symbolic debugger, and o v e r f i v e d i f f e r e n t d e v e l o p e r s ' r e l e v a n t VAXSet p r o d u c t s . Our s t u d y d i r e c t o r i e s . Product i n t e g r a t i o n i s t h e f o c u s e d on t h e same t o o l s t o remain p rocess of i n c r e m e n t a l l y i n t e g r a t i n g and
with the earlier work8. ~ h ~ t e s t i n g such code u n t i l i t i s complete ly
R a t i o n a l t o o l s t h a t were e v a l u a t e d were a n d ready 'Or acceptance t e s t i n g .
T h i r d , i t was a s s u m e d t h a t v a r i o u s l e v e l s w i t h i n t h e t o o l were i n t e g r a t i o n and t e s t i n g would proceed i n d e t e c t e d and c o r r e c t e d , and a s m a l l a top-down manner . Any s t u b s o r improvement was made i n t h e o r i g i n a l ha rnesses needed were c o n s t r u c t e d . des ign .
During t h e c o u r s e of t h e exper iment , The c o r r e c t i o n s a n d improvements e r r o r s i n s e v e r a l c o m p i l a t i o n u n i t s a t i n c l u d e d c h a n g e s t o b o t h package
Table 1. Some Product I n t e g r a t i o n A c t i v i t i e s
C r e a t e i n t e g r a t i o n program l i b r a r y , and s t u b s , ha rness d i r e c t o r i e s C r e a t e t e s t i n p u t d a t a S e l e c t components of next b u i l d
form h y p o t h e t i c a l b u i l d f i n d a s p e c i f i e d u n i t i n t h e b u i l d browse i t s s p e c i f i c a t i o n and body browse l i b r a r y u n i t s i n i t s con tex t c l a u s e browse l i b r a r y u n i t s i n t h e i r c o n t e x t c l a u s e s , a s needed de te rmine what s t u b s a r e needed t o t e s t b u i l d w r i t e and t e s t s t u b s
Assemble compi la t ion u n i t s i n t o b u i l d l o c a t e u n i t s needed f o r b u i l d f i n d needed s t u b s i n s t u b s d i r e c t o r y f i n d ha rness , i f needed, i n ha rness d i r e c t o r y t r a n s f e r / t r a n s l a t e u n i t s , s t u b s , ha rness i n t o i n t e g r a t i o n l i b r a r y assemble u n i t s , s t u b s , ha rness i n t o s i n g l e e x e c u t a b l e image
Perform top-down t e s t i n g c r e a t e expec ted ou tpu t d a t a execu te t o p program l i b r a r y u n i t u s i n g s t u b s f o r lower u n i t s compare a c t u a l o u t p u t d a t a t o expec ted ou tpu t add, modify, d e l e t e u n i t ' s source code t o make needed m o d i f i c a t i o n s t r a n s l a t e modif ied u n i t t r a n s l a t e dependent compi la t ion u n i t s , a s needed c r e a t e e x e c u t a b l e image r e t e s t modif ied u n i t i n same manner
s p e c i f i c a t i o n s and b o d i e s . I n one c a s e o n l y t h e p r i v a t e p a r t of a package was changed.
The changes were chosen t o s i m u l a t e t h e k i n d s o f m o d i f i c a t i o n s t h a t a r e r o u t i n e l y made t o , s o u r c e code d u r i n g s o f t w a r e i n t e g r a t i o n . They c o r r e c t e d bugs and d e s i g n weaknesses t h a t were minor, b u t t h a t c o u l d n e v e r t h e l e s s have c a u s e d t h e p r o d u c t t o f a i l f o r m a l f u n c t i o n a l o r performance t e s t s . I n one c a s e , a change was made t o t h e p roduc t s o l e l y t o i n c r e a s e i t s m a i n t a i n a b i l i t y .
C o n s i s t e n t w i t h t h e SEI method, c r i t e r i a f o r e v a l u a t i n g t h e environments d u r i n g t h e c o u r s e of t h e experiment were d e v e l o p e d i n f o u r c a t e g o r i e s : f u n c t i o n a l i t y , p e r f o r m a n c e , u s e r i n t e r f a c e , and sys tem i n t e r f a c e . Table 2 l i s t s some of t h e q u e s t i o n s i n each of t h e s e c a t e g o r i e s . And answers t o some
of t h e more i n t e r e s t i n g q u e s t i o n s appear below.
F u n c t i o n a l i t y . Question: D e s c r i b e t h e mechan ics of c r e a t i n g a program l i b r a r y .
VMS/VAXSet Answer: Program ( s u b ) l i b r a r i e s a r e c r e a t e d u s i n g t h e ACS CREATE (SUB)LIBRARY command. Frofn t h e DCL l e v e l , a u s e r t y p e s t h e command a s fo l lows :
$ ACS CREATE LIBRARY [<dir-name>]
o r $ ACS CREATE SUBLIBRARY [<subdir-name>]
<dir-name> and <subdir-name> a r e t h e names of t h e d i r e c t o r y and s u b d i r e c t o r y , r e s p e c t i v e l y . Note: t h e d i r e c t o r y o r s u b d i r e c t o r y where t h e l i b r a r y w i l l r e s i d e does no t have t o e x i s t p r i o r t o invoking t h i s command.
This command i s bound t o t h e f u n c t i o n R a t i o n a l Answer: key CM - F15. The p r o c e d u r e Ada.CreateJor ld i s used t o c r e a t e a program l i b r a r y o r wor ld . Question: D e s c r i b e t h e mechanics The Create-World command format i s : of e n t e r i n g Ada s o u r c e code : package
s p e c i f i c a t i o n s , p a c k a g e b o d i e s , procedure Create-World (Name : String; s u b u n i t s , and subprograms.
Volume : Natural := 0) ;
Table 2 . Some ~ v a l u a t i v e Q u e s t i o n s ( * ~ n s w e r s t o q u e s t i o n s marked wi th an a s t e r i s k a r e summarized i n t h i s paper)
F u n c t i o n a l i t y
Descr ibe *
t h e mechanics of c r e a t i n g a program l i b r a r y e n t e r i n g Ada source code, e . g . package s p e c i f i c a t i o n s , package bod ies ,
subprograms, s u b u n i t s t r a n s l a t i n g a compi la t ion u n i t i n t o a s p e c i f i e d program l i b r a r y c r e a t i n g in ter -program l i b r a r y dependencies c r e a t i n g an e x e c u t a b l e module query ing and manipu la t ing a program l i b r a r y performing r e g r e s s i o n t e s t i n g
Performance
How long does it t a k e t h e environment t o * c r e a t e a program l i b r a r y ?
t r a n s l a t e a compi la t ion u n i t i n t o a s p e c i f i e d program l i b r a r y ? * . exchange s t u b s and a c t u a l u n i t s ?
c r e a t e an e x e c u t a b l e module?
What i s t h e sys tem recompi la t ion behavior t h a t r e s u l t s from adding comments t o a l i b r a r y u n i t s p e c i f i c a t i o n ?
x changing t h e p r i v a t e p a r t of a package? * adding a subprogram s p e c i f i c a t i o n t o a package s p e c i f i c a t i o n ? . adding a subprogram body t o a package body?
How e a s y / d i f f i c u l t i s it t o x c r e a t e a program l i b r a r y ? * t r a n s l a t e a compi la t ion u n i t ? . manipu la te and query t h e program l i b r a r y ? . exchange a s t u b and a compi la t ion u n i t ? . c r e a t e an e x e c u t a b l e module?
* Does t h e e d i t o r check s y n t a x and semant ics y i t h i n t h e source t e x t ?
* How much source code g e n e r a t i o n i s automated?
* How w e l l i n t e g r a t e d a r e t h e fo l lowing t o o l s : browser, t r a n s l a t o r , e d i t o r , debugger, and program l i b r a r y u t i l i t i e s ?
VMS/VAXS~~ Answer: E n t e r i n g s o u r c e code can be performed u s i n g any t e x t e d i t o r . The p r e f e r r e d
187
method i s u s i n g DEC Language S e n s i t i v e E d i t o r (LSE) . LSE i s a t empla te -d r iven e d i t o r t h a t a l l o w s f o r e f f i c i e n t e n t r y of s o u r c e code . The e d i t o r i s invoked from DCL a s f o l l o w s :
$ LSE <file-name>
Within t h e e d i t o r , t e x t can be e n t e r e d f r e e f o r m a t w i t h o r w i t h o u t t h e a s s i s t a n c e of Ada t empla te expansion.
R a t i o n a l Answer: Ada s o u r c e code i s e n t e r e d u s i n g t h e R a t i o n a l Environment E d i t o r . The e d i t o r a u t o m a t i c a l l y p r e t t y p r i n t s , p e r f o r m s s t a t e m e n t c o m p l e t i o n , t e m p l a t e expansion, and checks f o r s y n t a x e r r o r s upon p r e s s i n g t h e Format key. Bodies and p r i v a t e p a r t s can a u t o m a t i c a l l y be c r e a t e d . S u b u n i t s can be changed from s e p a r a t e t o i n - l i n e , o r v i c e v e r s a , wi th a s i n g l e command.
Question: D e s c r i b e t h e mechanics o f t r a n s l a t i n g a c o m p i l a t i o n u n i t i n t o a s p e c i f i e d program l i b r a r y .
VMS/VAXSet Answer: To t r a n s l a t e a c o m p i l a t i o n u n i t from s o u r c e code i n t o o b j e c t code under t h e c o n t r o l of a s p e c i f i e d program l i b r a r y t h e f o l l o w i n g s t e p s a r e t a k e n . S e t t h e s p e c i f i e d l i b r a r y a s t h e c u r r e n t l i b r a r y by u s i n g t h e ACS SET LIBRARY command.
I f t h e compi la t ion u n i t i s be ing e n t e r e d i n t o t h e l i b r a r y f o r t h e f i r s t t i m e , i . e . , h a s n o t been compiled b e f o r e , t h e ADA command i s u s e d t o c o m p i l e t h e program which w i l l a u t o m a t i c a l l y e n t e r t h e u n i t i n t o t h e l i b r a r y .
I f t h e c o m p i l a t i o n u n i t i s a l r e a d y i n t h e l i b r a r y t h r o u g h a n e a r l i e r c o m p i l a t i o n u s i n g t h e ADA command, t h e n t h e ACS COMPILE o r ACS RECOMPILE command c a n b e u s e d which w i l l a u t o m a t i c a l l y update t h e program l i b r a r y .
The COMPILE and RECOMPILE commands can a u t o m a t i c a l l y f o r m t h e c l o s u r e of d e p e n d e n t u n i t s a n d make them a l l c u r r e n t . The d i f f e r e n c e between t h e two commands i s t h a t t h e COMPILE command w i l l u s e t h e o r i g i n a l s o u r c e code f i l e s ( . A D A f i l e s ) t o d e t e r m i n e t h e obso lescence o f u n i t s , i f t h e y a r e more r e c e n t t h a n t h e i n t e r n a l copy of t h e source code, where t h e RECOMPILE command a l w a y s u s e s t h e l i b r a r y m a i n t a i n e d
s o u r c e code t o d e t e r m i n e o b s o l e s c e n c e ( .ADC f i l e s ) .
$ ACS SET LIBRARY [<lib-or-sublib-name>] $ ADA [<compilation-unit-source-filename>] $ ACS COMPILE [<compilation~unit~name>l $ ACS RECOMPILE [<compilation-uni~t-name>]
R a t i o n a l Answer: A f t e r ( o r w h i l e ) e n t e r i n g a compi la t ion u n i t u s i n g t h e e d i t o r , t h e Format key p r e t t y p r i n t s t h e u n i t and checks it f o r s y n t a c t i c e r r o r s . The s e m a n t i c i z e key c a n b e u s e d t o c h e c k f o r s e m a n t i c e r r o r s . Once s y n t a c t i c o r s e m a n t i c e r r o r s a r e c o r r e c t e d , t h e Promote key t r a n s l a t e s t h e u n i t .
Question: D e s c r i b e t h e m e c h a n i c s o f p e r f o r m i n g r e g r e s s i o n t e s t i n g .
VMS/VAXSet Answer: S t e p one i s t o c r e a t e t h e t e s t s and t e s t d a t a manually wi th t h e EDT e d i t o r .
S t e p two i s t o o r g a n i z e a t e s t sys tem. For b a t c h p r o c e s s i n g , c r e a t e a t empla te f i l e ( a VMS command f i l e t h a t r u n s t h e s p e c i f i e d tes t ) and t y p e t h e command
DTM CREATE TEST-DESCRIPTION name
For i n t e r a c t i v e t e s t i n g , e n t e r
DTM CREATE TEST-DESCRIPTION/RECORD name
t h e n r e c o r d t h e test i n a SESSION f i l e by r u n n i n g a i n t e r a c t i v e t e r m i n a l s e s s i o n .
S t e p t h r e e i s t o execu te t h e tests. (1) c r e a t e a c o l l e c t i o n of t e s t s and g i v e it a u n i q u e name. ( 2 ) s u b m i t t h e c o l l e c t i o n t o t h e b a t c h queue o r run t h e c o l l e c t i o n i n t e r a c t i v e l y . ( 3 ) DEC/Test Manager (DTM) w i l l look f o r a benchmark f i l e and compare i t w i t h t h e r e s u l t s f i l e . I f t h e outcome of t h e comparison is .buccessful , DTM w i l l r e p o r t t h i s f a c t a n d , d e l e t e t h e r e s u l t s f i l e . Otherwise, DTM w i l l c r e a t e a d i f f e r e n c e s f i l e and add t h i s f i l e name t o t h e t e s t ' s r e s u l t d e s c r i p t i o n .
R a t i o n a l Answer: The R a t i o n a l E n v i r o n m e n t d o e s n o t p r o v i d e a t e s t manager t o f a c i l i t a t e u n i t t e s t i n g .
T e s t d a t a can b e d e v e l o p e d u s i n g t h e E d i t o r . Using t h e f u n c t i o n key F15, a command window can b e opened d i r e c t l y
below t h e code t o be t e s t e d . The u n i t can be e x e c u t e d from t h e command window and t e s t d a t a c a n b e r e d i r e c t e d a s s t a n d a r d i n p u t t o t h e module.
The b a s i c windowing c a p a b i l i t i e s of t h e environment a l s o a l low t h e t e s t e r t o c u t and p a s t e t e s t i n p u t t o e n s u r e t h a t r e g r e s s i o n t e s t s a r e run w i t h t h e same t e s t d a t a .
The o u t p u t c a n b e a u t o m a t i c a l l y d i s p l a y e d o r can b e d i r e c t e d t o a f i l e . And a c t u a l t e s t o u t p u t can be compared t o e x p e c t e d t e s t o u t p u t o r t o o u t p u t from a p r e v i o u s t e s t u s i n g t h e u t i l i t y Fi le-Ut i l i t ies-Dif f e r e n c e .
P e r f o r m a n c e . Question: HOW long does it t a k e t h e environment t o c r e a t e a program l i b r a r y ?
VMS/VAXSet Answer: C r e a t i n g a l i b r a r y t y p i c a l l y t o o k approx imate ly 5 seconds ( c l o c k t i m e ) on a VAX-11/780 running VMS 4.5 wi th RMO5s f o r d i s k s t o r a g e , and one u s e r .
R a t i o n a l Answer: Sample t i m e s t o c r e a t e a world, on an R1000 S e r i e s 200, Model 20 w i t h two u s e r s , averaged approximate ly 1 second.
Question: How l o n g d o e s it t a k e t h e environment t o exchange s t u b s and a c t u a l u n i t s ?
VMS/VAXSet Answer: The t i m e r e q u i r e d f o r t h e exchange of s t u b s and a c t u a l u n i t s u s i n g t h e ACS COPY command depended on t h e s i z e of t h e u n i t . Small s t u b s c o u l d b e p l a c e d i n a l i b r a r y i n approximate ly 1 o r 2 seconds . Larger u n i t s r e q u i r e d 1 o r 2 minu tes .
R a t i o n a l Answer: The c l o c k t i m e r e q u i r e d t o exchange s t u b s a n d a c t u a l c o m p i l a t i o n u n i t s v a r i e d f rom less t h a n 1 second t o 2 seconds depend ing on t h e l o a d on t h e s y s t e m . No r e c o m p i l a t i o n i s e v e r needed.
Question: What i s t h e s y s t e m r e c o m p i l a t i o n behav io r t h a t r e s u l t s from changing t h e p r i v a t e p a r t of a package?
VMS/VAXSet Answer: Changing t h e p r i v a t e p a r t of a package s p e c i f i c a t i o n h a s t h e same e f f e c t a s changing any o t h e r p a r t of t h e package s p e c i f i c a t i o n . I t f o r c e s t h e
r e c o m p i l a t i o n of t h e s p e c i f i c a t i o n , t h e body, and a l l d e c l a r e d subprograms w i t h i n t h e package. I n a d d i t i o n , a l l p rogram u n i t s t h a t d e p e n d on t h a t package must a l s o be recompiled.
R a t i o n a l Answer: When t h e p r i v a t e p a r t o f a package s p e c i f i c a t i o n i s changed, any u n i t i n t h e same subsystem t h a t depends on t h a t u n i t must be recompi led . However, any u n i t s t h a t depend on t h a t package b u t which a r e o u t s i d e i t s subsystem need no t be recompiled.
Question: What i s t h e s y s t e m recompi la t ion behav io r t h a t r e s u l t s from add ing a subprogram s p e c i f i c a t i o n t o a package s p e c i f i c a t i o n ?
VMS/VAXSet Answer: Adding a subprogram s p e c i f i c a t i o n t o a p a c k a g e s p e c i f i c a t i o n f o r c e s t h e r e c o m p i l a t i o n of t h e s p e c i f i c a t i o n , t h e body, a n d a l l d e c l a r e d subprograms w i t h i n t h e package. I n a d d i t i o n , a l l p rogram u n i t s t h a t d e p e n d on t h a t package must a l s o be recompiled.
R a t i o n a l Answer: A f t e r add ing a subprogram s p e c i f i c a t i o n t o a package s p e c i f i c a t i o n , it i s o n l y n e c e s s a r y t o c o m p i l e t h e subprogram s p e c i f i c a t i o n . However, t o add t h e subprogram body, you have t o r e g e n e r a t e t h e machine code f o r t h e r e s t of t h e package body.
U s e r I n t e r f a c e . Question : H O W
e a s y / d i f f i c u l t i s i t t o c r e a t e a program l i b r a r y ?
VMS/VAXSet Answer: I t i s v e r y e a s y t o c r e a t e a program l i b r a r y o r s u b l i b r a r y wi th u s e of t h e ACS CREATE (SUB)LIBRARY command.
R a t i o n a l Answer: I t i s v e r y e a s y t o c r e a t e a world g iven t h a t t h e Ada-Create-World p r o c e d u r e is b o d d t o a f u n c t i o n key (CM-F15).
Question: H O W e a s y / d i f f i c u l t i s i t t o t r a n s l a t e a compi la t ion u n i t ?
VMS/VAXS~~ Answer: I t i s v e r y e a s y t o t r a n s l a t e a compi la t ion u n i t . The f i r s t t i m e a u n i t i s compi led t h e ADA command i s used . Subsequent c o m p i l a t i o n s can use t h e ADA command o r ACS (RE)COMPILE command. The
o n l y p o i n t of confus ion t h a t can a r i s e i s whether t o RECOMPILE o r COMPILE on a g i v e n u n i t . RECOMPILE u s e s t h e s o u r c e code f o u n d i n t h e p rogram l i b r a r y , whereas COMPILE w i l l u s e t h e o r i g i n a l source code f i l e s used when t h e u n i t was f i r s t e n t e r e d .
R a t i o n a l Answer: I t i s v e r y e a s y t o t r a n s l a t e a c o m p i l a t i o n u n i t by h i t t i n g t h e Promote key whi le t h e u n i t t o b e t r a n s l a t e d i s s e l e c t e d .
Question: Does t h e e d i t o r check s y n t a x and s e m a n t i c s w i t h i n t h e s o u r c e t e x t ?
VMS/VAXSet Answer: LSE i s t e m p l a t e - d r i v e n and, t h e r e f o r e , does n o t do any check ing on s y n t a x o r s e m a n t i c s . However, t h e DEC Ada compi ler can b e invoked from w i t h i n LSE t o perform a syntax-only check. This i s a c c o m p l i s h e d t h r o u g h ACS COMPILE/SYNTAX-ONLY command. The command c a n b e r u n a s a background a c t i v i t y wi th t h e e r r o r s r e p o r t e d w i t h i n t h e e d i t o r i n t e r a c t i v e l y .
R a t i o n a l Answer: The R a t i o n a l E d i t o r performs s y n t a x and semant ic checking when t h e Format key i s p r e s s e d . I t w i l l comple te s t a t e m e n t s and d e c l a r a t i o n s , and expand t e m p l a t e s h i g h l i g h t i n g t h e pa ramete r s t h a t need t o b e e n t e r e d . It a l s o c l o s e s p a r e n t h e s e s and q u o t e s , and w i l l re format a f t e r t h e d e l e t i o n o r moving of a c o n s t r u c t . The e d i t o r w i l l a u t o m a t i c a l l y c o r r e c t s y n t a x e r r o r s a n d w i l l ( u n d e r l i n e s e m a n t i c e r r o r s . E x p l a i n I t e m (F17) c a n b e p r e s s e d t o g e t a more d e t a i l e d d e s c r i p t i o n o f t h e e r r o r . The p r e t t y p r i n t i n g r u l e s can b e modif ied f o r a s p e c i f i c e d i t i n g s e s s i o n .
Question: How much s o u r c e code g e n e r a t i o n i s automated ( e . g . , n u l l body g e n e r a t i o n a n d c o m p l e t i o n o f matching b e g i n . . e n d s t a t e m e n t s ) ?
VMS/VAXSet Answer: LSE can g e n e r a t e t e m p l a t e s t h a t c o n s i s t of t h e b a s i c s t r u c t u r e of d e c l a r a t i o n s and commands. P l a c e h o l d e r s a r e used t o r e s e r v e s p a c e s f o r u s e r i n p u t . I n g e n e r a l , s p e c i f i c key sequences a r e used t o c r e a t e t e m p l a t e s (CONTROL-E, ^ E ) , and o t h e r s a r e u s e d t o m a n i p u l a t e p l a c e h o l d e r s . F o r example, i f a u s e r t y p e s t h e f o l l o w i n g :
"procedure "E"
LSE would c o m p l e t e t h e s t r u c t u r e a s fo l lows :
procedure [subunit-name] i s [ d e c l a r a t i o n s I
begin [procedure-body]
end [subunit-name];
The u s e r c o u l d t h e n move f r o m p l a c e h o l d e r t o p l a c e h o l d e r and f u r t h e r expand u n t i l t h e u n i t was completed.
R a t i o n a l Answer: Q u i t e a b i t o f t h e s o u r c e c o d e g e n e r a t i o n i s automated i n t h e R a t i o n a l Environment . Body p a r t s and p r i v a t e p a r t s can a u t o m a t i c a l l y b e g e n e r a t e d . T e m p l a t e e x p a n s i o n a n d s t a t e m e n t completion a r e very thorough, making t h e u s e r e n t e r o n l y t h e n e c e s s a r y pa ramete r s .
Svs tem I n t e r f a c e . Question: How wel l i n t e g r a t e d a r e t h e fo l lowing t o o l s : browser , t r a n s l a t o r , e d i t o r , debugger , and program l i b r a r y u t i l i t i e s ?
VMS/VAXSet Answer: The DEC e n v i r o n m e n t i s a g r o u p o f l a y e r e d p r o d u c t s on t o p of t h e VMS o p e r a t i n g s y s t e m . The t e r m l a y e r e d means t h a t t h e b a s i c s t r u c t u r e of a l l t o o l s r e l y on t h e same f e a t u r e s of VMS. For example, a l l t o o l s u s e t h e same f i l e s t r u c t u r e s a n d f i l e manager (RMS). Tools a l s o have a r e a s o n a b l e amount of i n t e g r a t i o n among t h e m s e l v e s . F o r example, w i t h i n LSE t h e Ada compi ler can be invoked , and w i t h i n t h e debugger, LSE can be invoked.
R a t i o n a l Answer: The t o o l s o f t h e R a t i o n a l Environment a r e w r i t t e n i n Ada and t h e y a l l have t h e same Ada programmatic i n t e r f a c e . They a r e w e l l i n t e g r a t e d . For example, t h e e d i t o r c a n b e u s e d w h i l e u s i n g t h e debugger t o c r e a t e t e s t d a t a t o be d i r e c t e d a s i n p u t t o t h e program b e i n g debugged. The windowing c a p a b i l i t y of t h e e n v i r o n m e n t a l l o w s t h e u s e r t o e a s i l y move from one t o o l t o a n o t h e r . Also, t h e environment is m u l t i t a s k i n g , s o d i f f e r e n t j o b s c a n b e e x e c u t e d s imul taneous ly i n d i f f e r e n t windows.
,SummarvL Both s e t s of t o o l s were found t o be s t r o n g and r e l i a b l e , and v e r y u s e f u l i n s u p p o r t o f p r o d u c t i n t e g r a t i o n .
However, t h e p r o d u c t i n t e g r a t i o n experiment r e v e a l e d t h a t t h e performance of t h e DEC c o m p i l e r , w h i l e e x c e l l e n t a c c o r d i n g t o some s t a n d a r d s , was weak compared t o t h a t of t h e R a t i o n a l p r o d u c t . During t h e exper iment , e l a p s e d and CPU t i m e s were measured f o r e a c h s t e p . The r e s u l t s a r e shown i n Table 3 . The exper iment was e x e c u t e d on a VAX- 11/780 runn ing VMS 4 . 5 w i t h RMO5s f o r d i s k s t o r a g e . The number of u s e r s d u r i n g t h e r u n was, on a v e r a g e , l e s s t h a n t h r e e peop le .
The s u b s y s t e m a n d i n c r e m e n t a l c o m p i l a t i o n f e a t u r e s o f t h e R a t i o n a l Environment g r e a t l y r educed t h e amount o f t i m e r e q u i r e d t o i n c o r p o r a t e m o d i f i c a t i o n s i n t o a c o m p i l a t i o n u n i t . Only t h o s e u n i t s t h a t a r e d i r e c t l y a f f e c t e d by t h e change n e e d t o be recompiled, s o t h e impact on t h e r e s t of t h e sys tem i s minimized. S t e p s 7 , 9 , and 11 r e p r e s e n t t h e recompi la t ion t i m e s r e q u i r e d t o b r i n g a l a r g e sys tem back t o a n e x e c u t a b l e s t a t e a f t e r v a r i o u s m o d i f i c a t i o n s .
Even w i t h r e s p e c t t o c o m p i l e r p e r f o r m a n c e , however, t h e VAX-based t o o l s were e a s i l y c a p a b l e of s a t i s f y i n g t h e e v a l u a t i o n c r i t e r i a wi th r e s p e c t t o
Table 3 . VMS/VAXSet
CPU T i m e
00:02:22.53 44580 mSec
00:01:16.06 28650 mSec
00:09:18.57 182110 mSec
00:04:00.99 95010 mSec
00:04:30.55 100100 mSec
01:08:12.77 90220 mSec
00:00:03.42 2480 mSec
01:08:53.00 93180 mSec
00:00:03.64 2560 mSec
01:01:03.38 158730 mSec
00:00:03.49 2580 mSec
Table 4 . R a t i o n a l Environment
e & Elapsed T i m e CPU T i m e
4 00:00:10.23 4 9 1 4 mSec
5a 00:00:09.78 4659 mSec
5b 00:00:38.08 16319 mSec
5c 00:00:34.76 15255 mSec
6 00:00:40.03 17610 mSec
7 00:06:22.54 89936 mSec
8 00:00:57.34 18432 mSec
9 00:01:14.97 23177 mSec
10 04:01:06.62 17589 mSec
11 00:01:58.97 30117 mSec
12 00:01:11.44 18636 mSec
The l e n g t h y t i m e s a s s o c i a t e d w i t h s t e p s 7, 9, a n d 11 r e p r e s e n t t h e compi la t ion t ime r e q u i r e d t o recompile a l a r g e u n i t w i t h many dependenc ies and s e p a r a t e s u b u n i t s .
The e l a p s e d and CBU t i m e s f o r t h e R a t i o n a l R l O O O S e r i e s 200, Model 20, running under an e a r l y D e l t a v e r s i o n of t h e Environment w i t h two u s e r s , a r e shown i n Table 4 :
p r o d u c t i n t e g r a t i o n f o r t h e i n i t i a l phase of t h e c o n t r a c t , where r e l a t i v e l y l i t t l e s o u r c e code w i l l b e d e l i v e r e d . However, r e s u l t s o f t h e p r o d u c t i n t e g r a t i o n exper iment s u g g e s t t h a t it might be wise t o e x t e n d t h e i n i t i a l DEC environment by add ing a R a t i o n a l , p r i o r t o d e s i g n i n g , coding and t e s t i n g r e a l l y l a r g e s o f t w a r e sys tems, on t h e o r d e r of hundreds of thousands of l i n e s of source code.
Two p r o p e r t i e s o f t h e S E I n s methodology made it n e c e s s a r y f o r u s t o supplement it w i t h o t h e r more p r o s a i c d a t a - g a t h e r i n g t e c h n i q u e s t o comple te t h e s t u d y . F i r s t , t h e methodology i s n e a r l y t o t a l l y e x p e r i m e n t a l l y based, i n t h e s e n s e t h a t n e a r l y a l l r e s u l t s come from t h e execu t ion of an exper iment . I f t h e exper iments a r e des igned and c a r r i e d o u t wi th a c a r e comparable t o t h a t shown by t h e SEI, and shown d u r i n g our s tudy , t h e y a r e v e r y l a b o r - i n t e n s i v e .
I t was n o t f i n a n c i a l l y p o s s i b l e f o r t h i s s t u d y t o d e s i g n and i n s t a n t i a t e e x p e r i m e n t s f o r a l l of t h e r e l e v a n t f u n c t i o n a l r equ i rements t h a t might have been t e s t e d . Moreover, it i s no t l i k e l y t h a t any commercia l o r g a n i z a t i o n can a f f o r d t o u s e t h e methodology i n t h i s way. So t h e p r o d u c t i n t e g r a t i o n r e q u i r e m e n t w a s s e l e c t e d f o r e x p e r i m e n t a l t e s t b e c a u s e i t was r e l a t i v e l y more i m p o r t a n t t h a n o t h e r r e q u i r e m e n t s . And t h e s t u d y supplemented what was l e a r n e d i n t h a t way w i t h a r e v i e w o f w h e t h e r t h e c a n d i d a t e environments cou ld suppor t t h e o t h e r f u n c t i o n a l r e q u i r e m e n t s a t a l l , i g n o r i n g f o r t h e p r e s e n t how w e l l t h e y might suppor t them.
S e c o n d , s o m e i m p o r t a n t c h a r a c t e r i s t i c s of environments a r e n o t f u n c t i o n a l , f o r example i n i t i a l c o s t , p r o c u r a b i l i t y , i m p a c t on p e r s o n n e l r equ i rements . These were n o t r easonab le c a n d i d a t e s f o r f u l l e x p e r i m e n t a l t e s t i n g . So t h e y were d e t e r m i n e d i n o r d i n a r y ways by c o n t a c t w i t h t h e v e n d o r s , by e x t r a p o l a t i o n f rom p a s t exper ience , e t c .
What fo l lows below summarizes some of what had t o be l e a r n e d o u t s i d e t h e S E I n s e x p e r i m e n t a l f ramework i n o r d e r t o complete t h e s t u d y .
o n a l l t v . Th i s t e r m was adop ted t o d e s i g n a t e t h e f u n c t i o n a l r equ i rements t h a t can b e s a t i s f i e d on a g i v e n h o s t v i r t u a l machine by s o f t w a r e a c q u i s i t i o n . W e found t h a t 1 0 0 % of t h e f u n c t i o n a l r e q u i r e m e n t s of i m p o r t a n c e d u r i n g t h e i n i t i a l phase of t h e c o n t r a c t c o u l d b e s a t i s f i e d on DEC hardware , u s i n g DEC o r t h i r d - p a r t y s o f t w a r e t o o l s . T h i s was a v e r y impor tan t r e s u l t . The comparable f i g u r e f o r ~ a t i o n a l hardware was 4 0 % ( c l i m b i n g t o 6 5 % i f p r o d u c t s
announced by R a t i o n a l b u t n o t r e l e a s e d were c o n s i d e r e d ) . To i l l u s t r a t e t h e d i f f e r e n c e , a g e n e r a l purpose DBMS was no t a v a i l a b l e on t h e R a t i o n a l .
a 1 C o s t . The s t u d y found t h a t c o n t r a r y t o e x p e c t a t i o n s , t h e i n i t i a l c o s t of t h e R a t i o n a l Environment was s l i g h t l y l e s s t h a n t h e c o s t o f comparable DEC hardware and sof tware .1°
P r o c u r a b ~ l r t v . a . Both vendors c o u l d
have s u p p l i e d env i ronments by t h e t ime t h e y were needed.
t v . E a r l i e r TRW s t u d i e s of Ada programming s u p p o r t env i ronments , and s u b s t a n t i a l c o r p o r a t e e x p e r i e n c e w i t h D E C h a r d w a r e a n d s o f t w a r e , s u p p o r t e d t h e c o n c l u s i o n t h a t t h e VMS- based environment would b e p r e d i c t a b l y r e l i a b l e . No u n p l e a s a n t s u r p r i s e s were expec ted .
A TRW s t u d y of R a t i o n a l t o o l s i n a r e s e a r c h environment found them t o be b o t h mature and r e l i a b l e , and vendor d a t a on t h e i r c u s t o m e r s ' downtime c o r r o b o r a t e s t h a t c o n c l u s i o n . However, R a t i o n a l ' s r e l a t i v e l y l i m i t e d i n s t a l l e d b a s e when t h e s t u d y was completed, and o u r l a c k of s u c c e s s a t o b t a i n i n g r e l i a b i l i t y d a t a i n a c o n t r a c t u a l e n v i r o n m e n t , l e d t o r a t i n g t h e R a t i o n a l I s r e l i a b i l i t y "probably goodw, s l i g h t l y lower t h a n D E C ' s .
n , c t on Tral- Very l i t t l e t r a i n i n g of our e n g i n e e r s was expec ted i f t h e DEC t o o l s were u s e d . However, s i n c e t h e R a t i o n a l ~ n v i r o n m e n t u s e s Ada a s a command l anguage , e n g i n e e r s who were n o t y e t p r o f i c i e n t w i t h t h e language would r e q u i r e e a r l y t r a i n i n g , e v e n f o r a c t i v i t i e s n o t r e l a t e d t o source code p roduc t ion .
?he f i n a l problem of recommending an env i ronment l a y t o t a l l y o u t s i d e t h e domain of t h e S E I ' s methodology. A l l p o s s i b l e recommendations would have been c o n s i s t e n t w i t h t h e same e x p e r i m e n t a l d a t a .
The method u s e d t o s e l e c t t h e e n v i r o n m e n t t o recommend i n v o l v e d c a l c u l a t i n g a f i g u r e of m e r i t f o r each q u a l i f y i n g c a n d i d a t e env i ronment , and
c h o o s i n g t h e e n v i r o n m e n t w i t h t h e h i g h e s t one.
The g e n e r a l approach was t o f i r s t r e v i e w w h e t h e r t h e c a n d i d a t e environments s a t i s f i e d c e r t a i n mandatory c r i t e r i a , and t o e l i m i n a t e t h o s e t h a t d i d n o t . The mandatory c r i t e r i a f o r t h e s t u d y were t h a t (1) u s e o f t h e env i ronment n o t make s c h e d u l e s l i p s l i k e l y , ( 2 ) we n o t b e f o r c e d t o e x t r a o r d i n a r y e f f o r t t o meet o u r d e l i v e r y d e a d l i n e s , a n d ( 3 ) t h e environment be d e l i v e r e d and i n s t a l l e d no l a t e r t h a n 210 DAC.
TABLE 5 . Ass igning Values
Character- . .
Values
F u n c t i o n a l i t y : D i r e c t and a c q u i r a b l e f u n c t i o n a l i t y s a t i s f i e s k% o f t h e f u n c t i o n a l requirements where k i s
2 75 2 50 and < 75 2 25 and < 50 < 25
P e r f o r m a n c e : Average p e r f o r m a n c e of t o o l s t o be used i n t h e i n i t i a l phase
i s f a s t e s t a v a i l a b l e 5 f a r exceeds minimum r e q u i r e d 3 exceeds minimum r e q u i r e d 1 i s adequa te t o meet d e a d l i n e s 0
I n i t i a l C o s t : Normalized, t o t h e most expensive a l t e r n a t i v e < . 6 5 2 . 6 and < .75 3 2 .75 and < . 9 2 2 . 9 and < - 9 9 1 2 . 9 9 0
R e l i a b i l i t y :
P r e d i c t a b l y good r e l i a b i l i t y 5 I n s u f f i c i e n t d a t a , probably good 3 R e l i a b i l i t y no t known 1 U n r e l i a b l e 0
S$cond, a d i m e n s i o n l e s s number was a s s i g n e d t o each q u a l i f y i n g environment f o r each c h a r a c t e r i s t i c t h a t was s t u d i e d ( e i t h e r e x p e r i m e n t a l l y o r o t h e r w i s e ) , t o
r e p r e s e n t how f a v o r a b l e t h e v a l u e of t h a t c h a r a c t e r i s t i c of t h a t environment was, from t h e p r o j e c t ' s p o i n t of view. F o r e x a m p l e , i n i t i a l c o s t was a c h a r a c t e r i s t i c . The environment wi th t h e lower i n i t i a l c o s t was a s s i g n e d t h e h igher number.
Third , t h e number was m u l t i p l i e d by a w e i g h t t o r e f l e c t t h e r e l a t i v e importance of t h a t c h a r a c t e r i s t i c t o t h e so f tware development e f f o r t a s a whole.
Four th , t h e p r o d u c t s of t h e numbers and t h e weights were summed. The r e s u l t was a d imens ion less number t h a t was t h e f i g u r e of m e r i t f o r t h e environment.
F i n a l l y , t h e env i ronment w i t h t h e h i g h e s t f i g u r e of m e r i t was recommended.
Some of t h e c h a r a c t e r i s t i c v a l u e s a r e shown i n T a b l e 5 . And some of t h e weights used a r e shown i n Table 6 .
I t was a p p a r e n t from t h e s t u d y t h a t D E C 1 s environment , which s u p p o r t e d a l l t h e f u n c t i o n a l r e q u i r e m e n t s o f t h e i n i t i a l phase of t h e c o n t r a c t , would be more u s e f u l t o u s i n t h a t phase t h a n R a t i o n a l ' s , even though t h e R a t i o n a l t o o l s were s i g n i f i c a n t l y b e t t e r i n some ways t h a n D E C 1 s f o r u n i t t e s t i n g and debugging, and f o r p roduc t i n t e g r a t i o n .
- --
TABLE 6 . Ass igning Weights
C h a r a c t e r l s t x , # Weiaht
F u n c t i o n a l i t y 4
Performance 3
I n i t i a l Cost 2
R e l i a b i l i t y 2
The VAX-based t o o l s were recommended and a c q u i r e d . But it i s l i k e l y t h a t a s we move i n t o t h e second p h a s e of t h e c o n t r a c t we w i l l want t o enhance t h e i n i t i a l f o u n d a t i o n a l environment from DEC. A t t h a t t ime we w i l l p robably want t o add one o r more s p e c i a l i z e d machines f o r d a t a b a s e o p e r a t i o n s , d e s i g n and cod ing , p r o d u c t i n t e g r a t i o n and o t h e r a c t i v i t i e s . A p o s s i b i l i t y t o c o n s i d e r a t t h a t t i m e i s a d d i n g t h e R a t i o n a l
p r o d u c t s t h a t were t e s t e d , s i n c e t h e p r o d u c t i n t e g r a t i o n e x p e r i m e n t showed them t o b e e x c e l l e n t a t t h e i r s p e c i a l p u r p o s e , which i s d e v e l o p i n g a n d i n t e g r a t i n g Ada s o f t w a r e .
I t had been dec ided b e f o r e t h e s t u d y began t o recommend a s i n g l e vendor f o r t h e i n i t i a l phase of t h e c o n t r a c t . DEC was chosen. But a second comparison of DEC a n d R a t i o n a l t o t h e WWMCCS
11 In fo rmat ion System's SDME environment, t o t a k e p l a c e toward t h e end of 1987 j u s t p r i o r t o t h e second phase of t h e c o n t r a c t , w i l l a l s o e v a l u a t e t h e o p t i o n of e x t e n d i n g t h e i n i t i a l environment by add ing p r o d u c t s from o t h e r vendors . I t w i l l b e an a t t r a c t i v e o p t i o n a t t h a t p o i n t s i n c e t h e much l a r g e r s c a l e of development i n t h e second phase of t h e c o n t r a c t w i l l c h a n g e t h e s e l e c t i o n c r i t e r i a , f o r example making performance much more impor tan t .
A t t h a t t i m e we w i l l once a g a i n u s e t h e SEI e v a l u a t i o n methodology. And we w i l l once a g a i n embed it w i t h i n a n o v e r a l l a p p r o a c h t o e v a l u a t i o n a n d c h o i c e t h a t supplements i t s exper imenta l method wi th su rveys and a r e f i n e d c h o i c e a l g o r i t h m t h a t r e f l e c t s t h e new requirements f o r t h a t phase .
k he R a t i o n a l RlOOO Development System c o n s i s t s of t h e R a t i o n a l Environment" ( s o f t w a r e deve lopment t o o l s ) and an
RlOOO p r o c e s s o r . Contact R a t i o n a l , 1501 Salado Drive , Mountain View, C a l i f o r n i a 94043.
6 ~ h e methodology i s d e s c r i b e d i n d e t a i l i n E v a l u a t i o n o f Ada environment^, Techn ica l Repor t CMU/SEI-87-TR-1, March 1987, S o f t w a r e E n g i n e e r i n g I n s t i t u t e , Carnegie-Mellon U n i v e r s i t y , P i t t s b u r g h , Pennsylvania 15213.
7 Data I t em D e s c r i p t i o n DI-S-3606 / S-
128-1, 1 November 1987 (USAF) .
8 ~ w o major d i f f e r e n c e s between t h e two, however, were t h a t we used a VAX 11/780 r a t h e r t h a n a MicroVAX 11, and we used v e r s i o n 1 . 3 of t h e compi ler r a t h e r t h a n v e r s i o n 1 . 2 .
he s o u r c e code f o r t h a t t o o l was deve loped under c o n t r a c t t o t h e Naval Ocean Systems Cen te r , and p l a c e d i n t h e p u b l i c domain i n 1985.
1°The i n i t i a l c o s t of a n R a t i o n a l RlOOO S e r i e s 200, Model 40 Development System was compared t o t h e c o s t of a VAX 8700 wi th comparable s o f t w a r e .
11 For f u r t h e r in fo rmat ion about t h e SDME
e n v i r o n m e n t , s e e D r . M i c h a e l M e n d i v i l l e ' s paper i n t h e s e p roceed ings .
J o h n B a i l e y ( R a t i o n a l ) , C a s s i a n P a l l a n s c h (TRW) and Linda S k e l t o n (SRA) made major c o n t r i b u t i o n s t o t h i s s t u d y .
Endnotes
l ~ d a i s a r e g i s t e r e d t r ademark of t h e U.S. Government (Ada J o i n t P rogram Of £ i c e )
* s e n i o r S t a f f E n g i n e e r , ADP Systems Engineer ing Department, Systems D i v i s i o n
' ~ r m ~ WWMCCS Informat ion System (AWIS), USAISEC, P u b l i c A f f a i r s O f f i c e , F t . Be lvo i r , V i r g i n i a 22060.
4 ~ i g i t a l Equipment C o r p o r a t i o n , Nashua, New Hampshire 03062.