Незначні помилки в програмному забезпеченні і їх серйозні наслідки

Результатом помилок в програмному забезпеченні може бути наприклад синій екран монітора. Але це ще хороша версія розв'язки подій. Тому що вони також призводять до значно більш тяжких наслідків, що починається з втратами людських життів і мільярдами доларів. Втім, приклади не потрібно шукати занадто довго, адже вони знаходяться на поверхні. Відповідальний за тести безпеки в LogicalTrust Матвій Кочіелскій стверджує, що "помилки є всюди, тому що програмне забезпечення використовують скрізь "і перерахував кілька прикладів, в яких до катастрофічних наслідків призвели, здавалося б незначні упущення розробників, через бажання заощадити час або просто через відсутність фантазії.

Therac-25

між 1985 і 1987 роком-6 людей постраждали отримавши опіки в результаті опромінення апаратом Therac-25. Три з них загинули в результаті нещасного випадку. В ході першого інциденту, в результаті якого пацієнтка втратила груди і постраждала частина руки, виявилося, що автомат застосував близько в 100 разів більшу дозу радіації, ніж випливало з завдання. Виробник, корпорація AECL тоді офіційно заявив, що це неможливо, тому не було вжито жодних заходів. У тому ж році - в 1985 році, - інша машина стала несправної, з'явилося повідомлення про помилку призвело до опромінення. Оператор був не звикнувши до звичок пристрої, але проводив виконання процедури. Машина п'ять разів спробувала експозиції, після чого зовсім відмовилася підкорятися. 3 місяці по тому пацієнт, який брав участь в операції, помер в зв'язку з ускладненнями від опромінення.

nenacitelinie-oshibki-prinescie-serioznie-posledstviya-2

AECL дуже довго не визнавала провини, стверджуючи що не існує такої можливості, щоб Therac-25 виробляв неправильні дози радіації в результаті яких відбувалися б опромінення пацієнтів, і це не дивлячись на негативні повідомлення. Незважаючи на це, опіки при його використанні отримали ще кілька людей, поки справа не передали до суду. В ході судового розгляду, представник AECL зізнався, що окремо взяті "невелике число" тестових пристроїв випадково потрапили на ринок. Як виявилося, пристрій вартістю понад 1 млн. $ було оснащено помилково написаним програмним забезпеченням, створене однією особою. Нещасні випадки були результатом двох дрібних недоглядів розробника. В цілому, вистачило однієї, як виявилося, дуже важливою рядки коду. Всього кілька десятків символів. Але з іншого боку, помилка з великою ймовірністю була б виправлена ​​перед впровадженням продукту на ринок, якби правильно проводилися тестові процедури.

патріот

Під час Війни в Перській Затоці в 1991 році іракська ракета Скад потрапила в американські казарми в Дахране, ubiv 28 людей і поранивши понад 100. Сталася трагедія незважаючи на те, що безпека бази берегли до 6 батарей системи ПРО Патріот. Пояснюючи даний випадок слід підкреслити, що “патріот” був створений в 70-і роки для знищення радянських ракет рухаються з великою швидкістю. Крім того, по ідеї, система повинна була бути мобільний. Час безперервної роботи очікувалася на протязі не більше ніж 8 годин. Після закінчення цього терміну вона повинна була бути відключена, перевозиться і наводиться знову в дію на новому місці.

Як виявилося, в зв'язку з тривалим процесом активації системи (60-90 секунд), американські військові в Іраку використовували без перерви їх навіть протягом 100 годин. Це не було б проблемою, якби не той факт, що система використовувалася в процесі відстеження ворожих ракет по вимірюванню часу роботи в секундах. На жаль, з певних причин, точність обчислень з плаваючою точкою, виконуваної з цією метою, була далека від ідеалу. В результаті, 1 секунда розраховується через ПЗ не дорівнювала фактичної секунді. після 100 годин роботи, система сприймала 0,34 секунди за одну повноцінну.

nenacitelinie-oshibki-prinescie-serioznie-posledstviya-3

Даною помилки виявилося досить щоб дозволити пролетіти летить іракської ракеті Скад, незважаючи на те, що її вловила система виявлення, а потім і супутник в першій фазі прицілювання. Користуючись неточним таймером, система помилково вирахувала вікно, в якому повинна була з'явитися ворожа ракета на другому етапі виявлення. Не знайшовши в ньому очікуваного об'єкта, Патріот не прийняла ніяких заходів, вважаючи що це помилкова тривога. В результаті допустивши згадану трагедію. Офіційна причина інциденту – неправильна експлуатація системи Patriot. Батареї не були передбачені для роботи з 100 годин без перерви. Вина лежить також на стороні розробників, які про вироблене зміщення часу дізналися тільки незадовго до подій в Дахране.

Ariane-5

10 років і 7 мільярдів доларів. Стільки ж тривав і коштував проект будівництва ракети Ariane-5, яка через помилки в програмному забезпеченні розпалася на очах здивованих глядачів, після кількох десятків секунд від старту. Європейське Космічне Агентство вирішило побудувати ракету- більше, швидше і краще, ніж її попередниця. Саме ця спадщина вплинуло на катастрофу.

виявилося, що частина програмного забезпечення нової ракети було скопійовано зі старою. Під час польоту одна з функцій, отриманих з Ariane-4 в новій ракеті була абсолютно зайвою, і привела до помилки. В ході слідства з'ясувалося, що не було скоєно ретельної перевірки програмного забезпечення для Аріан-4. Не було тестів і не проводилось моделювання програмного забезпечення.

nenacitelinie-oshibki-prinescie-serioznie-posledstviya-4

Це тільки три приклади, але вони дуже чітко підкреслюють- що навіть самі незначні помилки та упущення в процесі створення програмного забезпечення можуть призвести до трагедії. Звичайно, це неминуче - ніхто з людей не є непогрішним. Варто тільки мати на увазі, що жертвами низької якості коду- можуть стати також люди. Це знання може мотивувати розробників до ще кращої роботи.

 

Оцінити статтю
Новини IT
Додати коментар