Achieving software reliability takes many complementary techniques, directed at the process or at the products. This survey summarizes some of the most fruitful ideas. Cite as follows: Bertrand Meyer, Dependable Software, to appear in Dependable Systems: Software, Computing, Networks, eds. Jürg Kohlas, Bertrand Meyer, André Schiper, Lecture Notes in Computer Science, Springer-Verlag, 2006.