В. Р. Гинзбург Перевод с английского



Pdf көрінісі
бет75/203
Дата26.09.2024
өлшемі2,74 Mb.
#145829
1   ...   71   72   73   74   75   76   77   78   ...   203
Байланысты:
практическая криптография


Глава 9. Проблемы реализации. Часть I
К сожалению, современные методы доказательства правильности программ
не способны справиться и с повседневными задачами программирования, не
говоря уже о целых проектах.
Пока что специалисты по компьютерным технологиям не знают, как ре-
шить эту проблему. Может быть, когда-нибудь мы научимся доказывать пра-
вильность программы. Возможно, нам просто нужна более обширная и тща-
тельная инфраструктура и методология тестирования. Но, даже не имея на
руках полного решения, мы определенно способны сделать все возможное
с помощью тех средств, которые у нас уже есть.
Существует несколько простых правил отслеживания ошибок, которые
содержатся в каждом хорошем учебнике по программной инженерии.

Если вы нашли ошибку, реализуйте тест, который будет обнаруживать
эту ошибку. Убедитесь, что он действительно ее обнаруживает. Затем
исправьте ошибку и убедитесь, что тест больше не обнаруживает ее.
Впоследствии применяйте этот тест ко всем будущим версиям програм-
мы, чтобы проверить, не появится ли указанная ошибка снова.

Найдя ошибку, подумайте, чем она вызвана. Нет ли в программе других
мест, в которых может находиться аналогичная ошибка? Проверьте все
эти места.

Ведите учет всех найденных ошибок. Простой статистический анализ
обнаруженных ошибок может показать, какая часть программы являет-
ся самой проблемной, ошибки какого типа встречаются наиболее часто
и т.п. Это необходимо для системы контроля качества.
Перечисленные правила даже нельзя назвать необходимым минимумом,
однако выбирать все равно не из чего. Книг, посвященных качеству про-
граммного обеспечения, слишком мало, и все они в чем-то не согласуются
друг с другом. Многие из них представляют конкретную методологию раз-
работки программного обеспечения как
единственное
решение, а мы всегда
с подозрением относимся к схемам, которые “лечат от всех болезней”. Истина
почти всегда находится где-то посередине.
9.1.3
Халатное отношение
Третья проблема — это невероятно халатное отношение к программному
обеспечению большинства людей, работающих в компьютерной индустрии.
Ошибки в программах воспринимаются как нечто само собой разумеющееся.
Если ваш текстовый процессор неожиданно “упадет” и уничтожит все, что вы
успели сделать за день, это будет воспринято как вполне обыденная ситуа-
ция. Зачастую всю вину пытаются переложить на пользователя: “
Вы
должны


9.1. Создание правильных программ
155
были почаще сохранять документ”. Производители программного обеспече-
ния постоянно выпускают продукты, содержащие массу известных ошибок.
Было бы полбеды, если бы они продавали только компьютерные игры, но
сегодня от программного обеспечения зависит наша работа, наша экономика
и — все больше и больше — наша жизнь. Если производитель машин обнару-
жит дефект в модели машины после ее поступления в продажу, он отзовет
все экземпляры этой модели и исправит найденный дефект. Компании, за-
нимающиеся разработкой программного обеспечения, поступают по-другому,
всячески заявляя об ограничении своей ответственности во всевозможных
лицензиях. В любой другой отрасли промышленности этого бы не спустили
с рук. Такое халатное отношение означает отсутствие каких-либо серьезных
попыток разработать правильное программное обеспечение.
9.1.4
Так что же нам делать?
Даже и не думайте, что вам будет достаточно лишь хорошего программи-
ста, нескольких обзоров кода сторонними аналитиками, процесса разработки,
сертифицированного по ISO 9001, обширного тестирования или даже комби-
нации всего этого. Действительность более сурова. Программное обеспечение
слишком строптиво, чтобы его можно было приручить с помощью нескольких
правил и процедур.
В качестве поучительного примера можно привести самую лучшую си-
стему контроля качества в мире — авиационную промышленность. Каж-
дый человек, работающий в этой отрасли, связан с обеспечением безопас-
ности. Практически каждая операция выполняется согласно строгим пра-
вилам и процедурам. На случай отказа элементов системы предусмотрены
многочисленные резервные компоненты. Каждый болт и каждая гайка само-
лета проходят тщательные технические испытания на пригодность, прежде
чем их вообще разрешат использовать. Всякий раз, когда механик подходит
к самолету хотя бы с самой безобидной отверткой, его работа проверяется
и утверждается руководителем инженерно-авиационной службы. Любое из-
менение фиксируется самым тщательным образом. Каждое незначительное
происшествие тщательно исследуется на предмет выявления всех возмож-
ных причин, которые затем исправляются. Эта беспрецедентная погоня за
качеством оборачивается огромными расходами. Производство самолета об-
ходится на порядок дороже, чем если бы вы просто передали его чертежи
в обычную конструкторскую фирму. Но в то же время эта погоня за каче-
ством оказывается исключительно эффективной.
Сегодня летать самолетом — совершенно привычное дело, а ведь даже
незначительная ошибка в подобной машине была бы равносильна смерти.
В машине, в которой нельзя просто нажать на тормоза и остановиться, если


156

Достарыңызбен бөлісу:
1   ...   71   72   73   74   75   76   77   78   ...   203




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет