Средства разработки приложений


Заключение - часть 2


Неспособность признать, что ошибки возможны и вера без сомнений в наши создания может сделать нас слепыми перед лицом потенциальных аварий программ. Вот объяснение того, что гордость - один их смертных грехов.

Мы определили много причин тех ошибок, о которых рассказано в этой главе. Эти причины кратко перечислены и обобщены ниже.

  • Недостаток понимания инструментов и конструкций языка:
    • Случаи - авария 1990 года на AT&T, ошибка переполнения буфера.
    • Описание - дефект возникает, когда программист неправильно понимает конструкции языка. При аварии на AT&T 1990 года ошибка заключалась в неверном расположении оператора break. Типичная ошибка переполнения буфера может быть вызвана непониманием средств манипуляции со строками в стандартных функциях С и С++.

  • Повторное использование модулей без понимания:
    • Случай - Ariane-5.
    • Описание - унаследованный программный модуль был использован повторно, но наблюдался недостаток понимания требований этого модуля. Не было сделано попыток оценить правомерность использования.

  • Изменения и обновления программ:
    • Случаи - аварии на AT&T 1990 и 1998 годов.
    • Описание - ошибка проявилась в ходе и после окончания обновления программ, которое было направлено на повышение производительности системы.

  • Игнорирование неожиданных результатов:
    • Случаи - Mars Climate Orbiter, Therac-25.
    • Описание - в обоих случаях была масса предупреждений и подсказок из различных источников о том, что что-то не так. Предупреждения проявлялись как неожиданные результаты и поведение. Но эти предупреждения регулярно игнорировались, и должное расследование не было проведено. В случае Mars Climate Orbiter проблема состояла в несовпадении между рассчитанными моделями с борта космического корабля и с наземной станции. В случае с Therac-25 проблема была в постоянных неполадках и Therac-20, и Therac-25.

  • Непонимание подсказок:
    • Случаи - Mars Climate Orbiter, Therac-25, Компания Х, Компания Y.
    • Описание - ключи, указывающие на потенциальные ошибки, не интерпретировались корректно, что в конечном счете привело ко всем описанным авариям.


      Начало  Назад  Вперед



      Книжный магазин