Invasive software composition as a new, component-based way to construct software systems is presented. To improve reuse, this method regards software components as greybox and integrates them during composition. Components are distinct in design, but are merged in implementations, leading to highly integrated and more efficient systems. Building on a minimal set of program transformations, composition operator libraries can be developed that parameterize, extend, connect, mediate, and aspect-weave components. Invasive software composition unifies several software engineering techniques such as generic programming, architecture systems, inheritance, and aspect-oriented programming. The book is centered around the JAVA language and a freely available demonstrator library called COMPOST. The book provides a wealth of material for researchers, students and professional software architects alike.