Cyber-Physical Systems (CPS) are engineered systems comprising interacting physical and computational components. In CPS, computation and communication are deeply embedded in and interacting with physical processes to add new capabilities and characteristics to physical systems. Software design in such system will have a very strong 'systems engineering' flavor: the software implementation of various system functions (e.g.