  The dependency on the correct functioning of embedded systems is rapidly
growing, mainly due to their wide range of applications, such as micro-grids,
automotive device control, health care, surveillance, mobile devices, and
consumer electronics. Their structures are becoming more and more complex and
now require multi-core processors with scalable shared memory, in order to meet
increasing computational power demands. As a consequence, reliability of
embedded (distributed) software becomes a key issue during system development,
which must be carefully addressed and assured. The present research discusses
challenges, problems, and recent advances to ensure correctness and timeliness
regarding embedded systems. Reliability issues, in the development of
micro-grids and cyber-physical systems, are then considered, as a prominent
verification and synthesis application. In particular, machine learning
techniques emerge as one of the main approaches to learn reliable
implementations of embedded software for achieving a correct-by-construction
design.
