Design Principles of Reusable Software Components for the Numerical Solution of PDE Problems Georg Bader and Guntram Berti Institut f"ur Mathematik, TU Cottbus Universit"atsplatz 3-4, D-03044 Cottbus We first present some general considerations about software for Scientific Computing and argue in favor of a component-oriented approach. Algorithmic components are identified as rewarding but also demanding targets for reuse by means of generic programming. In the second part we examine in more detail the interaction of algorithms and grid data structures, and show how numerical procedures can be formulated in a way that is independent of concrete grid implementations. Finally, extensions of these grid-related concepts are introduced that ease the development of parallel computing software for the numerical solution of PDEs.