Mobile computing refers to both aspects: hardware mobility and software mobility. Mobile computing on its software aspect, concerns the migration of code from one site to another. This mobility was the first to be proposed during the early days of distributed and parallel systems with the objective of: balancing the load between processors by task migration or to ensure fault tolerance. Mobility on the hardware side often refers to mobile devices, further enhanced by the development of wireless networks (either WIFI or cellular). Software mobility has experienced an important and innovative trend with the emergence of the Internet and therefore, the transformation of distributed systems with local and limited networks to distributed systems on a global scale. Developing mobile systems (hardware/software) requires a well-tailored software process in all phases of development, from analysis to coding and testing. The objective of this book is to show the use of formal methods for mobile computing systems.