Меню

Катастрофические последствия программных ошибок

Катастрофические последствия программных ошибок

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

В идеальной ситуации баги исправляют все и сразу. Но в жизни всегда есть куча задач, отодвигающих полный и бесповоротный багфикс (новый функционал, срочные хотфиксы, расставленные приоритеты при исправлении багов). Это значит, что в первую очередь находятся и исправляются очевидные и явные проблемы. Остальные тихо ждут своего часа, превращаясь в бомбы замедленного действия. Иногда ошибки приводят не только к неприятностям в жизни рядового разработчика, но и вызывают настоящие катастрофы. Сегодня у нас подборка и объяснение самых кошмарных багов в истории разработки ПО.

Облучение и радиация

Знаменитый случай гибели нескольких человек, получивших смертельную дозу облучения во время сеансов радиационной терапии с применением медицинского ускорителя Therac-25. Ускорители подобного типа используют электроны для создания лучей высокой энергии, высокоточно уничтожающих опухоли. Но некоторые пациенты получили дозы не в несколько сотен рад, как предписывало лечение, а в 20 000 рад; доза в 1000 рад для человека считается несовместимой с жизнью, причем смерть может наступить сразу после облучения.

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

Ускоритель Therac-25, ставший третьим в серии успешных аппаратов лучевой терапии, мог работать с рентгеновскими лучами до 25 МэВ. Несколько лет в середине 80-х аппараты Therac-25 работали безупречно, однако со временем начали накапливаться инциденты, повлекшие за собой тяжелые последствия: от ампутации конечностей до гибели пациентов.

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

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

Одна и та же переменная в ПО Therac-25, применялась как для анализа введенных чисел, так и для определения положения поворотного круга, отвечающего за направление излучателя. Поэтому при быстром вводе команд аппарат мог принять число дозы излучения за координаты места, куда нужно направить луч — например, прямо в мозг.

Иногда Therac-25 при расчете излучения делил на ноль и соответствующим образом увеличивал величины облучения до максимально возможных. Установка булевской переменной в значение «true» производилась командой «x=x+1» из-за чего с вероятностью 1/256 при нажатии кнопки «Set» программа могла пропустить информацию о некорректном положении излучателя.

Во внутренней документации производителя было обнаружено, что одно и то же сообщение об ошибке выдавалось как в случае ненадлежащей (малой) дозы облучения, так и для большой дозировки — отличить по сообщению об ошибке одно от другого было невозможно.

Если вы разработчик или (что еще лучше) тестировщик, этот случай стоит изучить досконально — есть хорошая статья в wiki, с нее можно начать, а затем ознакомьтесь с большой статьей девятнадцатилетней давности «Мифы о безопасном ПО: уроки знаменитых катастроф». История вобрала в себя большинство классических проблем тестирования.

Как ни печально, но проблемы Therac-25 не остались уникальными. В 2000 году серию аварий вызвал другой софт, точно так же просчитывающий нужную дозу облучения для пациентов, проходящих курс лучевой терапии.

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

Врачи воспользовались «лайфхаком». Оказалось, что в программе не предусмотрена защита от ввода некорректных данных — можно было нарисовать все пять блоков как один большой блок с отверстием в середине. В медицинском центре онкологии Панамы не понимали, что софт Multidata устанавливал разные показатели конфигурации в зависимости от того, как размещено отверстие: от направления его размещения рассчитывалась правильная доза облучения.
Из-за неверно введенных данных умерли восемь пациентов, в то время как еще 20 получили передозировку, повлекшую серьезные проблемы со здоровьем.

Блэкаут

Маленькая ошибка в программном обеспечении системы мониторинга работы оборудования General Electric Energy привела к тому, что 55 миллионов человек остались без электричества. На Восточном побережье США оказались обесточены жилые дома, школы, больницы, аэропорты.

14 августа 2003 года в 0:15 ночи оператор энергетической системы в Индиане с помощью инструмента мониторинга работы оборудования заметил небольшую проблему. Проблема вызвала раздражающий сигнал об ошибке, который оператор выключил. Оператору удалось за несколько минут решить все трудности, но он забыл перезапустить мониторинг — аварийный сигнал остался в выключенном положении.

Отключение сигнала не стало основной причиной блэкаута. Но когда через несколько часов из-за контакта с деревом вырубились провисшие линии электропередачи в Огайо — об этом никто не узнал. Проблема приняла лавинообразный характер, перегруженные линии передачи и электростанции начали вырубаться в Онтарио, Нью-Йорке, Нью-Джерси, Мичигане и далее.

Ни один из операторов не заметил каскад ошибок, которые медленно убивали энергосистему, из-за единственного выключенного сигнала тревоги — никаких дублирующих систем на этот случай не предполагалось.

Mars Climate Orbiter

В 1998 году NASA потеряло спутник «Mars Climate Orbiter» стоимостью $ 125 млн из-за того, что субподрядчик, работавший над инженерными задачами, не перевел английские единицы измерения (фунты) в метрическую систему. В результате ошибки спутник после 286-дневного путешествия на большой скорости вошел в марсианскую атмосферу, где из-за возникших перегрузок его системы связи вышли из строя. Аппарат оказался на сто километров ниже планируемой орбиты и на 25 км ниже высоты, на которой еще можно было исправить ситуацию. В результате спутник разбился. Такая же участь постигла космический аппарат Mars Polar Lander.

Mariner 1

В 1962 году космический корабль «Mariner 1» был уничтожен с земли после старта из-за отклонения от курса. Авария возникла на ракете из-за программного обеспечения, в котором разработчик пропустил всего один символ. В результате корабль стоимостью 18 миллионов долларов (в деньгах тех лет) получал неверные управляющие сигналы.

При работе над системой управления ракетой программист переводил рукописные математические формулы в компьютерный код. Символ «верхнего тире» (индекса), он воспринял за обычное тире (или знак минус). Функция сглаживания стала отражать нормальные вариации скорости ракеты как критические и недопустимые.

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

Запуск баллистических ракет

