Мифы о безопасном ПО: уроки знаменитых катастроф - [5]

Шрифт
Интервал

Принцип действий здесь «простой, как мычание», исходящий из критериев безусловного обеспечения максимальной надежности: отключать допустившее сбой оборудование и тут же задействовать резервный блок: вероятность того, что этот блок также выдаст случайный сбой, да еще в той же ситуации, для надлежаще спроектированных и отлаженных аппаратных систем чрезвычайна мала.

В данном же случае, возникла систематическая программная ошибка; «систематическая» в том смысле, что при повторении тех же входных условий, она обязательно возникнет вновь, ибо тавтология здесь уместна запрограммирована. Вот почему подключение резервной авигационной Системы ничего не дало: ведь ПО на нем исполнялось то же самое, соответственно и обе IRS, и дублирующие друг друга Бортовые Компьютеры с неотвратимостью натыкались на ту же ситуацию и с покорностью обреченных на заклание овец шли к катастрофе. Очевидно, что необходимо по крайней мере отнять у «врача» пистолет: прекращать функционирование аппаратуры при возникновении программного «исключения» целесообразно лишь после комплексного анализа ситуации, но никак не автоматически.

В контексте данной статьи интересно мнение главного редактора журнала «Automated Software Engineering» Башара узейбеха (Bashar Nuseibeh),[6] который, дав обзор разных точек зрения на причины аварии и придя к выводу, что «все правы», связал все-таки катастрофу Ariane 5 с более общими проблемами разработки программных систем. Он отметил, в частности, что современные тенденции в программной инженерии, связанные с разделением интересов вовлеченных в разработку независимо работающих персонажей (что связано с широким внедрением таких подходов, как объектно-ориентированные и компонентные технологии) не получают надлежащего балансирующего противовеса в виде менеджмента, способного координировать всю работу на должном уровне.

Эта тема заслуживает дальнейшего обсуждения, но сначала обратимся к еще одной печально знаменитой истории.

Инциденты с Therac-25

Вспомним более давнюю историю, почти во всем отличную от ситуации с Ariane 5, а сходную только в том, что она также была подробно задокументирована[7] и получила в свое время большой резонанс как повлекшая наиболее тяжкие последствия за всю не столь долгую историю использования медицинских комплексов, управляемых компьютерами. Правда в этом случае полномасштабного официального расследования проведено не было; источниками информации послужили, в основном, протоколы встреч пользователей системы с производителем и материалы многочисленных судебных разбирательств.

Технические подробности инцидентов

В 1985-87 гг. 6 человек получили смертельную дозу облучения во время сеансов радиационной терапии с применением медицинского ускорителя Therac-25 (количество пациентов, также подвергшихся переоблучению, но выживших, точно не известно). Производителем установки являлось одно из подразделений Канадского Агентства Атомной Энергии (Atomic Energy of Canada Limited AECL).

Модель Therac-25, законченная в виде прототипа в 1976 г. и поступившая в промышленную эксплуатацию в 1982 г. (пять установок в США и шесть в Канаде) была развитием ранних моделей Therac-6 и Therac-20. При этом некоторые программные модули, разработанные для ранних моделей, использовались повторно (в том числе поставленные партнером, французской фирмой CGR, сотрудничество AECL с которой прекратилось к моменту начала работ над Therac-25).

Первый зафиксированный факт переоблучения, случившийся в Онкологическом Центре в Marietta (штат Джорджия) в июне 1985 г., просто отрицался и не был должным образом исследован: производитель с цифрами оценки рисков в руках утверждал, что на данной системе это просто невозможно. По странному совпадению, проведенный сеанс облучения не был документирован, так как почему-то вышел из строя принтер; в результате поданный родственниками пациента иск не получил хода ввиду отсутствия документальных доказательств, хотя доза облучения по оценкам была превышена в 100 раз.

Следующий инцидент, случившийся в июле того же года в Онкологическом Центре Онтарио как раз был задокументирован хорошо, но производитель не смог воспроизвести ситуацию, и ее отнесли на счет случайного сбоя аппаратуры; в ПО сомнений по-прежнему просто не было. И трагические инциденты продолжились.

