Novel solutions are needed to fulfill the increasing demands of embedded systems, i.e. lowering the energy consumption, increasing the performance, reducing the development time and keeping the costs as low as possible. In addition, there exist several applications, which require runtime adaptations of the algorithms based on the connection to its environment. These challenges can be solved by using reconfigurable Multiprocessor Systems-on-Chip (MPSoCs), which can adapt the hardware as well as the software to the application requirements and therefore achieve a high computational efficiency as well as a high flexibility. However, the development, the programming and the operation of such flexible and heterogeneous systems is very complex as the many criteria (Performance, power consumption, costs, development time, runtime adaptations, etc.) open a huge design space. In this paper an overview of the challenges faced when developing runtime adaptive MPSoCs is given. Finally, for each challenge a survey of possible solutions are presented.