This paper presents a novel approach to software development, mainly useful for embedded devices. Embedded software is described in a programming language with very high level of abstraction. We first generate a special verifiable code from the description and prove that it has certain properties defined by LTL formulae. Then we generate the final C code with the same properties.