26 сентября 1983 года спутник эшелона «Око» системы предупреждения о ракетном нападении СССР ошибочно сообщил о запуске пяти баллистических ракет с территории США. Спутник находился на высокой эллиптической орбите, наблюдая за районами базирования ракет под таким углом, чтобы они находились на краю видимого диска Земли. Это позволяло обнаружить факт запуска на фоне темного космического пространства по инфракрасному излучению работающего ракетного двигателя. Кроме того, выбранное расположение спутника снижало вероятность засветок датчиков отраженным от облаков или снега солнечным светом.

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

Подобная ошибка, едва не повлекшая за собой глобальный ядерный конфликт, произошла и по другую сторону океана. 9 ноября 1979 года из-за сбоя компьютера воздушно-космической обороны Северной Америки была получена информация о начале ракетной атаки против США — в количестве 2200 запусков. В то же время спутники раннего предупреждения и радары показали, что никакой информации о советской атаке не поступало — только благодаря перепроверке данных, сделанной за 10 минут, не был отдан приказ о взаимном гарантированном уничтожении.

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

За несколько первых лет работы Национального центра управления Объединенного командования аэрокосмической обороны США и Канады было зафиксировано 3703 ложных сигнала тревоги, большая часть из которых появилась из-за атмосферных явлений. Однако случались и компьютерные ошибки. Так один из «боевых» компьютеров 3 июня 1980 года показал постоянно меняющиеся цифры количества ракет, запущенных Советским Союзом. Проблема возникла из-за аппаратного сбоя в микросхеме.

Обновление софта и деление на 0

В 1997 американский ракетный крейсер «Йорктаун» (CG-48), на котором были установлены 27 компьютеров (Pentium-Pro на 200 МГц), решил поделить на ноль и полностью вышел из строя.
Компьютеры работали на Windows NT — и работали они ровно так, как вы и ожидаете, узнав название оси. В то время ВМФ США старался максимально широко использовать коммерческое ПО с целью снижения стоимости военной техники. Компьютеры же позволяли автоматизировать управление кораблем без участия человека.

На компьютеры «Йорктауна» поставили новую программу, управляющую двигателями. Один из операторов, занимавшийся калибровкой клапанов топливной системы, записал в одну из ячеек расчетной таблицы нулевое значение. 21 сентября 1997 года программа запустила операцию деления на этот самый ноль, началась цепная реакция, и ошибка быстро перекинулась на другие компьютеры локальной сети. В результате отказала вся компьютерная система «Йорктауна». Потребовалось почти три часа, чтобы подключить аварийную систему управления.

Схожая проблема с нулем возникла при испытании истребителя в Израиле. Безупречно работавший самолет на автопилоте пролетел над равнинной частью, над горной частью, над долиной реки Иордан и приблизился к Мертвому морю. В этот момент произошел сбой, автопилот выключился, и пилоты посадили истребитель на ручном управлении.

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

В мире найдется немало историй, когда обновление софта, совершаемое с самыми благими целями, могло повести за собой множество проблем. В 2008 году атомная электростанция в штате Джорджия (США) мощностью 1,759 МВт в экстренном режиме приостановила работу на 48 часов.

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

Инцидент с F-22

Двенадцать F-22 Raptor (истребитель пятого поколения, состоящий на вооружении США), стоимостью $ 140 млн за штуку, отправились в первый международный вылет в Окинаву. Все шло замечательно, пока эскадрилья не пересекла линию перемены даты, на западной стороне которой дата сдвинута на один день вперед относительно восточной. После пересечения условной линии все 12 истребителей одновременно выдали сообщение об ошибке, эквивалентной синему экрану смерти.

Самолеты потеряли доступы к данным о количестве топлива, датчикам скорости и высоты, частично нарушилась связь. В течение нескольких часов самые современные истребители Америки летели через океан совершенно беспомощными. В конце концов их удалось посадить только благодаря мастерству пилотов.

Так в чем же была ошибка? Проектировщики из Lockheed Martin даже не рассматривали вопрос о возможности пересечения линии перемены дат — им просто не пришло в голову, что где-то понадобится либо прибавлять, либо вычитать одни сутки.

Другие истории

В этой бескрайней теме есть еще несколько интересных историй. О них сложилось либо неправильное мнение, либо уже были подробные статьи на ГТ и Хабре.

Взрыв на советской газотранспортной системе в 1982 году из-за программных ошибок, заложенных ЦРУ. Эксперты категорически отрицают не только взрыв на газопроводе «Уренгой-Сургут-Челябинск» в 1982 году, но и вообще возможность возникновения такого взрыва.

Алгоритмическая ошибка привела к аварии самолета А-330 — в результате инцидента 119 пассажиров и членов экипажа получили ранения, из них 12 тяжелые.

Ракета-носитель Ariane 5 превратилась в «конфетти» 4 июня 1996 года — ошибка произошла в компоненте ПО, предназначенном для выполнения «регулировки» инерциальной платформы. Потеряно 500 млн долларов (стоимость ракеты с грузом).

Toyota: из-за корявой электроники и софта 89 человек погибли с 2000 по 2010 годы.

Источники:

habrahabr.ru/company/mailru/blog/227743
www.wikiwand.com/en/Therac-25
www.baselinemag.com/c/a/Projects-Processes/We-Did-Nothing-Wrong en.wikipedia.org/wiki/Northeast_blackout_of_2003
lps.co.nz/historical-project-failures-mars-climate-orbiter www.jpl.nasa.gov/missions/mariner-1
inosmi.ru/inrussia/20071229/238739.html
https://www.revolvy.com/main/index.php?s=USS%20Yorktown%20(CG-48)
www.defenseindustrydaily.com/f22-squadron-shot-down-by-the-international-date-line-03087

Как бы упорно мы не полагались на машины, они далеки от идеала. Как минимум, потому что сделаны человеком.

Пока программы не станут умнее людей, нам придётся следить за их состоянием постоянно. Особенно когда говорим об отвественном деле.

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

