'Models of Computation for Heterogeneous Embedded Systems' presents a model of computation for heterogeneous embedded systems called DFCharts. It targets heterogeneous systems by combining finite state machines (FSM) with synchronous dataflow graphs (SDFG). FSMs are connected in the same way as in Argos (a Statecharts variant with purely synchronous semantics) using three operators: synchronous parallel, refinement and hiding. The fourth operator, called asynchronous parallel, is introduced in DFCharts to connect FSMs with SDFGs. In the formal semantics of DFCharts, the operation of an SDFG is represented as an FSM. Using this representation, SDFGs are merged with FSMs so that the behaviour of a complete DFCharts specification can be expressed as a single, flat FSM. This allows system properties to be verified globally. The practical application of DFCharts has been demonstrated by linking it to widely used system-level languages Java, Esterel and SystemC.