Building Survivable Systems