Component-based development (CBD) is established as a standard approach in many domains. The most attractive parts of CBD come from its business side: increasing reuse and development efficiency. On other side many technical aspects are still remaining as challenges. This is in particular true in domains of embedded and dependable systems. The seminar will give the basic characteristics of component-based software development, then challenges and current practice and research directions.