Platform-based Design (PBD) is a powerful design methodology to cope with the increasing complexity of electronic systems and demands on time-to-market. The core concepts in PBD include the separation of concerns between functionality and architecture, and the successive refinement of the design by mapping functionality onto architecture. This book proposes a formal two-stage mapping procedure that enables the development of automatic tools. First a common semantics between function and architecture models is determined and an appropriate set of primitives is selected to decide the abstraction level. Then mapping is formulated and solved as an optimal covering problem where the function model is covered by a minimum cost set of architecture components. We demonstrate the use of this approach in two widely different application domains. This process is general in the sense that it can be applied at all levels of abstraction and for a variety of system level design problems. Furthermore, Metropolis, a design framework for PBD, was used to validate our approach. The insights gained from these case studies motivated the development of Metro II, the next-generation of Metropolis.