home *** CD-ROM | disk | FTP | other *** search
/ Programmer's ROM - The Computer Language Library / programmersrom.iso / ada / pdl / gadusers.man < prev   
Encoding:
Text File  |  1988-05-03  |  181.0 KB  |  4,497 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.        GGGGG  RRRRRR   AAAA   PPPPPP  HH  HH  IIIIII   CCCCC
  7.       GG      RR  RR  AA  AA  PP  PP  HH  HH    II    CC
  8.       GG      RRRR    AAAAAA  PPPPPP  HHHHHH    II    CC
  9.       GG  GG  RR  RR  AA  AA  PP      HH  HH    II    CC
  10.        GGGG   RR  RR  AA  AA  PP      HH  HH  IIIIII   CCCCC
  11.  
  12.  
  13.                        AAAA   DDDDD    AAAA    *
  14.                       AA  AA  DD  DD  AA  AA
  15.                       AAAAAA  DD  DD  AAAAAA
  16.                       AA  AA  DD  DD  AA  AA
  17.                       AA  AA  DD DD   AA  AA
  18.  
  19.  
  20.   DDDDD   EEEEEE   SSSSS  IIIIII   GGGGG  NN  NN  EEEEEE  RRRRRR
  21.   DD  DD  EE      SS        II    GG      NNN NN  EE      RR  RR
  22.   DD  DD  EEEE     SSSS     II    GG      NNNNNN  EEEE    RRRRR
  23.   DD  DD  EE          SS    II    GG  GG  NN NNN  EE      RR  RR
  24.   DDDDD   EEEEEE  SSSSS   IIIIII   GGGG   NN  NN  EEEEEE  RR  RR
  25.  
  26.  
  27.  
  28.                     U S E R ' S   M A N U A L
  29.  
  30.  
  31.                           February 1986
  32.  
  33.  
  34.                        Ada Technology Group
  35.                        SYSCON Corporation
  36.                        3990 Sherman Street
  37.                    San Diego, California 92110
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.            *Ada is a trademark of the U.S. Government
  50.                      Ada Joint Program Office
  51.                            TABLE OF CONTENTS
  52.  
  53. SECTION    TITLE                                          PAGE
  54. -----------------------------------------------------------------
  55.  
  56. 1        INTRODUCTION . . . . . . . . . . . . . . . . . . . 1-1
  57.  
  58. 1.1        Purpose  . . . . . . . . . . . . . . . . . . . . . 1-1
  59. 1.2        Scope  . . . . . . . . . . . . . . . . . . . . . . 1-1
  60. 1.3        Background . . . . . . . . . . . . . . . . . . . . 1-2
  61. 1.4        Organization . . . . . . . . . . . . . . . . . . . 1-2
  62.  
  63. 2          FUNCTIONAL OVERVIEW  . . . . . . . . . . . . . . . 2-1
  64.  
  65. 2.1      Graphics Design Functions  . . . . . . . . . . . . 2-1
  66. 2.2      PDL Generation Functions . . . . . . . . . . . . . 2-2
  67. 2.3        File Management Functions  . . . . . . . . . . . . 2-2
  68. 2.4        Supplemental and Supporting Functions  . . . . . . 2-2
  69.  
  70. 3        TECHNICAL DESCRIPTIONS . . . . . . . . . . . . . . 3-1
  71.  
  72. 3.1      Ada Graphic Notation Conventions . . . . . . . . . 3-1
  73. 3.1.1      Ada Graphic Entities . . . . . . . . . . . . . . . 3-1
  74. 3.1.2      Entity Conventions . . . . . . . . . . . . . . . . 3-3
  75. 3.1.2.1      Symbols  . . . . . . . . . . . . . . . . . . . . . 3-3
  76. 3.1.2.1.1    Visibility Connection Indicator  . . . . . . . . . 3-3
  77. 3.1.2.1.2    Export Connection Indicator  . . . . . . . . . . . 3-4
  78. 3.1.2.1.3    Control Flow Indicator . . . . . . . . . . . . . . 3-5
  79. 3.1.2.1.4    Virtual Package Symbol . . . . . . . . . . . . . . 3-5
  80. 3.1.2.1.5    Package Symbol . . . . . . . . . . . . . . . . . . 3-6
  81. 3.1.2.1.6    Subprogram Symbols . . . . . . . . . . . . . . . . 3-7
  82. 3.1.2.1.7    Task and Task Entry Points . . . . . . . . . . . . 3-7
  83. 3.1.2.1.8    Package, Subprogram or Task Body Symbol  . . . . . 3-8
  84. 3.1.2.1.9    Generics . . . . . . . . . . . . . . . . . . . . . 3-8
  85. 3.1.2.2      Usage  . . . . . . . . . . . . . . . . . . . . . . 3-8
  86. 3.1.3      Summary of Convention Restrictions . . . . . . . . 3-9
  87. 3.2      Ada-Based PDL Conventions  . . . . . . . . . . . . 3-11
  88. 3.3        Man-Machine Interface Summary. . . . . . . . . . . 3-13
  89. 3.3.1    Screen Formats . . . . . . . . . . . . . . . . . . 3-15
  90. 3.3.2    Operator Interactions  . . . . . . . . . . . . . . 3-15
  91. 3.3.3    Command Window Menu Displays . . . . . . . . . . . 3-17
  92. 3.3.4    Graphic Window Displays. . . . . . . . . . . . . . 3-18
  93. 3.3.5    Alphanumeric Window Displays . . . . . . . . . . . 3-18
  94. 3.4        Restrictions . . . . . . . . . . . . . . . . . . . 3-19
  95.  
  96. 4        GAD TOOL USAGE DESCRIPTION . . . . . . . . . . . . 4-1
  97.  
  98. 4.1        GAD Invocation . . . . . . . . . . . . . . . . . . 4-1
  99. 4.2        Menu Displays  . . . . . . . . . . . . . . . . . . 4-1
  100. 4.2.1    MAIN Menu Display  . . . . . . . . . . . . . . . . 4-4
  101. 4.2.2    ATTRIB Menu  . . . . . . . . . . . . . . . . . . . 4-6
  102. 4.2.3    COLOR/LINE Menu Display  . . . . . . . . . . . . . 4-8
  103. 4.2.4    PAN / ZOOM Menu. . . . . . . . . . . . . . . . . . 4-9
  104. 4.2.5    DESIGN Menu Display  . . . . . . . . . . . . . . . 4-10
  105. 4.2.6    IMPORT/EXPORT Menu . . . . . . . . . . . . . . . . 4-15
  106. 4.2.7    GENERIC Menu . . . . . . . . . . . . . . . . . . . 4-19
  107. 4.2.8    PARAMETER STATUS Menu  . . . . . . . . . . . . . . 4-20
  108. 4.2.9    ENTRY PT Menu  . . . . . . . . . . . . . . . . . . 4-21
  109. 4.2.10    CALL Menu  . . . . . . . . . . . . . . . . . . . . 4-21
  110. 4.2.11    CONFIRM Menu . . . . . . . . . . . . . . . . . . . 4-22
  111. 4.2.12    PDL STATUS Menu  . . . . . . . . . . . . . . . . . 4-23
  112. 4.3        Usage  . . . . . . . . . . . . . . . . . . . . . . 4-23
  113.  
  114. 5        GAD DESIGN EXAMPLE . . . . . . . . . . . . . . . . 5-1
  115. 5.1        Design Scenario  . . . . . . . . . . . . . . . . . 5-1
  116. 5.2        Scenario Walk-Through  . . . . . . . . . . . . . . 5-2
  117. 5.3        Generated PDL  . . . . . . . . . . . . . . . . . . 5-7
  118.  
  119.  
  120.                                APPENDICES
  121.  
  122. APPENDIX    TITLE                                          PAGE
  123. -----------------------------------------------------------------
  124. A        ON-LINE HELP FILE LISTING  . . . . . . . . . . . . A-1
  125.  
  126. A.1        Main Menu Descriptions . . . . . . . . . . . . . . A-2
  127. A.2        Pan / Zoom Menu Help Descriptions. . . . . . . . . A-4
  128. A.3        Design Menu Help Descriptions. . . . . . . . . . . A-6
  129. A.4        Generic Menu Commands  . . . . . . . . . . . . . . A-11
  130. A.5        Annotating Menu Help Descriptions. . . . . . . . . A-12
  131. A.6        Delete Menu Help Descriptions. . . . . . . . . . . A-16
  132. A.7        Attributes Menu Help Descriptions. . . . . . . . . A-17
  133. A.8        Color/Line Menu Help Descriptions  . . . . . . . . A-18
  134. A.9        Parameter Status Menu Commands . . . . . . . . . . A-20
  135. A.10        Call Menu Commands . . . . . . . . . . . . . . . . A-21
  136. A.11        Entry Point Status Menu Commands . . . . . . . . . A-22
  137. A.12        PDL Status Menu Commands . . . . . . . . . . . . . A-23
  138.  
  139. B          TOOL CONFIGURATION REQUIREMENTS  . . . . . . . . .  B-1
  140.  
  141. B.1        Host Environment . . . . . . . . . . . . . . . . .  B-2
  142. B.2        Graphics Terminal Hardware Summary . . . . . . . .  B-3
  143.  
  144. C        GLOSSARY OF TERMS  . . . . . . . . . . . . . . . .  C-1
  145.  
  146. D        EXPLANATION OF ERROR MESSAGES. . . . . . . . . . .  D-1
  147.                          LIST OF ILLUSTRATIONS
  148.  
  149. FIGURE     TITLE                                           PAGE
  150. ------------------------------------------------------------------
  151.  
  152. 3-1        Virtual Package Symbol  . . . . . . . . . . . . . . 3-6
  153. 3-2        Package Symbol  . . . . . . . . . . . . . . . . . . 3-6
  154. 3-3A        Procedure Symbol  . . . . . . . . . . . . . . . . . 3-7
  155. 3-3B        Function Symbol . . . . . . . . . . . . . . . . . . 3-7
  156. 3-4        Task and Task Entry Points Symbols  . . . . . . . . 3-7
  157. 3-5        Body Symbol . . . . . . . . . . . . . . . . . . . . 3-8
  158. 3-6        MMI Menu Network Organization . . . . . . . . . . . 3-14
  159. 3-7        GAD Graphics Screen Format  . . . . . . . . . . . . 3-16
  160. 3-8        Menu Window Icon Format . . . . . . . . . . . . . . 3-17
  161. 3-9        Initial View in Graphic Window  . . . . . . . . . . 3-18
  162.  
  163. 4-1        Menu Hierarchy  . . . . . . . . . . . . . . . . . . 4-2
  164. 4-2        Menu Hierarchy (cont.)  . . . . . . . . . . . . . . 4-3
  165.  
  166. 5-1        Sample OODD . . . . . . . . . . . . . . . . . . . . 5-1
  167.  
  168. B.1-1      GAD Host Interfaces . . . . . . . . . . . . . . .   B-2
  169.  
  170.  
  171.  
  172.  
  173.                              LIST OF TABLES
  174.  
  175. TABLE      TITLE                                           PAGE
  176. ------------------------------------------------------------------
  177.  
  178. 3-1        Entity Name Descriptions . . . . . . . . . . . . .  3-4
  179. 3-2        Control Connector Descriptions . . . . . . . . . .  3-5
  180.  
  181. 4-1        Attributes and Default Settings  . . . . . . . . .  4-6
  182.  
  183. B.2-1    TEKTRONIX 4107 Graphics Hardware Device
  184.           Descriptions . . . . . . . . . . . . . . . . . .  B-3
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.                 This User's Manual has been prepared to
  207.                 be compatible with transmission over the
  208.                 MILNET.  As such, it uses only standard
  209.                 ASCII characters, which limits the
  210.                 representations that can be used to
  211.                 illustrate the graphics symbols utilized
  212.                 by the Graphic Ada Designer.
  213. 1.        INTRODUCTION
  214.  
  215. The Graphic Ada Designer (GAD) is a specialized graphics design
  216. tool which supports the interactive creation of Object Oriented
  217. Design Diagrams (OODDs) for Ada programs and provides automated
  218. generation of the compilable Ada Program Design Language (PDL)
  219. associated with each OODD.  The GAD supports the creation of
  220. these block-like diagrams to assist in the designing of Ada
  221. software.
  222.  
  223. 1.1        Purpose
  224.  
  225. This document serves as the User's Manual for the GAD, and as
  226. such provides the information necessary for the invocation,
  227. operation and termination of the design tool.  In addition, it
  228. provides a technical reference to assist the user in optimal
  229. utilization of the GAD.
  230.  
  231. 1.2        Scope
  232.  
  233. The material in this document is limited to information and
  234. descriptions pertaining to the operation of the GAD.  The
  235. technical information contained in this document is limited to
  236. that necessary to allow the GAD tool user to understand its
  237. operation and the Ada Graphic Notation conventions supported.
  238. The user of the GAD tool is assumed to have an understanding of
  239. the Ada language, the development methodology being utilized, and
  240. a basic comprehension of how to pictorially represent the scoping
  241. relationships of the Ada language.  The GAD and its User's Manual
  242. are designed such that minimal graphics hardware experience is
  243. required.
  244.  
  245. 1.3        Background
  246.  
  247. Research dealing with the design of software to be implemented in
  248. the Ada language has developed graphical techniques for
  249. representing Ada designs.  The benefits of augmenting textually
  250. represented designs of Ada software with graphical/pictorial
  251. representations have been established.  SYSCON adapted the Object
  252. Oriented Design work of Grady Booch (reference "Software
  253. Engineering with Ada") and the graphical analysis techniques
  254. developed by Dr. R. Buhr of Carleton University (reference
  255. "System Design with Ada") into a set of Ada Graphic Notation
  256. conventions for use in graphically describing the architecture of
  257. Ada software.
  258.  
  259. The utilization of graphics techniques in the design of software
  260. introduces two major problems:  the cost and speed of generating
  261. and modifying pictorial representations and the "tracking" of
  262. pictorial representations with textual PDL.  The GAD addresses
  263. these problems by providing automated support for the creation of
  264. bit-mapped graphics utilizing the Ada Graphic Notation
  265. conventions, and for the generation of compilable Ada-based PDL
  266. directly from the graphical design without manual intervention.
  267.  
  268. 1.4        Organization
  269.  
  270. This document is organized into sections and appendices.  The
  271. sections provide descriptions of the tool's operation and the
  272. conventions it supports.  Section 2 (Functional Overview)
  273. provides brief descriptions of the major functional areas of the
  274. tool.  Section 3 (Technical Descriptions) discusses the major
  275. technical issues related to the operation of the tool, including
  276. descriptions of the Ada Graphic Notation and Ada PDL conventions.
  277. Section 4 (GAD Tool Usage Description) presents a detailed
  278. description of the menu displays, commands, prompts, and user
  279. interactions associated with the operation of the GAD.  Section 5
  280. (GAD Design Example) provides a design scenario with a step-by-
  281. step walk-through from initial invocation of the tool to the
  282. generation of PDL from the OODD.  The appendices provide
  283. supporting information, and include a copy of the on-line help
  284. file, definition of terms, and configuration and installation
  285. information.
  286. 2.        FUNCTIONAL OVERVIEW
  287.  
  288. The GAD Man-Machine Interface (MMI) provides an efficient means
  289. for designing software architectures in the form of Ada OODDs.
  290. The MMI is both efficient and easy to use, a combination which is
  291. achieved by utilizing the full capabilities of the supporting
  292. graphics terminal.  The basic MMI philosophy is:
  293.  
  294.     o  Minimize manual keyboard interaction
  295.     o  Maximize use of hardware cursor control devices
  296.         (mouse, joystick, or joydisc)
  297.     o  Provide menus consisting of cursor selectable commands
  298.     o  Support easy selection of graphic entities
  299.  
  300. GAD adheres to the basic philosophy by utilizing three windows to
  301. present information to the user.  The three windows are:
  302.  
  303.     o Alphanumeric - displays prompts and echos keyboard input
  304.     o Menu         - displays the currently available commands
  305.     o View         - displays the OODD being created
  306.  
  307. The MMI allows the user to use the cursor control device to select
  308. the desired command or function.  The basic functions of GAD fall
  309. into four (4) major categories:  Graphics Design, PDL Generation,
  310. File Management, and Supplemental and Supporting.
  311.  
  312. 2.1        Graphics Design Functions
  313.  
  314. GAD provides a graphical architectural design capability which
  315. consists of creating, deleting, editing, moving and setting
  316. attributes of entities representing Ada structures (e.g.,
  317. packages, subprograms, tasks, and bodies).  GAD maintains call,
  318. visibility and exported connection dependencies which represent
  319. the logical relationships between entities.  Strict Ada (PDL)
  320. syntax and semantics to the appropriate level of detail will be
  321. enforced in the graphs at each operation.  The graphics design
  322. operations that GAD provides are invoked by the selection of
  323. commands from various command menus.
  324.  
  325. 2.2        PDL Generation Functions
  326.  
  327. GAD provides a command to generate the Ada PDL corresponding to
  328. the current design graph.  The tool generates the PDL and places
  329. it in an ASCII text file with the current session file name and
  330. the extension ".PDL".  The Ada PDL produced will be syntactically
  331. correct and compilable.  The general guideline for PDL generation
  332. will be to generate as much code as possible and permit the user
  333. to delete what is not needed. The PDL produced will mix Ada and
  334. embedded English comment statements.  The PDL will be formatted by
  335. the indentation rules given in the Reference Manual for the Ada
  336. Programming Language (MIL-STD-1815A).
  337.  
  338. 2.3        File Management Functions
  339.  
  340. GAD provides automatic mechanisms to save and restore graphs
  341. between invocations of the tool.  The necessary graphics and
  342. semantic information is saved in a file, one graph per file.  An
  343. existing design file is accessed by selecting it during program
  344. initialization or by selecting the READ_FILE option on the Main
  345. Menu.  The current design diagram is saved by selecting the
  346. WRITE_FILE or EXIT options on the Main Menu.
  347.  
  348. 2.4        Supplemental and Supporting Functions
  349.  
  350. GAD provides a variety of supplemental operations to assist users
  351. with creation of Object Oriented Design Diagrams.
  352.  
  353. A HELP option is provided on each menu.  This facility displays
  354. general information concerning the current menu as well as
  355. specific information about each possible option for the menu
  356. currently being displayed.
  357.  
  358. The ATTRIBUTES menu provides a set of commands which control the
  359. color and line type attributes of the graphic entities which can
  360. be created.
  361.  
  362. The MENU BACKUP and MAIN MENU options provide direct access to the
  363. previously selected menu and MAIN Menu from any menu in which
  364. control can remain following the completion or aborting of a user
  365. operation/action.
  366.  
  367. GAD operation is terminated by the selection of the EXIT or QUIT
  368. option on the MAIN Menu.  The EXIT option will cause the current
  369. design diagram to be saved in a disk file.  The QUIT option will
  370. not preserve the current design diagram.
  371.  
  372. GAD provides pan and zoom capabilities, which are controlled by
  373. the PAN/ZOOM menu.  The PAN/ZOOM command provides access to this
  374. menu from throughout GAD.  The zoom feature will be geometric and
  375. will not add any increasing levels of logical detail.  Both pan
  376. and zoom operations are accomplished through a redefinition of the
  377. graph view window, and as such do not require hardware pan and
  378. zoom to work.
  379.  
  380. 3.        TECHNICAL DESCRIPTIONS
  381.  
  382. This section provides technical information under four major
  383. topics:  Ada Graphic Notation Conventions; Ada-based PDL
  384. Conventions; MMI Summary; and the Restrictions on the Graphic Ada
  385. Designer.  Supplementary lower level technical information is
  386. provided in Appendix B, Tool Configuration Requirements, and
  387. Appendix C, Tool Installation/Adaptation Features.
  388.  
  389. 3.1        Ada Graphic Notation Conventions
  390.  
  391. The Ada Graphic Notation supported by GAD is based on prior works
  392. by Booch and Buhr.  The notation uses symbols (icons) to represent
  393. Ada entities (e.g. subprograms), relative positioning of the icons
  394. to show the scoping relationships of the Ada entities, and various
  395. line types to show interrelationships between Ada entities.  This
  396. section describes the symbology and usage conventions which make
  397. up Ada Graphic Notation.
  398.  
  399. 3.1.1    Ada Graphic Entities
  400.  
  401. Ada Graphic Notation provides graphic entities (symbols) and
  402. conventions for describing Ada program structures.  The following
  403. basic entities are supported by GAD:
  404.  
  405.     o  Virtual Package
  406.     o  Package
  407.     o  Procedure
  408.     o  Function
  409.     o  Task
  410.  
  411. Each basic entity has associated with it a prologue, which is a
  412. textual description of its function and/or purpose.  The prologue
  413. is initially blank, and can be entered during the entity creation
  414. process and/or modified later.  The prologue is treated as
  415. comments during the generation of PDL.  Each basic entity can
  416. also contain additional annotating information, for example, an
  417. exported type declaration within a package.  The following
  418. annotating entities will exist to annotate basic entities:
  419.  
  420.     o  Executing Body
  421.     o  Task Entry Point (Task only)
  422.     o  Exported Type
  423.     o  Exported Object
  424.     o  Exported Exception
  425.     o  Exported Procedure
  426.     o  Exported Function
  427.     o  Exported Task Entry
  428.     o  Imported Virtual Package
  429.     o  Imported Package
  430.     o  Imported Procedure
  431.     o  Imported Function
  432.  
  433. It should be noted that the annotations are applicable to virtual
  434. packages and packages unless otherwise noted.  (see table 3-1 for
  435. the representation of the annotations).  The entities to which
  436. each annotation applies are consistent with the syntax and
  437. semantics of the Ada Language. (see the Reference Manual for the
  438. Ada Programming Language, MIL-STD-1815A).
  439.  
  440. The Ada Graphic Notation provides connections to establish
  441. visibility rules and/or control relationships between basic
  442. entities and other basic or annotating entities.  This corresponds
  443. to, for example, subprogram and task entry point calls.  The kinds
  444. of connections supported are:
  445.  
  446.     o  Unconditional Call
  447.     o  Timed Call (on task entry points only)
  448.     o  Conditional Call
  449.     o  Visibility Connection (equivalent to a use clause)
  450.     o  Export Connection (appears in unit's spec)
  451.  
  452. Certain information will be maintained on every basic and
  453. annotating entity.  This information consists of its name and its
  454. enclosing scope (containing object).  Other kinds of information
  455. will be maintained for certain entities as needed.  This includes
  456. information about:
  457.  
  458.     o  Generics (Packages, Subprograms)
  459.     o  Guard Conditions (Task Entry Points)
  460.     o  Formal Parameters (Subprograms or Task Entries)
  461.  
  462. 3.1.2    Entity Conventions
  463.  
  464. Ada Graphic Notation is made up of a set of conventions which
  465. describe the symbols (icons) used for each Ada entity and how
  466. these symbols are combined to represent Ada oriented designs.  The
  467. following subsections provide ASCII character approximations of
  468. the entity symbols.  The icons displayed and printed by the
  469. graphics terminal will be of a much higher quality than indicated
  470. here.
  471.  
  472. 3.1.2.1    Symbols
  473.  
  474. Names (identifiers in Ada terminology) are limited to 80
  475. characters (1 line of text) and are required to be valid Ada
  476. identifiers.  Names will be truncated on the graphic display to an
  477. asthetically appropriate length, but the full name will be
  478. preserved for PDL generation.  Names of basic entities will be
  479. truncated so that will not extend beyond the boundaries of the
  480. symbol, and names of annotating entities will be truncated to a
  481. predefined length (initially 8 characters).  (see table 3-1 for
  482. the representations of the annotating entities).
  483.  
  484. 3.1.2.1.1    Visibility Connection Indicator
  485.  
  486. Visibility Connection indicators originate from within the scope
  487. of the referencing entity.  The user will specify the starting and
  488. ending points, and then be allowed to free-form draw the line by
  489. specifying up to 20 intermediate points.  A Visibility Connection
  490.  
  491.  
  492.                Table 3-1.  Entity Name Descriptions
  493.  
  494. __________________________________________________________________
  495.     Representation      |        Description
  496. ______________________|___________________________________________
  497.                   |
  498.      ( name )           |    type declaration
  499.      : name :           |    object declaration
  500.      < name >           |    exception declaration
  501.      | name |           |    subprogram
  502.      / name /           |    task entry
  503.      / name[] /         |    task entry with parameters
  504.      % name %          |    imported virtual package
  505.      # name #          |    imported package
  506.      | name |           |    imported subprogram
  507.  
  508.      Note: name denotes the identifier associated with the entity
  509.            which will be truncated to 8 characters.
  510.  
  511. is shown as a dotted line with a 'V' at the starting point
  512. (origin) of the connection.  Visibility Connection indicators to
  513. imported entities will cause a 'use' clause to be generated in the
  514. PDL within the declarative section of the unit originating the
  515. connection.
  516.  
  517. 3.1.2.1.2    Export Connection Indicator
  518.  
  519. Export Connection indicators originate from an exported subprogram
  520. or task entry symbol and terminate at an entity within the
  521. enclosed scope which is an exported subprogram or task entry of
  522. the same type or an actual declaration of the export.  The user
  523. will specify the starting and ending points, and then be allowed
  524. to free-form draw the line by specifying up to 20 intermediate
  525. points.  An Export Connection is shown as a dotted line.  Export
  526. Connection indicators are used to show that a connected item
  527. should be placed in the specification (exported part) of the
  528. package which encloses it.
  529.  
  530. 3.1.2.1.3    Control Flow Indicator
  531.  
  532. Control Flow indicators originate from the executing body of the
  533. referencing entities (caller).  Special symbols are added to
  534. indicate the possible kinds of special calls:  CONDITIONAL and
  535. TIMED.  The user will specify the starting and ending points, and
  536. then be allowed to free-form draw the line by specifying up to 18
  537. intermediate points.
  538.  
  539.             Table 3-2.  Control Connector Descriptions
  540.  
  541. __________________________________________________________________
  542.     Representation      |        Description
  543. ______________________|___________________________________________
  544.                   |
  545.     -------          |  unconditional call
  546.     T------            |    timed call on a task entry
  547.      C------            |    conditional call on subprogram or entry
  548.  
  549. Control flow indicators to imported entities will cause a call
  550. statement to be generated in the PDL inside the body of the
  551. originating unit.
  552.  
  553. 3.1.2.1.4    Virtual Package Symbol
  554.  
  555. The following figure illustrates the virtual package entity
  556. symbol.  The size of the symbol is user determined.  The sides of
  557. the symbol are illustrated as the default attribute representation
  558. of dashed lines.
  559.  
  560. The Virtual Package has the same features as a package except that
  561. it cannot be a generic.
  562.  
  563.                     <name>
  564.                          - - - - - - - - - - -
  565.  
  566.                          |                   |
  567.  
  568.                          |                   |
  569.  
  570.                          |                   |
  571.  
  572.                          |                   |
  573.  
  574.                          - - - - - - - - - - -
  575.  
  576.                Figure  3-1.  Virtual Package Symbol
  577.  
  578.  
  579. 3.1.2.1.5    Package Symbol
  580.  
  581. Figure 3-2 illustrates the package entity symbol.  The size of the
  582. symbol is user determined.  The sides of the box symbol are
  583. illustrated as the default attribute setting of solid lines.
  584.  
  585.                     <name>
  586.                         ---------------------
  587.                         |                   |
  588.                         |                   |
  589.                         |                   |
  590.                         |                   |
  591.                         |                   |
  592.                         |                   |
  593.                         |                   |
  594.                         |                   |
  595.                         |                   |
  596.                         ---------------------
  597.  
  598.                       Figure 3-2.  Package Symbol
  599.  
  600. 3.1.2.1.6    Subprogram Symbols
  601.  
  602. The symbols for subprogram entities (procedures and functions) are
  603. shown in the figure below.  Calls are normally shown by an arrow
  604. pointing to the left-hand margin between the lines containing the
  605. name.  The name of a function is preceded by an '=' to show that
  606. it is assignable.
  607.  
  608.     ---------------------              ---------------------
  609.     |<name>             |              |=<name>            |
  610.     |-------------------|              |-------------------|
  611.     |                   |              |                   |
  612.     |                   |              |                   |
  613.     |                   |              |                   |
  614.     |                   |              |                   |
  615.     ---------------------              ---------------------
  616.  
  617.  Figure 3-3A. Procedure Symbol       Figure 3-3B. Function Symbol
  618.  
  619. 3.1.2.1.7    Task and Task Entry Points
  620.  
  621. The symbol for task and task entry point entities is shown in the
  622. figure below.  The size of the symbol is user determined.  The
  623. user may add as many entry points to the task as its size will
  624. permit. Entry points may be either guarded or unguarded.  The
  625. symbol '*' is used to designate guarded entry points.
  626.  
  627.  
  628.                       <name>
  629.                      ------------------
  630.                     /                /
  631.                 /<name>/            /
  632.                   /                /
  633.                /*<name2>/         /
  634.                 /                /
  635.                -----------------
  636.  
  637.           * indicates Guarded Entry Point
  638.  
  639.          Figure 3-4.  Task and Task Entry Points Symbols
  640.  
  641. 3.1.2.1.8    Package, Subprogram or Task Body Symbol
  642.  
  643. The symbol for executing bodies associated with package,
  644. subprogram or task entities is shown in the figure below as an
  645. approximation of the octagon actually used to represent this.
  646.  
  647.                          -----
  648.                          /     \
  649.                          \     /
  650.                          -----
  651.  
  652.                      Figure 3-5. Body Symbol
  653.  
  654. 3.1.2.1.9    Generics
  655.  
  656. The generic status of both packages and subprograms can be
  657. represented.  The symbol "gd" is placed on the graph of a generic
  658. declaration, and "gi <name_of_unit_instantiated>" is placed on the
  659. graph of a generic instantiation.  By convention, units which are
  660. generic instantiations are not allowed to contain any additional
  661. details.
  662.  
  663. 3.1.2.2    Usage
  664.  
  665. This section describes the usage conventions which govern how the
  666. Ada Graphic Notation symbols are combined to produce OODDs. These
  667. conventions, which are illustrated in the design example presented
  668. in Section 5, govern the placement of entities and the resulting
  669. syntactical and semantic implications.  The Ada Graphic Notation
  670. conventions conform to the rules of Ada syntax and semantics,
  671. and will be checked for and enforced by GAD in creating the OODDs.
  672.  
  673. Contained (nested) entities must be entirely inside the containing
  674. entity.  This convention is determined by and consistent with Ada
  675. scoping rules.
  676.  
  677. Annotating entites (such as objects or types that are imported/
  678. exported or task entry points) are drawn on the "edges" of the
  679. entity to which they are associated.  Imported entities are shown
  680. on the right-hand edge of an entity, and can only be created at
  681. the outer most scope.  The use of imports is shown in the PDL by a
  682. context ('with') clause, so the restriction is the outer most
  683. scope is consist with the rules of Ada.  Exported entities are
  684. shown on the left-hand side of an entity.  Exported entities
  685. represent the visible part (specification) of packages and virtual
  686. packages.
  687.  
  688. A visibility connection between a contained entity and an imported
  689. entity will result in the generation of the 'use' clause in the
  690. declarative section of the contained entity.  Exported subprograms
  691. are connected to the corresponding subprogram entity symbol inside
  692. the exporting package to show that the unit will be declared in
  693. the specification.  Export connections originate from the lower
  694. righthand side of export labels and connect to export symbols of
  695. subprograms within the scope of the entity to which the
  696. originating export label is attached.
  697.  
  698. Call connections originate from the body symbols of packages,
  699. subprograms or tasks.  Visibility Connections for packages can
  700. originate directly from the left-hand side of symbol (similar to
  701. imports).  Calls terminate at:  1) the appropriate subprogram
  702. export symbol, 2) at the left-hand edge of the box adjacent to the
  703. name of the subprogram, or 3) at the left-hand side of the entry
  704. point.
  705.  
  706. 3.1.3    Summary of Convention Restrictions
  707.  
  708. The following list summarizes the Ada Graphic Notation
  709. restrictions associated with this version of the GAD tool:
  710.  
  711.      1.  Subunit (i.e., is separate) compilation indications are
  712.          not supported. The specification and body of Ada entities
  713.          are both represented by the associated entity symbology.
  714.      2.  The maximum level of nesting supported is six (6) in any
  715.          design diagram.  This restriction is designed to limit
  716.          the detail in the OODD being created, because it is
  717.          SYSCON's experience that, if the level of nesting exceeds
  718.          6, then there is in all probability too much detail for
  719.          this level of design activity.
  720.      3.  An exported subprogram may be connected to no more than
  721.          one contained subprogram inside the exporting entity
  722.          (since a subprogram may have only one body inside the
  723.          declaring units body).  If it is not connected, then it
  724.          will be shown as a subunit in the PDL as a way of
  725.          defering detail.
  726.      4.  Task type entities are not supported.
  727.      5.  Local types and object entities associated with the body
  728.          of an entity (i.e. not exported or imported) are not
  729.          supported.
  730.      6.  Virtual packages cannot be generic instantiations or
  731.          declarations.
  732.      7.  Call connection can not be made to subprograms which are
  733.          not visible in the Ada sense to the originator of the
  734.          call.
  735.      8.  The overlapping of entities, including annotating labels,
  736.          is not a valid utilization of the conventions.  This is
  737.          because overlapping implies an ambiguous scope, which is
  738.          semantically incorrect.
  739.      9.  The user is permited to create overloaded entities within
  740.          the same scope, but correct resolution is not performed
  741.          during PDL generation.  If the user creates overloaded
  742.          subprograms, then the resultant Ada PDL will contain
  743.          homographs and, consequently, not compile correctly.
  744.      10. Subprogram parameter and generic status can not be shown
  745.          for subprograms which are only exported.  These
  746.          subprograms are shown as subunits during PDL Generation,
  747.          and care must be taken to avoid illegal overloading.
  748.  
  749. 3.2        Ada-Based PDL Conventions
  750.  
  751. The generated Ada PDL will have complete and correct Ada syntax
  752. and semantics.  The control and organizational structures will be
  753. in Ada and will correspond precisely to the OODD from which it was
  754. generated.  The Ada PDL will be compilable; this will be achieved
  755. by the use of embedded English comments to describe information
  756. not translatable to Ada (denoted by the symbol '--*', which is a
  757. compile time parameter), and the use of a SUPPORT_PACKAGE to
  758. define types and objects used to complete control structures and
  759. other definitions.  'With' and 'use' clauses for the support
  760. package are not automatically added to the PDL since they would
  761. detract from the readability of the generated PDL, but they can be
  762. requested as an option.
  763.  
  764. The support package is listed below:
  765.  
  766.    package SUPPORT_PACKAGE is
  767.  
  768.       type TBD_TYPE  is (TBD);    -- used as function return type
  769.       TBD_OBJECT     : TBD_TYPE;  -- the function return value
  770.       TBD_PARAMETERS : TBD_TYPE;  -- the subprogram calling
  771.                             -- parameters
  772.  
  773.       TBD_TIME      : DURATION;   -- for delay statements
  774.       TBD_CONDITION : BOOLEAN;    -- for conditional statements
  775.  
  776.    end SUPPORT_PACKAGE;
  777.  
  778. Certain aspects of the PDL generation are not obvious.  These
  779. aspects are listed below, along with how they will be handled.
  780.  
  781.      1.      Occurrences of declarations and usages of Virtual
  782.           Packages will be treated as normal packages with
  783.           comments following to indicate it is a virtual package.
  784.      2.    The code for Virtual Packages will show only exported
  785.           items in the specification and all enclosed code in the
  786.           body.  If nothing is exported, the specification will
  787.           be empty.
  788.      3.     The order of the calls generated in the PDL will
  789.           be arbitrary.  In the initial version, the exact order
  790.           produced will mirror the order in which the call
  791.           connections were added to the graph.
  792.      4.    References to imported entities by packages, subprograms
  793.           or tasks will result in the generation of context
  794.           clauses at the appropriate level.
  795.      5.    The PDL generator will not detect user entered PDL
  796.           errors, such as the use of duplicate identifiers.
  797.      6.    The case and length of the user input names will be
  798.           preserved during PDL generation.  All Ada reserved words
  799.           will be generated in lower case.
  800.      7.    Semantic errors may occur during compilation if the user
  801.           instantiates or imports units (e.g., imported procedure)
  802.           which are not present in the Ada program library being
  803.           used for compilation.
  804.      8.   If GAD generated PDL is compiled without the support
  805.           package, then all occurances of TBD structures will be
  806.           flagged as compilation errors.  This is intentionlly
  807.           done to assist the user in locating structures which
  808.           require further refinement.
  809.      9.   The order the compilations units appear in the generated
  810.           PDL will reflect the order in which they were created.
  811.           GAD will not place the compilation units in correct
  812.           compilation order.
  813.  
  814. 3.3        Man Machine Interface Summary
  815.  
  816. Figure 3-6 provides an overview of the GAD control menu
  817. organization.  This network structure is organized to facilitate
  818. the generation of graphic designs.  Menu selections are made by
  819. using the graphics cursor to pick the desired menu icon.  Drawing
  820. locations are determined by the selection of points on the design
  821. with the cursor control device (joydisc).  Keyboard input occurs
  822. only when text entries (entity names, convention symbol changes,
  823. etc.) are required.  Sufficient textual command prompting and
  824. status/response displays are provided to ease the operator's
  825. navigation through the menu network.
  826.  
  827. When a basic entity is created, a series of command prompts will
  828. lead the user through the steps needed to provide the basic
  829. information about the entity, including name, scope, and position.
  830. The specific textual displays are presented in Section 4 with each
  831. possible operation.  After an entity has been created, it can be
  832. annotated to show features such as imported entities,
  833. initialization section, and exported entities (e.g., types,
  834. objects, and exceptions).  A top-down approach to annotating the
  835. design is required.  For example, an entity can only be annotated
  836. after it has been created.
  837.  
  838. Only information which is currently displayable on the graph will
  839. be stored in the data structures and saved in the design file.  In
  840. some cases (e.g., names), the information may be abbreviated to
  841. permit the construction of esthetically pleasing graphs.
  842. Information that would normally be displayable will be disallowed
  843. if adding it to the graph would produce an inconsistent OODD
  844. (graph).
  845.  
  846.                                     ---------------
  847.         ---------------------------------->| PAN/ZOOM    |
  848.         |                      --------->| MENU        |
  849.         |                    |        ---------------
  850.         |                    |        ---------------
  851.         |                     |        | GENERIC     |
  852.         |        ---------------|-------->| STATUS MENU |
  853.         |        |            |        ---------------
  854.         |        |                |         ---------------
  855.         |        |                 |          | PARAMETER   |
  856.         |        |             |-------->| STATUS MENU |
  857.         |        |             |        ---------------
  858.         |        |            |        ---------------
  859.         |        |            |        | ENTRY PT    |
  860.         |    ----------         |-------->| STATUS MENU |
  861.         |    | DESIGN |         |           ---------------
  862.         |--->| MENU   |         |        ---------------
  863.         |    ----------            |            | CALL STATUS |
  864.         |        |              --------->| MENU        |
  865.         |        |                       ---------------
  866.     --------        |        --------------
  867.     | MAIN |        --------->| ANNOTATING |
  868.     | MENU |                | MENU       |
  869.     --------                --------------
  870.         |
  871.         |    --------------
  872.         ---->| ATTRIBUTES |
  873.             | MENU       |
  874.             --------------
  875.                 |
  876.                 |        ---------------
  877.                 --------->| CONVENTIONS |
  878.                         | MENU        |
  879.                         ---------------
  880.  
  881.                   MMI Menu Network Organization
  882.                             Figure 3-6
  883.  
  884.  
  885. An example is attempting to draw a contained entity (such as a
  886. task) that was not physically contained completely within a valid
  887. enclosing entity.
  888.  
  889. 3.3.1    Screen Formats
  890.  
  891. The GAD screen is separated into three basic parts which are: 1) a
  892. View Window onto the OODD being created or edited, 2) a Menu
  893. Window which displays the currently selectable command icons, and
  894. 3) an Alphanumeric Window which provides a two-line buffer for
  895. textual interaction between GAD and the user.  Figure 3-7
  896. illustrates the format of the screen for GAD.
  897.  
  898. 3.3.2    Operator Interactions
  899.  
  900. The approach to the MMI is to use graphics device hardware
  901. features as extensively as possible to reduce the number and types
  902. of user/keyboard manual operations.  However, the MMI is not
  903. dependent upon specific hardware characteristics.  When graphics
  904. input is being requested, the graphics cursor (crosshairs) will
  905. appear in the currently active window.  Selection of command menu
  906. options is performed by positioning the graphics cursor on the
  907. selected command icon and pressing an appropriate key to
  908. indicate that a selection has been made.  Marking locations during
  909. graphics operations will be performed similarly by positioning the
  910. graphics cursor and 'marking' the location.  During creation
  911. operations, the marked location is shown by a temporary token.
  912.  
  913. The keyboard will only be used to enter textual information such
  914. as names of files and the names of the entities being created or
  915. modified.  The command interaction (via the alphanumeric window)
  916. will prompt the user for keyboard information (names) after all
  917. other selected (marking) operations have been completed.
  918.     _________________________________________________________
  919.     |(Page)                                                 |
  920.     |                    (SCREEN)                           |
  921.     |       ----------------------------------------------  |
  922.     |       |-------- ---------------------------------- |  |
  923.     |       ||      | |       View Window              | |  |
  924.     |       || M    | |                                | |  |
  925.     |       || e    | |                                | |  |
  926.     |       || n    | |                                | |  |
  927.     |       || u    | |                                | |  |
  928.     |       ||      | |                                | |  |
  929.     |       || W    | |                                | |  |
  930.     |       || i    | |                                | |  |
  931.     |       || n    | |                                | |  |
  932.     |       || d    | |                                | |  |
  933.     |       || o    | |                                | |  |
  934.     |       || w    | |                                | |  |
  935.     |       ||      | |                                | |  |
  936.     |       ||      | |                                | |  |
  937.     |       |-------- ---------------------------------- |  |
  938.     |       |--------------------------------------------|  |
  939.     |       ||           Alphanumeric Window            ||  |
  940.     |       |--------------------------------------------|  |
  941.     |       ----------------------------------------------  |
  942.     |                                                       |
  943.     _________________________________________________________
  944.  
  945.      Page - Representation of the World Coordinate System
  946.      Screen -
  947.         Text     => 24 lines x 80 characters
  948.         Graphics => resolution 640 by 480
  949.      View Window -
  950.      Window through which the graphic page is viewed.  The entire
  951.      page can be displayed.  The actual view depends on the pan
  952.      and zoom selected.
  953.      Menu Window -
  954.      The left-hand border section of the screen used to display
  955.      command icons representing the available commands.
  956.      Alphanumeric Window -
  957.      The bottom section of the screen used for alphanumeric (Text)
  958.      I/O.  The window is extended for some operations (e.g., help
  959.      and error messages) and may overlap the view window.  The
  960.      overlapping text is removed after the user acknowledges that
  961.      the text has been read.
  962.  
  963.  
  964.               Figure 3-7 GAD Graphics Screen Format
  965.  
  966.  
  967. 3.3.3    Command Window Display Format
  968.  
  969. The Menus will appear on the screen in the left-hand border
  970. section of the screen as previously indicated in Figure 3-7.  The
  971. menus will consist of a series of graphic icons, one for each
  972. possible command selection option currently available.  The
  973. general form of the menu icons is shown below in Figure 3-8.
  974.  
  975.                             MENU WINDOW
  976.                        --------------------
  977.                        |     menu name    |
  978.                        |  --------------  |
  979.                        |  | COMMAND_01 |  |
  980.                        |  | COMMAND_02 |  |
  981.                        |  | COMMAND_03 |  |
  982.                        |  |            |  |
  983.                        |  |      o     |  |
  984.                        |  |      o     |  |
  985.                        |  |            |  |
  986.                        |  | COMMAND_nn |  |
  987.                        |  --------------  |
  988.                        --------------------
  989.  
  990.                Figure 3-8.  Menu Window Icon Format
  991.  
  992. It should be noted that the number of commands will vary depending
  993. on the menu.  Each 'COMMAND_xx' will be replaced by an appropriate
  994. abbreviation.  Each command, when selected, will be highlighted in
  995. the color red.  Nonselected icon names are displayed in black.
  996.  
  997. These menus will provide the primary communication mechanism
  998. between the user and the GAD program. The menu generation and/or
  999. refresh will be rapid because they will have been downloaded to
  1000. the terminal on startup and initialization.  The appropriate menu
  1001. will be made visible and selectable (and the old menu invisible
  1002. and non-selectable) as required. The menu aggregates and their
  1003. interrelationships are illustrated in Figure 3-6.
  1004.  
  1005. 3.3.4    Graphic Window Displays
  1006.  
  1007. The Graphic Window is used to display all or part of the graph
  1008. under development.  The graph will depict an Ada program using
  1009. color bit-mapped graphics to build the appropriate icon(s) of the
  1010. Ada Graphic Notation conventions.  The portion of the graph viewed
  1011. is controlled by the PAN / ZOOM menu, which can be used to alter
  1012. the magnification and location of the window's view onto the
  1013. entire graph.  The program initializes the Graphic Window to view
  1014. the upper left hand quarter of the graph page.  (Note:  the actual
  1015. initial view allows a small margin around the view so that labels
  1016. which extend beyond the view boundaries will not be prohibited.)
  1017.  
  1018.             --------------------------------------
  1019.             | ------------------                 |
  1020.             | |   INITIAL      |                 |
  1021.             | |   VIEW         |                 |
  1022.             | |                |                 |
  1023.             | |                |                 |
  1024.             | ------------------                 |
  1025.             |                                    |
  1026.             |                                    |
  1027.             |          draw page                 |
  1028.             |                                    |
  1029.             --------------------------------------
  1030.             Figure 3-9  Initial View in Graphic Window
  1031. 3.3.5    Alphanumeric Window Displays
  1032.  
  1033. The Alphanumeric Window is used to display prompts and enter
  1034. data.  The lower two lines of the screen are reserved for this
  1035. purpose.  When HELP is requested or error messages displayed, the
  1036. Alphanumeric Window is temporarily extended to include the entire
  1037. screen.  In these instances the text temporarily overlaps the OODD
  1038. displayed in the View window.
  1039.  
  1040. 3.4        Restrictions
  1041.  
  1042. The Graphic Ada Designer is intended to provide an efficient
  1043. mechanism for interactively creating Object Oriented Design
  1044. Diagrams (graphs) which correspond to valid Ada programs
  1045. (architecturally and semantically).  Although the program attempts
  1046. to guard against the creation of incorrect graphs, it is not
  1047. possible to efficiently prevent a user from creating every
  1048. possible incorrect graph.  This leads to two general types of
  1049. restrictions (or potential problems).
  1050.  
  1051.      1. The user may attempt to create a graph for which a valid
  1052.         Ada program equivalent does not exist .  If such an
  1053.         invalid graph is created, the resulting PDL will not
  1054.         compile, and may not be correct.  Known circumstances
  1055.         where invalid graphs can be created are:
  1056.         - Overloading of identifiers within the same scope
  1057.           resulting in homographs.
  1058.         - Instantiation of generic units for which the generic
  1059.           declarations do not exist (or are not visible).
  1060.         - The use of imported units (e.g., Imported Package) which
  1061.           have not been placed in the program library.
  1062.         - The creation of calls to subprograms which are generic
  1063.           declarations through the use of the exported subprogram
  1064.           facility.
  1065.  
  1066.      2. The user may create a valid graph with built-in scoping
  1067.         relation problems caused by overlapping various constructs
  1068.         (for example, causing labels to overlap other graphic
  1069.         entities).  Incorrect graphical scoping may produce
  1070.         incorrect results (for example, effectively hiding an
  1071.         entity which the user may want to select) or prohibit an
  1072.         otherwise correct operation (for example, a move may be
  1073.         prohibited because the program does not distinguish
  1074.         between invalid scoping relations which pre-exist and
  1075.         those which have been created by the move).  GAD has
  1076.         significant overlap protection incorporated in it, which
  1077.         may occassionaly frustrate a user during creation or move
  1078.         and resize operations when working with tightly packed
  1079.         diagrams.
  1080. 4.        GAD TOOL USAGE INFORMATION
  1081.  
  1082. 4.1        GAD Invocation
  1083.  
  1084. The GAD tool is invoked according to specific host system
  1085. requirements.  For a VAX/VMS system the DCL command "RUN GAD" is
  1086. required to load and execute the GAD image file.  Initially, a
  1087. welcome and title page will be displayed.  While the program is
  1088. initializing, the message
  1089.  
  1090.      PROGRAM INITIALIZATION
  1091.  
  1092. is displayed on the status line of the alphanumeric window.  When
  1093. the program has completed initialization, the prompt
  1094.  
  1095.      Enter the file name to be used (omit extension)
  1096.      FILE NAME =>
  1097.  
  1098. is displayed in the alphanumeric window.  The user should then
  1099. enter the session file name (without any extension).  If the name
  1100. already exists with the .GPH extension, that file will be read in
  1101. and displayed for further work.  The program will create a new
  1102. file (or file version) with that name when the program is
  1103. terminated with the EXIT command.  The MAIN menu will appear when
  1104. user operation is available.
  1105.  
  1106. 4.2        Menu Displays
  1107.  
  1108. Figure 4-1 shows the organization of the menus used by GAD.  The
  1109. following subsections provide detailed descriptions of each of the
  1110. menu command options, associated textual prompts and status
  1111. response messages.  References to other sections of this document
  1112. are made to indicate where additional material can be located.
  1113.                         ----------------------------> PDL STATUS--
  1114.  ----MAIN MENU----      |
  1115.  | HELP          |      |
  1116.  |               |      |
  1117.  | PAN / ZOOM    |    ---------
  1118.  |               |    | |     |             ---+----> GENERIC MENU--
  1119. *| DESIGN        |----- | ---DESIGN MENU--- |  |
  1120.  | DISPLAY ATTRB |---   | | HELP          | |  |
  1121.  | GENERATE PDL  |--|---- | MENU BACKUP   | |  |
  1122.  | PRINT         |  |     | PAN / ZOOM    | |  |
  1123.  | READ FILE     |  |     |               | |  +----> PARAM STATUS--
  1124.  | WRITE FILE    |  |    *| VIRTUAL PKG   | |  |
  1125.  | QUIT, NO SAVE |  |     | PACKAGE       |--  |
  1126.  | EXIT & SAVE   |  |     | PROCEDURE     |----+
  1127.  ----STAY--------   |     | FUNCTION      |-----
  1128.      ----------------     | TASK          |      /--> ENTRY PT MENU--
  1129.      |                    | ENTRY POINT   |-----/
  1130.  ---ATTRB MENU----        | XECUTING BODY |-------
  1131.  |               |        | IMPORT/EXPORT |      |
  1132.  | HELP          |        | CALL CONN     |----- |
  1133.  | MENU BACKUP   |        | VISIBLE CONN  |    | ---> IMPORT/EXPORT--
  1134.  | PAN / ZOOM    |        | EXPORTS CONN  |    |
  1135.  |               |        |               |    |
  1136.  | VIRTUAL PKGS  |---     | DELETE CONN   |--- |
  1137.  | PACKAGES      |--|     | DELETE ENTITY |--+ |
  1138.  | SUBPROGRAMS   |--|     | MOVE/RESIZE   |  | |
  1139.  | TASKS         |--|     | MODIFY ENTITY |  | -----> CALL MENU--
  1140.  |               |  |     ---STAY----------  |
  1141.  | CALL CONN     |--|                        |
  1142.  | VISIBLE CONN  |--|     ----PAN / ZOOM---  |
  1143.  | EXPORTS CONN  |--|     | HELP          |  |
  1144.  ----STAY---------  |     | MENU BACKUP   |  -------> CONFIRM MENU--
  1145.      _______________|     |               |
  1146.      |                    | PAN UP        |
  1147.  ----COLOR LINE------     | PAN DOWN      |
  1148. *| GREEN            |     | PAN LEFT      |
  1149.  | BLUE             |     | PAN RIGHT     |
  1150.  | VIOLET           |     |               |
  1151.  | RED              |     | ZOOM IN       |
  1152.  | ORANGE           |     | ZOOM OUT      |
  1153.  | YELLOW           |     |               |
  1154.  | BLACK            |     | MAX PAN UP    |
  1155.  |                  |     | MAX PAN DOWN  |
  1156.  | SOLID LINE ______|     | MAX PAN LEFT  |
  1157.  | DASHED LINE _ _ _|     | MAX PAN RIGHT |
  1158.  | DOTTED LINE .....|     |               |
  1159.  ----RETURN----------     | MAX ZOOM IN   |
  1160.                           | MAX ZOOM OUT  |
  1161.                           ---STAY----------
  1162.  
  1163.  
  1164.                     Figure 4-1  MENU NETWORK
  1165.  
  1166.      ----GENERIC MENU--                 ----CALL MENU-----
  1167.      | HELP           |                 | HELP           |
  1168.      | MENU BACKUP    |                 | MENU BACKUP    |
  1169.     *| DECLARATION    |                *| UNCONDITIONAL  |
  1170.      | GENERIC DECLA  |                 | CONDITIONAL    |
  1171.      | GENERIC INSTA  |                 | TIMED          |
  1172.      ----RETURN--------                 ----RETURN--------
  1173.  
  1174.      ----PARAM STATUS--                 ----PDL STATUS----
  1175.      | HELP           |                 | HELP           |
  1176.      | MENU BACKUP    |                 | MENU BACKUP    |
  1177.     *| HAS PARAMS     |                *| WITH SUPPORT   |
  1178.      | NO PARAMS      |                 | NO SUPPORT     |
  1179.      ----RETURN--------                 ----RETURN--------
  1180.  
  1181.      ---ENTRY PT MENU--                 ---CONFIRM MENU---
  1182.      | HELP           |                 | HELP           |
  1183.      | MENU BACKUP    |                 | MENU BACKUP    |
  1184.     *| UNGUARDED      |                *| CANCEL         |
  1185.      | GUARDED        |                 | CONFIRM        |
  1186.      ----RETURN--------                 ----RETURN--------
  1187.  
  1188.      ---IMPORT/EXPORT--
  1189.      | HELP           |
  1190.      | MENU BACKUP    |
  1191.      | MAIN MENU      |
  1192.      |                |
  1193.     *| EXPORT PROC    |
  1194.      | EXPORT FUNC    |
  1195.      | EXPORT TYPE    |
  1196.      | EXPORT OBJECT  |
  1197.      | EXPORT EXCEPT  |
  1198.      | EXPORT ENTRY   |
  1199.      |                |
  1200.      | IMPORT VT PKG  |
  1201.      | IMPORT PKG     |
  1202.      | IMPORT PROC    |
  1203.      | IMPORT FUNC    |
  1204.      |                |
  1205.      | CALL CONN      |
  1206.      | ADA USE CONN   |
  1207.      | SPEC CONN      |
  1208.      ----STAY----------
  1209.  
  1210.  
  1211.                       Figure 4-1  MENU NETWORK continued
  1212. The following legend provides additional information relevant to
  1213. Figures 4-1 and 4-2.
  1214.  
  1215.     --    The "*" signifies the initial cursor location.
  1216.      --    The generic, parameter status, entry point, and call
  1217.           menus also contain an "ABORT & BACKUP" command.
  1218.     --    STAY/RETURN is the action taken after menu operation.
  1219.     --    The PAN / ZOOM menu is directly accessible when stated.
  1220.     --    HELP is available on every menu and every command.
  1221.  
  1222. 4.2.1    MAIN Menu Display
  1223.  
  1224. The following paragraphs provide detailed descriptions of the MAIN
  1225. menu command options.
  1226.  
  1227. HELP -  Access the Command Help Processor.  The HELP descriptions
  1228. for the MAIN MENU are provided in Appendix A.
  1229.  
  1230. PAN / ZOOM - Access the Pan / Zoom Menu.  Control will be passed
  1231. to the Pan / Zoom menu processor (reference section 4.2.4).
  1232.  
  1233. DESIGN -  Access the Design Menu Processor.  Control will be
  1234. passed to the DESIGN menu processor (reference Section 4.2.5).
  1235.  
  1236. DISPLAY ATTRB -  Access the Attributes Menu.  Control will be
  1237. passed to the ATTRIBUTES menu (reference Section 4.2.2).
  1238.  
  1239. GENERATE PDL  - Generate the PDL for the Current OODD.  Control
  1240. will be temporarily passed to the PDL STATUS menu to determine if
  1241. the Support Package should be included, and then to the PDL
  1242. Generator.  The PDL associated with the current OODD graph will be
  1243. generated and placed in an ASCII text file with the current
  1244. session file name and the extension ".PDL".
  1245.  
  1246. PRINT -  Print the Contents of the View Window.  The contents of
  1247. the View window will be dumped to the local print device.  No
  1248. menus will be displayed for this operation.  The print operation
  1249. is a local terminal hardware operation, and the user should insure
  1250. that the graphics printer is correctly connected to the terminal
  1251. and turned on.  Prior to the actual print operation beginning, GAD
  1252. will expand the View window to take up the entire screen, and
  1253. remove the Menu window from view.  When the print operation has
  1254. been completed, the windows will be restored to their previous
  1255. state.
  1256.  
  1257. READ_FILE  -  Read In an Existing Design File.  The program will
  1258. prompt the user for the name of a file to be read in.  The current
  1259. graph will be deleted (and therefore lost), and the graph in the
  1260. user specified file will be displayed in the Graph View window.
  1261. The read operation updates the current value of the session file
  1262. name, so that if the EXIT or GENERATE_PDL commands are used, it
  1263. will be the file name used.
  1264.  
  1265. WRITE_FILE - Write Out the Current Graph to a File.  The user will
  1266. be prompted for a filename, to which the current graph tree will
  1267. be written.  WRITE_FILE does not delete or erase the current graph
  1268. or Graph View Window, and does not alter the value of the session
  1269. file name.
  1270.  
  1271. QUIT -  Terminate GAD Operation Without Saving The Design.  The
  1272. GAD tool operation will be terminated and control passed back to
  1273. the host operating system.  Because the current design in the View
  1274. Window will not be saved, this operation will be confirmed prior
  1275. to its completion.
  1276.  
  1277. EXIT -  Terminate GAD Operation and Save the Design.  GAD
  1278. operation will be terminated and control passed to the host
  1279. operating system.  The current graph will be written to a new
  1280. version of the current session file.
  1281.  
  1282. 4.2.2    ATTRIBUTES Menu
  1283.  
  1284. GAD will generate the graphs according to a set of Display
  1285. Attributes which will control the symbols used to depict the
  1286. entities being drawn.  Table 4-1 shows the Display Attributes and
  1287. their default settings.
  1288.  
  1289.             Table 4-1 Attributes and Default Settings
  1290.  
  1291. ---------------------------------------------------------
  1292.    Name                        |    Symbol     |   Color
  1293. ----------------------------------------------------------
  1294.    Conditional Call Symbol*    |    'C'        |   [line]
  1295.    Call Connection Line        |    solid      |   black
  1296.    Visibility Connection Line  |    dotted     |   black
  1297.    Export Connection Line      |    dashed     |   black
  1298.    Guarded Entry Symbol*       |    '*'        |   [label]
  1299.    Package Symbol              |    solid      |   black
  1300.    Subprogram Symbol           |    solid      |   black
  1301.    Task Symbol                 |    solid      |   black
  1302.    Timed Call Symbol*          |    'T'        |   [line]
  1303.    Virtual Package Symbol      |    dashed     |   black
  1304. ---------------------------------------------------------
  1305.       * -> compile time parameter
  1306.       [entity] -> the color is derived from the named entity
  1307.  
  1308.  
  1309. If the user desires to alter the current setting, it is
  1310. recommended that it be altered prior to the start of the editing
  1311. session.  Changes to the settings are preserved between sessions,
  1312. but color and line type changes in the middle of an edit session
  1313. will not result in the updating of currently drawn graphic
  1314. entities.
  1315.  
  1316. The following paragraphs provide detailed descriptions of the
  1317. ATTRIBUTES menu command options.
  1318.  
  1319. HELP -  Access the Command Help Processor.  The HELP description
  1320. for the DESIGN MENU is provided in Appendix A.
  1321.  
  1322. MENU BACKUP - Return to the Previous Higher Menu.  Selection of
  1323. this option indicates to the ATTRIB menu processor that design
  1324. operations are complete.  Control will return to MAIN menu
  1325. processor (reference section 4.2.1).
  1326.  
  1327. PAN / ZOOM - Access the Pan / Zoom Menu.  Control will be passed
  1328. to the Pan / Zoom menu processor (reference section 4.2.4).
  1329.  
  1330. VIRTUAL PKG -  View and Set the Attributes of Virtual Package
  1331. Entities.  Transfer control to the COLOR/LINE menu to allow
  1332. viewing and alteration of the attributes of a Virtual Package
  1333. entity.
  1334.  
  1335. PACKAGES -  View and Set the Attributes of Package Entities.
  1336. Transfer control to the COLOR/LINE menu to allow viewing and
  1337. alteration of the attributes of a Package entity.
  1338.  
  1339. SUBPROGRAMS -  View and Set the Attributes of Subprogram Entities.
  1340. Transfer control to the COLOR/LINE menu to allow viewing and
  1341. alteration of the attributes of a Subprogram entity.
  1342.  
  1343. TASKS -  View and Set the Attributes of Task Entities.  Transfer
  1344. control to the COLOR/LINE menu to allow viewing and alteration of
  1345. the attributes of a Task entity.
  1346.  
  1347. CALL CONN -  View and Set the Attributes of Call Connections.
  1348. Transfer control to the COLOR/LINE menu to allow viewing and
  1349. alteration of the attributes of call connections.
  1350.  
  1351. VISIBLE CONN -  View and Set the Attributes of Data Connections.
  1352. Transfer control to the COLOR/LINE menu to allow viewing and
  1353. alteration of the attributes of data connections.
  1354.  
  1355. EXPORTS CONN - View and Set the Attributes of Export Connections.
  1356. Transfer control to the COLOR/LINE menu to allow viewing and
  1357. alteration of the attributes of export connections.
  1358.  
  1359.  
  1360. 4.2.3    COLOR/LINE Menu Display
  1361.  
  1362. The following paragraphs provide detailed descriptions of the
  1363. COLOR/LINE menu command options.
  1364.  
  1365. The message (<CURRENT COLOR IS XXX and CURRENT LINE TYPE IS YYY>)
  1366. is displayed upon entering this menu.
  1367.  
  1368. HELP -  Access the Command Help Processor.  The HELP description
  1369. for the COLOR MENU is provided in Appendix A.
  1370.  
  1371. BACKUP - Return to the Previous Higher Menu.  Selection of this
  1372. option indicates to the COLOR/LINE menu processor that operations
  1373. are complete.  Control will return to ATTRIBUTES menu processor
  1374. (reference section 4.2.2).
  1375.  
  1376. MAIN MENU - Return to the MAIN MENU.  Selection of this option
  1377. indicates to the COLOR/LINE menu processor that operations are
  1378. complete.  Control will return to the MAIN menu processor
  1379. (reference section 4.2.1).
  1380.  
  1381. GREEN -  Change Color Attribute to Green.
  1382.  
  1383. BLUE -  Change Color Attribute to Blue.
  1384.  
  1385. VIOLET -  Change Color Attribute to Violet.
  1386.  
  1387. RED -  Change Color Attribute to Red.
  1388.  
  1389. ORANGE -  Change Color Attribute to Orange.
  1390.  
  1391. YELLOW -  Change Color Attribute to Yellow.
  1392.  
  1393. BROWN -  Change Color Attribute to Brown.
  1394.  
  1395. BLACK -  Change Color Attribute to Black.
  1396.  
  1397. SOLID LINE - Change Line Symbol Attribute to Solid Line.
  1398.  
  1399. DASHED LINE -  Change Line Symbol Attribute to Dashed Line.
  1400.  
  1401. DOTTED LINE -  Change Line Symbol Attribute to Dotted Line.
  1402.  
  1403. Upon selection of any color or line type option, the attribute
  1404. being modified will change to the selected color or line type and
  1405. control will remain in the COLOR/LINE menu processor until the
  1406. BACKUP or the MAIN MENU command is selected.
  1407.  
  1408.  
  1409. 4.2.4    PAN / ZOOM Menu
  1410.  
  1411. The following paragraphs provide detailed descriptions of the
  1412. PAN / ZOOM menu command options.
  1413.  
  1414. HELP -  Access the Command Help Processor.  The HELP description
  1415. for the CREATE menu is provided in Appendix A.
  1416.  
  1417. MENU BACKUP - Return to the Previous Higher Menu.  Selection of
  1418. this option indicates to the PAN / ZOOM menu processor that design
  1419. operations are complete.  Control will return to invoking menu
  1420. processor.
  1421.  
  1422. PAN UP - Move the View Window Up on the Page.
  1423.  
  1424. PAN DOWN - Move the View Window Down the Page.
  1425.  
  1426. PAN LEFT - Move the View Window Left on the Page.
  1427.  
  1428. PAN RIGHT - Move the View Window Right on the Page.
  1429.  
  1430. ZOOM IN - Increase Magnification of the View Window.
  1431.  
  1432. ZOOM OUT - Decrease Magnification of the View Window.
  1433.  
  1434. MAX PAN UP - Move the View Window to the Top of the Page.
  1435.  
  1436. MAX PAN DOWN - Move the View Window to the Bottom of the Page.
  1437.  
  1438. MAX PAN LEFT - Move the View Window to the Left Side of the Page.
  1439.  
  1440. MAX PAN RIGHT - Move the View Window to the Right Side of the
  1441. Page.
  1442.  
  1443. MAX ZOOM IN - Increase Magnification of the View Window to the
  1444. Largest Value.
  1445.  
  1446. MAX ZOOM OUT - Decrease Magnification of the View Window to the
  1447. Smallest Value.
  1448.  
  1449.  
  1450. 4.2.5    DESIGN Menu Display
  1451.  
  1452. The following paragraphs provide detailed descriptions of the
  1453. DESIGN menu command options.
  1454.  
  1455. HELP -  Access the Command Help Processor.  The HELP description
  1456. for the DESIGN menu is provided in Appendix A.
  1457.  
  1458. MENU BACKUP - Return to the Previous Higher Menu.  Selection of
  1459. this option indicates to the DESIGN menu processor that design
  1460. operations are complete.  Control will return to MAIN menu
  1461. processor (reference section 4.2.1).
  1462.  
  1463. PAN / ZOOM - Access the Pan / Zoom Menu.  Control will be passed
  1464. to the Pan / Zoom menu processor (reference section 4.2.4).
  1465.  
  1466. VIRTUAL PKG -  Create a Virtual Package Entity.  This command will
  1467. cause a virtual package to be created.  The user will be prompted
  1468. for the upper left-hand and lower right-hand points to be used for
  1469. the graphic entity.  If the points are valid (e.g., within the
  1470. same scope), then the graphic entity will be drawn, and the user
  1471. will be prompted for the virtual package's name.  The name will be
  1472. rejected until a valid Ada identifier is entered.  The user will
  1473. be prompted to enter up to three lines of text for a prologue.
  1474.  
  1475. PACKAGE -  Create a Package.  This command will cause a package to
  1476. be created.  Control will be transfered to the GENERIC menu to
  1477. obtain the generic status of the package.  The user will be
  1478. prompted for the upper left-hand and lower right-hand points to be
  1479. used for the graphic entity.  If the points are valid (e.g.,
  1480. within the same scope), then the graphic entity will be drawn, and
  1481. the user will be prompted for the package's name.  The name will
  1482. be rejected until a valid Ada identifier is entered.  The user
  1483. will be prompted to enter up to three lines of text for a
  1484. prologue.
  1485.  
  1486. PROCEDURE -  Create a Procedure.  This command will cause a
  1487. procedure to be created.  Control will be transfered to the
  1488. GENERIC menu to obtain the generic status of the procedure, and to
  1489. the PARAM status menu to obtain the parameter status of the
  1490. procedure.  The user will be prompted for the upper left-hand and
  1491. lower right-hand points to be used for the graphic entity.  If the
  1492. points are valid (e.g., within the same scope), then the graphic
  1493. entity will be drawn, and the user will be prompted for the
  1494. procedure's name.  The name will be rejected until a valid Ada
  1495. identifier is entered.  The user will be prompted to enter up to
  1496. three lines of text for a prologue.
  1497.  
  1498. FUNCTION -  Create a Function.  This command will cause a
  1499. function to be created.  Control will be transfered to the GENERIC
  1500. menu to obtain the generic status of the function, and to the
  1501. PARAM status menu to obtain the parameter status of the function.
  1502. The user will be prompted for the upper left-hand and lower right-
  1503. hand points to be used for the graphic entity.  If the points are
  1504. valid (e.g., within the same scope), then the graphic entity will
  1505. be drawn, and the user will be prompted for the function's name.
  1506. The name will be rejected until a valid Ada identifier is entered.
  1507. When the name is displayed, it will be proceeded by an "=" to show
  1508. that it is a function.  The user will then be prompted to enter up
  1509. to three lines of text for a prologue.
  1510.  
  1511. TASK -  Create a Task.  This command will cause a task to be
  1512. created.  The user will be prompted for the upper left-hand and
  1513. lower right-hand points to be used for the graphic entity.  If the
  1514. points are valid (e.g., within the same scope), then the graphic
  1515. entity will be drawn, and the user will be prompted for the
  1516. task's name.  The name will be rejected until a valid Ada
  1517. identifier is entered.  The user will be prompted to enter up to
  1518. three lines of text for a prologue.
  1519.  
  1520. ENTRY POINT - Create a Task Entry Point.  This command will cause
  1521. a task entry point to be created.  Control will be transferred to
  1522. the ENTRY_PT status menu to obtain whether it is guarded, and to
  1523. the PARAM status menu to obtain the parameter status of the entry
  1524. point.  The user will be prompted for the scope and Y-location of
  1525. the entry point label, which will be attached to the left-hand
  1526. side of the enclosing task.  If the point is valid (e.g., within
  1527. the a task), then the graphic entity will be drawn, and the user
  1528. will be prompted for the task entry point's name.  The name will
  1529. be rejected until a valid Ada identifier is entered.
  1530.  
  1531. XECUTING BODY -  Create a Body.  This command will cause an
  1532. executable body to be created.  The user will be prompted for the
  1533. upper left-hand and lower right-hand points to be used for the
  1534. graphic entity.  If the points are valid (e.g., within the same
  1535. scope and within an entity which may have a body and does not
  1536. already have one), then the graphic entity will be drawn.
  1537.  
  1538. IMPORT/EXPORT  - Access the IMPORT/EXPORT Menu.  Selection of this
  1539. option transfers control to the IMPORT/EXPORT menu (reference
  1540. section 4.2.6).
  1541.  
  1542. CALL CONN -  Create a Call Connection.  The program will create a
  1543. call connection between the two specified points.  The program
  1544. will prompt the user for the starting point, which must be inside
  1545. a body.  The program will prompt the user for the ending point
  1546. which must be a subprogram, an exported subprogram label, or an
  1547. entry point with the correct visibility.
  1548.  
  1549. VISIBLE CONN -  Create a Data Dependency Connection.  The program
  1550. will create a data connection between the two specified points.
  1551. The program will prompt the user for the starting point, which
  1552. must be inside an Ada compilation unit (e.g., package or
  1553. subprogram).  The program will prompt the user for the ending
  1554. point which must be inside a package, virtual package, imported
  1555. package label, or an imported virtual package label.
  1556.  
  1557. EXPORTS CONN -  Create a Exports Connection.  The program will
  1558. create an export connection between the two specified points.  The
  1559. program will prompt the user for the starting point, which must be
  1560. inside an export label.  The program will prompt the user for the
  1561. ending point which must be inside an exportable subprogram or a
  1562. export label within the current scope.
  1563.  
  1564. DELETE CONN - Select and Delete a Line Connection.  The program
  1565. will prompt the user for the starting point.  If the program can
  1566. determine one line from the starting point, then that line is
  1567. highlighted for deletion.  If multiple lines are determined from
  1568. the start point, then the end point is requested and the line is
  1569. highlighted for deletion.  The user will then be prompted for
  1570. confirmation using the CONFIRM menu.  If the user confirms the
  1571. operation, the line connection will be deleted.  If the user
  1572. cancels the delete, then the graph will be restored to its prior
  1573. state.
  1574.  
  1575. DELETE ENTITY -  Select and Delete A Basic Entity.  The program
  1576. will delete all entities within the scope the user specifies.  The
  1577. program will prompt the user for the scope and, if the scope is
  1578. valid, will highlight the scope the be deleted.  The user will
  1579. then be prompted for confirmation using the CONFIRM menu.  If the
  1580. user confirms the operation, the scope will be deleted.  If the
  1581. user cancels the delete, then the graph will be restored to its
  1582. prior state.
  1583.  
  1584. MOVE/RESIZE -  Move and Resize the Selected Scope.  The program
  1585. will move and resize all entities within the scope the user
  1586. specifies.  The program will prompt the user for the scope and, if
  1587. the scope is valid, will highlight the scope (and enclosed
  1588. entities) to be moved and resized.  The program will then prompt
  1589. for a new location for the scope to be moved, in the form of a new
  1590. upper left-hand corner for the outer most enclosing entity.  The
  1591. program will then prompt for a new size for the scope, in the form
  1592. of a new lower right-hand corner for the outermost enclosing
  1593. entity.  On terminals which support cursor positioning, the cursor
  1594. will be positioned to the point which would result in the same
  1595. size.  The program will translate the entire selected scope, if
  1596. doing so will not alter the semantics of the current graph.  For
  1597. each connection severed by the resize (one end point inside the
  1598. scope and the other outside of the scope), the user will be
  1599. prompted to redraw the connection or accept the automatically
  1600. redrawn connection.
  1601.  
  1602. MODIFY ENTITY - Alter the Attributes of an Existing Entity.  The
  1603. program will alter the attributes of the user selected entity.
  1604. The user will be prompted to select the entity to be modified and
  1605. will then be allowed to alter the name, prologue, parameter
  1606. status, etc. of the entity.  At any time during modification, the
  1607. use of a <RETURN> will result in the preservation of the
  1608. previously existing value.
  1609.  
  1610.  
  1611. 4.2.6    IMPORT/EXPORT Menu
  1612.  
  1613. The following paragraphs provide detailed descriptions of the
  1614. IMPORT/EXPORT Menu command options.
  1615.  
  1616.  
  1617. HELP -  Access the Command Help Processor.  The HELP description
  1618. for the IMPORT/EXPORT menu are provided in Appendix A.
  1619.  
  1620. MENU BACKUP - Return to the Previous Higher Menu.  Selection of
  1621. this option indicates to the IMPORT/EXPORT menu processor that
  1622. operations are complete.  Control will return to DESIGN menu
  1623. processor (reference Section 4.2.5).
  1624.  
  1625. PAN / ZOOM - Access the Pan / Zoom Menu.  Control will be passed
  1626. to the Pan / Zoom menu processor (reference Section 4.2.4).
  1627.  
  1628. MAIN MENU - Return to the Main Menu.  Selection of this option
  1629. indicates to the IMPORT/EXPORT menu processor that operations are
  1630. to be aborted.  Any appropriate data structures are returned to a
  1631. stable state.  Control will be returned to MAIN menu processor
  1632. (reference Section 4.2.1).
  1633.  
  1634. EXPORT PROC - Create an Exported Procedure Label.  The program
  1635. will prompt the user for a point marking the scope and Y-location
  1636. of the export label.  The operation will be aborted if the scope
  1637. containing the point is not within a virtual package or package.
  1638. The user will be prompted for the name until a valid Ada
  1639. identifier is entered.  The label's graphic entity will then be
  1640. drawn.
  1641.  
  1642. EXPORT FUNC - Create an Exported Function Label.  The program will
  1643. prompt the user for a point marking the scope and Y-location of
  1644. the export label. The operation will be aborted if the scope
  1645. containing the point is not within a virtual package or package.
  1646. The user will be prompted for the name until a valid Ada
  1647. identifier is entered.  The label's graphic entity will then be
  1648. drawn.
  1649.  
  1650. EXPORT TYPE - Create an Exported Type Label.  The program will
  1651. prompt the user for a point marking the scope and Y-location of
  1652. the export label. The operation will be aborted if the scope
  1653. containing the point is not within a virtual package or package.
  1654. The user will be prompted for the name until a valid Ada
  1655. identifier is entered.  The label's graphic entity will then be
  1656. drawn.
  1657.  
  1658. EXPORT OBJECT - Create an Exported Object Label.  The program will
  1659. prompt the user for a point marking the scope and Y-location of
  1660. the export label. The operation will be aborted if the scope
  1661. containing the point is not within a virtual package or package.
  1662. The user will be prompted for the name until a valid Ada
  1663. identifier is entered.  The label's graphic entity will then be
  1664. drawn.
  1665.  
  1666. EXPORT EXCEPT - Create an Exported Exception Label.  The program
  1667. will prompt the user for a point marking the scope and Y-location
  1668. of the export label. The operation will be aborted if the scope
  1669. containing the point is not within a virtual package or package.
  1670. The user will be prompted for the name until a valid Ada
  1671. identifier is entered.  The label's graphic entity will then be
  1672. drawn.
  1673.  
  1674. EXPORT ENTRY - Create an Exported Entry Point Label.  The program
  1675. will prompt the user for a point marking the scope and Y-location
  1676. of the export label.  The operation will be aborted if the scope
  1677. containing the point is not within a virtual package or package.
  1678. The user will be prompted for the name until a valid Ada
  1679. identifier is entered.  The label's graphic entity will then be
  1680. drawn.  The program will then ask the user to connect the exported
  1681. entry point to task entry point or exported entry point label
  1682. within the current scope.  If a valid connection is not
  1683. established then the label will be deleted (note: stand alone
  1684. exported entry points are not permitted).
  1685.  
  1686. IMPORT VT PKG - Create an Imported Virtual Package Label.  The
  1687. program will prompt the user for a point marking the scope and Y-
  1688. location of the import label. The operation will be aborted if the
  1689. scope containing the point is not within a virtual package or
  1690. package.  The user will be prompted for the name until a valid Ada
  1691. identifier is entered.  The label's graphic entity will then be
  1692. drawn.
  1693.  
  1694. IMPORT PKG - Create an Imported Package Label.  The program will
  1695. prompt the user for a point marking the scope and Y-location of
  1696. the import label. The operation will be aborted if the scope
  1697. containing the point is not within a virtual package or package.
  1698. The user will be prompted for the name until a valid Ada
  1699. identifier is entered.  The label's graphic entity will then be
  1700. drawn.
  1701.  
  1702. IMPORT PROC - Create an Imported Procedure Label.  The program
  1703. will prompt the user for a point marking the scope and Y-location
  1704. of the import label. The operation will be aborted if the scope
  1705. containing the point is not within a virtual package or package.
  1706. The user will be prompted for the name until a valid Ada
  1707. identifier is entered.  The label's graphic entity will then be
  1708. drawn.
  1709.  
  1710. IMPORT FUNC - Create an Imported Function Label.  The program will
  1711. prompt the user for a point marking the scope and Y-location of
  1712. the import label. The operation will be aborted if the scope
  1713. containing the point is not within a virtual package or package.
  1714. The user will be prompted for the name until a valid Ada
  1715. identifier is entered.  The label's graphic entity will then be
  1716. drawn.
  1717.  
  1718. CALL CONN -  Create a Call Connection.  The program will create a
  1719. call connection between the two specified points.  The program
  1720. will prompt the user for the starting point, which must be inside
  1721. a body.  The program will prompt the user for the ending point
  1722. which must be a subprogram, an exported subprogram label, or an
  1723. entry point with the correct visibility.
  1724.  
  1725. VISIBLE CONN -  Create a Data Dependency Connection.  The program
  1726. will create a data connection between the two specified points.
  1727. The program will prompt the user for the starting point, which
  1728. must be inside an Ada compilation unit (e.g., package or
  1729. subprogram).  The program will prompt the user for the ending
  1730. point which must be inside a package, virtual package, imported
  1731. package label, or an imported virtual package label.
  1732.  
  1733. EXPORTS CONN -  Create a Exports Connection.  The program will
  1734. create an export connection between the two specified points.  The
  1735. program will prompt the user for the starting point, which must be
  1736. inside an export label.  The program will prompt the user for the
  1737. ending point which must be inside an exportable subprogram or a
  1738. export label within the current scope.
  1739.  
  1740.  
  1741. 4.2.7    GENERIC Menu
  1742.  
  1743. The following paragraphs provide detailed descriptions of the
  1744. GENERIC menu command options.
  1745.  
  1746. HELP -  Access the Command Help Processor.  The HELP description
  1747. for the GENERIC MENU is provided in Appendix A.
  1748.  
  1749. MENU BACKUP - Return to the Previous Higher Menu.  Selection of
  1750. this option indicates a no-operation to the GENERIC MENU
  1751. processor.  Control will return to the invoking menu processor.
  1752.  
  1753. DECLARATION - Set Status as Nongeneric.  A newly created package,
  1754. procedure or function entity is non-generic.  Control will return
  1755. to the DESIGN menu processor (reference Section 4.2.5).
  1756.  
  1757. GENERIC DECLA - Set Generic Declaration Status.  A newly created
  1758. package, procedure or function entity is a generic declaration.
  1759. Control will return to the DESIGN menu processor (reference
  1760. Section 4.2.5).
  1761.  
  1762. GENERIC INSTA - Set Generic Instantiation Status.  A newly created
  1763. package, procedure or function entity is a generic instantiation.
  1764. The user will be prompted for the name of the unit to be created
  1765. and the name of the unit to be instantiated until valid
  1766. identifiers are entered for both.  Control will return to the
  1767. DESIGN menu processor (reference Section 4.2.5).
  1768.  
  1769.  
  1770. 4.2.8    PARAMETER STATUS Menu
  1771.  
  1772. The following paragraphs provide detailed descriptions of the
  1773. PARAM STATUS menu command options.
  1774.  
  1775. HELP -  Access the Command Help Processor.  The HELP description
  1776. for the PARAM STATUS menu is provided in Appendix A.
  1777.  
  1778. MENU BACKUP - Return to the Previous Higher Menu.  Selection of
  1779. this option indicates a no-operation to the PARAM STATUS menu
  1780. processor.  Control will return to the invoking processor, and the
  1781. operation in progress will be aborted.
  1782.  
  1783. HAS PARAMS - Indicates That an Entity Has Parameters.   The
  1784. selection of this option indicates that the entity being created
  1785. has parameters.  This option is used in the creation of
  1786. subprograms and task entry points.
  1787.  
  1788. NO PARAMS - Indicates That an Entity Has No Parameters.  The
  1789. selection of this option indicates that the entity being created
  1790. does not have parameters.  This option is used during the creation
  1791. of subprograms and task entry points.
  1792.  
  1793.  
  1794. 4.2.9    ENTRY PT Menu
  1795.  
  1796. The following paragraphs provide detailed descriptions of the
  1797. ENTRY PT menu command options.
  1798.  
  1799. HELP -  Access the Command Help Processor.  The HELP description
  1800. for the ENTRY PT menu is provided in Appendix A.
  1801.  
  1802. MENU BACKUP - Return To The Previous Higher Menu.  Selection of
  1803. this option indicates a no-operation to the ENTRY PT menu
  1804. processor.  Control will return to invoking menu processor.
  1805.  
  1806. UNGUARDED - Indicates an Unguarded Entry Point Should Be Created.
  1807. The selection of this option indicates that the entry point to be
  1808. created will be an unguarded entry point.
  1809.  
  1810. GUARDED - Indicates a Guarded Entry Point Should Be Created.  The
  1811. selection of this option indicates that the entry point to be
  1812. created will be a guarded entry point.
  1813.  
  1814.  
  1815. 4.2.10    CALL Menu
  1816.  
  1817. The following paragraphs provide detailed descriptions of the
  1818. CALL menu command options.
  1819.  
  1820. HELP -  Access the Command Help Processor.  The HELP description
  1821. for the CALL menu is provided in Appendix A.
  1822.  
  1823. MENU BACKUP - Return to the Previous Higher Menu.  Selection of
  1824. this option indicates a no-operation to the CALL menu processor.
  1825. Control will return to the invoking processor.
  1826.  
  1827. UNCONDITIONAL - Indicates an Unconditional Call Should Be Created.
  1828. The selection of this option indicates that the call connection
  1829. being created should be unconditional.
  1830.  
  1831. CONDITIONAL - Indicates a Conditional Call Should Be Created.  The
  1832. selection of this option indicates that the call connection being
  1833. created should be conditional.  The PDL produced for the call will
  1834. be proceeded by a boolean expression.
  1835.  
  1836. TIMED - Indicates a Timed Call Should Be Created.  The selection
  1837. of this option indicates that the call connection being created
  1838. should be timed.  This option may only be selected when the call
  1839. is to an entry point or exported entry point.  The PDL produced
  1840. for the call will include a SELECT statement with a DELAY.
  1841.  
  1842.  
  1843. 4.2.11    CONFIRM Menu
  1844.  
  1845. The following paragraphs provide detailed descriptions of the
  1846. CONFIRM menu command options.
  1847.  
  1848. HELP -  Access the Command Help Processor.  The HELP description
  1849. for the CONFIRM menu is provided in Appendix A.
  1850.  
  1851. MENU BACKUP - Return to the Previous Higher Menu.  Selection of
  1852. this option indicates a no-operation or cancel to the CONFIRM menu
  1853. processor.  Control will return to the invoking processor.
  1854.  
  1855. CANCEL - Cancel the Operation in Progress.  The selection of the
  1856. CANCEL option will indicate to the program to cancel the operation
  1857. in progress, and return to the program/graph state which existed
  1858. prior to the operation's initiation.
  1859.  
  1860. CONFIRM - Confirm the Operation in Progress.  The selection of the
  1861. CONFIRM option indicates to the program that the operation in
  1862. progress should be completed.
  1863.  
  1864.  
  1865. 4.2.12    PDL STATUS Menu
  1866.  
  1867. The following paragraphs provide detailed descriptions of the
  1868. PDL STATUS menu command options.
  1869.  
  1870. HELP -  Access the Command Help Processor.  The HELP description
  1871. for the PDL STATUS menu is provided in Appendix A.
  1872.  
  1873. MENU BACKUP - Return to the Previous Higher Menu.  Selection of
  1874. this option indicates a no-operation or cancel to the PDL STATUS
  1875. menu processor.  Control will return to the invoking processor.
  1876.  
  1877. WITH SUPPORT - Insert the Support Package in the PDL.  The
  1878. selection of the WITH SUPPORT command causes the PDL generator to
  1879. insert the Support Package in the PDL, and add context and
  1880. visibility clauses for the Support Package to each top-level
  1881. compilation unit.
  1882.  
  1883. NO SUPPORT - Do not insert the Support Package in the PDL.  The
  1884. selection of the NO SUPPORT command causes the PDL generator to
  1885. produce the PDL without the Support Package source, and without
  1886. the context and visibility clauses.
  1887.  
  1888.  
  1889. 4.3        Usage
  1890.  
  1891. This section describes how to use the Graphic Ada Designer.  Many
  1892. operations are performed frequently throughout the tool (e.g.,
  1893. graphic entity selection), and this section describes how to
  1894. perform these operations.  This section also provides a number of
  1895. hints, which will allow the user to create OODDs more efficiently
  1896. and effectively.
  1897.  
  1898.      o The selection of commands is performed by using the cursor
  1899.        positioning device to place the cursor within the box
  1900.        surrounding the command name.  Once the cursor has been
  1901.        placed at the correct selection/location, a single
  1902.        keystroke is used to signal the program to use the current
  1903.        location.  This technique is used throughout the program to
  1904.        select and/or mark locations.  On the Tektronix 4107
  1905.        terminal, the key to use is the spacebar.  Care should be
  1906.        taken to avoid accidentally using one of the other keys.
  1907.  
  1908.      o The selection of a scope is accomplished by placing the
  1909.        cursor inside of the scope desired (i.e., within the box of
  1910.        a basic entity or on top of the text of a label).  When
  1911.        selecting a scope with contained entities, care should be
  1912.        taken not to place the cursor inside of a lower level
  1913.        entity, since the inner most scope possible will be
  1914.        selected.
  1915.  
  1916.      o Connections are drawn by first selecting the starting and
  1917.        ending points of the connections.  These points will be
  1918.        marked by tokens (red asterisks), and should be within the
  1919.        scopes of the entities which are to be connected.  The
  1920.        points selected will also be the termination points of the
  1921.        line, so care should be taken to position the points at the
  1922.        desired location.  Once the starting and ending points have
  1923.        been specified, the program will then allow the user to
  1924.        enter up to 20 intermediate points, which define the ends
  1925.        of the line segments which will make up the line.  The line
  1926.        is completed by placing the cursor on top of (or near) the
  1927.        token marking the ending point.  During line segment
  1928.        generation, the program will automatically make near
  1929.        vertical or near horizontal lines exactly vertical or
  1930.        horizontal (except for the last line segment which must
  1931.        terminate on the ending point exactly).
  1932.  
  1933.      o When the user is creating basic entities (e.g., packages,
  1934.        subprograms), the program asks the user to select both the
  1935.        upper left hand and lower right hand points of a box which
  1936.        circumscribes the entity to be drawn.  The location of the
  1937.        upper left hand point is marked by a token, to assist the
  1938.        user in sizing the entity.  When non-rectangular entities
  1939.        (bodies or tasks) are being created, the largest possible
  1940.        symbol which fits within the rectangle defined by the
  1941.        points entered will be drawn.
  1942.  
  1943. The following hints, if followed, will substantially increase the
  1944. ease with which Ada OODDs may be created.
  1945.  
  1946.      o Occasionally during GAD operations, a user will
  1947.        accidentally hit the wrong key (i.e., other than a
  1948.        spacebar) to indicate that a location has been
  1949.        marked/selected.  GAD correctly ignores these spurious
  1950.        characters, but the striking of several keys in rapid
  1951.        succession can result in the appearance of "yellow boxes"
  1952.        in the Menu window.  These are caused by host system
  1953.        echoing of spurious characters, and can be removed by using
  1954.        the "Screen Erase" key.
  1955.  
  1956.      o Occasionally during GAD operation, the program will appear
  1957.        to ignore a user entered key (spacebar) indicating that a
  1958.        location has been marked/selected.  This usually occurs
  1959.        when GAD is being operated on a heavily used host system,
  1960.        and results from excessive time occuring between the user
  1961.        prompt message and the sending of the escape code sequence
  1962.        to the graphics terminal readying it to perform the
  1963.        location transmission operation.  The user can recover by
  1964.        striking the key again.
  1965.  
  1966.      o The order in which items are placed in the Ada PDL is the
  1967.        order in which the items are created.  Thus if the ordering
  1968.        is important, the items should be created in the desired
  1969.        order.  For example, if subprogram calls need to be in a
  1970.        particular order, then the call connections should be
  1971.        created in the same order.
  1972.  
  1973.      o Care should be taken not to draw virtual packages,
  1974.        packages, or tasks too narrowly.  If these entities are
  1975.        drawn too narrow, then exports can never be placed on them,
  1976.        because they will overlap the righthand boundary (which is
  1977.        prevented by the program during export creation to prevent
  1978.        incorrect scoping problems).  This is particularly true for
  1979.        tasks, which should be wider than they are tall (i.e.,
  1980.        aspect ratio < 1).
  1981.  
  1982.      o Color and line type attribute changes are saved between
  1983.        sessions.  However, only entities which are created and/or
  1984.        moved after attribute changes are affected.  To see the
  1985.        OODD with the color and line types changed, simply use the
  1986.        READ_FILE and WRITE_FILE commands to save and restore the
  1987.        file.  To highlight one (or more) entities in a special
  1988.        color or line type, make the attribute change during a
  1989.        session, create or move the entities to be highlighted, and
  1990.        then print the graph.
  1991.  
  1992.      o GAD does not maintain relationships between GAD files.  A
  1993.        user may create a series of graphs depicting the evolution
  1994.        of the design.  This is best done by creating a top-level
  1995.        OODD which shows the two or three top-most levels of
  1996.        detail, and then using other graphs to expand on the lowest
  1997.        level entities from the top-level OODD.  This process can
  1998.        be used iteratively until the program architecture has been
  1999.        defined in sufficient detail.
  2000.  
  2001.      o The existence of connections tends to make MOVE/RESIZE
  2002.        operations much more difficult to complete (due to the need
  2003.        to handle moved connections).  Consequently, it is a good
  2004.        practice to create all the primary and annotating entities
  2005.        for an OODD and get them positioned correctly
  2006.        (aesthetically), prior to creating any connections.
  2007.  
  2008.      o During MOVE/RESIZE operations, the user must re-establish
  2009.        all connections which cross into, or out of, the scope
  2010.        which was moved.  For this to be performed, the starting
  2011.        and ending points of each such connection must be visible
  2012.        in the View window.  If this is not the case, the program
  2013.        will automatically go to max zoom out in the View window.
  2014.        In many cases, the size of entities at max zoom out may be
  2015.        so small as to make re-connection difficult or impossible.
  2016.        If this should occur, it is best to confirm the GAD
  2017.        suggested connections and/or abort the operation.  Thus, it
  2018.        is highly advantageous to insure that the View window is
  2019.        set correctly in terms of connection viewing, prior to
  2020.        initiating a MOVE/RESIZE operation.
  2021.  
  2022.      o Entity names can not be read on hardcopies at maximum zoom
  2023.        out levels.  If name legibility is important, it is much
  2024.        easier to start small (zoomed in) and expand (zoom out),
  2025.        than to start big and contract (zoom in).
  2026.  
  2027.      o Much like other word processing tools, it is a good
  2028.        practice for the user to periodically save (write and then
  2029.        read) the design that is being created/modified.  If the
  2030.        host goes down (or any other problem develops), less
  2031.        time/effort is lost in restoring the OODD.  Also, if a user
  2032.        wishes to change the design significantly, there will be
  2033.        multiple versions of the design to choose as starting
  2034.        points.
  2035.  
  2036.      o All basic entities are described by a pair of points
  2037.        defining a rectangle which circumscribes the entity.  In
  2038.        the case of non-rectangular entities (bodies or tasks), the
  2039.        rectangle defining the entity covers a space larger than
  2040.        the actual entity itself, and defines a "sphere of
  2041.        influence" which can not be occupied by other objects.
  2042.  
  2043.      o It is highly recommended that call connection color
  2044.        attributes be drastically different than the color of other
  2045.        entities.  This practice clearly distinguishes flow control
  2046.        information from structure information.
  2047.  
  2048.      o The attribute color yellow displays very well on the
  2049.        graphics terminal, but is virtually useless on hardcopies.
  2050.  
  2051.      o It is highly desirable to have something specific in mind
  2052.        prior to beginning a session, unless the user is simply
  2053.        learning how to use the tool.
  2054.  
  2055.      o The GAD print capability operates by dumping the screen of
  2056.        the graphics terminal to a local printer connected to a
  2057.        port on the back of the terminal.  Print operations can
  2058.        fail for a variety of reasons (e.g., printer is off-line or
  2059.        runs out of ink), and  failures, particularly ones occuring
  2060.        during the middle of the print operation, can 'bomb' the
  2061.        program.  User's should guard against possible data loss by
  2062.        saving their OODDs prior to beginning any print operation.
  2063. 5.        GAD DESIGN EXAMPLE
  2064.  
  2065. This section provides an example of using GAD to create an OODD.
  2066. The ASCII representation of the OODD is shown in 5.1, the
  2067. procedures followed to create the OODD are given in 5.2, and the
  2068. PDL which would be generated is given in 5.3.
  2069.  
  2070. 5.1        Design Scenario
  2071.  
  2072. Figure 5-1 illustrates an OODD which can be created with the
  2073. Graphic Ada Designer using an ASCII version of Ada Graphic
  2074. Notation.
  2075.  
  2076.  VIRTUAL_PACKAGE_1
  2077.   - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2078.                              PACKAGE_1
  2079.  |                          ------------------------      |
  2080.                            (DECLARA)               |
  2081.  |                          |        ----------    |      |
  2082. |PROC_2|-------------------|PROC_2|--|PROC_2  |    |
  2083.  |                          |        |--------|    |      |
  2084.                             |        |        |----------|PROC_3|
  2085.  |                          |        ----------  | |      |
  2086.                             | -------------------- |
  2087.  |                          | |       TASK_1       |      |
  2088.                             | |       -----------  |
  2089.  |                          | |      /      ---/------|   |
  2090.                             | ---/*ENT_T1/    /    |  ---#PKG_4#
  2091.  |                          |      /         /     |      |
  2092.                             |     -----------      |
  2093.  |                          ------------------------      |
  2094.           ---------         PACKAGE_2
  2095. |PROC_1|--|PROC_1 |         ------------------------      |
  2096.           |-------|         |        -----------   |
  2097.  |        |       |------|=FUNCT_|---|=FUNCT_1 +------|   |
  2098.           |       |T--      |        |---------|   |  |
  2099.  |        ---------  |      |        |         |-- |  ---#PKG_3#
  2100.                      |      |        ----------- | |
  2101.  |                   |      | -------------------- |      |
  2102.                      |      | |        TASK_2      |
  2103.  |                ----      | |        ----------- |      |
  2104.                   |         | |       /         /  |
  2105.  |                |         | ----/*ENT_T2/  --/-| |      |
  2106.                   ------/ENT_T3/--/*ENT_T3/   /  ------%V_PKG_2%
  2107.  |                          |      -----------     |      |
  2108.                             ------------------------
  2109.   - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2110.                      Figure 5-1.  Sample OODD
  2111.  
  2112. The Sample OODD is an ASCII character representation which is
  2113. equivalent to that which would be drawn with bit-mapped graphics
  2114. by GAD.  The diagram uses identical conventions with the
  2115. exception that call connections originate from the right hand side
  2116. of a graphic entity instead of from the inside of the appropriate
  2117. executing body.
  2118.  
  2119. 5.2        Scenario Walk-Through
  2120.  
  2121. To create the OODD shown in Figure 5-1.1, the following operator
  2122. inputs could be used:
  2123.  
  2124.     $ RUN GAD
  2125.  
  2126.     select [DESIGN] option on MAIN menu.
  2127.  
  2128.     select [VIRTUAL PKG] option on DESIGN menu.
  2129.         mark upper left hand corner of VIRTUAL_PACKAGE_1
  2130.         mark lower right hand corner of VIRTUAL_PACKAGE_1
  2131.         enter name "VIRTUAL_PACKAGE_1"
  2132.         enter the prologue
  2133.  
  2134.     select [PACKAGE] option on DESIGN menu.
  2135.         select [DECLARATION] option on GENERIC menu.
  2136.         mark upper left hand corner of PACKAGE_1
  2137.         mark lower right hand corner of PACKAGE_1
  2138.         enter name "PACKAGE_1"
  2139.         enter the prologue
  2140.  
  2141.     select [PACKAGE] option on DESIGN menu.
  2142.         select [DECLARATION] option on GENERIC menu.
  2143.         mark upper left hand corner of PACKAGE_2
  2144.         mark lower right hand corner of PACKAGE_2
  2145.         enter name "PACKAGE_2"
  2146.         enter the prologue
  2147.  
  2148.     select [PROCEDURE] option on DESIGN menu.
  2149.         select [DECLARATION] option on GENERIC menu.
  2150.         select [NO PARAMS] on PARAM STATUS menu.
  2151.         mark upper left hand corner of PROC_1
  2152.         mark lower right hand corner of PROC_1
  2153.         enter name "PROC_1"
  2154.         enter the prologue
  2155.  
  2156.     select [XECUTING BODY] option on DESIGN menu.
  2157.         mark upper left hand corner of body in PROC_1
  2158.         mark lower right hand corner of body in PROC_1
  2159.  
  2160.     select [PROCEDURE] option on DESIGN menu.
  2161.         select [DECLARATION] option on GENERIC menu.
  2162.         select [NO PARAMS] on PARAM STATUS menu.
  2163.         mark upper left hand corner of PROC_2
  2164.         mark lower right hand corner of PROC_2
  2165.         enter name "PROC_2"
  2166.         enter the prologue
  2167.  
  2168.     select [XECUTING BODY] option on DESIGN menu.
  2169.         mark upper left hand corner of body in PROC_2
  2170.         mark lower right hand corner of body in PROC_2
  2171.  
  2172.     select [TASK] option on DESIGN menu.
  2173.         mark upper left hand corner of TASK_1
  2174.         mark lower right hand corner of TASK_1
  2175.         enter name "TASK_1"
  2176.         enter the prologue
  2177.  
  2178.     select [ENTRY POINT] option on DESIGN menu.
  2179.         select [GUARDED] on ENTRY PT menu.
  2180.         select [NO PARAMS] on PARAM STATUS menu.
  2181.         mark scope and Y location within TASK_1 for ENT_T1
  2182.         enter name "ENT_T1"
  2183.  
  2184.     select [FUNCTION] option on DESIGN menu.
  2185.         select [DECLARATION] option on GENERIC menu.
  2186.         select [NO PARAMS] on PARAM STATUS menu.
  2187.         mark upper left hand corner of FUNCT_1
  2188.         mark lower right hand corner of FUNCT_1
  2189.         enter name "FUNCT_1"
  2190.         enter the prologue
  2191.  
  2192.     select [XECUTING BODY] option on DESIGN menu.
  2193.         mark upper left hand corner of body in FUNCT_1
  2194.         mark lower right hand corner of body in FUNCT_1
  2195.  
  2196.     select [TASK] option on DESIGN menu.
  2197.         mark upper left hand corner of TASK_2
  2198.         mark lower right hand corner of TASK_2
  2199.         enter name "TASK_2"
  2200.         enter the prologue
  2201.  
  2202.     select [ENTRY POINT] option on DESIGN menu.
  2203.         select [GUARDED] on ENTRY PT menu.
  2204.         select [NO PARAMS] on PARAM STATUS menu.
  2205.         mark scope and Y location in TASK_2 of ENT_T2
  2206.         enter name "ENT_T2"
  2207.  
  2208.     select [ENTRY POINT] option on DESIGN menu.
  2209.         select [GUARDED] on ENTRY PT menu.
  2210.         select [NO PARAMS] on PARAM STATUS menu.
  2211.         mark scope and Y location in TASK_2 of ENT_T3
  2212.         enter name "ENT_T3"
  2213.  
  2214.     select [IMPORT/EXPORT] option on DESIGN menu.
  2215.  
  2216.     select [EXPORT PROC] on IMPORT/EXPORT menu.
  2217.         mark scope and Y location of export symbol for PROC_2
  2218.          inside of PACKAGE_1.
  2219.         enter name "PROC_2"
  2220.  
  2221.     select [EXPORT FUNC] on IMPORT/EXPORT menu.
  2222.         mark scope and Y location of export symbol for FUNCT_1
  2223.          inside of PACKAGE_2.
  2224.         enter name "FUNCT_1"
  2225.  
  2226.     select [EXPORT ENTRY] on IMPORT/EXPORT menu.
  2227.         mark scope and Y location of export symbol for ENT_T3
  2228.          inside of PACKAGE_2.
  2229.         enter name "ENT_T3"
  2230.         make connection to entry point ENT_T3 within TASK_2
  2231.  
  2232.     select [EXPORT PROC] on IMPORT/EXPORT menu.
  2233.         mark scope and Y location of export symbol for PROC_2
  2234.          inside of VIRTUAL_PACKAGE_1.
  2235.         enter name "PROC_2"
  2236.  
  2237.     select [EXPORT PROC] on IMPORT/EXPORT menu.
  2238.         mark scope and Y location of export symbol for PROC_1
  2239.          inside of VIRTUAL_PACKAGE_1.
  2240.         enter name "PROC_1"
  2241.  
  2242.     select [IMPORT PROC] on IMPORT/EXPORT menu.
  2243.         mark scope and Y location of export symbol for PROC_3
  2244.          inside of VIRTUAL_PACKAGE_1.
  2245.         enter name "PROC_3"
  2246.  
  2247.     select [IMPORT PKG] on IMPORT/EXPORT menu.
  2248.         mark scope and Y location of export symbol for PKG_4
  2249.          inside of VIRTUAL_PACKAGE_1.
  2250.         enter name "PKG_4"
  2251.  
  2252.     select [IMPORT PKG] on IMPORT/EXPORT menu.
  2253.         mark scope and Y location of export symbol for PKG_3
  2254.          inside of VIRTUAL_PACKAGE_1.
  2255.         enter name "PKG_3"
  2256.  
  2257.     select [IMPORT VT PKG] on IMPORT/EXPORT menu.
  2258.         mark scope and Y location of export symbol for V_PKG_2
  2259.          inside of VIRTUAL_PACKAGE_1.
  2260.         enter name "V_PKG_2"
  2261.  
  2262.     select [MENU BACKUP] on IMPORT/EXPORT menu.
  2263.  
  2264.     select [EXPORTS CONN] on DESIGN menu.
  2265.         mark inside of PROC_2 export label on boundary of
  2266.         VIRTUAL_PACKAGE_1.
  2267.         mark inside of PROC_2 export label on boundary of
  2268.         PACKAGE_1.
  2269.         make connection
  2270.  
  2271.     select [EXPORTS CONN] on DESIGN menu.
  2272.         mark inside of PROC_1 export label on boundary of
  2273.         VIRTUAL_PACKAGE_1.
  2274.         mark inside of PROC_1.
  2275.         make connection
  2276.  
  2277.     select [EXPORTS CONN] on DESIGN menu.
  2278.         mark inside of PROC_2 export label on boundary of
  2279.         PACKAGE_1.
  2280.         mark inside of PROC_2.
  2281.         make connection
  2282.  
  2283.     select [EXPORTS CONN] on DESIGN menu.
  2284.         mark inside of FUNCT_1 export label on boundary of
  2285.         PACKAGE_2.
  2286.         mark inside of FUNCT_1.
  2287.         make connection
  2288.  
  2289.     select [CALL CONN] on DESIGN menu.
  2290.         select [UNCONDITIONAL] option on CALL menu.
  2291.         mark inside of body of PROC_1.
  2292.         mark inside of FUNCT_1 export label on boundary of
  2293.         PACKAGE_2.
  2294.         make connection
  2295.  
  2296.     select [CALL CONN] on DESIGN menu.
  2297.         select [TIMED] option on CALL menu.
  2298.         mark inside of body of PROC_1.
  2299.         mark inside of ENT_T3 export label on boundary of
  2300.         PACKAGE_2.
  2301.         make connection
  2302.  
  2303.     select [VISIBLE CONN] on DESIGN menu.
  2304.         mark inside of scope of TASK_1.
  2305.         mark inside of PKG_4 import label on boundary of
  2306.         VIRTUAL_PACKAGE_1.
  2307.         make connection
  2308.  
  2309.     -- The remainder of the call and data connections are
  2310.     -- left as an excercise for the interested student.
  2311.  
  2312.     select [MENU BACKUP] option on DESIGN menu.
  2313.  
  2314.     select [GENERATE PDL] option on MAIN menu.
  2315.         -- this will create the PDL for the OODD.
  2316.  
  2317.     select [EXIT & SAVE] option on MAIN menu.
  2318.         --This will terminate GAD and save the OODD.
  2319.  
  2320.  
  2321. 5.3        Generated PDL
  2322.  
  2323. The following listing represents the Ada PDL that would be
  2324. generated for the design diagram shown in Figure 5-1.1.  The
  2325. format of the comments derived from the prologues has been altered
  2326. for this presentation.
  2327.  
  2328. with PROC_3 ;
  2329. with PKG_4 ;
  2330. with PKG_3 ;
  2331. with V_PKG_2 ;
  2332. package VIRTUAL_PACKAGE_1 is  --* VIRTUAL PACKAGE
  2333.    --* This is the outter most virtual package, which encloses all
  2334.    --* the basic entities used in this example.
  2335.  
  2336.    package PACKAGE_1 is
  2337.       --* This enclosed package exports a procedure which accesses
  2338.       --* a task.  The package utilizes an imported procedure and
  2339.       --* package.
  2340.  
  2341.       procedure PROC_2 ;
  2342.    end PACKAGE_1 ;
  2343.  
  2344.    procedure PROC_1 ;
  2345. end VIRTUAL_PACKAGE_1 ;  --* VIRTUAL PACKAGE
  2346.  
  2347.  
  2348. package body VIRTUAL_PACKAGE_1 is  --* VIRTUAL PACKAGE
  2349.    --* This is the outter most virtual package, which encloses all
  2350.    --* the basic entities used in this example.
  2351.  
  2352.    package PACKAGE_2 is
  2353.       --* This enclosed packages exports a function and task entry
  2354.       --* point.  The function also accesses an entry point.  The
  2355.       --* package utilizes imported package and virtual package.
  2356.  
  2357.       function FUNCT_1 return TBD_TYPE ;
  2358.          --* This function makes a conditional call on a task
  2359.          --* entry point.
  2360.  
  2361.       task TASK_2 is
  2362.          entry ENT_T2 ;
  2363.          entry ENT_T3 ;
  2364.       end TASK_2 ;
  2365.    end PACKAGE_2 ;
  2366.  
  2367.    package body PACKAGE_1 is
  2368.       --* This enclosed package exports a procedure which accesses
  2369.       --* a task.  The package utilizes an imported procedure and
  2370.       --* package.
  2371.  
  2372.       task TASK_1 is
  2373.          entry ENT_T1 ;
  2374.       end TASK_1 ;
  2375.  
  2376.       procedure PROC_2 is
  2377.       begin
  2378.          PROC_3 ;
  2379.          VIRTUAL_PACKAGE_1.PACKAGE_1.TASK_1.ENT_T1 ;
  2380.       end PROC_2 ;
  2381.  
  2382.       task body TASK_1 is
  2383.          use PKG_4 ;
  2384.       begin
  2385.          select
  2386.             when TBD_CONDITION =>
  2387.             accept ENT_T1 ;
  2388.          end select ;
  2389.       end TASK_1 ;
  2390.    end PACKAGE_1 ;
  2391.  
  2392.    package body PACKAGE_2 is
  2393.       --* This enclosed packages exports a function and task entry
  2394.       --* point.  The function also accesses an entry point.  The
  2395.       --* package utilizes  imported package and virtual package.
  2396.  
  2397.       function FUNCT_1 return TBD_TYPE is
  2398.          --* This function makes a conditional call on a task
  2399.          --* entry point.
  2400.          use PKG_3 ;
  2401.       begin
  2402.          if TBD_CONDITION then
  2403.             VIRTUAL_PACKAGE_1.PACKAGE_2.TASK_2.ENT_T2 ;
  2404.          end if ;
  2405.          return TBD_OBJECT ;
  2406.       end FUNCT_1 ;
  2407.  
  2408.       task body TASK_2 is
  2409.          use V_PKG_2 ;
  2410.       begin
  2411.          select
  2412.             when TBD_CONDITION =>
  2413.             accept ENT_T2 ;
  2414.          or
  2415.             when TBD_CONDITION =>
  2416.             accept ENT_T3 ;
  2417.          end select ;
  2418.       end TASK_2 ;
  2419.    end PACKAGE_2 ;
  2420.  
  2421.    procedure PROC_1 is
  2422.    begin
  2423.       TBD_OBJECT := VIRTUAL_PACKAGE_1.PACKAGE_2.FUNCT_1 ;
  2424.       select
  2425.          VIRTUAL_PACKAGE_1.PACKAGE_2.TASK_2.ENT_T3 ;
  2426.       or
  2427.          delay TBD_TIME ;
  2428.       end select ;
  2429.    end PROC_1 ;
  2430. end VIRTUAL_PACKAGE_1 ;  --* VIRTUAL PACKAGE
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456. APPENDIX A
  2457. ON-LINE HELP FILE LISTING
  2458.  
  2459. A.  ON-LINE HELP FILE
  2460.  
  2461. The HELP file supplied with the GAD software is an ASCII text file that
  2462. is capable of modification by the user.  The following text description
  2463. is contained in the file and briefly describes how to change the file if
  2464. desired.  It should be noted that a recompilation of the GAD software is
  2465. not required when this file is modified.  The help file is labeled as
  2466. GADHELP.HLP in the release library.
  2467.  
  2468.         --
  2469.         -- Instructions for generating/modifying the help file:
  2470.         --   1) Page separators must be used to differentiate the
  2471.         --      various menu and command help text pages.
  2472.         --      For DEC Ada the page separators are <FF>
  2473.         --   2) The first line subsequent to the page separator must
  2474.         --      contain the menu or command identifier with the string
  2475.         --      beginning in the first column
  2476.         --   3) The menu or command identifiers must correspond to the
  2477.         --      MENU_ID or COMMAND_TYPE enumerated values in package
  2478.         --      MMI_PARAMETERS; the 'IMAGE attribute is used
  2479.         --      to generate the search string.
  2480.         --
  2481.  
  2482. The following paragraphs are organized numerically according to the
  2483. placement of the menu in the organization of the control menu network.
  2484.  
  2485. The HELP option is implemented in a toggle switch fashion.  When the
  2486. HELP option is first selected, control is transferred to the help
  2487. processor software and remains there until the HELP option is again
  2488. selected.
  2489.  
  2490. Each description is divided into the initial display when HELP is
  2491. initially requested for a particular menu; and into the subsequent menu
  2492. option displays when for a particular selection option, while in the
  2493. HELP processor, from the menu.
  2494.  
  2495. A.1  Main Menu Descriptions
  2496.  
  2497. Upon selecting the HELP option on the MAIN MENU, the following display
  2498. will be provided in the Graphics Window area of the terminal screen.
  2499.  
  2500. MAIN_MENU
  2501.  
  2502.                              MAIN MENU
  2503.  
  2504.         DESCRIPTION   : Invoke the basic functions of the Graphic
  2505.                         Ada Designer.
  2506.  
  2507.         PAN / ZOOM    -> Access the Pan/Zoom Menu to alter the
  2508.                          portion of the graph displayed on the
  2509.                          terminal.
  2510.         DESIGN        -> Access the Design Menu to create, display,
  2511.                          and edit object oriented design diagrams
  2512.                          ( graphs ).
  2513.         DISPLAY ATTRB -> Access the Attributes Menu to alter and
  2514.                          display symbol attributes.
  2515.         GENERATE PDL  -> Generate the PDL for the current graph.
  2516.         PRINT         -> Print the graph.
  2517.         READ FILE     -> Read in a graph from the selected file.
  2518.         WRITE FILE    -> Write out a graph to the selected file.
  2519.         QUIT, NO SAVE -> Quit without saving the current work file.
  2520.         EXIT & SAVE   -> Exit and save the current work file.
  2521.  
  2522. The specific HELP descriptions for individual options on MAIN_MENU are
  2523. as follows:
  2524.  
  2525. PAN_ZOOM_CMD
  2526.  
  2527.                             PAN ZOOM MENU
  2528.                 Access the Pan/Zoom Menu processor to alter the
  2529.                 portion of the graph displayed on the terminal.
  2530.                 Pans up, down, left, and right.
  2531.                 Zooms in and out.
  2532.  
  2533. DESIGN_CMD
  2534.  
  2535.                             DESIGN
  2536.                 Access the Design Menu processor to
  2537.                 create, display, and edit the Object
  2538.                 Oriented Design Diagrams ( graphs ).
  2539.  
  2540. ATTRIBUTES_CMD
  2541.  
  2542.                          DISPLAY ATTRIBUTES
  2543.               Access the Display Attributes Menu to alter and
  2544.               display the symbol attributes associated with the
  2545.               current graph.  Altered attributes are preserved
  2546.               between sessions.
  2547.  
  2548. GEN_PDL_CMD
  2549.  
  2550.                             GENERATE PDL
  2551.            Extract the necessary syntactical and semantical
  2552.            information from the design diagrams and generate
  2553.            compilable PDL text files. The PDL text will be
  2554.            placed in a file with the same name as the design
  2555.            file, but with the extension ".PDL"
  2556.  
  2557. PRINT_CMD
  2558.  
  2559.                                  PRINT
  2560.            Enlarge the currently displayed graph to full screen
  2561.            size, print the graph to the graphics printer connected
  2562.            to the terminal's output port, and restore the displayed
  2563.            graph to the normal size.
  2564.  
  2565. READ_FILE_CMD
  2566.  
  2567.                             READ FILE
  2568.            Read in a previously created GAD design file,
  2569.            or create a new graph.  The user will be
  2570.            prompted for the name of the file to be read
  2571.            or created.  Usage of this command will result
  2572.            in the erasure of the current graph.
  2573.  
  2574. WRITE_FILE_CMD
  2575.  
  2576.                             WRITE FILE
  2577.            Write out the current design diagram to a GAD
  2578.            design file.  The user will be prompted for the
  2579.            name of the file to write the graph data.
  2580.  
  2581. QUIT_CMD
  2582.  
  2583.                            QUIT, NO SAVE
  2584.              Terminate GAD operation without saving the
  2585.              current graph.
  2586.  
  2587. FINISHED_CMD
  2588.  
  2589.                             EXIT & SAVE
  2590.           Terminate GAD operation and save the current
  2591.           graph.  The operator specified default file
  2592.           name will be used to create a new version of
  2593.           the file.
  2594.  
  2595. A.2  Pan/Zoom Menu Help Description
  2596.  
  2597. Upon selecting the HELP option on the PAN/ZOOM MENU, the following
  2598. display will be provided in the Graphics Window area of the terminal
  2599. screen.
  2600.  
  2601. PAN_ZOOM_MENU
  2602.  
  2603.                             PAN / ZOOM MENU
  2604.  
  2605.         DESCRIPTION   : Alter the window ( portion of the graph
  2606.                         displayed ) show on the terminal.
  2607.  
  2608.         BACKUP/RESUME ->  Return to the previous menu, and display
  2609.                           the selected view on the full design area.
  2610.         PAN UP        ->  Move the graphics window upward.
  2611.         PAN DOWN      ->  Move the graphics window downward.
  2612.         PAN LEFT      ->  Move the graphics window to the left.
  2613.         PAN RIGHT     ->  Move the graphics window to the right.
  2614.         ZOOM IN       ->  Decrease the graphics window size.
  2615.         ZOOM OUT      ->  Increase the graphics window size.
  2616.         MAX PAN UP    ->  Move the graphics window fully upward.
  2617.         MAX PAN DOWN  ->  Move the graphics window fully downward.
  2618.         MAX PAN LEFT  ->  Move the graphics window fully to the left.
  2619.         MAX PAN RIGHT ->  Move the graphics window fully to the right.
  2620.         MAX ZOOM IN   ->  Fully decrease the graphics window size.
  2621.         MAX ZOOM OUT  ->  Fully increase the graphics window size.
  2622.  
  2623. The specific HELP descriptions for individual options on PAN / ZOOM MENU
  2624. are as follows:
  2625.  
  2626. BACKUP_CMD
  2627.  
  2628.                           MENU BACKUP
  2629.            Return control to the menu from which control
  2630.            had been passed; i.e. the previous menu.
  2631.  
  2632.            If the user is in a subordinate menu during a
  2633.            creation that is requesting specific (generic
  2634.            status, parameter status, etc.) information,
  2635.            then the BACKUP acts as an abort for the creation.
  2636.  
  2637. PAN_UP_CMD
  2638.  
  2639.                                PAN UP
  2640.          Move the window on the graph upward and display the
  2641.          redefined window on the terminal.
  2642.  
  2643. PAN_DOWN_CMD
  2644.  
  2645.                               PAN DOWN
  2646.          Move the window on the graph downward and display the
  2647.          redefined window on the terminal.
  2648.  
  2649. PAN_LEFT_CMD
  2650.  
  2651.                               PAN LEFT
  2652.          Move the window on the graph to the left and display
  2653.          the redefined window on the terminal.
  2654.  
  2655. PAN_RIGHT_CMD
  2656.  
  2657.                              PAN RIGHT
  2658.          Move the window on the graph to the right and display
  2659.          the redefined window on the terminal.
  2660.  
  2661. ZOOM_IN_CMD
  2662.  
  2663.                               ZOOM IN
  2664.          Decrease the size of the window on the graph and
  2665.          display the redefined window on the terminal.
  2666.  
  2667. ZOOM_OUT_CMD
  2668.  
  2669.                               ZOOM OUT
  2670.          Increase the size of the window on the graph and
  2671.          display the redefined window on the terminal.
  2672.  
  2673. MAX_ZOOM_IN_CMD
  2674.  
  2675.                             MAX ZOOM IN
  2676.          Fully decrease the size of the window on the graph
  2677.          and display the redefined window on the terminal.
  2678.  
  2679.  
  2680. MAX_ZOOM_OUT_CMD
  2681.  
  2682.                             MAX ZOOM OUT
  2683.          Fully increase the size of the window on the graph
  2684.          and display the redefined window on the terminal.
  2685.  
  2686. MAX_PAN_UP_CMD
  2687.  
  2688.                              MAX PAN UP
  2689.          Move the window on the graph fully upward and
  2690.          display the redefined window on the terminal.
  2691.  
  2692. MAX_PAN_DOWN_CMD
  2693.  
  2694.                              MAX PAN DOWN
  2695.          Move the window on the graph fully downward and
  2696.          display the redefined window on the terminal.
  2697.  
  2698. MAX_PAN_LEFT_CMD
  2699.  
  2700.                              MAX PAN LEFT
  2701.          Move the window on the graph fully to the left
  2702.          and display the redefined window on the terminal.
  2703.  
  2704. MAX_PAN_RIGHT_CMD
  2705.  
  2706.                              MAX PAN RIGHT
  2707.          Move the window on the graph fully to the right
  2708.          and display the redefined window on the terminal.
  2709.  
  2710. A.3  Design Menu Help Description
  2711.  
  2712. Upon selecting the HELP option on the DESIGN MENU, the following display
  2713. will be provided in the Graphics Window area of the terminal screen.
  2714.  
  2715. DESIGN_MENU
  2716.                             DESIGN MENU
  2717.  
  2718.         DESCRIPTION      : Create, delete, and edit object
  2719.                            oriented design diagrams ( graphs ).
  2720.  
  2721.         MENU BACKUP      ->  Design completed, return to the
  2722.                              last higher menu.
  2723.         PAN / ZOOM       ->  Access the Pan/Zoom Menu to alter the
  2724.                              view window location on the page.
  2725.         VIRTUAL PKG      ->  Create a virtual package symbol
  2726.         PACKAGE          ->  Create a package symbol
  2727.         PROCEDURE        ->  Create a procedure symbol
  2728.         FUNCTION         ->  Create a function symbol
  2729.         TASK             ->  Create a task symbol
  2730.         ENTRY POINT      ->  Create an entry point to a task
  2731.         XECUTING BODY    ->  Create a body symbol
  2732.         IMPORT/EXPORT    ->  Create export/import annotations
  2733.         CALL CONN        ->  Create a call connection
  2734.         VISIBLE CONN     ->  Create a visibility connection
  2735.         EXPORTS CONN     ->  Create a export relation connection
  2736.         DELETE CONN      ->  Delete a call, visibility, or exports
  2737.                              connection
  2738.         DELETE ENTITY    ->  Delete a graphical entity
  2739.         MOVE / RESIZE    ->  Move and resize a graphical entity
  2740.         MODIFY ENTITY    ->  Modify an Ada attribute of a graphical
  2741.                              entity
  2742.  
  2743. The specific HELP descriptions for individual options on DESIGN MENU are
  2744. as follows:
  2745.  
  2746.                           MENU BACKUP
  2747.  
  2748.                          PAN ZOOM MENU
  2749.  
  2750. VIRT_PACKAGE_CMD
  2751.  
  2752.                           VIRTUAL PACKAGE
  2753.          Create a virtual package.  The upper left and lower
  2754.          right corners of the enclosing rectangle, the name,
  2755.          and the prologue will be requested.
  2756.  
  2757.          The virtual package symbol is a rectangle.
  2758.  
  2759. PACKAGE_CMD
  2760.  
  2761.                             PACKAGE
  2762.          Create a package.  The declaration mode ( normal,
  2763.          generic declaration, or generic instantiation ),
  2764.          upper left and lower right corners, the name, and
  2765.          the prologue will be requested.  If the package is
  2766.          a generic instantiation, the name of the package
  2767.          being instantiated will be requested, and then the
  2768.          letters "gi" along with the instantiated package
  2769.          name will be displayed; if the package is a generic
  2770.          declaration, the letters "gd" will be displayed
  2771.          within the package symbol.
  2772.  
  2773.          The package symbol is a rectangle.
  2774.  
  2775. PROCEDURE_CMD
  2776.  
  2777.                            PROCEDURE
  2778.          Create a procedure.  The parameter status, declaration
  2779.          mode ( normal, generic declaration, or generic
  2780.          instantiation ), upper left and lower right corners,
  2781.          the name, and the prologue will be requested.  If the
  2782.          procedure is a generic instantiation, the name of the
  2783.          procedure being instantiated will be requested, and then
  2784.          the letters "gi" along with the instantiated procedure
  2785.          name will be displayed; if the procedure is a generic
  2786.          declaration, the letters "gd" will be displayed within
  2787.          the procedure symbol.
  2788.  
  2789.          The procedure symbol is a stacked rectangle.
  2790.  
  2791. FUNCTION_CMD
  2792.  
  2793.                            FUNCTION
  2794.          Create a function.  The declaration mode ( normal,
  2795.          generic declaration, or generic instantiation ),
  2796.          upper left and lower right corners, the name, and
  2797.          the prologue will be requested.  If the function
  2798.          is a generic instantiation, the name of the function
  2799.          being instantiated will be requested, and then the
  2800.          letters "gi" along with the instantiated function
  2801.          name will be displayed; if the function is a generic
  2802.          declaration, the letters "gd" will be displayed
  2803.          within the function symbol.
  2804.  
  2805.          The function symbol is a stacked rectangle; the
  2806.          function identifier is prefixed with an '=' to
  2807.          distinguish it from a procedure.
  2808.  
  2809. TASK_CMD
  2810.  
  2811.                              TASK
  2812.          Create a task.  The the parameter status, upper
  2813.          left and lower right corners, the name, and the
  2814.          prologue will be requested.
  2815.  
  2816.          The task symbol is a parallelogram.
  2817.  
  2818. ENTRY_PT_CMD
  2819.  
  2820.                            ENTRY POINT
  2821.          Create an entry point to a task.  The guarded status and
  2822.          parameter status will be requested.  The enclosing scope,
  2823.          within a task, will be requested.  A task must have been
  2824.          created prior to executing this command.
  2825.  
  2826.  
  2827. BODY_CMD
  2828.  
  2829.                         EXECUTING BODY
  2830.          Create an executing body.  The upper left and lower right
  2831.          corners will be requested.  The body is used to represent
  2832.          the executable portion of an Ada unit body, and as such
  2833.          is the originating point for call connections.  The body
  2834.          may not contain any other entities.
  2835.  
  2836.          The body symbol is an octagon.
  2837.  
  2838. ANNOTATION_CMD
  2839.  
  2840.                            IMPORT / EXPORT
  2841.         Access to the Import/Export Menu for
  2842.         creation of annotating entities :
  2843.  
  2844.         o  Exported Type              o  Exported Object
  2845.         o  Exported Exception         o  Exported Procedure
  2846.         o  Exported Function          o  Exported Task Entry
  2847.  
  2848.         o  Imported Virtual Package   o  Imported Package
  2849.         o  Imported Procedure         o  Imported Function
  2850.  
  2851. CALL_CONNECT_CMD
  2852.  
  2853.                          CALL CONNECTION
  2854.         Create a caller-callee connection.  The call mode
  2855.         ( normal, timed, or conditional ) will be requested.
  2856.         The user will specify the starting and ending points,
  2857.         and then be allowed to free-form draw the line by
  2858.         specifying up to 20 intermediate points, beginning at
  2859.         the starting point.  The starting point must be within
  2860.         a body.  The ending point must be within a imported
  2861.         procedure, imported function, exported procedure,
  2862.         exported function, exported entry point, procedure,
  2863.         function, or entry point.
  2864.  
  2865. DATA_CONNECT_CMD
  2866.  
  2867.                       VISIBILITY CONNECTION
  2868.         Create a visibility connection.  The user will specify
  2869.         the starting and ending points, and then be allowed to
  2870.         free-form draw the line by specifying up to 20
  2871.         intermediate points, beginning at the starting point.
  2872.         The starting point must be within a virtual package,
  2873.         package, procedure, or function.  The ending point must
  2874.         be within an imported virtual package, imported package,
  2875.         virtual package, or package.
  2876.  
  2877. EXPORT_CONNECT_CMD
  2878.  
  2879.                      EXPORTS CONNECTION
  2880.         Create an export relationship connection. The user
  2881.         will specify the starting and ending points, and then
  2882.         be allowed to free-form draw the line by specifying
  2883.         up to 20 intermediate points, beginning at the starting
  2884.         point.  The starting point must be within any export
  2885.         symbol.  The ending point must be within the corresponding
  2886.         procedure, function, entry point, or export symbol.
  2887.  
  2888. DELETE_CONNECT_CMD
  2889.  
  2890.                          DELETE CONNECTION
  2891.         Delete a call, visibility, or exports connection.  The
  2892.         user will specify the starting point.  If the program
  2893.         can determine only connection from the starting point,
  2894.         then that connection is highlighted for deletion.  If
  2895.         multiple connections exist from the start point, then
  2896.         the end point is requested to determine the appropriate
  2897.         connection to highlight for deletion.  The user will
  2898.         then be prompted to confirm or cancel the deletion.
  2899.  
  2900. DELETE_CMD
  2901.  
  2902.                         DELETE ENTITY
  2903.          Delete a graphical entity, and all associated
  2904.          connections, represented on the design diagram.
  2905.          The user will be prompted to select the entity
  2906.          to be deleted, and will again be prompted to
  2907.          confirm or cancel the deletion.
  2908.  
  2909. MOVE_CMD
  2910.  
  2911.                        MOVE / RESIZE ENTITY
  2912.          Move and resize a user selected graphical entity and
  2913.          all contained entities and annotations. The user will
  2914.          be prompted to select the outer scope of the entity(ies)
  2915.          to be moved and resized, the destination ( new upper
  2916.          left hand corner) for the entity(ies) of the move, and
  2917.          the new size ( new lower right hand corner ) of the
  2918.          entity(ies).  The resize will proportionally alter all
  2919.          the entity(ies), such that the outermost entity fits
  2920.          between its new upper left hand corner and lower right
  2921.          hand corner.
  2922.  
  2923.          If any connections (call, data, export) have one end
  2924.          outside of the moved and resized entities and the other
  2925.          end inside the moved entities, then the user will be
  2926.          prompted to attend to each such connection.  The program
  2927.          will make an attempt to redraw the connection which the
  2928.          user may confirm, or cancel and redraw the connection
  2929.          ( by specifying the intermediate points ).  If any of
  2930.          the connection starting and/or ending points are not
  2931.          within the View window, then the program with automatically
  2932.          go to max zoom out.
  2933.  
  2934.          The move and resize is validated prior to being executed
  2935.          by verifying that the resultant graph will be semantically
  2936.          correct.  The move may not create an invalid graph by
  2937.          overlaying other entities.  Graphs which have previously
  2938.          introduced this kind of semantic error cannot be moved and
  2939.          resized until the problem is corrected.
  2940.  
  2941.  
  2942. MODIFY_CMD
  2943.  
  2944.                          MODIFY ENTITY
  2945.          Modify the name and other Ada attributes of the selected
  2946.          entity.  The user will be prompted to select the entity
  2947.          to be modified, and for new values of all modifiable
  2948.          attributes ( name, prologue, instantiated unit name,
  2949.          call status, etc. ).
  2950.  
  2951. A.4  Generic Menu Commands
  2952.  
  2953. Upon selecting the HELP option on the GENERIC MENU, the following
  2954. display will be provided in the Graphics Window area of the terminal
  2955. screen.
  2956.  
  2957. GENERIC_MENU
  2958.  
  2959.                             GENERIC MENU
  2960.  
  2961.         DESCRIPTION     : Define the declaration mode ( normal,
  2962.                           generic declaration, or generic
  2963.                           instantiation ) of the entity being created.
  2964.  
  2965.         MENU BACKUP ->    Abort this creation, and return to the
  2966.                           previous menu.
  2967.         DECLARATION   ->  Set the status of the created entity
  2968.                           to non-generic.
  2969.         GENERIC DECLA ->  Set the status of the created entity
  2970.                           to generic declaration.
  2971.         GENERIC INSTA ->  Set the status of the created entity
  2972.                           to generic instantiation.
  2973.  
  2974.         After selection of declaration mode, return and complete
  2975.         drawing.
  2976.  
  2977. The specific HELP descriptions for individual options on GENERIC MENU
  2978. are as follows:
  2979.  
  2980.                             MENU BACKUP
  2981.  
  2982. NON_GENERIC_CMD
  2983.  
  2984.                             DECLARATION
  2985.            Set the status of the created package, procedure
  2986.            or function to non generic.
  2987.  
  2988.            After selection of the declaration mode return and
  2989.            complete drawing.
  2990.  
  2991. GENERIC_DECL_CMD
  2992.  
  2993.                         GENERIC DECLARATION
  2994.            Set the status of the created package, procedure
  2995.            or function to generic declaration.
  2996.  
  2997.            After selection of the declaration mode return and
  2998.            complete drawing.
  2999.  
  3000. GENERIC_INST_CMD
  3001.  
  3002.                      GENERIC INSTANTIATION
  3003.            Set the status of the created package, procedure
  3004.            or function to generic instantiation. GAD will
  3005.            subsequently request the name of the unit being
  3006.            instantiated.
  3007.  
  3008.            After selection of the declaration mode return and
  3009.            complete drawing.
  3010.  
  3011.  
  3012. A.5  Annotating Menu Help Descriptions
  3013.  
  3014. Upon selecting the HELP option on the ANNOTATING MENU, the following
  3015. display will be provided in the Graphics Window area of the terminal
  3016. screen.
  3017.  
  3018. ANNOTATING_MENU
  3019.  
  3020.                           IMPORT/EXPORT MENU
  3021.  
  3022.         DESCRIPTION      : Select the type of entity to be
  3023.                            added to the graph.
  3024.  
  3025.         EXPORT PROC      -> Create a visible procedure in the
  3026.                             specification section of the enclosing
  3027.                             ( virtual ) package.
  3028.         EXPORT FUNC      -> Create a visible function in the
  3029.                             specification section of the enclosing
  3030.                             ( virtual ) package.
  3031.         EXPORT TYPE      -> Create a visible type in the
  3032.                             specification section of the enclosing
  3033.                             ( virtual ) package.
  3034.         EXPORT OBJECT    -> Create a visible object in the
  3035.                             specification section of the enclosing
  3036.                             ( virtual ) package.
  3037.         EXPORT EXCEPT    -> Create a visible exception in the
  3038.                             specification section of the enclosing
  3039.                             ( virtual ) package.
  3040.         EXPORT ENTRY     -> Create a visible entry in the
  3041.                             specification section of the enclosing
  3042.                             ( virtual ) package.
  3043.         IMPORT VT PKG    -> Import a virtual package for use via
  3044.                             an Ada "with" statement.
  3045.         IMPORT PKG       -> Import a package for use via an Ada
  3046.                             "with" statement.
  3047.         IMPORT PROC      -> Import a procedure for use via an Ada
  3048.                             "with" statement.
  3049.         IMPORT FUNC      -> Import a function for use via an Ada
  3050.                             "with" statement.
  3051.         CALL CONN        -> Create a call connection
  3052.         VISIBLE CONN     -> Create a visibility connection
  3053.         EXPORTS CONN     -> Create a export relation connection
  3054.  
  3055.         After selecting the entity enter its position on the
  3056.         graph, note that import and export entity  must occur
  3057.         within a virtual package or package.  The name for the
  3058.         entity will then be requested.
  3059.  
  3060.         Imports are shown on the right-hand side of an entity.
  3061.         The use of imports is shown in the PDL by context clauses
  3062.         ( 'with' and 'use' ).
  3063.  
  3064.         Exports are shown on the left-hand side of an entity.
  3065.         Exports are shown as the visible ( specification ) part
  3066.         of packages and virtual packages.
  3067.  
  3068. The specific HELP descriptions for individual options on IMPORT/EXPORT
  3069. MENU are as follows:
  3070.  
  3071.                             MENU BACKUP
  3072.  
  3073.                             PAN / ZOOM
  3074.  
  3075.  
  3076. RESTART_CMD
  3077.  
  3078.                          MAIN MENU
  3079.         Take the user directly to the main menu.  Eliminates
  3080.         multiple menu backup commands when trying to return
  3081.         to the main menu.
  3082.  
  3083. EXPORT_PROC_CMD
  3084.  
  3085.                        EXPORTED PROCEDURE
  3086.         Create an annotation for a virtual package or
  3087.         package which indicates the named procedure is in
  3088.         the specification and hence exported ( visible ).
  3089.         The exported procedure is denoted by '| identifier |'.
  3090.  
  3091. EXPORT_FUNC_CMD
  3092.  
  3093.                        EXPORTED FUNCTION
  3094.         Create an annotation for a virtual package or
  3095.         package which indicates the named function is in
  3096.         the specification and hence exported ( visible ).
  3097.         The exported function is denoted by '| =identifier |'.
  3098.  
  3099. EXPORT_TYPE_CMD
  3100.  
  3101.                         EXPORTED TYPE
  3102.         Create an annotation for a virtual package or
  3103.         package which indicates the named type is in
  3104.         the specification and hence exported ( visible ).
  3105.         The exported type is denoted by '( identifier )'.
  3106.  
  3107. EXPORT_OBJ_CMD
  3108.  
  3109.                         EXPORTED OBJECT
  3110.         Create an annotation for a virtual package or
  3111.         package which indicates the named object is in
  3112.         the specification and hence exported ( visible ).
  3113.         The exported object is denoted by ': identifier :'.
  3114.  
  3115. EXPORT_EXCEPT_CMD
  3116.  
  3117.                        EXPORTED EXCEPTION
  3118.         Create an annotation for a virtual package or
  3119.         package which indicates the named exception is in
  3120.         the specification and hence exported ( visible ).
  3121.         The exported exception is denoted by '< identifier >'.
  3122.  
  3123. EXPORT_TASK_ENTRY_CMD
  3124.  
  3125.                       EXPORTED ENTRY POINT
  3126.         Create an annotation for a virtual package or
  3127.         package which indicates the named entry point is
  3128.         in the specification and hence exported ( visible ).
  3129.         The exported entry point is denoted by '/ identifier /'.
  3130.  
  3131.         An entry point for a task must be within the
  3132.         same scope as this export since the user will
  3133.         be prompted for a connection to the entry point.
  3134.         The end point for the connection should be
  3135.         the entry point.
  3136.  
  3137. IMPORT_VP_CMD
  3138.  
  3139.                       IMPORTED VIRTUAL PACKAGE
  3140.           Create an annotation for a virtual package or
  3141.           package which indicates the named virtual package
  3142.           has been imported for use via an Ada "with"
  3143.           statement.  Imports can only be attached to
  3144.           top-level ( outermost ) units.  The imported
  3145.           virtual package is denoted by '% identifier %'.
  3146.  
  3147. IMPORT_PKG_CMD
  3148.  
  3149.                         IMPORTED PACKAGE
  3150.           Create an annotation for a virtual package or
  3151.           package which indicates the named package has
  3152.           been imported for use via an Ada "with"
  3153.           statement.  Imports can only be attached to
  3154.           top-level ( outermost ) units.  The imported
  3155.           package is denoted by '# identifier #'.
  3156.  
  3157. IMPORT_PROC_CMD
  3158.  
  3159.                        IMPORTED PROCEDURE
  3160.           Create an annotation for a virtual package or
  3161.           package which indicates the named procedure has
  3162.           been imported for use via an Ada "with"
  3163.           statement.  Imports can only be attached to
  3164.           top-level ( outermost ) units.  The imported
  3165.           procedure is denoted by '| identifier |'.
  3166.  
  3167. IMPORT_FUNC_CMD
  3168.  
  3169.                        IMPORTED FUNCTION
  3170.           Create an annotation for a virtual package or
  3171.           package which indicates the named function has
  3172.           been imported for use via an Ada "with"
  3173.           statement.  Imports can only be attached to
  3174.           top-level ( outermost ) units.  The imported
  3175.           function is denoted by '|= identifier |'.
  3176.  
  3177. IE_CALL_CONNECT_CMD
  3178.  
  3179.                          CALL CONNECTION
  3180.          Create a caller-callee connection.  The call mode
  3181.          ( normal, timed, or conditional ) will be requested.
  3182.          Normal and conditional call modes apply to subprograms
  3183.          and tasks as callers; the timed call mode applies only
  3184.          to tasks as callers.  The user will specify the starting
  3185.          and ending points, and then be allowed to free-form draw
  3186.          the line by specifying up to 20 intermediate points.  The
  3187.          starting point must be within a body.  The ending point
  3188.          must be within a imported procedure, imported function,
  3189.          exported procedure, exported function, exported entry
  3190.          point, procedure, function, or entry point.
  3191.  
  3192. IE_DATA_CONNECT_CMD
  3193.  
  3194.                          VISIBILITY CONNECTION
  3195.         Create a visibility connection.  The user will specify
  3196.         the starting and ending points, and then be allowed to
  3197.         free-form draw the line by specifying up to 20
  3198.         intermediate points, beginning at the starting point.
  3199.         The starting point must be within a virtual package,
  3200.         package, procedure, or function.  The ending point must
  3201.         be within an imported virtual package, imported package,
  3202.         virtual package, or package.
  3203.  
  3204. IE_EXPORT_CONNECT_CMD
  3205.  
  3206.                      EXPORTS CONNECTION
  3207.         Create an export relationship connection.  The user
  3208.         will specify the starting and ending points, and then
  3209.         be allowed to free-form draw the line by specifying up
  3210.         to 20 intermediate points.  The starting point must be
  3211.         within an export symbol.  The ending point must be
  3212.         within the corresponding procedure, function, entry
  3213.         point, or export symbol.
  3214.  
  3215. A.6  Delete Menu Help Descriptions
  3216.  
  3217. Upon selecting the HELP option on the DELETE MENU, the following display
  3218. will be provided in the Graphics Window area of the terminal screen.
  3219.  
  3220. DELETE_MENU
  3221.  
  3222.                            CONFIRM MENU
  3223.  
  3224.         DESCRIPTION :   Confirm or cancel the requested operation.
  3225.                         This menu is utilized when the requested
  3226.                         operation will result in the loss of data
  3227.                         through either deletion of one or more
  3228.                         graphical entities, or the loss ( possibly
  3229.                         through overwriting ) of the entire graph
  3230.                         structure.
  3231.         MENU BACKUP ->  Return to the last higher menu.  This
  3232.                         selection is effectively identical to
  3233.                         selecting a CANCEL.
  3234.         CANCEL      ->  Cancel the requested operation.
  3235.         CONFIRM     ->  Confirm the requested operation.
  3236.  
  3237. The specific HELP descriptions for individual options on DELETE MENU are
  3238. as follows:
  3239.  
  3240.                              MAIN MENU
  3241.  
  3242.                             MENU BACKUP
  3243.  
  3244. CONFIRM_CMD
  3245.  
  3246.                               CONFIRM
  3247.             Confirm the requested operation.  The user
  3248.             acknowledges the acceptability of the data
  3249.             loss implied by the pending operation.  The
  3250.             requested operation is performed and control
  3251.             is returned to the calling menu, or the GAD
  3252.             is exited.
  3253.  
  3254. CANCEL_CMD
  3255.  
  3256.                              CANCEL
  3257.            Cancel the requested operation.  The graph is
  3258.            restored to its original state ( prior to the
  3259.            initiation of the current operation ) and
  3260.            control is returned to the calling menu.
  3261.  
  3262. A.7  Attributes Menu Help Descriptions
  3263.  
  3264. Upon selecting the HELP option on the ATTRIBUTES MENU, the following
  3265. display will be provided in the Graphics Window area of the terminal
  3266. screen.
  3267.  
  3268. ATTRIBUTES_MENU
  3269.  
  3270.                           ATTRIBUTES MENU
  3271.  
  3272.         DESCRIPTION       : Alter the display color or line type
  3273.                             attributes of one or more graphic
  3274.                             entity types.
  3275.  
  3276.         MENU BACKUP       ->  Return to the last higher menu.
  3277.         "GRAPHIC ENTITY"  ->  Alter the display attributes of
  3278.                               the specified entity.
  3279.  
  3280.         GAD will generate the graphs according to the set of
  3281.         display attributes as set by default or as set by the
  3282.         user with the aid of this menu.  Settings are preserved
  3283.         between session as part of the display file.
  3284.  
  3285.         If the user desires to alter the default setting, it is
  3286.         recommended that it be altered prior to the start of the
  3287.         editing session, since entities cannot be redrawn with
  3288.         the new attributes during a session.
  3289.  
  3290. The specific HELP descriptions for individual options on ATTRIBUTES MENU
  3291. are as follows:
  3292.  
  3293.                             MENU BACKUP
  3294.  
  3295. A_VIRT_PACKAGE_CMD
  3296.  
  3297.                      VIRTUAL PACKAGE SYMBOL
  3298.            Alter the virtual package color and line type
  3299.            attributes.
  3300.  
  3301. A_PACKAGE_CMD
  3302.  
  3303.                            PACKAGE SYMBOL
  3304.            Alter the package color and line type attributes.
  3305.  
  3306. A_SUBPROGRAM_CMD
  3307.  
  3308.                          SUBPROGRAM SYMBOL
  3309.            Alter the subprogram color and line type attributes.
  3310.  
  3311. A_TASK_CMD
  3312.  
  3313.                             TASK SYMBOL
  3314.            Alter the task color and line type attributes.
  3315.  
  3316. A_CALL_CONNECT_CMD
  3317.  
  3318.                         CALL CONNECTION LINE
  3319.          Alter the call connection line type attribute.
  3320.  
  3321. A_DATA_CONNECT_CMD
  3322.  
  3323.                     VISIBLE CONNECTION LINE
  3324.          Alter the visibility connection line type attribute.
  3325.  
  3326. A_EXPORT_CONNECT_CMD
  3327.  
  3328.                    EXPORTS CONNECTION LINE
  3329.          Alter the specification connection line color
  3330.          and line type attributes.
  3331.  
  3332. A.8  Color/Line Menu Help Descriptions
  3333.  
  3334. Upon selecting the HELP option on the COLOR/LINE MENU, the following
  3335. display will be provided in the Graphics Window area of the terminal
  3336. screen.
  3337.  
  3338. COLOR_LINE_MENU
  3339.  
  3340.                            COLOR / LINE MENU
  3341.  
  3342.         DESCRIPTION   : Define a new display color or line-type
  3343.                         for the previously selected graphical
  3344.                         entity type.
  3345.  
  3346.         MENU BACKUP   ->  Changes complete, return to the last
  3347.                           higher menu.
  3348.         "Color"       ->  The new color of the graphical entity.
  3349.         SOLID  _____  ->  The new line-font is to be solid.
  3350.         DASHED _ _ _  ->  The new line-font is to be dashed.
  3351.         DOTTED .....  ->  The new line-font is to be dotted.
  3352.  
  3353. The specific HELP descriptions for individual options on COLOR/LINE MENU
  3354. are as follows:
  3355.  
  3356.                            MENU BACKUP
  3357.  
  3358.  
  3359. GREEN_CMD
  3360.                            GREEN
  3361.          Set the color of the previously selected graphical
  3362.          entity type to green.
  3363.  
  3364. BLUE_CMD
  3365.                            BLUE
  3366.          Set the color of the previously selected graphical
  3367.          entity type to blue.
  3368.  
  3369. VIOLET_CMD
  3370.                            VIOLET
  3371.          Set the color of the previously selected graphical
  3372.          entity type to violet.
  3373.  
  3374. RED_CMD
  3375.                            RED
  3376.          Set the color of the previously selected graphical
  3377.          entity type to red.
  3378.  
  3379. ORANGE_CMD
  3380.                            ORANGE
  3381.          Set the color of the previously selected graphical
  3382.          entity type to orange.
  3383.  
  3384. YELLOW_CMD
  3385.                            YELLOW
  3386.          Set the color of the previously selected graphical
  3387.          entity type to yellow.
  3388.  
  3389. BLACK_CMD
  3390.                            BLACK
  3391.          Set the color of the previously selected graphical
  3392.          entity type to black.
  3393.  
  3394. SOLID_CMD
  3395.  
  3396.                            SOLID  _____
  3397.          Set the line-type of the previously selected graphical
  3398.          entity type to solid.
  3399.  
  3400.               ___________________________________________
  3401.  
  3402. DASHED_CMD
  3403.  
  3404.                            DASHED _ _ _
  3405.          Set the line-type of the previously selected graphical
  3406.          entity type to dashed.
  3407.  
  3408.               _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  3409.  
  3410. DOTTED_CMD
  3411.  
  3412.                            DOTTED .....
  3413.          Set the line-type of the previously selected graphical
  3414.          entity type to dotted.
  3415.  
  3416.               ...........................................
  3417.  
  3418. A.9  Parameter Status Menu Commands
  3419.  
  3420. Upon selecting the HELP option on the PARAMETER MENU, the following
  3421. display will be provided in the Graphics Window area of the terminal
  3422. screen.
  3423.  
  3424. PARAMETER_STATUS_MENU
  3425.  
  3426.                            PARAMETER STATUS MENU
  3427.  
  3428.         DESCRIPTION   : Define the parameter status of the entity
  3429.                         ( subprogram or task entry point ) being
  3430.                         created.
  3431.  
  3432.         MENU BACKUP   ->  Abort this creation and return to the
  3433.                           last higher menu.
  3434.         HAS PARAMS    ->  Assign parameters to the created entity.
  3435.         NO PARAMS     ->  Do not assign parameters to the created
  3436.                           entity.
  3437.  
  3438.         After selection of parameter status, return and complete
  3439.         drawing.
  3440.  
  3441. The specific HELP descriptions for individual options on PARAMETER
  3442. STATUS MENU are as follows:
  3443.  
  3444.                            MENU BACKUP
  3445.  
  3446. HAS_PARAMETERS_CMD
  3447.  
  3448.                            HAS PARAMS
  3449.  
  3450.            Assign parameters to the created entity.  Parameters
  3451.            are indicated on the graphical display by '[ ]'
  3452.            following the subprogram or entry identifier.
  3453.  
  3454.            After selection of parameter status, return
  3455.            and complete drawing.
  3456.  
  3457. NO_PARAMETERS_CMD
  3458.  
  3459.                            NO PARAMS
  3460.  
  3461.            Do not assign parameters to the created entity.
  3462.  
  3463.            After selection of parameter status, return and
  3464.            complete drawing.
  3465.  
  3466. A.10  Call Menu Commands
  3467.  
  3468. Upon selecting the HELP option on the CALL MENU, the following display
  3469. will be provided in the Graphics Window area of the terminal screen.
  3470.  
  3471. CALL_STATUS_MENU
  3472.  
  3473.                            CALL STATUS MENU
  3474.  
  3475.         DESCRIPTION     : Define the call status of the entity
  3476.                           being created.
  3477.  
  3478.         MENU BACKUP   ->  Abort this creation and return to the
  3479.                           last higher menu.
  3480.         UNCONDITIONAL ->  Set the call status to unconditional.
  3481.         CONDITIONAL   ->  Set the call status, to an entry point,
  3482.                           or subprogram to conditional.
  3483.         TIMED         ->  Set the call status, to an entry point,
  3484.                           to timed.
  3485.  
  3486.         After selection of call status, return and complete
  3487.         drawing.
  3488.  
  3489. The specific HELP descriptions for individual options on CALL STATUS
  3490. MENU are as follows:
  3491.  
  3492.                            MENU BACKUP
  3493.  
  3494.  
  3495. UNCONDITIONAL_CMD
  3496.  
  3497.                            UNCONDITIONAL
  3498.         Set the call status to unconditional.
  3499.  
  3500.         After selection of call status, return and complete
  3501.         drawing.
  3502.  
  3503. CONDITIONAL_CMD
  3504.  
  3505.                            CONDITIONAL
  3506.         Set the call status, to an entry point, to conditional.
  3507.         Conditional calls are denoted by a 'C' in the caller.
  3508.         Conditional calls can be made to task entries or
  3509.         subprograms.
  3510.  
  3511.         After selection of call status, return and complete
  3512.         drawing.
  3513.  
  3514. TIMED_CMD
  3515.  
  3516.                            TIMED
  3517.         Set the call status, to an entry point, to timed.
  3518.         Timed calls are denoted by a 'T' in the caller.
  3519.  
  3520.         After selection of call status, return and complete
  3521.         drawing.
  3522.  
  3523. A.11  ENTRY_POINT Status Menu Commands
  3524.  
  3525. Upon selecting the HELP option on the ENTRY_POINT MENU, the following
  3526. display will be provided in the Graphics Window area of the terminal
  3527. screen.
  3528.  
  3529. ENTRY_POINT_STATUS_MENU
  3530.  
  3531.                            ENTRY POINT STATUS MENU
  3532.  
  3533.         DESCRIPTION     : Define the entry point status of the entity
  3534.                           being created.
  3535.  
  3536.         MENU BACKUP   ->  Abort this creation, return to the
  3537.                           last higher menu.
  3538.         UNGUARDED     ->  Assign unguarded status to the created
  3539.                           entry point.
  3540.         GUARDED       ->  Assign guarded status to the created
  3541.                           entry point.
  3542.  
  3543.         After selection of entry point status, return and complete
  3544.         drawing.
  3545.  
  3546. The specific HELP descriptions for individual options on ENTRY POINT
  3547. STATUS MENU are as follows:
  3548.  
  3549.                            MENU BACKUP
  3550.  
  3551.  
  3552. UNGUARDED_CMD
  3553.  
  3554.                            UNGUARDED
  3555.  
  3556.            Assign unguarded status to the created entry point.
  3557.  
  3558.            After selection of entry point status, return and
  3559.            complete drawing.
  3560.  
  3561. GUARDED_CMD
  3562.  
  3563.                            GUARDED
  3564.  
  3565.            Assign guarded status to the created entry point.
  3566.            Guarded entry points are denoted by a '*' prefixed
  3567.            to the entry identifier.
  3568.  
  3569.            After selection of entry point status, return and
  3570.            complete drawing.
  3571.  
  3572. A.12  PDL Status Menu Commands
  3573.  
  3574. Upon selecting the HELP option on the PDL STATUS MENU, the following
  3575. display will be provided in the Graphics Window area of the terminal
  3576. screen.
  3577.  
  3578. PDL_STATUS_MENU
  3579.  
  3580.                            PDL STATUS MENU
  3581.  
  3582.         DESCRIPTION     : Define if the SUPPORT_PACKAGE should be
  3583.                           included in the PDL to be generated.
  3584.                           The SUPPORT_PACKAGE permits 'TBD' items
  3585.                           in the PDL to be correctly compiled.
  3586.  
  3587.         MENU BACKUP   ->  Abort this PDL generation and return to
  3588.                           the last higher menu.
  3589.         WITH SUPPORT  ->  Include the SUPPORT_PACKAGE in the
  3590.                           generated PDL.
  3591.         NO SUPPORT    ->  Do not include the SUPPORT_PACKAGE
  3592.                           in the generated PDL.
  3593.  
  3594.         package SUPPORT_PACKAGE is
  3595.  
  3596.            type TBD_TYPE is ( TBD )  ; -- used as function return
  3597.                                        -- type
  3598.            TBD_OBJECT     : TBD_TYPE ; -- the function return value
  3599.            TBD_PARAMETERS : TBD_TYPE ; -- the subprogram calling
  3600.                                        -- parameters
  3601.            TBD_TIME       : DURATION ; -- for delay statements
  3602.            TBD_CONDITION  : BOOLEAN  ; -- for conditional statements
  3603.  
  3604.         end SUPPORT_PACKAGE ;
  3605.  
  3606.         After selection of the SUPPORT_PACKAGE status, return and
  3607.         complete the PDL generation.
  3608.  
  3609. The specific HELP descriptions for individual options on pdl STATUS MENU
  3610. are as follows:
  3611.  
  3612.                            MENU BACKUP
  3613.  
  3614.  
  3615. WITH_SUPPORT_CMD
  3616.  
  3617.                            WITH SUPPORT
  3618.  
  3619.            Include the SUPPORT_PACKAGE in the generated PDL.
  3620.  
  3621.            After selection of the SUPPORT_PACKAGE status, return
  3622.            and complete the PDL generation.
  3623.  
  3624. NO_SUPPORT_CMD
  3625.  
  3626.                            NO SUPPORT
  3627.  
  3628.            Do not include the SUPPORT_PACKAGE in the generated PDL.
  3629.  
  3630.            After selection of the SUPPORT_PACKAGE status, return
  3631.            and complete the PDL generation.
  3632.  
  3633.  
  3634.  
  3635.  
  3636.  
  3637.  
  3638.  
  3639.  
  3640.  
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650.  
  3651.  
  3652.  
  3653.  
  3654.                             APPENDIX B
  3655.                   TOOL CONFIGURATION REQUIREMENTS
  3656.                             APPENDIX B
  3657.                   TOOL CONFIGURATION REQUIREMENTS
  3658.  
  3659.  
  3660. B.1        Host Environment
  3661.  
  3662. GAD is hosted on a VAX using the VMS operating system, and is
  3663. written in Ada.  Initial program design and development was
  3664. performed with the TeleSoft Version 1.5 Ada Compiler.  Program
  3665. development was completed with the Digital Equipment Corporation
  3666. Version 1.0 Ada Compiler.  The program is written in machine and
  3667. compiler independent Ada and is intended to be dependent only on
  3668. the graphics terminal and printer used. The interaction of GAD with
  3669. the user, host operating system and file system, and graphics
  3670. terminal and printer is illustrated in Figure B.1-1.
  3671.  
  3672.  
  3673.                            VAX/VMS HOST
  3674.          ---------------------------------------------------
  3675.          |                     GAD                         |
  3676.          |         -----------------------------------     |
  3677.          |         |             |                   |     |
  3678.          |         | Functional  | Memory Resident   |     |
  3679.          |         | Modules     | Tree Based Forms  |     |
  3680.          |         |             |                   |     |
  3681.          |         -----------------------------------     |
  3682.          |         |                                 |     |
  3683.          |         |     Ada Runtime System          |     |
  3684.          |         |                                 |     |
  3685.          |         -----------------------------------     |
  3686.          ---------------------------------------------------
  3687.     (* Keyboard &       ^      |    |     ^
  3688.        Cursor Control)  |      |    |     |
  3689.                         |      |    |     |
  3690.          User Input * --+      |    |     +--->  Design File
  3691.                                |    |
  3692.          Graphics Output <-----+    +--------->  PDL File
  3693.            |
  3694.            v
  3695.          Graphics Hardcopy
  3696.  
  3697.  
  3698.                       GAD Host Interfaces
  3699.                          Figure B.1-1
  3700.  
  3701.  
  3702.  
  3703. The graphs developed using GAD are stored in a tree-like
  3704. representation form created and maintained by GAD.  GAD uses the
  3705. graphics terminal to provide a "window" onto the graph with the
  3706. capability of pan and zoom. At full zoom out (no magnification) the
  3707. user can view an entire graph.
  3708.  
  3709. B.2        Graphics Terminal Hardware Summary
  3710.  
  3711. GAD is designed to use the capabilities of a color bit mapped
  3712. graphics terminal to build graphic representations of Ada program
  3713. structures (OODDs).  This version of GAD will use the Tektronix
  3714. 4107 color graphics terminal. This tool will make use of the
  3715. device's advanced features to provide an efficient interactive
  3716. graphics environment, and will supplement this by using a cursor
  3717. positioning hardware device (joy disc) to speed input.
  3718.  
  3719. Table B.2-1   TEKTRONIX 4107 GRAPHICS HARDWARE DEVICE DESCRIPTIONS
  3720.  
  3721.  
  3722.          -------------------------------------------
  3723.          Display size:                 13" Diagonal
  3724.          Color palette:                64
  3725.          Displayable colors
  3726.               Graphics:                16
  3727.               Alphanumerics:           8
  3728.          Dialog Area
  3729.               Characters x lines:      80 x 32
  3730.               Resolution:              640 x 480
  3731.               Addressable points:      4096 x 4096
  3732.          Graphics Input Device (GIN):  Joy-Disc
  3733.          Windowing:                    Yes
  3734.          Zoom and Pan:                 Yes
  3735.          Segments:                     Yes
  3736.          VT100 Compatible:             Yes
  3737.          Local Memory:                 256K bytes
  3738.          Communications:               RES-232-C
  3739.          Maximum baud range
  3740.            with flagging:              38.4K
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  
  3760.  
  3761.  
  3762.                             APPENDIX C
  3763.                         GLOSSARY OF TERMS
  3764.                             APPENDIX C
  3765.                         GLOSSARY OF TERMS
  3766.  
  3767.  
  3768. Ada        A programming language developed by the Department of
  3769.           Defense to become its common high order language.
  3770.  
  3771. Cursor    A device such as a mouse or joy disc used to
  3772. Control    position the graphics cursor on a graphics
  3773. Device    terminal.
  3774.  
  3775. DCL        DEC Command Language.  The command language of the VMS
  3776.           operating system.
  3777.  
  3778. DEC        Digital Equipment Corporation.
  3779.  
  3780. Entity    An entity is an Ada program structure (e.g., package,
  3781.           subprogram, or body) or annotation showing Ada semantic
  3782.           information (e.g., export label) which is represented by
  3783.           a graphic symbol.
  3784.  
  3785. Graphics    The cursor used by a graphics terminal when performing
  3786. Cursor    graphics operations.  It is denoted by a set of cross-
  3787.           hairs which can be moved around the screen using a
  3788.           cursor control device.
  3789.  
  3790. Icon        A graphic or textual symbol.
  3791.  
  3792. Joy Disc    A flat octagon normally mounted on a gimbal and usually
  3793.           placed in the upper corner of the keyboard, which is
  3794.           used to manipulate the Graphics Cursor.
  3795.  
  3796. MMI        Man-Machine Interface.  The means by which a tool user
  3797.           and machine/program interact.
  3798.  
  3799. Mouse    A cursor control device which when moved around on a
  3800.           flat surface produces an equal or proportional amount of
  3801.           movement in the same direction on the Graphics Cursor.
  3802.  
  3803. OODD        Object-Oriented Design Diagram.  A graphics diagram
  3804.           which depicts a set of objects (in this program
  3805.           structures) and their inter-relationships.
  3806.  
  3807. Page        A Page constitutes the total space which a graph may
  3808.           occupy.  Currently there is a single page (or graph) per
  3809.           graphics file.
  3810.  
  3811. PDL        Program Design Language.  A PDL is used to describe a
  3812.           design's components and their interactions.
  3813.  
  3814. Semantic    The meaning of a programming language, and more
  3815.           specifically the tokens (words) which construct it.
  3816.           Semantic correctness in a programming language requires
  3817.           that user defined words have the proper meaning through
  3818.           correct definition.
  3819.  
  3820. Session    The session file name, is the file name of the most
  3821. File     recently read in Syntax Tree file.  During program
  3822. Name        initialization the user is prompted to enter a file name
  3823.           which is the session file name unless it is altered by
  3824.           use of the READ_FILE command.
  3825.  
  3826. Syntax    A formal property of a programming language which
  3827.           describes the arrangement of tokens and characters in
  3828.           correct utilization of the language.
  3829.  
  3830. Window    The user CRT provides a 'window' on the current page
  3831.           being edited by GAD. The 'window' is a view of part of
  3832.           the graph which can be moved so that all of the graph
  3833.           can be viewed, just not all at one time.
  3834.  
  3835. VAX        A family of 32-bit minicomputers manufactured by Digital
  3836.           Equipment Corporation.
  3837.  
  3838. Virtual    A design abstraction which is one level of abstraction
  3839. Package    higher than an actual package but which draws on the
  3840.           same concepts as Ada package features.
  3841.  
  3842. VMS        A Virtual Memory Operating System used on the VAX
  3843.           computer.
  3844.  
  3845.  
  3846.  
  3847.  
  3848.  
  3849.  
  3850.  
  3851.  
  3852.  
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864.  
  3865.                             APPENDIX D
  3866.                    EXPLANATION OF ERROR MESSAGES
  3867.  
  3868.                                APPENDIX D
  3869.                      EXPLANATION OF ERROR MESSAGES
  3870.  
  3871.  
  3872. This appendix describes the error messages associated with the Graphic
  3873. Ada Designer.  Along with each message is a brief description that
  3874. elaborates on the meaning of the error message.  The messages are
  3875. ordered alphabetically.
  3876.  
  3877. During GAD operations, if a "PROGRAM ERROR -- " message is displayed,
  3878. then an unintended error has occurred.  The user should note the
  3879. operation being performed and any other pertinent information that might
  3880. assist in tracing the error.  This information should be presented to
  3881. SYSCON.
  3882.  
  3883.  
  3884. "<Ada identifier> will overlap another entity (improper scoping) "
  3885.      When attemping a Move and Resize, an entity will overlap another.
  3886.      The operation is prevented to maintain consistency between the
  3887.      graphic and the syntax tree representations.
  3888.  
  3889. "annotation will show improper scope, overlaps or overextends, re-try"
  3890.      If the annotation was created at the selected location, the
  3891.      annotation would show improper scope.  The operation is prevented
  3892.      to maintain consistency between the graphic and the syntax tree
  3893.      representations.  A different vertical position for the annotation
  3894.      must be selected.
  3895.  
  3896. "an out-of-scope translation of annotations is not permitted "
  3897.      A Move and Resize operation is not permitted to alter the scope of
  3898.      an annotation (as the requested operation would).
  3899.  
  3900. "current window is on display boundary "
  3901.      The current window may not be panned (moved) in the requested
  3902.      direction because it is already at the boundary of the graph.
  3903.  
  3904. "entity selected can not be modified"
  3905.     The user selected entity is not of the correct type to be modified.
  3906.  
  3907. "file not available for input "
  3908.      A read file operation has failed because the file specified is not
  3909.      available for utilization.  This error does not result from the
  3910.      user specifying an invalid name, but normally from file access
  3911.      contention problems (e.g., the file has been locked for use by
  3912.      another user).
  3913.  
  3914. "HELP FILE NOT AVAILABLE "
  3915.      The program was unable to locate the Help File.  This results from
  3916.      incorrect/incomplete installation of the Graphic Ada Designer.  The
  3917.      Help File needs to be loaded onto the host system, and the logical
  3918.      symbol "HELP_FILE" defined (on VMS hosts).
  3919.  
  3920. "HELP FOR <command> IS NOT AVAILABLE "
  3921.      No Help entry could be located for the command requested.  This
  3922.      results from the selection of a null menu icon or the utilization
  3923.      of an out-of-date Help File.
  3924.  
  3925. "if modified this annotation may show improper scope (overlap or
  3926.          overextend) "
  3927.      When attemping a Modify operation on an annotation, if the length
  3928.      of the annotation were to be increased, the annotation would show
  3929.      improper scope.  The operation is prevented to maintain consistency
  3930.      between the graphic and the syntax tree representations.  The
  3931.      entity that is just to the right of the current annotation must be
  3932.      moved to allow modification of the annotation.
  3933.  
  3934. "ILLEGAL File Name Entered "
  3935.      The file name entered was illegal.  This is detected by the
  3936.      program's inability to create/locate a file with the specified
  3937.      name.
  3938.  
  3939. "illegal to delete the outer scope"
  3940.      The User has attempted to delete the outer scope (e.g. the point
  3941.      selected is not within any drawn entity).  This would result in
  3942.      deleting the root of the Syntax Tree and as such, is prevented.
  3943.  
  3944. "INPUT ERROR for cursor, Please RE-TRY "
  3945.      Invalid information was found in the program input buffer when
  3946.      attempting to obtain a graphics cursor position.  The invalid data
  3947.      has been removed from the buffer, and the user is requested to
  3948.      retry the operation.  The invalid information is most often
  3949.      inserted in the buffer by accidental use of the keyboard.
  3950.  
  3951. "INVALID, calls cannot be made from within the enclosing task"
  3952.      The user has attempted to create a call to an entry point of a task
  3953.      which encloses the scope of the body from which the call
  3954.      originated.  This call is invalid because it would result in a hung
  3955.      task.
  3956.  
  3957. "INVALID MENU ICON SELECTION - TRY AGAIN"
  3958.      The selected menu icon is not a valid selection for this menu. This
  3959.      results from the selection of an empty icon box during menu
  3960.      processing.
  3961.  
  3962. "invalid scope due to wrong parent type "
  3963.      The currently selected point is being rejected as invalid because
  3964.      its scope is improper.  Specifically the immediate parent scope of
  3965.      the point is of the wrong type for the attempted operation.
  3966.  
  3967. "invalid scope for export declaration "
  3968.      The selected parent scope for the export declaration being created
  3969.      in invalid.  Exports may only be created with packages or virtual
  3970.      packages as parents.
  3971.  
  3972. "invalid scope for exported entry point "
  3973.      An exported entry point must be an annotation to a package. If the
  3974.      scope specified during the creation process is other than a
  3975.      package, then the scope in invalid.
  3976.  
  3977. "invalid scope for import declaration "
  3978.      The selected parent scope for the import declaration being created
  3979.      in invalid.  Imports may only be created with packages or virtual
  3980.      packages as parents.
  3981.  
  3982. "invalid sizing point selected, retry "
  3983.      The size (lower right hand) point selected for a move and resize
  3984.      operation is invalid.  The point is above and/or to the left of the
  3985.      first point selected.  The user should select a new, and valid,
  3986.      size point.
  3987.  
  3988. "invalid string entered for Ada identifier "
  3989.      The user entered string can not be accepted as the name of an
  3990.      entity because it is not a valid Ada identifier.  The user should
  3991.      reenter the name correcting any typographical errors and/or
  3992.      changing the intended spelling to correspond to the rules of Ada.
  3993.  
  3994. "invalid, an annotation cannot be placed at the outer scope"
  3995.      The currently selected point is being rejected as invalid because
  3996.      it is not within a previously created entity.  Annotations cannot
  3997.      stand alone.
  3998.  
  3999. "invalid, call status cannot be timed"
  4000.      The entity type of the call connection termination is not an entry
  4001.      point, and consequently the call can not be timed. A call to a
  4002.      subprogram can not be timed.
  4003.  
  4004. "invalid, calls cannot be made to a generic declaration"
  4005.      Since generic declarations must be instantiated to be executed, it
  4006.      is improper to call an entity that is a generic declaration.  Also
  4007.      it is invalid to call an entity that is enclosed within a generic
  4008.      declaration.
  4009.  
  4010. "invalid, cannot delete connection, must delete exported entry point"
  4011.      The user has attempted to delete the connection between an exported
  4012.      entry point and an entry point.  This would result in an exported
  4013.      entry point without a reference to an entry point, which is
  4014.      invalid.  The user must delete the exported entry point which would
  4015.      also delete any cooresponding connections.  This is required to
  4016.      prevent stand-alone entry points which are semantically undefined
  4017.      in Ada.
  4018. "invalid, contained entity cannot be a body "
  4019.      The entity to be created would surround an existing body.  Since
  4020.      the scope of the body would be altered the entity creation is not
  4021.      allowed.
  4022.  
  4023. "invalid, contained entity may not have imports "
  4024.      The entity to be created would surround a package or virtual
  4025.      package with imported entities.  Since the scope of the imported
  4026.      entities would be altered the entity creation is not allowed.
  4027.  
  4028. "invalid, creation would invalidate call connection "
  4029.      The entity to be created would invalidate the scope of a
  4030.      call connection, therefore the entity creation is not allowed.
  4031.  
  4032. "invalid, creation would invalidate export connection "
  4033.      The entity to be created would invalidate the scope of an
  4034.      export connection, therefore the entity creation is not allowed.
  4035.  
  4036. "invalid, creation would invalidate task entry connection "
  4037.      The entity to be created would invalidate the scope of a task
  4038.      entry connection, therefore the entity creation is not allowed.
  4039.  
  4040. "invalid, creation would invalidate visibility connection "
  4041.      The entity to be created would invalidate the scope of a visibility
  4042.      connection, therefore the entity creation is not allowed.
  4043.  
  4044. "invalid, entities are within the same scope"
  4045.      When creating a visibility connection, it is improper to make the
  4046.      connection between two entities within the same scope. The entities
  4047.      may already be visible, or else the lower level entity should be
  4048.      exported to show the visibility.
  4049.  
  4050. "invalid, entities may not surround previously created entities
  4051.      Entities may not be created which alter the scope of existing
  4052.      entities.  The creation of an entity surrounding existing entities
  4053.      would violate this statement.
  4054.  
  4055. "invalid, entity placement would exceed maximum nesting level"
  4056.      The program enforces a maximum level of nesting to prevent graphs
  4057.      from becoming excessively convoluted.  The scope of the points
  4058.      entered exceeds this maximum nesting level, and has such are
  4059.      invalid.  The maximum level of nesting is a compile time parameter
  4060.      and may be changed (although this is not recommended since
  4061.      considerable experience has gone into selecting the initial value).
  4062.  
  4063. "invalid, entity points and corners must be within same scope"
  4064.      The two points specifying the upper left hand and lower right hand
  4065.      corners of an entity must be within the same scope (graphic
  4066.      entity).  Not having the corner points within the same scope
  4067.      results in indeterminate semantics for the graph.  This message
  4068.      also occurs if the second point is not lower and to the right of
  4069.      the first point.
  4070.  
  4071. "invalid, entry point must be placed within a task "
  4072.      The placement of an entry point can only be within a task entity.
  4073.  
  4074. "invalid, export is already connected to an entity "
  4075.      It is invalid for an export to have more than one exports
  4076.      connection.  The selected export already contains an exports
  4077.      connection.
  4078.  
  4079. "invalid, improper scoping for connection"
  4080.      The entity at which the connection terminates is not within a
  4081.      visible scope of the originating entity.  This would result if the
  4082.      user attempts to establish a connection to a non-exported
  4083.      subprogram in a package which does not contain the caller.
  4084.  
  4085. "invalid, improper visibility for call"
  4086.      The entity at which the call connection terminates is not within a
  4087.      visible scope of the calling entity.  This would result is the user
  4088.      attempts to establish a call connection to a non-exported
  4089.      subprogram in a package which does not contain the caller.
  4090.  
  4091. "invalid, improper ending entity for exports connection "
  4092.      The exports connection must terminate at a procedure, a function or
  4093.      another export.  The selected termination of the connection is
  4094.      invalid because it is not one of these.
  4095.  
  4096. "invalid, must connect to entry point"
  4097.      An exported entry point must be connected to an entry point or
  4098.      exported entry point within the parent scope as it is created.
  4099.      This is required to prevent stand-alone entry points which are
  4100.      semantically undefined in Ada.
  4101.  
  4102. "invalid, no corresponding connection exists"
  4103.      In attempting to perform a "Delete Connection", the user has
  4104.      selected an entity which does originate any connections.
  4105.  
  4106. "invalid, no line exists for call status modification "
  4107.      The user has selected a body that does not contain any call lines.
  4108.      Therefore, the modification is impossible.
  4109.  
  4110. "invalid, only outer most scope is valid for import declaration "
  4111.      The selected parent scope for the import declaration being created
  4112.      in invalid.  Imports may only be created at the top level (outer
  4113.      most scope) because the Ada visibility clauses they represent are
  4114.      only valid at the top level.
  4115.  
  4116. "invalid, only packages or import packages can be referenced "
  4117.      When creating a visibility connection, the valid ending entities
  4118.      for the connection are virtual packages, packages, imported virtual
  4119.      packages, or imported packages.
  4120.  
  4121. "invalid, parent already has an executing body "
  4122.      The user may not create a body within the specified entity because
  4123.      one already exists.  No more than one body is permited for each
  4124.      entity capable of having a body.
  4125.  
  4126. "invalid, stand alone tasks are not allowed "
  4127.      Tasks may not stand alone.  They must be enclosed within a
  4128.      previouly created entity.
  4129.  
  4130. "invalid, subprogram call status cannot be timed"
  4131.      The entity type of the call connection termination is not an entry
  4132.      point, and consequently the call can not be timed. A call to a
  4133.      subprogram can not be timed.
  4134.  
  4135. "invalid, tasks must be placed within package or subprogram "
  4136.      Tasks may not stand alone.  They must be enclosed within a
  4137.      previouly created entity.
  4138.  
  4139. "invalid, the annotation is too close to page boundaries "
  4140.      Placement of the annotation would be too close to the boundary of
  4141.      the graph page.  Portions of the graph must be moved away from the
  4142.      boundary to permit labels (import/export/entity names) to be drawn
  4143.      on the graph.
  4144.  
  4145. "invalid, the export annotation does not match to a function"
  4146.      A function declaration can only be referenced by an exported
  4147.      function. The selected termination of the connection is invalid
  4148.      because the export annotation is not an exported function.
  4149.  
  4150. "invalid, the export annotation does not match to a procedure"
  4151.      A procedure declaration can only be referenced by an exported
  4152.      procedure. The selected termination of the connection is invalid
  4153.      because the export annotation is not an exported procedure.
  4154.  
  4155. "invalid, the export entity types do not match "
  4156.      When an entity is being exported through multiple package levels,
  4157.      the exports connection between any two exports requires that the
  4158.      exports be of the exact same type.
  4159.  
  4160. "invalid, the outer scope cannot be moved "
  4161.      The user has attempted to move the outer scope (e.g. the point
  4162.      selected is not within any drawn entity).  This is invalid.
  4163.  
  4164. "invalid, this type of entity cannot be called "
  4165.      The entity type of the call connection termination is not an entity
  4166.      that is callable(i.e., cannot call a package or body).
  4167.  
  4168. "Move canceled, an invalid graph (figure to narrow) would have resulted"
  4169.      A Move and Resize operation has been canceled, and the graph
  4170.      restored to its original condition.  The cancelation was
  4171.      implemented because an entity, most likely a task, was to narrow to
  4172.      draw.  If entities contain exports, imports, or entry points, the
  4173.      annotations must not overlap beyond the intended scope.  Also,
  4174.      entities must be at least two characters wide.
  4175.  
  4176. "Move canceled, an invalid graph would have resulted "
  4177.      A Move and Resize operation has been canceled, and the graph
  4178.      restored to its original condition.  The cancelation was
  4179.      implemented to prevent corruption of the graph tree, probably
  4180.      resulting from invalid scoping in the translated graph.
  4181.  
  4182. "no entities can be placed inside an annotation "
  4183.      Annotations may not have any entities placed inside of them.
  4184.  
  4185. "no entities can be placed inside an instantiated unit "
  4186.      Generic entities may not have any entities placed inside of them
  4187.      because they are defined elsewhere (i.e., the corresponding generic
  4188.      declaration).
  4189.  
  4190. "overlapping of entities prevents this scope from being translated"
  4191.      Overlapping entities imply a graph with undefined semantics because
  4192.      the scoping relationship of two or more entities can not be
  4193.      uniquely determined.  The existence of overlapping prevents any
  4194.      tree translation operations from being performed.
  4195.  
  4196. "PANIC EXIT PROCESS COMPLETED "
  4197.      An unhandled exception has been propagated to the top-level unit of
  4198.      the program and is resulting in an abnormal termination of the
  4199.      program which is termed a "Panic Exit".  The processing of the
  4200.      "Panic Exit" includes attempting to save the current graph.
  4201.  
  4202. "press cursor input device "
  4203.      The program will continue after the user acknowledges the current
  4204.      message by pressing the specified key.
  4205.  
  4206. "PROGRAM ERROR -- entity is not in the graph tree"
  4207.      A Program Error (unintended exception condition) was detected
  4208.      during a Pick operation.  The picked entity was not found in the
  4209.      Syntax Tree.
  4210.  
  4211. "PROGRAM ERROR -- in ANNOTATING Menu "
  4212.      A Program Error (unintended exception condition) was detected
  4213.      during the creation of an annotation (import or export entity).
  4214.  
  4215. "PROGRAM ERROR -- in attempted delete, nothing deleted "
  4216.      A Program Error (unintended exception condition) was detected
  4217.      during a delete operation.  The program recovers by not deleting
  4218.      the user requested entity (or anything else).
  4219.  
  4220. "PROGRAM ERROR -- in CALL_STATUS_MENU "
  4221.      A Program Error (unintended exception condition) was detected
  4222.      during the processing of call status information.
  4223.  
  4224. "PROGRAM ERROR -- in checking tree validity "
  4225.      A Program Error (unintended exception condition) was detected
  4226.      during a tree validity check, which verifies scoping consistency.
  4227.      Previously overlapping entities (e.g., export labels) may cause
  4228.      this problem.
  4229.  
  4230. "PROGRAM ERROR -- in connection drawing "
  4231.      A Program Error (unintended exception condition) was detected
  4232.      during the drawing of a connection.
  4233.  
  4234. "PROGRAM ERROR -- in control attributes "
  4235.      A Program Error (unintended exception condition) was detected
  4236.      during the selection of a entity for attribute modification.
  4237.  
  4238. "PROGRAM ERROR -- in control color/line "
  4239.      A Program Error (unintended exception condition) was detected
  4240.      during the selection of a color/line attribute.
  4241.  
  4242. "PROGRAM ERROR in CREATE_CONNECTION "
  4243.      A Program Error (unintended exception condition) was detected
  4244.      during the creation of a connection.
  4245.  
  4246. "PROGRAM ERROR -- in CREATING requested entity "
  4247.      A Program Error (unintended exception condition) was detected
  4248.      during the creation of a user requested entity.
  4249.  
  4250. "PROGRAM ERROR -- in DELETE_MENU "
  4251.      A Program Error (unintended exception condition) was detected
  4252.      during the processing of confirm/cancel information.
  4253.  
  4254. "PROGRAM ERROR -- in DESIGN Menu control "
  4255.      A Program Error (unintended exception condition) was detected
  4256.      during Design menu processing.
  4257.  
  4258. "PROGRAM ERROR -- in ENTRY_POINT_STATUS_MENU "
  4259.      A Program Error (unintended exception condition) was detected
  4260.      during the processing of entry point status information.
  4261.  
  4262. "PROGRAM ERROR -- in GENERIC_MENU "
  4263.      A Program Error (unintended exception condition) was detected
  4264.      during the processing of generic status information.
  4265.  
  4266. "PROGRAM ERROR -- in lowest common parent"
  4267.      A Program Error (unintended exception condition) was detected
  4268.      during the determination of the lowest common parent.
  4269.  
  4270. "PROGRAM ERROR -- in MODIFY "
  4271.      A Program Error (unintended exception condition) was detected
  4272.      during entity modification.
  4273.  
  4274. "PROGRAM ERROR -- in MODIFY_CALL_STAT"
  4275.      A Program Error (unintended exception condition) was detected
  4276.      during the modification of call status.
  4277.  
  4278. "PROGRAM ERROR -- in MODIFY_ENTRY_PARAM_STAT"
  4279.      A Program Error (unintended exception condition) was detected
  4280.      during the modification of entry point parameter status.
  4281.  
  4282. "PROGRAM ERROR -- in MODIFY_ENTRY_STAT"
  4283.      A Program Error (unintended exception condition) was detected
  4284.      during the modification of entry point guard status.
  4285.  
  4286. "PROGRAM ERROR -- in MODIFY_GENERIC_NAME "
  4287.      A Program Error (unintended exception condition) was detected
  4288.      during the modification of generic instantiation name.
  4289.  
  4290. "PROGRAM ERROR -- in MODIFY_NAME "
  4291.      A Program Error (unintended exception condition) was detected
  4292.      during the modification of the entity's name.
  4293.  
  4294. "PROGRAM ERROR -- in MODIFY_PROLOGUE"
  4295.      A Program Error (unintended exception condition) was detected
  4296.      during the modification of an entity's prologue.
  4297.  
  4298. "PROGRAM ERROR -- in MODIFY_SUBPROGRAM_PARAM_STAT"
  4299.      A Program Error (unintended exception condition) was detected
  4300.      during the modification of subprogram parameter status.
  4301.  
  4302. "PROGRAM ERROR -- in MOVE_AND_RESIZE find lines operations "
  4303.      A Program Error (unintended exception condition) was detected while
  4304.      finding connections to a moved entity.  This is a local subprogram
  4305.      of the Move and Resize processing.
  4306.  
  4307. "PROGRAM ERROR -- in MOVE_AND_RESIZE move operation "
  4308.      A Program Error (unintended exception condition) was detected while
  4309.      performing the moving operation during the processing of a move and
  4310.      resize request.
  4311.  
  4312. "PROGRAM ERROR -- in MOVE_AND_RESIZE operation "
  4313.      A Program Error (unintended exception condition) was detected at
  4314.      the outer scope of the MOVE_AND_RESIZE subprogram during the
  4315.      processing of Move and Resize request.
  4316.  
  4317. "PROGRAM ERROR -- in MOVE_AND_RESIZE redraw lines operations "
  4318.      A Program Error (unintended exception condition) was detected while
  4319.      redrawing connections to a moved entity.  This is a local
  4320.      subprogram of the Move and Resize processing.
  4321.  
  4322. "PROGRAM ERROR -- in MOVE_AND_RESIZE resize operation "
  4323.      A Program Error (unintended exception condition) was detected while
  4324.      performing the resizing operation during the processing of a move
  4325.      and resize request.
  4326.  
  4327. "PROGRAM ERROR -- in MOVE_AND_RESIZE restore lines operations "
  4328.      A Program Error (unintended exception condition) was detected while
  4329.      restoring connection to a moved entity.  This is a local subprogram
  4330.      of the Move and Resize processing.
  4331.  
  4332. "PROGRAM ERROR -- in MOVE_AND_RESIZE scoping operations "
  4333.      A Program Error (unintended exception condition) was detected while
  4334.      selecting the scope of influence during the processing of a move
  4335.      and resize request.
  4336.  
  4337. "PROGRAM ERROR -- in MOVE_AND_RESIZE translate lines operations "
  4338.      A Program Error (unintended exception condition) was detected while
  4339.      translating connection points when the connection goes to a moved
  4340.      entity.  This is a local subprogram of the Move and Resize
  4341.      processing.
  4342.  
  4343. "PROGRAM ERROR -- in MOVE_AND_RESIZE verify lines operations "
  4344.      A Program Error (unintended exception condition) was detected while
  4345.      verifying connection to a moved entity.  This is a local subprogram
  4346.      of the Move and Resize processing.
  4347.  
  4348. "PROGRAM ERROR -- in nesting level computation "
  4349.      A Program Error (unintended exception condition) was detected
  4350.      during a nesting level computation.
  4351.  
  4352. "PROGRAM ERROR -- in PAN_ZOOM_MENU "
  4353.      A Program Error (unintended exception condition) was detected
  4354.      during Pan and Zoom operations.
  4355.  
  4356. "PROGRAM ERROR -- in PARAMETER_STATUS_MENU "
  4357.      A Program Error (unintended exception condition) was detected
  4358.      during the processing of parameter status information.
  4359.  
  4360. "PROGRAM ERROR -- in PDL_STATUS_MENU "
  4361.      A Program Error (unintended exception condition) was detected
  4362.      during the processing of PDL formating information.
  4363.  
  4364. "PROGRAM ERROR -- in process command "
  4365.      A Program Error (unintended exception condition) was detected
  4366.      during the processing of user commands.
  4367.  
  4368. "PROGRAM ERROR -- in request PROLOGUE"
  4369.      A Program Error (unintended exception condition) was detected
  4370.      during the processing of a Prologue.
  4371.  
  4372. "PROGRAM ERROR -- null pointer parent in creating package "
  4373.      A Program Error (unintended exception condition) was detected
  4374.      during the creation of a package.  Specifically a null parent
  4375.      pointer was obtained.
  4376.  
  4377. "PROGRAM ERROR -- null pointer parent in creating virtual package "
  4378.      A Program Error (unintended exception condition) was detected
  4379.      during the creation of a virtual package.  Specifically a null
  4380.      parent pointer was obtained.
  4381.  
  4382. "PROGRAM ERROR -- request point returned null parent "
  4383.      A Program Error (unintended exception condition) was detected
  4384.      during the processing of a user input point.
  4385.  
  4386. "PROGRAM ERROR -- unable to complete file output "
  4387.      A Program Error (unintended exception condition) was detected
  4388.      during file output.
  4389.  
  4390. "PROGRAM ERROR -- unhandled exception propagated by the MMI "
  4391.      An unhandled exception has been propagated out of the code
  4392.      implementing the Man-Machine Interface.  This message indicates a
  4393.      "Panic Exit" has been initiated, which will result in an attempt to
  4394.      save the graph and termination of the program.
  4395.  
  4396. "Segment Identifier Recovery To Begin "
  4397.      Segment identifiers are being allocated and released throughout
  4398.      program operation.  The range of valid segment identifiers is
  4399.      limited, and must be restored to a base value when exhausted.  This
  4400.      is accomplished by rewriting the graph with all new segments
  4401.      starting from the base value.
  4402.  
  4403. "SELECT A MENU ICON. "
  4404.      The user should select a menu icon by positioning the graphics
  4405.      crosshairs on top of the desired menu icon.
  4406.  
  4407. "the body of <Ada name> will overlap another entity (improper scoping) "
  4408.      When attemping a Move and Resize, an entity will overlap another.
  4409.      The operation is prevented to maintain consistency between the
  4410.      graphic and the syntax tree representations.
  4411.  
  4412. "the move will invalidate the entry point or export call connection "
  4413.      When attemping a Move and Resize, if the entity were to be moved to
  4414.      the desired location, the call connection would be invalidated due
  4415.      to improper visibility.  The operation is prevented to maintain
  4416.      consistency between the graphic and the syntax tree
  4417.      representations.
  4418.  
  4419. "the move will invalidate the exports connection "
  4420.      When attemping a Move and Resize, if the entity were to be moved to
  4421.      the desired location, an exports connection would be invalidated
  4422.      due to improper visibility.  The operation is prevented to maintain
  4423.      consistency between the graphic and the syntax tree
  4424.      representations.
  4425.  
  4426. "the move will invalidate the import call connection "
  4427.      When attemping a Move and Resize, if the entity were to be moved to
  4428.      the desired location, the call connection would be invalidated due
  4429.      to improper visibility.  The operation is prevented to maintain
  4430.      consistency between the graphic and the syntax tree
  4431.      representations.
  4432.  
  4433. "the move will invalidate the subprogram call connection "
  4434.      When attemping a Move and Resize, if the entity were to be moved to
  4435.      the desired location, a call connection would be invalidated due to
  4436.      improper visibility.  The operation is prevented to maintain
  4437.      consistency between the graphic and the syntax tree
  4438.      representations.
  4439.  
  4440. "the move will invalidate the visibility connection "
  4441.      When attemping a Move and Resize, if the entity were to be moved to
  4442.      the desired location, a visibility connection would be invalidated
  4443.      due to improper visibility.  The operation is prevented to maintain
  4444.      consistency between the graphic and the syntax tree
  4445.      representations.
  4446.  
  4447. "the move will invalidate the visibility connection (not needed) "
  4448.      When attemping a Move and Resize, if the entity were to be moved to
  4449.      the desired location, a visibility connection would be invalidated
  4450.      due to improper visibility.  The connection must be deleted to move
  4451.      the entity to the desired location.  The operation is prevented to
  4452.      maintain consistency between the graphic and the syntax tree
  4453.      representations.
  4454.  
  4455. "translation is too close to page boundaries "
  4456.      A Move and Resize operation is being rejected because the
  4457.      translated portion of the graph would be too close to the boundary
  4458.      of the graph page.  Translated portions of the graph must be far
  4459.      enough away from the boundary to permit labels
  4460.      (import/export/entity names) to be drawn on the graph.
  4461.  
  4462. "translation is too close to page boundaries, retry "
  4463.      A Move and Resize operation is being rejected because the
  4464.      translated portion of the graph would be too close to the boundary
  4465.      of the graph page.  Translated portions of the graph must be far
  4466.      enough away from the boundary to permit labels
  4467.      (import/export/entity names) to be drawn on the graph. The user
  4468.      should try the Move and Resize operation again.
  4469.  
  4470. "UNABLE TO CONTINUE - <node_type> Node Supply Exhausted"
  4471.      This message indicates that the supply of nodes for the given
  4472.      node_type has been exhausted.  The program is unable to complete
  4473.      the requested operation, and will be unable to complete any
  4474.      operation which requires the creation of nodes of node_type until
  4475.      additional nodes are made available by deletion.  The number of
  4476.      nodes available is a compile time parameter which can be changed if
  4477.      required.  Node_type can have a value corresponding to each
  4478.      possible node type used by GAD, which are:  Graph, List, Prologue,
  4479.      and Tree.
  4480.  
  4481. "UNABLE TO CONTINUE - Segment Supply Exhausted"
  4482.      This message indicates that the supply of segments has been
  4483.      exhausted.  The program is unable to complete the requested
  4484.      operation, and will be unable to complete any operation which
  4485.      requires the creation of segments until additional segments are
  4486.      made available by deletion.
  4487.  
  4488. "unable to create a file with the specified name "
  4489.      The program has been unable to create the file using the specified
  4490.      (or session) file name during a write file operation.
  4491.  
  4492. "WARNING the entity names do not match "
  4493.      The exports connection just established just connected two entities
  4494.      whose names (Ada identifiers) do NOT match.  The user is permitted
  4495.      to continue.
  4496.  
  4497.