From: CRDGW2::CRDGW2::MRGATE::"SMTP::WSMR-SIMTEL20.ARMY.MIL::SW-COMP-REQUEST" Date: 6-JUN-1989 01:45:16 Description: SW-COMP Digest V89 #7 Message-Id: <8906060526.AA11473@crdgw1.ge.com> Date: Mon, 5 Jun 89 14:14:03 MDT From: SW-COMP-REQUEST@WSMR-SIMTEL20.ARMY.MIL Reply-To: SW-COMP@WSMR-SIMTEL20.ARMY.MIL Subject: SW-COMP Digest V89 #7 To: SW-COMP@WSMR-SIMTEL20.ARMY.MIL SW-COMP Digest Mon, 5 Jun 89 Volume 89 : Issue 7 Today's Topics: List of Documents and Products Relating to Reusable Ada Software PCTE+ -- Another KAPSE Pointer to Info on the CAIS Software Reuse and OS-Level Transportability via Ada and a KAPSE ---------------------------------------------------------------------- Date: Mon, 5 Jun 89 12:49:31 MDT From: Rick Conn Subject: List of Documents and Products Relating to Reusable Ada Software The following is a copy of the file ADAREUSE.HLP, which I picked up from the AdaIC on June 5, 1989. Rick Conn ----> ADAREUSE.HLP Follows <---- File G05-0489 lists publications and products relevant to Ada reuse. AdaIC point of contact: Adrain Walls ADA REUSABILITY The following is a list of documents and products relating to reusable Ada software. Announcements of products or services do not constitute an endorsement by the Ada Joint Program Office. ************************************************************************ Ada Evaluation Report: Reuse of Ada Software Modules, 1988. Command and Control Systems Office, Tinker AFB, Ok Ada in Mission Critical System Acquisition: A Guidebook. Mohanty, S. N., Mitre Corp., Mc Lean, VA. NTIS: AD A149 271 Ada Reusability Guidelines, TR 3285-2-208/2. Braun, Christine L., et al., Hanscomb AFB, MA April, 1985. Ada Reusability Handbook, 1987. Computer Sciences Corp., Moorestown, NJ Ada Reusability Study, 1986. Computer Sciences Corp., Moorestown, NJ The Ada Software Repository and the Defense Data Network. A Resource Handbook. Conn, R., 1987. New York Zoetrope. The CAMP Approach: A Pragmatic Approach to Software Reuse. 1988, Air Force Armament Lab., Elgin AFB, FL "Compiler Validation and Reusable Ada Parts for Real-time, Embedded Applications." Herr, C. S., et al. Ada Lett. vol. 8, no. 5, 75-86 Sept-Oct 1988. COSMIC Software Catalog. NASA Computer Software Management Information Center. For more information: (404) 542-3265. Creating Reusable Ada Software, 1986. EVB Software Engineering, Frederick, MD. (301) 695-6960. "Designing for Ada Reuse: A Case Study," Mendal, G. O., Comput. Sys. Lab., Stanford University, CA. IEEE Computer Society 2nd Int'l Conf on ADA Applications and Environments, April 1986, Miami Beach, FL "Global Issues in Reuse from a Real Project," Arkwright, T. D. Proceedings of the Ada-Europe International Conference, Edinburgh, May 6-8, 1986. "Government and Industry Both Want Usable Ada," Taft, D., Government Computer News, Jan 8,1988, p54. Information Systems Engineering Command Reusability Guidelines (US Army), 1985. SofTech, Inc., Waltham, MA The Reuse of Designs as a First Step Towards the Introduction of Ada Component Re-use. Keenan, P. IEE Colloquium on Reusable Software Components (Digest No. 68) 1987, London, England Reusable Ada Software Guidelines. St. Dennis, R. J. Proceedings of the 20th Hawaii Int'l Conference on System Sciences, 6-9 Jan 1987, 513-20, vol 2. "Reusable Software Components." Booch, G. Def. Electron. vol.19, no. 5 May 1987. "Reusability in Programming: a Survey of the State of the Art," Capers Jones, Proceedings of the Workshop on Reusability in Programming, Newport, RI, Sep 7-9, 1983. "Reusability of Software Components in the Building of Syntax-driven Software Tools Written in Ada," Ch. Genillard & N. Ebel, Proceedings of the Ada-Europe International Conference, Edinburgh, May 6-8, 1986. "Software Reusability and Ada," Conn, R., Proceedings of The Army Micro. Info.'87 Conference, Kansas City, MO, August 11-13, 1987. "System Building with Ada Reusable Parts," Wald, E. E., Naval Research Lab., Washington, DC. Military Computing Conference, Anaheim CA, May 1987. "Theme Articles. Tools. Making Reuse a Reality," IEEE Software , pp 6-72, July, 1987. "Understanding Ada Software Reusability: Issues for the Transition of Mission Critical Computer Resource Applications," Gargaro, A. & Pappas, T. Proceedings of the Ada-Europe International Conference, Edinburgh, May 6-8, 1986. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ REUSABLE COMPONENTS & SOFTWARE REPOSITORIES The Ada Software Repository. This collection of Ada programs, tools, and educational materials is available on-line only to Defense Data Network users. Copies of ASR software are available from Management Assistant Corporation of America (MACA), White Sands Missile Range, NM 88002. (505) 678-3288. (You supply the tape.) Advanced Software Technology, Inc. issues the entire ASR on MS-DOS floppy disks. For more information write to Jeffrey Hickey, AST, Inc., P.O. Box 937, Medford, NY 11763. (516) 758-6545. For information on a CD-ROM format contact ALDE Publishing, P.O. Box 35236, Minneapolis, MN 55435 (612) 835-5240. "The Booch Components" is a library of over 500 highly reusable components. Standard abstract types are supported and several utility packages provide sorting, searching and other capabilities. Meridian Software Systems, Laguna Hills, CA.,is the exclusive distributor of the Booch Components for Apple Macintosh, IBM PC/compatibles, and Sun Micro- systems. For additional information call Meridian at 800/221-2522 or (714) 380-9800. "Common Ada Missile Packages (CAMP)" contain operational flight software parts in Ada for tactical missiles. CAMP parts are 454 reusable Ada components. The software is distributed on ANSI standard labeled 9-track 1600 bpi tapes. For more information about CAMP and CAMP products contact: Data & Analysis Center for Software, Rome, NY. (315) 336-0937. "GRACE (Generic Reusable Ada Components for Engineers)" is a library of 275 reusable software components based on commonly used data structures. The only requirement for its use is a validated Ada compiler. For additional information contact: EVB Software Engineering, Inc., Frederick, MD. (301) 695-6960. "Math Advantage", a library of reusable Ada components, is available in the new 3.0 release. This version is useful for vector and matrix manipulation, as well as signal and image processing. Contact Quantitative Technology Corp. for more information at (503) 626-3081. Numerical Algorithms Group, Inc. offers mathematical components in its "NAG Ada Library". Package units include basic arithmetic, input/output, extended arithmetic, ordinary and partial differential equations, random numbers, and error trapping. For additional information contact Numerical Algorithms Group, Inc., Downers Grover, IL. (312) 971-2337. "Source Translation & Optimization" makes accessable to the general public a database of government produced programs in a variety of languages including Ada. The Ada programs available include weapons simulators, math packages for cryptography, and a software metric analyzer. For more information call: Greg Aharonian at Source Translation & Optimization, (617)489-3727. ------- ------------------------------ Date: Mon, 5 Jun 89 13:34:26 MDT From: Rick Conn Subject: PCTE+ -- Another KAPSE PCTE+ (Portable Common Tool Environment+) is another KAPSE which was sponsored by the Independent European Programme Group (Technical Area 13), or IEPG TA-13. Both PCTE+ and the CAIS are portable OS-independent environmental interfaces. I don't have much information on PCTE+, but there is a document created under joint sponsorship by the AJPO and IEPG TA-13: "Comparison of CAIS-A* and PCTE+*", June 1988, final report * CAIS-A is Rev A of the CAIS, DoD-STD-1838A * PCTE+ is the first rev of PCTE -- Rick ------- ------------------------------ Date: Mon, 5 Jun 89 13:26:35 MDT From: Rick Conn Subject: Pointer to Info on the CAIS Several people have asked me for information on how to get a copy of the CAIS (Common APSE Interface Set) documentation, so here it is for everyone: "Common APSE Interface Set" (CAIS, DoD-STD-1838, Oct 1986) was paid for by the Ada Joint Program Office and is available thru Naval Pubs: Commanding Officer Naval Publication and Forms Center Attn: NPODS 5801 Tabor Avenue Philadelphia, PA 19120 Special Assistance Desk: 215/697-2667 Customer Service: 215/697-2667 Requests must be in writing. I don't see any price mentioned, but you may wish to call to be sure. Information on this and many other DoD documents is available in the ASR (see the file PD2:ADAINF.INF). There are also two other documents on the CAIS, but I don't see them listed in the AdaIC's DOCU-REF.HLP file (same as ADAINF.INF). You may wish to contact the AdaIC or the AJPO to obtain details on these since they were also funded by the AJPO. Documents are: "DoD Requirements and Design Criteria for the Common APSE Interface Set (CAIS)", 4 Oct 86, prepared by KIT/KITIA for the AJPO under NOSC contract N66001-86-D-0156. "Rationale for the DoD Requirements and Design Criteria for the Common APSE Interface Set (CAIS) (RAC)", 18 Nov 87, prepared by KIT for the AJPO under NOSC contract N66001-86-D-0156. -- Rick ------- ------------------------------ Date: Mon, 5 Jun 89 13:08:45 MDT From: Rick Conn Subject: Software Reuse and OS-Level Transportability via Ada and a KAPSE In a sense, the CAIS (Common APSE Interface Set) is a reusable software components library. Providing a collection of routines which are intended to support a machine-independent operating system interface, the CAIS is a form of a KAPSE (Kernel Ada Programming Support Environment), supporting the next level of software transportability beyond that of a common language. Ada, as a common language, combined with a KAPSE, as a common OS interface, supports the design of reusable Ada software components which are readily transportable between operating systems. The following presentation is provided for your information. Any comments? -- Rick From: Rick Conn Subject: Machine-Independent Keystroke Input Re the recent discussion of this subject on INFO-ADA, the CAIS (Common APSE Interface Set) proposes an interesting, altho somewhat involved, solution to this problem. Reference DoD-STD-1838 (9 Oct 86), 5.3.8.19 describes a machine-independent keystroke reader: procedure GET (TERMINAL: in FILE_TYPE; ITEM : out CHARACTER; KEYS : in out FUNCTION_KEY_DESCRIPTOR); -- This procedure reads either a single character into ITEM or -- a single function key identification number into KEYS from -- the internal file identified by the input file handle TERMINAL. -- If no character is available at the time of the call the -- interface does not complete until a character becomes available. This procedure is in package CAIS_SCROLL_TERMINAL_IO (and also in other CAIS...TERMINAL packages). Type FUNCTION_KEY_DESCRIPTOR is limited private, and the package contains many routines to manipulate objects of this class. In particular, after calling this GET, the procedure FUNCTION_KEY_COUNT is to be called: procedure FUNCTION_KEY_COUNT (KEYS: in FUNCTION_KEY_DESCRIPTOR) return CAIS_NATURAL; -- Returns the number of function keys described in KEYS FUNCTION_KEY_COUNT tells us if a character was returned in ITEM from GET (returned value from FUNCTION_KEY_COUNT is 0) or if a function key was returned (returned value is 1 since GET returns only one character or one function key). If FUNCTION_KEY_COUNT is 1, you can determine the function key's ID by calling: procedure GET_FUNCTION_KEY (KEYS: in FUNCTION_KEY_DESCRIPTOR; INDEX : in CAIS_POSITIVE; KEY_IDENTIFIER: out CAIS_POSITIVE; POSITION: out CAIS_NATURAL); -- This procedure returns the identification number of a function key. -- Used with the single-character GET procedure, POSITION = 0. You would call GET_FUNCTION_KEY with an INDEX value of 1 in order to return the proper KEY_IDENTIFIER. Finally, with the KEY_IDENTIFIER, this procedure can be used to get the key's name: function FUNCTION_KEY_IDENTIFICATION (TERMINAL : in FILE_TYPE; KEY_IDENTIFIER: in CAIS_POSITIVE) return FUNCTION_KEY_NAME; -- FUNCTION_KEY_NAME is of subtype STRING and is -- implementation-dependent The problem posed by Dik could be addressed by using a definition like this and not allowing FUNCTION_KEY_NAME to be implementation-dependent. In particular, I would like to see FUNCTION_KEY_NAME be an enumeration type rather than a string (allowing, of course, for "other keys" not covered by the "standard" enumeration values. For instance: type FUNCTION_KEY_NAME is (PF1, PF2, -- others CLEAR_SCREEN, INSERT, DELETE, -- others UP_ARROW, DOWN_ARROW, -- others -- even more others SPECIAL); function FUNCTION_KEY_IDENTIFICATION (TERMINAL : in FILE_TYPE; KEY_IDENTIFIER: in CAIS_POSITIVE) return FUNCTION_KEY_NAME; -- FUNCTION_KEY_NAME is now an enumeration type function SPECIAL_KEY_IDENTIFICATION (TERMINAL : in FILE_TYPE; KEY_IDENTIFIER : in CAIS_POSITIVE) return STRING; -- to be called when FUNCTION_KEY_NAME object is SPECIAL This CAIS definition may be a good starting point. Part of the reason for the complexity is that there is another GET which returns a STRING or a group of FUNCTION KEYS (all keys pressed since the last call to a GET). Regardless, I think the CAIS is a good thing to look at when discussing machine-independent problems like this one. Rick ------- ------------------------------ End of SW-COMP Digest V89 Issue #7 **********************************