Начнём со странных вещей, коснувшихся относительно скромного числа людей, а закончим настоящими финансовыми катастрофами. Они стоили не один десяток бессонных ночей тем, кому пришлось срочно вычитывать хрупкий код и буквально спасать человечество.

1. Система заживо похоронила 8 500 пациентов больницы в Мичигане

В 2003 году Медцентр Св. Марии Милосердия в городе Гранд-Рапидс обновил свою программу для учёта больных до новой версии. Из-за неверного толкования данных переменные «выписан» и «скончался» перепутались.

Потому всем, кто уже прошёл лечение начали приходить уведомления о смерти по почте и в разных отчётах вроде анализа крови.

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

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

2. Обновление ПО лишило 60 тысяч человек междугородных звонков

В январе 1990 года американский оператор связи AT&T улучшал свою программу по контролю переключателей между вышками. Из-за ошибки в коде одна из них во время звонка начала отправлять сигналы быстрее, чем другая могла их обработать.

Данные начали наслаиваться друг на друга, и проблема быстро распространилась по другим точкам. На обратном конце люди слышали только шум. Так продолжалось 9 часов.

Проблему решили откатом ПО до предыдущей версии, однако проблема не перестала быть актуальной.

Ситуация повторилась как минимум один раз в 1998 году, но тогда были затронуты только сервисные уведомления по SMS.

3. 5% всех магазинов России сломалось из‑за новой онлайн‑кассы

20 декабря 2017 года техника по контролю данных обновлялась, чтобы продавцы начали напрямую передавать информацию о транзакциях налоговой службе. Одно из таких улучшений заблокировало каждый двадцатый магазин страны.

Сбои начались в салонах сети DNS во Владивостоке, где люди просыпаются раньше Москвы. Система не давала отправлять расчёты в Федеральную налоговую службу (ФНС), а из-за этого кассиры не имели права реализовывать товар.

Пока проблема добралась до столицы, откуда начал решаться вопрос, по всей России встали некоторые точки Магнита, Пятёрочки с Перекрёстком, Эльдорадо и аптек Ригла.

ФНС пришлось быстро реагировать и разрешать магазинам работать в офлайн режиме. Тем разрешили вносить данные после того, как система восстановится.

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

Теоретический ущерб, по мнению Ассоциации компаний интернет-торговли, мог дойти до 2,5 млрд рублей. Реальный оказался чуть ниже благодаря быстрой оптимизации процессов со стороны ФНС.

4. Машине дали проектировать стадион в Коннектикуте. Тот рухнул

С 1972 года город Хартфорд старался расширить свою инфраструктуру и вкладывался в крупные проекты. Одним из них стал Hartford Civic Center – комплекс торговых, развлекательных и спортивных площадок.

Структуру стадиона проектировали через программу, что вместе с оптимизированным расходом материалов сэкономило городу около $500 тысяч.

Комплекс полностью функционировал и даже был «домом» для местной хоккейной группы New England Whalers с 1975 года.

Однако утром 18 января 1978-го стадион обвалился. Игр в тот день не проходило: здание было пустым и никто не пострадал.

СМИ растиражировали новость, где причиной указывали тяжесть снега. Но расследование показало, что на самом деле проблема была комплексной, а корнем оказалось наивное доверие программе.

Четыре несущие колонны с момента возведения были плохо продуманы в размере и креплении. Стадион начал постепенно «складываться» ещё во время строительства, а группы по контролю качества распределялись между разными подрядчиками и плохо согласовали данные.

Восстановление стоило городу $90 млн. В последствии на месте комплекса возвели арену XL Center, которая до сих пор исполняет роль главной спортивной площадки Хартфорда.

5. Intel выпустила процессор с ошибкой и устроила международный скандал

В 1994 году CPU под брендом Pentium был флагманом компании, и в нём пряталась микроскопическая проблема, которая касалась крошечной части людей: когда пользователь делил одно число на другое, результат был неверным. Выглядела ошибка так:

Программисты неправильно настроили одну из веток операций, вшитых в процессор. Она искала корневые данные и находила не те.

При этом основной ущерб пришёлся не на пользователей, а на компанию.

Из-за того, что Intel уже тогда уверенно чувствовала себя на рынке, а чипы были новые, даже федеральные СМИ многих стран подхватили новость и нанесли катастрофический ущерб имиджу и доходу компании.

В итоге за 1994 год замена всех повреждённых процессоров сократила выручку компании вдвое от запланированной – на $475 млн.

6. 6 миллионов автомобилей могут не раскрыть воздушные подушки

В январе 2020 года выяснилось, что датчики в некоторых моделях компаний Toyota и Honda слишком чувствительны к электрическому шуму.

Есть вероятность того, что в момент столкновения система не подаст сигнал системе безопасности. Та не сможет удержать ремни натянутыми, а подушки не наполнятся воздухом.

Проблема может быть глобальнее, поскольку компьютер из автомобилей Toyota разрабатывался сторонней организацией ZF-TRW. А она поставляла свои наработки как минимум шести компаниям в одних США, которые продали 12,3 млн машин.

Но пока только японские производители решили чинить датчики. И то, многие всё ещё ждут уведомления от своих диллеров.

7. MySpace уничтожил 50 миллионов песен пользователей

В 2016 году компания делала миграцию данных, которая началась еще в 2013 году. Уже тогда некоторые материалы и аккаунты стали недоступны части пользователей.

А в ходе переноса своей огромной библиотеки музыки, фотографий и видео возникла ошибка на сервере, которая их безвозвратно удалила.

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

Так или иначе, мир потерял один из крупнейших пластов интернет-культуры с 2003 по 2015 годы.

8. 144 тысячи родителей-одиночек не получили государственных выплат

В апреле 2003 года британская компания по поддержке малообеспеченных и неполноценных семей Child Support Agency внедрила систему по фильтрации заявлений. Она стоила £300 млн.

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

Скандал длился как минимум до 2006 года, пока программа продолжала съедать 70% выделяемых на проект денег и затраты к 2010 году не составили £1,1 млрд.

В итоге в 2012 году агенство закрыли и вместо него запустили новую организацию Child Maintenance Group.

