The purpose of this text is to survey recent advances in the development of software tools for scientific computing. It emphasizes the design of large software codes, computational efficiency, object-oriented programming, reliability of numerical software and parallel computing.[...]