ARTEWG Ada Questionnaire
Eric Beser
beser at tron.UUCP
Thu Jun 22 23:05:02 AEST 1989
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 at 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
More information about the Comp.lang.c
mailing list