9. Уязвимость в защите 500 тысяч крупнейших сайтов давала доступ к вашей RAM

В апреле 2014 года специалисты по информационной безопасности обнаружили в библиотеке OpenSSL, на которой держится самый распространённый протокол HTTPS, критическую дыру в безопасности.

Её назвали Heartbleed по аналогии с процессом Heartbeat, взятым за основу этой ошибки.

С помощью уязвимости можно было узнать, что находится в оперативной памяти компьютера жертвы.

И, хотя максимальный объём украденной информации не мог превышать 64 Кб за один запрос, этого хватало на доступ к паролям и конфиденциальным сообщениям.

Ошибка затронула 17% всех защищенных сайтов. В том числе Google, Facebook, Instagram, Twitter и даже Minecraft.

Опасность закрывалась простым патчем, поэтому многие компании отреагировали быстро.

Однако по масштабу с этой проблемой сопоставима только одна, и вы наверняка о ней хоть раз слышали.

10. Мир потратил $300 млрд, чтобы в 2000 году компьютеры продолжили работать

Фото Эмори Кристоф / Emory Kristof

До 1999 года системы программировали так, что одни отмечали даты форматом из 8 цифр (ЧЧ.ММ.ГГГГ), а другие оставляли 6.

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

Дата формата ЧЧ.ММ.ГГ могла заменить 2000 на 1900 год, поскольку оба числа кончаются на «ОО». Таким образом ошибка бы переписала и стёрла данные, нарушила работу алгоритмов и спровоцировала коллапс онлайн-систем.

Большинство времени и ресурсов компаний ушло не на исправление последствий, а на то, чтобы проверить каждый компьютер в компании.

Поскольку программное обеспечение не переживало таких прыжков в исчислении времени раньше, ситуацию обсуждали по всему миру.

Вокруг Проблемы 2000 года (или Y2K) было много разговоров, в том числе о целесообразности паники. Их подогревало то, что страны восприняли вопрос серьезно и прописывали инициативы на государственном уровне.

Например, Россия создала официальный документ Национальный план действий по решению “Проблемы 2000” в Российской Федерации.

Табло на последней строке «обнулилось» и показывает 1900 вместо 2000

Ближайшая похожая ошибка настигнет не оптимизированные 32-битные системы в январе 2038 года, однако программисты уже готовятся к переходу.

64-х битных систем ситуация коснётся через 292 миллиарда лет, так что тут можно расслабиться.

Куда реальнее и скорее грозит Проблема 10 000 года своим переходом на значения из пяти цифр. Кажется, что не стоит о ней беспокоиться – пока вопрос ведь скорее теоретический.

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

Может, призадуматься и стоит.

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (30 голосов, общий рейтинг: 4.77 из 5)

🤓 Хочешь больше? Подпишись на наш Telegram.

undefined

iPhones.ru


В последнем случае – миллиардов.

  • Подборки,
  • Это интересно

Павел avatar

Павел

@Tinelray

У меня 4 новых года: обычный, свой, WWDC и сентябрьская презентация Apple. Последний — самый ожидаемый, и ни капли за это не стыдно.

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

Топ-6 катастроф, произошедших «по вине» программного обеспечения

1. Космос: Ariane 5

4 июня 1996 года Европейское космическое агентство запустило ракету Ariane 5. Увы, ошибка в программном обеспечении модуля управления привела к самоуничтожению ракеты через 37 секунд после взлета.


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

2. Деньги: Knight Capital

В 2013 году сбой программы почти довел инвестиционную компанию Knight Capital до банкротства. Фирма потеряла полмиллиарда долларов за полчаса из-за того, что компьютеры стали покупать и продавать миллионы акций безо всякого человеческого контроля. В итоге цены на акции компании упали на 75% за два дня.


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

3. Медицина: Лучевая терапия

В 1980-е годы пять пациентов умерли после получения большой дозы рентгеновского излучения в результате программной ошибки блока управления установкой лучевой терапии Therac-25. Как полагают эксперты, сбой был вызван ошибкой в коде, в результате которой программа пыталась выполнять одну и ту же команду многократно.


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

4. Интернет: Amazon

Отключение серверов Amazon летом 2013 года лишило многих людей их данных, хранившихся в «облаке». Авария, изначально вызванная сильной грозой, усугубилась внезапно обнаруженными программными ошибками, в результате чего произошел каскадный сбой.


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

5. Инфраструктура: «блэкаут» на северо-востоке США

Массовое отключение электроэнергии в 2003 году стало результатом локальной аварии, которая осталась незамеченной из-за ошибки программного обеспечения для мониторинга работы оборудования General Electric Energy, и также привела к масштабному каскадному сбою.


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ


РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

6. Транспорт: American Airlines

В 2014 году программная ошибка «приземлила» весь воздушный флот авиакомпании American Airlines. Сбой в системе бронирования билетов возник после объединения двух существующих систем в результате слияния нескольких авиакомпаний. Проблемы, вероятно, возникли вследствие неудачной попытки объединить платформы, написанные на разных языках программирования.

Современное программное обеспечение (сокращенно ПО) позволяет сделать жизнь миллионов людей проще, однако сбои в крупных системах могут иметь катастрофические последствия. Нередко ошибки при работе компьютеров приводили к серьезным разрушениям и смерти людей.

Ниже будут перечислены наиболее масштабные инциденты, произошедшие из-за ошибок программного обеспечения.

1 Ошибка в космическом агентстве

В июне 1996 года специалисты Европейского космического агентства осуществляли запуск ракеты Ariane 5.

ошибки в программном обеспечении

Ошибка в программном обеспечении для модуля управления привела к старту процесса самоуничтожения – через 37 секунд полета ракета взорвалась.

2 Акции упали, деньги пропали

В прошлом году крупный сбой в программном обеспечении чуть не обанкротил корпорацию Knight Capital.

ошибки в программном обеспечении в инвестиционной компании

Фирма менее чем за час потеряла полмиллиарда долларов – система начала несанкционированно покупать и продавать большое количество акций. В итоге за два дня акции упали в цене на 75%.

