However, model-based development is not without risk. It is not obviously clear whether a seamless development process from early design to final target code is feasible: Some design steps might demand knowledge of environment properties which are difficult to formalize. Design steps in the later phases will require precise knowledge of the target platform, for instance to access device drivers or in order to estimate the worst case execution times which are needed as input for scheduling algorithms. Even if this knowledge is formalized and incorporated into the product model—as, for example, partly done in the Giotto language —, more pragmatic problems, like the integration of legacy code, tailoring to customer-specific coding and certification standards or possibly just idiosyncrasies in compiler or operating system technologies can hamper our ideal of a seamless process.