Such strategy helps embedded developers to master the
growing complexity of target systems and make their design
less tedious. It enables hardware and software developments to
progress together without conflict and to verify software on an
abstracted representation of the hardware. In this manner, it
helps minimizing the gap between hardware and software
integration with short time-to-market and making complex
architectures.