3 Сбой в медицинском оборудовании

Сбои случались и в медицинском оборудовании. В 1980-годы несколько пациентов погибли после получения слишком большой дозы облучения рентгеновским аппаратом Therac-25 (лучевая терапия).

Ошибки в программном обеспечении медицинского оборудования

Эксперты предположили, что масштабный сбой произошел из-за обычной ошибки в коде, которая привела к выполнению одной операции многократно.

4 Жаркое лето для Амазона

Летом 2013 года произошло отключение серверов американской компании Amazon (самая известная компания в мире по продаже различных товаров и услуг через Интернет). Это привело к потере файлов пользователей, хранившихся в сетевом хранилище.

сбой в программном обеспечении на амазоне

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

5 О связи электричества и программного обеспечения

Массовое отключение электричества в 2003 году в северо-восточной части США произошло из-за локальной аварии, которая не была зафиксирована программным обеспечением General Electric Energy.

ошибка в программном обеспечении электрокомпании

Отсутствие реакции на локальный сбой привело к каскадному отключению электроэнергии.

6 Авиакомпании и программное обеспечение

Маленький сын спрашивает у папы-программиста:
— Папа, почему солнце всходит на востоке?
— Вот работает, сынок, и не трогай!

В 2014 году из-за ошибки в программе была заблокирована работа всех самолетов авиакомпании American Airlines.

сбой программного обеспечения в авиакомпании

Сбой возник в системе бронирования билетов – проводилась работа по объединению программных платформ нескольких компаний.

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

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

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

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

Будем внимательны к программному обеспечению, к программистам и друг к другу!

P.S. Это интересно:

Не влезай, умрет!

Стив Джобс: он просто взял и изменил мир

Без мифов и легенд о выборе профессии программиста: часть 1

Самый богатый ботаник в мире

Что такое шпионские программы Spyware?

Получайте актуальные статьи по компьютерной грамотности прямо на ваш почтовый ящик.
Уже более 3.000 подписчиков

.

Важно: необходимо подтвердить свою подписку! В своей почте откройте письмо для активации и кликните по указанной там ссылке. Если письма нет, проверьте папку Спам.

  • Авторы
  • Файлы

Источниками ошибок в программном обеспечении являются специалисты — конкретные люди с их индивидуальными особенностями, квалификацией, талантом и опытом.

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

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

В общем случае отказ программного обеспечения можно определить как:

  • прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) на время превышающее заданный порог;
  • прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) на время не превышающее заданный порог, но с потерей всех или части обрабатываемых данных;
  • прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) потребовавшее перезагрузки ЭВМ, на которой функционирует программное обеспечение.

Из данного определения программной ошибки следует, что ошибки могут по разному влиять на надежность программного обеспечения и можно определить тяжесть ошибки, как количественную или качественную оценку последствий этой ошибки. При этом категорией тяжести последствий ошибки будет являться классификационная группа ошибок по тяжести их последствий. Ниже представлены возможные категории тяжести ошибок в программном обеспечении общего применения в соответствии с ГОСТ 51901.12 — 2007 «Менеджмент риска. Метод анализа видов и последствий отказов».

Таблица 1. Категории тяжести ошибки в программном обеспечении, нарушение работоспособности которого не приводят к катастрофическим последствиям

Номер
категории
ошибки

Наименование
категории тяжести ошибки

Описание последствий проявления ошибки

III

Критическая

проявление ошибки с высокой вероятностью влечет за собой прекращение функционирования программного обеспечения (его отказ)

II

Существенная

проявление ошибки влечет за собой снижение эффективности функционирования программного обеспечения и может вызвать прекращение функционирования программного обеспечения (его отказ)

I

Несущественная

проявление ошибки может повлечь за собой снижение эффективности функционирования программного обеспечения и практически не приводит к возникновению отказа в нем (вероятность возникновения отказа очень низкая)

В качестве показателя степени тяжести ошибки, позволяющего дать количественную оценку тяжести проявления последствий ошибки можно использовать условную вероятность отказа программного обеспечения при проявлении ошибки. Оценку степени тяжести ошибки как условной вероятности возникновения отказа, можно производить согласно ГОСТ 28195 — 89 «Оценка качества программных средств. Общие положения», используя метрики и оценочные элементы, характеризующие устойчивость программного обеспечения. При этом оценку необходимо производить для каждой ошибки в отдельности, а не для всего программного обеспечения.


Библиографическая ссылка

Дроботун Е.Б. КРИТИЧНОСТЬ ОШИБОК В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ И АНАЛИЗ ИХ ПОСЛЕДСТВИЙ // Фундаментальные исследования. – 2009. – № 4.
– С. 73-74;

URL: https://fundamental-research.ru/ru/article/view?id=4467 (дата обращения: 29.01.2023).


Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»

