Environmental Engineering Reference
In-Depth Information
many environmental challenges and can fail in many different ways. Creat-
ing multiple environmental challenges with real hardware can become very
time consuming and labor intensive. Software simulations can, in many cir-
cumstances, quickly and simply create challenges and test for faults. Also,
depending on how the model is created, the software system may automati-
cally create failure scenarios not imagined or tested by human engineers on
real hardware. Often it is the unexpected faults that cause the most damage.
Crucial in deciding whether to adopt the approach of simulating the hard-
ware and the environment is the question of whether the development team
has the necessary understanding of the hardware and the environment. To de-
sign and implement simulation software that will have sucient fidelity (i.e.,
that will be true to the real world) is, in many cases, fraught with dicul-
ties. This issue must be considered with dispassionate realism and with the
recognition of the failure of some past development efforts in both government
and private-sector projects, due to an over-simplified view of the hardware,
the environment, and the dynamics of the combination, and due to an overly
optimistic view of the capabilities of the development team.
The most important design issues when creating software testing environ-
ments are:
The goals of the simulation
The level of fidelity required
The types of debugging desired
Required interactions with other simulations or software/hardware com-
ponents
Though simulation software can exercise the flight software, the test software
must always remain physically separate from the flight software so that it does
not accidently get activated when deployed.
The rest of this section will examine the common techniques used to create
software testing environments.
5.7.2 Simulation Libraries
Simulation libraries consist of a set of program library routines that the test
component calls to emulate an appropriate effect in the test environment. The
library routines emulate the effect of the calls, interact with the environment,
and return appropriate information to the calling component. This type of
environment works well for systems with well-defined control interfaces.
Simulation libraries are the simplest testing environments to build because
they only require the normal software tools and programmer knowledge to
develop. Additionally, any software language and environment can be used
for the simulation development. Simulation libraries tend to have low fidelity,
particularly in the timing of hardware actions. Again, the simulation software
would have to be kept separate from the flight software.
A good example of this technique would be testing a robot control system
on a robot simulation. The control program would make the same calls it
Search WWH ::




Custom Search