Supercomputers allow the simulation of very large models both with respect to realism (number and complexity of physical processes involved) and accuracy (number of degrees of freedom). Due to the complexity of the models the life-cycle of numerical software is typically much longer than that of supercomputer hardware. This requires that numerical software is flexible and extensible on the one hand but also efficient with respect to run-time and memory on the other hand. The software framework DUNE (Distributed and Unified Numerics Environment), developed by groups in Freiburg, Berlin and Heidelberg, tries to achieve this through a strict separation of data structures and algorithms, use of generic programming techniques and reuse of existing software. In the first part of the talk I will present relevant aspects of this software and some numerical results while the second part of the talk concentrates on scalability aspects of a structured mesh multigrid code based on the DUNE framework.