(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

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

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

Так что, нравится нам это или нет, а «умное» программное обеспечение уже давно контролирует множество аспектов нашей жизни. Сбой в его работе может иметь для человечества весьма неприятные – если не сказать катастрофические – последствия. Остаётся надеяться, что в будущем компьютерные ошибки не станут причиной жертв, сравнимых с теми, что уже пережила планета Земля в прошлом. Предлагаем Вашему вниманию 6 наиболее примечательных случаев компьютерной «халатности».

Космический глюк

Гибель ракеты Ariane 5

4 июня 1996 года Европейское космическое агентство запустило ракету-носитель семейства Ариан, предназначенную для выведения полезной нагрузки на низкую опорную орбиту. Ракета, стартовавшая с космодрома Куру во Французской Гвиане, через 37 секунд после взлёта взорвалась в воздухе, засеяв окрестности обломками. К счастью, никто не пострадал. Специалисты подозревали утечку топлива или проблемы с электроникой. Но всё оказалось гораздо прозаичнее: ошибка в программном обеспечении модуля управления привела к самоуничтожению ракеты. Миллионы евро сгорели в воздухе из-за ошибки в коде.

Сбой стоимостью миллиард долларов

Разорение Knight Capital

В 2013 году капитализация крупной инвестиционной компании Knight Capital составляла несколько миллиардов долларов. Она заслуженно считалась одной из самых успешных инвестиционных групп в США. Тем не менее, всего за полчаса её финансовый успех превратился в воспоминание: сбой компьютерной программы полностью разорил компанию. Компьютеры начали неконтролируемо покупать и продавать миллионы акций, пока трейдеры беспомощно стучали по клавишам. За феерически короткое время Knight Capital потеряла полмиллиарда долларов. Итогом сбоя стало падение акций компании на 75% – всего за 2 дня перспективная фирма практически полностью разорилась.

Программная медицинская ошибка

Сбой в установке Therac-25

В 80-ых годах прошлого века минимум 6 пациентов один за другим скончались от получения большой дозы рентгеновского излучения из аппарата для лучевой терапии Therac-25, применяемого в процессе лечения рака. Некоторые пациенты получили дозы в десятки тысяч рад – и всё из-за программной ошибки блока управления установки. Примечательно, что проблему не замечали в течение нескольких лет. Эксперты, изучившие систему, установили, что сбой был вызван ошибкой в коде, в результате которой программа пыталась выполнять одну и ту же команду многократно. Вместо облучения в медицинских дозах пациенты умирали от передозировки радиацией. Данная программная ошибка считается приведшей к одним из наихудших последствий по вине программного обеспечения за всю историю использования компьютеров.

Гроза в торговой сети

Отключение серверов Amazon

В августе 2014 года в течение 45 минут серверы Amazon – общеизвестного крупнейшего в мире сайта среди продающих товары и услуги через Интернет – были недоступны из-за отключения электричества. Изначально авария, вызванная сильной грозой, усугубилась многочисленными осложнениями в виде внезапно всплывших программных ошибок, в результате чего произошёл каскадный сбой. За время простоя сайт потерял около $5 млн. К счастью, сайт более чем серьёзно подходит к безопасности данных, так что рядовые пользователи не лишились ни денег, ни уже оплаченных, но ещё не доставленных заказов.

Электронная тьма

Массовое отключение электроэнергии на северо-востоке США

К чему может привести маленькая, незаметная и незамеченная ошибка в программном обеспечении для мониторинга работы оборудования General Electric Energy? В 2003 году примерно треть штатов США остались без электроэнергии вообще. Света не было не только в домах граждан, но и в больницах, школах, на вокзалах. Не работали компьютеры в полицейских участках, не функционировали радары сил противовоздушной обороны, самолёты не могли подняться со взлётных полос. Хуже того: умолкли диспетчерские вышки, и несколько страшных часов самолёты, находящиеся в воздухе, не могли сесть. Глобальный каскадный сбой, вызванный неприметной ошибкой, послужил причиной одного из самых масштабных отключений электроэнергии в истории.

Массовое приземление

Приземление всех самолётов American Airlines

Из-за обнаруженной в 2013 году ошибки в программном обеспечении систем контроля полётов руководству авиаперевозчика American Airlines пришлось вернуть на землю абсолютно все свои самолёты. Сбой возник в системе бронирования билетов, когда в результате слияния нескольких авиакомпаний две существующие системы объединились в одну. Проблема с управлением полётами возникла после того, как попытка объединить платформы, написанные на разных языках программирования, провалилась.

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

Мы собрали самые крупные программные катастрофы всех времен.

Червь Морриса, 1988 год

Не все дорогостоящие ошибки в программном обеспечении происходят в крупных компаниях или правительственных организациях.

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

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


Теперь код вируса — музейный экспонат на дискете

Это сделало червя Морриса, по сути, первым заразным компьютерным вирусом.

Червь стал распространяться дальше. Были выведены из строя шесть тысяч интернет-узлов ARPANET (прототип интернета от минобороны США).

Аспирант Роберт Таппан Моррис был обвинен и осужден за преступный взлом и оштрафован на 10 тысяч долларов, хотя стоимость созданного им беспорядка оценивалась в 10 миллионов долларов.

Однако история простила Морриса Этот инцидент дал опыт — открыл уязвимость и улучшил цифровую безопасность. В наши дни Моррис является профессором Массачусетского технологического института, а исходный код червя хранится как музейный экспонат на дискете в Бостонском университете.

Космический корабль «Маринер-1», 1962 год

НАСА запускало беспилотный космический аппарат для сбора данных, чтобы пролететь около Венеры. Все пошло не по плану.

Космический зонд «Маринер-1» едва успел покинуть мыс Канаверал, как ракета опасно отклонилась от курса. Обеспокоенные тем, что ракета направляется к аварийной посадке на Землю, инженеры НАСА подали команду на самоуничтожение, и аппарат был уничтожен примерно через 290 секунд после запуска.

Расследование показало, что причиной стала очень простая программная ошибка. В одной из строк кода был пропущен дефис, в результате чего на космический корабль были отправлены неверные сигналы наведения. Стоимость ошибки превысила 18 миллионов долларов (около 169 миллионов долларов в современном мире).

Ошибка Pentium FDIV, 1994 год

Ошибка Pentium FDIV — это любопытный случай незначительной проблемы, которая разрослась из-за массовой истерии.

Томас Нисли, профессор математики, обнаружил недостаток в процессоре Pentium и сообщил об этом в Intel. В ответ на это компания предложила замену чипа всем, кто мог доказать, что он пострадал от этой ошибки.

Первоначальная ошибка была относительно простой: проблема была в таблице поиска алгоритма чипа. Это могло привести к крошечным неточностям в расчетах, но только в очень редких случаях. Фактически, вероятность возникновения ошибки в расчетах составляла всего 1 к 360 миллиардам.

Хотя реальные последствия ошибки в программном обеспечении были незначительными, когда информация об ошибке попала в международную прессу, миллионы людей потребовали замены чипа, что обошлось Intel в сумму до 475 миллионов долларов.

440 млн долларов в неудачных сделках, 2012 г.

Потеря 440 млн долларов — это плохой день в офисе по любым меркам. Тем более, когда это происходит всего за 30 минут из-за ошибки программного обеспечения, которая стирает 75% стоимости одной из крупнейших в мире групп капитала.

Knight Capital Group инвестировала в новое торговое программное обеспечение, которое должно было помочь им сорвать куш на фондовых рынках. Но вместо этого оно погубило их компанию. Несколько ошибок в программном обеспечении привели к тому, что компания Knight начала безумные покупки, потратив более 7 миллиардов долларов на сотни различных акций.

В итоге непреднамеренные сделки обошлись компании в 440 миллионов долларов, и Goldman Sachs пришлось вмешаться, чтобы спасти ее. Компания Knight так и не смогла оправиться, и менее чем через год была приобретена конкурентом.

Arian 5, полет V88, 1996 г.

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

Ракета должна была доставить исследовательские спутники Европейского космического агентства.


Сейчас в Arian 5 серьезно относятся к вопросам качества программного кода и по много раз проверяют перед запуском

Но всего через 36 секунд после первого запуска ракетные двигатели отказали из-за того, что инженеры повторно использовали несовместимый код от Ariane 4 и ошибки преобразования 64-битных данных в 16-битные.

В результате неудачи ЕКА понесло убытки в размере 370 миллионов долларов, а по итогам последующего расследования было выработано множество рекомендаций, включая призывы к улучшению анализа и оценки программного обеспечения.

Открытие терминала 5 в Хитроу, 2008 год

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

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

British Airways также сообщила, что проблемы с беспроводной сетью вызвали дополнительные проблемы в аэропорту. В течение следующих 10 дней было потеряно около 42 000 чемоданов и отменено более 500 рейсов, что обошлось более чем в 16 миллионов фунтов стерлингов.

Ошибка тысячелетия, 2000 год

Ошибка тысячелетия, она же пресловутая Y2K, была широко распространенной проблемой накануне 2000 года.

Была совсем не опасной, но посеяла панику, из-за чего привела к убыткам.

Опасения были связаны с тем, что компьютерные системы по всему миру не смогут работать с датами после 31 декабря 1999 года из-за того, что большинство компьютеров и операционных систем использовали только две цифры для обозначения года, не обращая внимания на префикс 19, обозначающий двадцатый век. Были сделаны мрачные прогнозы о крахе банков, авиакомпаний, поставщиков электроэнергии и критически важных хранилищ данных. Как системы справятся с цифрами 00?

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

В США потратили огромное количество средств на решение этой проблемы. Зараты составили около 100 миллиардов долларов.

См.также:

10 масштабных катастроф из-за ошибок конструкторов

Фатальные очепятки

Теория хаоса или 10 ошибок, которые привели к невероятным последствиям

«Глобус-1»: что стало причиной «Ивановской Хиросимы» в 1971 году

520 трупов, паника и харакири

Цена ошибки. К чему приводят ошибки программистов?

Автор:

21 августа 2017 13:56

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

Цена ошибки. К чему приводят ошибки программистов?

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

Космос

Космос

Спутник Mariner 1 в 1962 году должен был отправиться к Венере. Стартовав с мыса Канаверал, ракета практически сразу сильно отклонилась от курса, что создало серьезную угрозу падения на землю. Для предотвращения возможной катастрофы NASA было принято решение запустить систему самоуничтожения ракеты. Спустя 293 секунды с момента старта, Mariner 1 был ликвидирован.
Ревизионная комиссия провела расследование, в ходе которого было выявлено: причиной аварии послужила программная ошибка, из-за которой поступали неверные управляющие сигналы.

Программист неправильно перевел написанную формулу в компьютерный код, пропустив макрон или надчёркивание (что значит «n-ое сглаживание значения производной радиуса R по времени»).

Программа даже незначительные изменения скорости воспринимала как весьма существенные и проводила корректировку курса (источник).

Цена «пропущенного дефиса» — 18 млн долларов (на тот момент).

Mars Climate Orbiter

Mars Climate Orbiter

В 1999 году агентство NASA потеряло в космосе спутник «Mars Climate Orbiter». Эта катастрофа озадачила инженеров – удивительно, как такое могло произойти. В результате оказалось, что субподрядчик, который работал над многими инженерными задачами, не выполнил простейшего преобразования английских единиц измерения в метрическую систему. Из-за фатальной ошибки аппарат стоимостью 125 миллионов долларов оказался слишком близко к поверхности Марса. Диспетчеры пришли к выводу, что спутник на большой скорости вошел в марсианскую атмосферу, где из-за возникших перегрузок его системы связи вышли из строя. Неуправляемый Mars Climate Orbiter попал на околосолнечную орбиту, миссия была провалена.

Ariane 5

Ariane 5

На новейшей французской беспилотной ракете-носителе «Ariane 5» решили использовать то же программное обеспечение, которое было разработано для более ранней модели – Ariane 4. К сожалению, более мощный двигатель Ariane 5 спровоцировал баг, не встречавшийся в предыдущих версиях ПО. Через тридцать шесть секунд после первого запуска ракеты пришлось активировать систему самоуничтожения, так как возникла целая череда программных ошибок. В сущности, программа попыталась записать 64-разрядное число в 16-разрядное пространство. Возникло переполнение, в результате которого отказал и основной, и резервный компьютер (поскольку на обоих компьютерах выполнялись одни и те же программы). На разработку Ariane 5 было потрачено около 8 миллиардов долларов. Общая стоимость спутников, которые должна была вывести на орбиту эта ракета, составляла 500 миллионов долларов

Соцобеспечение

Соцобеспечение

В 2004 году компания EDS разработала сложную компьютерную систему по выплате пособий для британского агентства помощи детям (CSA). В то же время Министерство труда и пенсионного обеспечения (DWP) приняло решение реорганизовать это агентство. Две программные системы оказались полностью несовместимы, в результате были спровоцированы необратимые ошибки. Система переплатила 1,9 миллионам человек и недоплатила семистам тысячам. В итоге накопилось 7 миллиардов долларов, не попавших на социальные счета, 239 000 нерассмотренных дел, 36 000 новых дел, «застрявших» в системе. Все эти ошибки обошлись британским налогоплательщикам в сумму более 1 миллиарда долларов.

Транспорт

Транспорт

Еще в 2009 году профессор информатики в Техническом университете Мюнхена, эксперт по программному обеспечению в автомобилях Манфред Бра, сказал: «Программное обеспечение автомобиля премиум-класса содержит около 100 миллионов строк кода» (источник https://ru.insider.pro/topnews/2017-05-03/trejdery-igravshie-protiv-tesla-poteryali-37-mlrd-s-nachala-goda/). С того момента прошло уже восемь лет, и совсем не обязательно быть поклонником передачи Top Gear, чтобы заметить: современные автомобили — это настоящие интеллектуальные машины.

По заявлению все того же эксперта, стоимость программного обеспечения и электроники в автомобиле составляет порядка 40% от его цены на рынке. И это касается бензиновых моторов, что же говорить о гибридах и электрокарах, где это значение равно примерно 70%!

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

Садиться за руль современных комфортных и «умных» авто или ездить на олдскульных, но понятных машинах? Решать вам, я же предлагаю небольшую подборку багов в программном обеспечении автомобилей

Toyota

Люди: — Эй, Тойота, мы тут посчитали, у вас из-за корявой электроники и софта 89 человек погибло с 2000 по 2010. Тойота: — Да они сами виноваты, путают педали. Люди: — Хьюстон, у нас проблемы. NASA: — Ща разберемся, нам надо 10 месяцев и 3 миллиона долларов. Люди: — На. Тойота: — 3 миллиона мало, вот вам еще сверху кэшем.
(прошло 10 месяцев)
NASA: — Эй, Тойота, мы у вас пару ошибок в коде нашли, а точнее 7134 нарушения стандартов MISRA, рекурсию, функцию на 740 строк и 9000 глобальных переменных. Тойота: — А у нас свои стандарты. А вы ваще на Луну летали? NASA (публично): — Тойота ни в чем не виновата. (Акции Тойота подскочили на 4,6%) Люди: — Ну ё-моё.
(спустя 3 года)
Два американских тестировщика (у которых дедушки погибли в Перл-Харбор): — Нет багов? А если найдем?Нашли — 81 514 нарушений в коде.
Национальное управление безопасностью движения на трассах США (NHTSA) подсчитало, что с 2000 года по 2010 год в авариях погибло 89 человек и 57 получили увечья, в связи с неисправностями электроники.
Toyota отрицает вину электроники и считает, на основе собственного расследования, что виновата «залипающая» педаль газа и плохо подогнанные коврики, но отзывает 8,5 млн автомобилей по всему миру.

Tesla

Tesla

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

Поговорим, конечно же, о Tesla Model S. 7 мая 2016 Джошуа Браун, прославившийся благодаря своим роликам на YouTube, посвященным восхвалениям электромобиля, попал в автокатастрофу. Он находился за рулем Tesla Model S. Будучи на 100% уверенным в интеллекте машины, он доверился автопилоту. Результат доверия трагичный — от полученных травм Джошуа скончался на месте.

Катастрофа получила широкую огласку. Началось расследование. Удалось установить, что, по всей видимости, Браун самостоятельно не следил за дорогой, а автопилот столкнулся с ситуацией, которая не нашла отражение в его программном коде. Перед Tesla Джошуа двигался грузовик с прицепом. Автомобиль планировал выполнить маневр — левый поворот, соответственно, требовалось сбавить скорость. Но Tesla, едущий позади, не начал тормозить, т.к. системы автопилота не распознали находящийся впереди объект.
Произошло это, скорее всего, из-за яркого солнца. Лучи отражались от прицепа и автопилот воспринял грузовик единым целым с небом. В официальном докладе это объяснялось следующим образом: «Системы автоматического торможения Теслы являются технологией избегания столкновения в редких случаях и не спроектированы для надежного выполнения во всех режимах аварии, включая столкновения в результате пересечения путей» (источник). Полный отчет об аварии находится в свободном доступе.
Иными словами, автопилот призван помогать водителю (более совершенный круиз-контроль, грубо говоря), а не заменять его функции. Конечно, репутацию Tesla такое оправдание не сильно спасло. Работы над совершенствованием программного обеспечения продолжились, но Tesla Model S с дорог отозваны не были.
Представители компании привели следующую дорожную статистику: «На каждые 90 млн. миль пройденного пути умирает один человек. В противоположность, люди проезжали 130 млн. миль на автопилоте Тесла перед тем, как была подтверждена первая смерть. Сейчас эта цифра поднялась до 200 млн.» (источник http://www.slate.com/articles/technology/future_tense/2016/09/how_tesla_s_software_update_fixed_a_deadly_flaw_in_autopilot.html)

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

И это не риторический вопрос. Судя по новостям биржи( https://ru.insider.pro/topnews/2017-05-03/trejdery-igravshie-protiv-tesla-poteryali-37-mlrd-s-nachala-goda/), вопреки нашумевшей аварии, акции Tesla выросли на 50% с начала 2017 года. Способствуют этому два значимых фактора: популярность движений, выступающих за улучшение экологии в мире, и высокий личный рейтинг главы Tesla — Илона Маска.

Бизнес

Бизнес

Компания Knight, один из ключевых игроков американского фондового рынка, едва не обанкротилась в результате одной программной ошибки (источник https://www.bloomberg.com/news/articles/2012-08-02/knight-shows-how-to-lose-440-million-in-30-minutes). Из-за возникшего бага компания всего за полчаса потеряла около 440 миллионов долларов. В течение 2 дней, когда неисправное ПО наводнило рынок незапланированными сделками, котировки акций компании упали на 75 процентов. Предполагается, что содержавший ошибку биржевой алгоритм Knight стал совершать незапланированные сделки примерно на 150 торговых площадках, просто парализовав их.

Ссылки по теме:

Новости партнёров

реклама

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Кассовый аппарат пишет ошибка 478 время автономной работы истекло
  • Катастрофические последствия ошибок программистов