Embedded systems have elements of hardware and software, and these are brought together into a working system. The systems engineering process, from requirements to testing and post-deployment support is discussed. There are known approaches that work. Software is a different animal than hardware, but the top-level principles for developing and testing derive from the same principles. Programmable hardware, in terms of FPGA's and SoC's introduce complexity,...