On the integration of model-driven design and dynamic assertion-based verification for embedded software