  In this paper we outline a software development process for safety-critical
systems that aims at combining some of the specific strengths of model-based
development with those of programming language based development using
safety-critical subsets of Ada. Model-based software development and
model-based test case generation techniques are combined with code generation
techniques and tools providing a transition from model to code both for a
system itself and for its test cases. This allows developers to combine
domain-oriented, model-based techniques with source code based validation
techniques, as required for conformity with standards for the development of
safety-critical software, such as the avionics standard RTCA/DO-178B. We
introduce the AutoFocus and Validator modeling and validation toolset and
sketch its usage for modeling, test case generation, and code generation in a
combined approach, which is further illustrated by a simplified leading edge
aerospace model with built-in fault tolerance.
