Integration of individual components into a reliable and efficient system
is an often overlooked step of embedded systems development. It has been
shown, that in case of certain complex systems (e.g. avionics software)
this final system integration work may amount to 40% of the total computing
system development cost. During subsequent upgrades and modifications,
while individual components can often be reused, a large portion of this
integration investment is to be repeated all over again.
Experience also shows that the primary reasons of this complexity are
component compatibility issues and a system of interdependent constraints
(timing, resource, power, safety, security, etc.) to be satisfied simultaneously.
Moreover, these high-risk and high-value environments also require the
verification of their ability to operate reliably even under extreme circumstances.
The more comprehensive the verification is the more time and expenses can
be saved by accelerating the product testing phase.