Очередной из них произошел в Онкологическом Центре Восточного Техаса в марте 1986 г. В данном случае процессом управляла опытный оператор, проведшая уже более 500 подобных сеансов. Она быстро ввела предписанные параметры, после чего заметила, что вместо режима облучения электронными лучами заказала лучи рентгеновские (которыми пользовали большинство пациентов). Коррекция требовала исправления всего одной буквы; нажав кнопку, она вошла в режим редактирования, скорректировала в нужном месте «x» на «e», затем несколькими нажатиями клавиши «Return» (благо, все остальные параметры были введены правильно) достигла нижней (командной) строки экрана, убедилась, что против каждого введенного параметра горит «VERIFIED», а статус системы ожидаемый («BEAM READY»), и выдала команду начать процесс облучения. Однако, неожиданно система встала, на консоли высветилось сообщение «MALFUNCTION 54», а статус системы изменился на «TREATMENT PAUSE», что свидетельствовало о проблеме невысокой степени серьезности. Висевшая тут же бумага с кодами ошибок «исчерпывающе» поясняла, что «MALFUNCTION 54» означает «dose input 2». Забегая вперед, укажем, что много позже, во внутренней документации производителя было обнаружено, что это сообщение выдавалось в случае «ненадлежащей дозы облучения» причем, как для слишком большой, так и для слишком малой, что само по себе странно (да и просто недопустимо ведь ситуации принципиально разные).


Рекомендуем почитать
Ум первобытного человека

Книга известного американского антрополога, лингвиста и естествоиспытателя Франца Боаса содержит его взгляды на историю развития человеческой культуры и умственных способностей человека. Автор опровергает утверждение о существовании даровитых и менее одаренных рас; он показывает, что успехи и достижения различных рас, равно как и различия в их анатомических признаках, не являются доказательством различия их умственных дарований. Боас рассматривает вопрос об устойчивости человеческих типов, исследует влияние окружающей среды и наследственности на анатомическое строение и склад ума человека.


Капиталистическое отчуждение труда и кризис современной цивилизации

В монографии исследуются эволюция капиталистического отчуждения труда в течение последних ста лет, возникновение новых форм отчуждения, влияние растущего отчуждения на развитие образования, науки, культуры, личности. Исследование основывается на материалах философских, социологических и исторических работ.


Тайны продуктов питания

Пища всегда была нашей естественной и неизбежной потребностью, но отношение к ней менялось с изменением социальных условий. Красноречивым свидетельством этого является тот огромный интерес к разнообразным продуктам питания, к их природе и свойствам, который проявляет сегодня каждый из нас. Только, достигнув высокого уровня жизни и культуры, человек, свободный от проблемы — где и как добыть пищу, имеет возможность выбирать из огромного ассортимента высококачественных продуктов то, что отвечает его вкусу, что полезнее и нужнее ему, и не только выбирать, но и руководить своим питанием, строить его сообразно требованиям науки о питании и запросам собственного организма.


Социально-культурные проекты Юргена Хабермаса

В работе проанализированы малоисследованные в нашей литературе социально-культурные концепции выдающегося немецкого философа, получившие названия «радикализации критического самосознания индивида», «просвещенной общественности», «коммуникативной радициональности», а также «теоретиколингвистическая» и «психоаналитическая» модели. Автором показано, что основной смысл социокультурных концепций Ю. Хабермаса состоит не только в критико-рефлексивном, но и конструктивном отношении к социальной реальности, развивающем просветительские традиции незавершенного проекта модерна.


Вторжение: Взгляд из России. Чехословакия, август 1968

Пражская весна – процесс демократизации общественной и политической жизни в Чехословакии – был с энтузиазмом поддержан большинством населения Чехословацкой социалистической республики. 21 августа этот процесс был прерван вторжением в ЧССР войск пяти стран Варшавского договора – СССР, ГДР, Польши, Румынии и Венгрии. В советских средствах массовой информации вторжение преподносилось как акт «братской помощи» народам Чехословакии, единодушно одобряемый всем советским народом. Чешский журналист Йозеф Паздерка поставил своей целью выяснить, как в действительности воспринимались в СССР события августа 1968-го.


Сандинистская революция в Никарагуа. Предыстория и последствия

Книга посвящена первой успешной вооруженной революции в Латинской Америке после кубинской – Сандинистской революции в Никарагуа, победившей в июле 1979 года.В книге дан краткий очерк истории Никарагуа, подробно описана борьба генерала Аугусто Сандино против американской оккупации в 1927–1933 годах. Анализируется военная и экономическая политика диктатуры клана Сомосы (1936–1979 годы), позволившая ей так долго и эффективно подавлять народное недовольство. Особое внимание уделяется роли США в укреплении режима Сомосы, а также истории Сандинистского фронта национального освобождения (СФНО) – той силы, которая в итоге смогла победоносно завершить революцию.