From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT,T_FILL_THIS_FORM_SHORT autolearn=no autolearn_force=no version=3.4.4 Xref: utzoo comp.lang.ada:2419 comp.lang.c:19533 Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!rutgers!mit-eddie!bloom-beacon!tut.cis.ohio-state.edu!purdue!haven!umbc3!tron!beser From: beser@tron.UUCP (Eric Beser) Newsgroups: comp.lang.ada,comp.lang.c Subject: ARTEWG Ada Questionnaire Keywords: Ada Use, Runtime needs, ARTEWG Message-ID: <424@tron.UUCP> Date: 22 Jun 89 13:05:02 GMT Organization: Westinghouse Electronic Systems Group, Baltimore, MD, USA List-Id: The following questionnaire is posted both to Comp.Lang.Ada and to Comp.Lang.C because of the fact that it questions the needs for runtime services based on a users application. We would like answers even if the application is *NOT* being written in Ada. There is a language choice question. We need a broad varity of answers for statistical purposes. Please take the time to fill out this questionnaire and mail the responses back via email. To do that, while under news, use the option to respond including the article in the mailer. Simple as that. Even if the language is pure assembly, we need to know the applications requirements. This questionnaire is being distributed to the broad user community, and the responses will be published in Ada letters and in a document report from the Ada Runtime Environment Working Group. Thank you for your support. SIGAda ARTEWG Applications Subgroup Applications Questionnaire Implementing certain types of software using the Ada language is raising concerns. The Application Subgroup Committee of the Ada RunTime Environment Working Group (ARTEWG), is responsible for expressing these application oriented issues to the ARTEWG, and for providing direction for the resolution of these issues. In order to better understand your software requirements from an applications point of view, we have prepared the following "Applications Questionnaire". This questionnaire is designed to help us understand your software requirements, so that we can evaluate the corresponding runtime requirements. We are not just interested in Ada software, but in any software that might be implemented in Ada in the future. If your software is currently written in assembler, for example, we still want to know about it. The survey should take between 15 and 45 minutes to complete. Your inputs will be used to recommend improvements to Ada products. We will not show your questionnaire to anyone outside the principal members of ARTEWG and our support staff. Please limit your answers to one application or project. If you have knowledge about more than one project or application, either pick a single one or fill out multiple questionnaires. For each of these questions, select the single answer that MOST closely describes your project or application, unless the question indicates that more than one answer is permitted. If you are unable to answer a question, please leave it blank. If your project is not far enough along to answer some questions, mark them as N/A. Past experience on similar projects can be used, if you are sure it applies. We understand that you may have to omit information which is classified, or proprietary. Please send your completed questionnaire(s) to: Eric Beser Westinghouse MS 657 PO Box 1897 Baltimore, MD 21203 If you would prefer to answer over the ARPANET, please send your request to ebeser@ajpo.sei.cmu.edu and we'll send you an electronic copy. BACKGROUND QUESTIONS 1. The primary customer for this project is (select one): __Military __Non-military gov't. __Commercial / Other (internal) 2. The type of project is (select one): __Research & Development __Demonstration & Evaluation (including fly-off competition between 2 teams) __Production (including Full-scale Engineering Development) 3. The most advanced stage which the project has reached is (select one): __pre-proposal / proposal / planning __requirements analysis __system design __software design __software development __fielded (delivered) __other (please specify) 4. Your primary role in the project is (select one): __Customer __system engineer __hardware designer __software designer __programmer __manager __contractor program office __other (please specify) 5. The category that best describes the system is (select one): (if the system involves more than one type or platform, pick one platform to use for this questionnaire) __space station __space platform other than space station (e.g. satellite) __aircraft __surface naval platform (ship board) __undersea naval platform (submarine) __mobile ground system (tank, etc.) __ground based __missiles / munitions __other (please specify) BACKGROUND QUESTIONS (CON'T) 6. Please indicate the primary implementation language for the software (select one). __Assembler __Ada __other Higher Order language (such as Pascal, JOVIAL, or FORTRAN) __not yet defined 7. Your knowledge of the software requirements (circle one): little moderate expert knowledge knowledge knowledge 1 2 3 4 5 6 8. Please rank the following from least difficult (1) to most difficult (6) with respect to which requirements are most difficult to meet. Use each number only once. ___ performance (throughput) ___ response time (latency) ___ memory budget ___ reliability / fault tolerance ___ cost ___ schedule 9. What class(es) of processor(s) will the software execute on? (select all that apply) ___ don't know 8-bit micro (e.g. 8088) ___ Yes ___ No 16-bit micro (e.g. 80286, 1750A, 68000) ___ Yes ___ No 32-bit micro (e.g. 80386, 68020, RISC) ___ Yes ___ No mini (e.g. MicroVax) ___ Yes ___ No mainframe (e.g. IBM 3090) ___ Yes ___ No proprietary (e.g. special purpose, such as a signal processor) ___ Yes ___ No BACKGROUND QUESTIONS (CON'T) 10. How much memory will be available for the software (select one)? For multi-processors, indicate total memory available in the system. Indicate only memory available for use by the software; do not include spare or reserve memory. __don't know __less than 16K bytes __16 - 127K bytes __128 - 255K bytes __256K - 511K bytes __512K - 2M bytes __more than 2M bytes 11. What is the system architecture (select one)? __single processor __tightly coupled (shared memory between processors) __loosely coupled (bus or network connecting processors) __tightly and loosely coupled processors __geographically distributed processors __software must be able to run on a variety of architectures IF YOU ARE NOT USING ADA, MARK QUESTION 12 N/A 12. How much modification to the vendor-supplied Ada runtime environment is / will be required (select all that apply): __N/A __don't know __none __trivial tailoring (such as modifying the address of the real time clock) __addition of device drivers, interrupt handlers, etc __minor modifications (such as replacing FIFO scheduling of tasks of equal prioroty with round robin scheduling) __major modifications __replacement with another runtime environment BACKGROUND QUESTIONS (CON'T) 13. The software is (select one): __an operating system or system-level service (such as an I/O driver or communications package) __a run-time executive or an Ada runtime environment __an application (e.g. navigation, signal processing, C3I) __a tool (e.g. debugger, compiler, etc) __software to test hardware __other (please specify) 14. Your knowledge of the software design is (circle one): little moderate expert knowledge knowledge knowledge 1 2 3 4 5 6 FAULT TOLERANCE REQUIREMENTS 15. The software must tolerate (customer imposed requirement) the following types of faults (select all that apply): hardware faults __Yes __No __Do__No __Don't know software faults (undiscovered bugs, design errors) __Yes __No __Don't know faulty input data (including bad operator inputs, faulty device inputs, and bad data from other software) __Yes __No __Don't know IF YOUR SOFTWARE DOES NOT HAVE CUSTOMER-IMPOSED FAULT TOLERANCE REQUIREMENTS, MARK QUESTIONS 16 THROUGH 18 N/A 16. How much functionality must the software provide after a fault (select one): ___N/A ___don't know ___software is not required to continue after a fault ___full functionality ___partial functionality (i.e. some system services can be lost) 17. What level of performance must the software provide after a fault (select one): ___N/A ___don't know ___software is not required to continue after a fault ___full performance (e.g., by using spare hardware) ___partial performance (i.e. some system services can be slowed down) FAULT TOLERANCE REQUIREMENTS (CON'T) 18. What fault tolerance techniques will you use (select all that apply)? ___N/A N-modular redundant hardware (multiple active components with voting) ___Yes ___No ___Don't know dual-modular redundant hardware (self checking pairs) ___Yes ___No ___Don't know recovery blocks (acceptance test at the end of a block) ___Yes ___No ___Don't know multi-version programming (separate designs of the software with voting) ___Yes ___No ___Don't know checkpoint / rollback ___Yes ___No ___Don't know audit trails ___Yes ___No ___Don't know watchdog or programmable timers ___Yes ___No ___Don't know transactions (atomic actions) ___Yes ___No ___Don't know fault monitoring and logging ___Yes ___No ___Don't know exception handlers ___Yes ___No ___Don't know restart ___Yes ___No ___Don't know assertion checks (such as range checks, state consistency checks) ___Yes ___No ___Don't know other (please specify) ___Yes ___No ___Don't know REQUIREMENTS FOR SYSTEMS WITH MULTIPLE PROCESSORS IF YOUR SOFTWARE RUNS ON A SINGLE PROCESSOR SYSTEM, MARK QUESTIONS 19 THROUGH 24 N/A 19. What is the primary reason for having more than one processor in the architecture (select one)? __N/A __don't know __for fault tolerance __for performance __to get more memory __hardware already exists __platform layout necessitates distribution (for example, processors must be close to sensors and controllers) __problem domain has inherent parallelism __other (please specify) 20. How are processors connected (select all that apply)? __N/A shared memory ___Yes ___No ___Don't know bus system ___Yes ___No ___Don't know local area network ___Yes ___No ___Don't know wide area network ___Yes ___No ___Don't know other (please specify) ___Yes ___No ___Don't know REQUIREMENTS FOR SYSTEMS WITH MULTIPLE PROCESSORS (CON'T) 21. At what levels do software entities running in different processors interact (select all that apply)? __N/A explicit communications routines (i.e. software calls a communication service to access software in another processor, or data which is not in local memory) ___Yes ___No ___Don't know remote calls to procedures (i.e. software can call a procedure that executes on another processor) ___Yes ___No ___Don't know remote rendezvous between tasks / processes ___Yes ___No ___Don't know remote references to data structures ___Yes ___No ___Don't know remote execution of HOL statements ___Yes ___No ___Don't know other (please specify) ___Yes ___No ___Don't know 22. when will binding to CPUs occur (select all that apply)? __N/A before loading (at compile time, link time, etc.) ___Yes ___No ___Don't know when the software is loaded ___Yes ___No ___Don't know when reconfiguring after a fault ___Yes ___No ___Don't know dynamically, not limited to reconfigurations ___Yes ___No ___Don't know 23. is it desirable that the distributed nature of the system be transparent to the software (select one)? __N/A __yes (distribution should be transparent) __no (distribution should NOT be transparent) __don't care REQUIREMENTS FOR SYSTEMS WITH MULTIPLE PROCESSORS (CON'T) 24. if reconfiguration is performed, how is the new configuration determined (select all that apply)? __N/A determined by something external to the system, such as an operator ___Yes ___No ___Don't know based on a pre-defined set of possible reconfigurations ___Yes ___No ___Don't know determined by the onboard application software ___Yes ___No ___Don't know determined by the onboard operating system or executive software ___Yes ___No ___Don't know MULTI-PROGRAMMING REQUIREMENTS 25. Will there be more than one active program in a processor (i.e. multiprogramming - select one)? __Yes __No __Don't know IF YOU ARE NOT USING MULTI-PROGRAMMING, MARK QUESTIONS 26 THROUGH 28 N/A 26. Will programs exert control over one another (such as start, stop, suspend - select one)? __N/A __Yes __No __Don't know 27. The programs will interact through (select all that apply): __N/A shared memory ___ Yes ___ No ___ Don't know I/O (such as a bus or network) ___ Yes ___ No ___ Don't know secondary storage (such as files) ___ Yes ___ No ___ Don't know no interaction ___ Yes ___ No ___ Don't know other (please specify) ___ Yes ___ No ___ Don't know 28. What is the primary reason for multi-programming (select one)? __N/A __development at different sites or by different organizations __development at different times __fault tolerance __as an alternative to Ada tasking __different software components have unrelated requirements __other (please specify) CONCURRENCY REQUIREMENTS 29. Will the software use concurrency (some form of tasking, multiple processes, etc - select one) __Yes __No __Don't know IF YOUR SOFTWARE WILL NOT USE CONCURRENCY, MARK QUESTIONS 30 THROUGH 35 N/A 30. how will tasks / processes be synchronized (select all that apply)? __ N/A no synchronization is required ___ Yes ___ No ___ Don't know rendezvous mechanism ___ Yes ___ No ___ Don't know non-rendezvous mechanism (please describe) ___ Yes ___ No ___ Don't know 31. how will tasks / processes communicate (select all that apply)? __N/A rendezvous mechanism ___Yes ___No ___Don't know global structures only when absolutely necessary ___Yes ___No ___Don't know global structures with no restrictions ___Yes ___No ___Don't know mail boxes, messages, or similar methods ___Yes ___No ___Don't know other (please specify) ___Yes ___No ___Don't know CONCURRENCY REQUIREMENTS (CON'T) 32. how many priority levels are needed (select one)? __N/A __don't know __priorities are not needed __4 or less __5-16 __17-64 __65-128 __more than 128 33. what is the maximum number of active tasks / processes (select one)? __N/A __don't know __4 or less __5-16 __17-64 __65-128 __129-256 __more than 256 34. will tasks / processes be created dynamically (i.e. access types or pointers will be used to address tasks / processes - select one) __N/A __yes __no __don't know CONCURRENCY REQUIREMENTS (CON'T) 35. What concurrency models do you require (select all that apply)? __N/A Ada tasking ___Yes ___No ___Don't know cyclic exec ___Yes ___No ___Don't know asynchronous tasks / processes (e.g. mailboxes) ___Yes ___No ___Don't know foreground-background tasks / processes ___Yes ___No ___Don't know communicating sequential processes ___Yes ___No ___Don't know monitor (guard) tasks / processes ___Yes ___No ___Don't know server tasks / processes ___Yes ___No ___Don't know other (please specify) ___Yes ___No ___Don't know OTHER REQUIREMENTS 36. Is there a requirement to update or upgrade some part of the software without stopping the system (select one)? __yes __no __don't know 37. Will there be dynamic (runtime) creation of data objects (select one)? __Yes __No __don't know 38. Will array sizes be determined dynamically (at runtime - select one)? __Yes __No __don't know 39. What is the maximum interrupt latency time that is tolerable to your software (from the time that an interrupt-generating event occurs to the time that an interrupt routine starts execution)? (Select one) __N/A __don't know __10 microseconds __between 10and 50 microseconds __between 50 and 100 microseconds __between 100 and 200 microseconds __between 200 and 500 microseconds __between 500 microseconds and 1 millisecond __more than 1 millisecond OTHER REQUIREMENTS (CON'T) 40. Please rate the following RTE (runtime environment) features in terms of your need for them on this project: (these features are included in, or are being considered for, the ARTEWG Catalogue of Interface Features and Options) don't don't need must know need have pre-elaboration of program units 0 1 2 3 4 5 (i.e. minimize runtime initialization) standard way of dealing with 0 1 2 3 4 5 interrupts non-preemptable sections (critical 0 1 2 3 4 5 regions) delays with upper and lower limits 0 1 2 3 4 5 timeout of tasks/processes 0 1 2 3 4 5 control over when a task/process 0 1 2 3 4 5 executes (such as periodic scheduling or deadline scheduling) dynamically assigned task/process 0 1 2 3 4 5 priorities asynchronous task/process 0 1 2 3 4 5 communication, such as mail boxes deadlock detection and reporting 0 1 2 3 4 5 fault monitoring and logging 0 1 2 3 4 5 support for checkpoints 0 1 2 3 4 5 notify the application that memory is 0 1 2 3 4 5 nearly exhausted provide memory status to the 0 1 2 3 4 5 application on request perform garbage collection 0 1 2 3 4 5 controlled access to shared data 0 1 2 3 4 5 support for multi-programming 0 1 2 3 4 5 OTHER REQUIREMENTS (CON'T) 41. If you need periodic scheduling, what is the shortest period (select one)? __N/A (don't need periodic scheduling) __don't know __less than 1 millisecond (1000 Hz or faster) __more than 1, less than 5 miliseconds (200 to 1000 Hz) __more than 5, less than 10 miliseconds (100 to 200 Hz) __more than 10 , less than 100 miliseconds (10 to 100 Hz) __more than 100 miliseconds, less than 1 second (1 to 10 Hz) __more than 1 second (1 Hz or slower) 42. Which of the following safety/security requirements does the software have (select all that apply)? no military/commercial safety or security standards are imposed ___Yes ___No ___don't know National Computer Security Center multi-level security (orange book) ___Yes ___No ___don't know FAA flight safety ___Yes ___No ___don't know nuclear safety cross check analysis ___Yes ___No ___don't know other military or commercial safety/security standard (please specify) ___Yes ___No ___don't know 43. Please rate the following in important to your project. don't need must need have a stable, controlled interface between 1 2 3 4 5 the compiler and the runtime environment well documented interface between the 1 2 3 4 5 compiler and the runtime environment a common or standard interface between 1 2 3 4 5 the compiler and the runtime environment OTHER REQUIREMENTS (CON'T) 44. Will the software have to be compiled by more than one compiler during its life cycle (select one)? __yes __no __don't know IF THE SOFTWARE IS NOT ALREADY FIELDED AND CODED IN ADA, PLEASE MARK QUESTION 45 N/A 45. If the software is coded in Ada, which of the following language features are used in the fielded system (select all that apply)? __N/A explicit dynamic storage allocation ___Yes ___No ___don't know explicit dynamic storage deallocation ___Yes ___No ___don't know exception handlers ___Yes ___No ___don't know generics ___Yes ___No ___don't know Ada tasking ___Yes ___No ___don't know interrupt handlers (using Ada tasks) ___Yes ___No ___don't know task abort ___Yes ___No ___don't know text-io ___Yes ___No ___don't know unchecked conversion ___Yes ___No ___don't know GENERAL ADA COMMENTS AND CONCERNS 46. Your knowledge of the Ada language is (circle one): none little moderate expert knowledge knowledge knowledge 0 1 2 3 4 5 47. How concerned are you about the performance of this software if/when it is written in Ada? no opinion not concerned somewhat concerned very concerned 0 1 2 3 4 5 48. How concerned are you about the amount of memory needed for this software if/when it is written in Ada? no opinion not concerned somewhat concerned very concerned 0 1 2 3 4 5 49. If you used Ada on this project, please describe any critical software which you could not do in Ada, and why (e.g. couldn't figure out how to do it, performance was too slow, took too much memory). 50. In the context of this project, what Ada runtime issue concerns you most and why? ARTEWG INFORMATION 51. Which of the following ARTEWG documents have you read? A Framework for Describing Ada Runtime Environments ___Yes ___No A Catalogue of Ada Runtime Implementation Dependencies (CRID) ___Yes ___No First Annual Survey of Ada Application Runtime Requirements ___Yes ___No A Catalog of Ada Runtime Interface Features and Options (CIFO) ___Yes ___No FEEDBACK ON THIS QUESTIONNAIRE 52. Please write any comments you have on this questionnaire. The following information is optional, but would be appreciated in case we have questions about any of your answers. NAME___________________________________________________________ COMPANY OR ORGANIZATION________________________________________ ADDRESS________________________________________________________ _______________________________________________________________ _______________________________________________________________ _______________________________________________________________ _______________________________________________________________ PHONE NUMBER___________________________________________________ ARPANET / MILNET ADDRESS_______________________________________ May we contact you for followup information on this questionnaire? ___Yes ___No Occasionally, we need to contact people for information to help guide the ARTEWG activities. This is usually in the form of a few questions. May we contact you, should the need arise? ___Yes ___No If yes, in what areas do you feel qualified to provide input? ___Real time application requirements ___Fault tolerance ___Distributed Processing ___Trusted Software ___Multi-programming ___Other (please specify) We thank for your time. ------- End of Forwarded Message