This book introduces a generic and systematic design-time/run-time methodology for handling the dynamic nature of modern embedded systems, without adding large safety margins in the design. The techniques introduced can be utilized on top of most existing static mapping methodologies to deal effectively with dynamism and to increase drastically their efficiency. This methodology is based on the concept of system scenarios, which group system behaviors that are similar from a multi-dimensional cost perspective, such as resource requirements, delay, and energy consumption. Readers will be enabled to design systems capable to adapt to current inputs, improving system quality and/or reducing cost, possibly learning on-the-fly during execution. Provides an effective solution to deal with dynamic system design. Includes a broad survey of the state-of-the-art approaches in this domain. Enables readers to design for substantial cost improvements (e.g. energy reductions), by exploiting system scenarios. Demonstrates how the methodology has been applied effectively on various, real design problems in the embedded system context.