  Some applications require an assurance that certain criteria are violated
with only low probability. An alert is generated when the current course of
action is likely to violate assurance criteria and the alert results in
corrective action. Assurance monitors fuse information from multiple data
streams generated by sensors and other sources to estimate the probability
distribution of system trajectories. This distribution is used to determine
whether an assurance constraint is likely to be violated. The acquisition of
data requires resources such as energy, computational power and communication
bandwidth which are scarce in many applications. At each point in time the
system must decide whether to expend these resources to get more data to
improve the confidence in the probability distribution of trajectories. This
paper presents a software-design pattern for assurance monitoring and gives
examples of its uses, including an application of the pattern to the problem of
autonomous navigation of a drone which is required to avoid no-fly zones while
using limited resources.
