Failure of a design to satisfy a system's requirements can result in schedule and cost overruns. When using current approaches, ensuring requirements are satisfied is often delayed until late in the development process during a cycle of testing and debugging. This paper introduces a more rigorous approach to design using Behavior Engineering, which has previously been applied primarily to requirements analysis and specification development. To support design with Behavior Engineering we introduce the embedded Behavior Runtime Environment, a virtual machine created to execute a Behavior Engineering design on an embedded system. The result is a model-driven development approach that can create embedded system software that satisfies its requirements, as a result of applying the development process.