Сподели

Boeing обяви че ще актуализира системата за безопасност на самолетите 737 MAX, след като в срок от няколко месеца се случиха две катастрофи, при общо-взето идентичен сценарий. По-конкретно предвижда се в пилотската кабина да се включва аларма, ако данните от сензорите, които показват ъгъла на носа на самолета не си съответстват. Разследването на катастрофите – първата в края на октомври миналата година, при която самолет от същата серия на индонезийската Lion Air се разби 13 минути след излитане и отне живота на 189 човека и втората, от 10 март с машина на Ethiopian Airlines, паднал 6 минути след излитане и оставил 157 жертви – още не е завършило. Известното дотук обаче навежда на извода, че може да се касае за грешка в софтуера.

Именно технологичен беше и коренът на проблемите със спешни телефон 112 у нас преди 3-4 години. В резултат – линейките масово закъсняваха, а разгневените близки на болния или пострадалия, налагаха лекарския екип. Всъщност, телефон 112 се поддържа от МВР, а колапсът се дължеше на неподновен софтуерен лиценз и износен хардуер…

Кодът на промените

Софтуерът е на път да „изяде“ света. Обикновено се говори за ползите, измервани с по-ниски разходи (макар че не винаги автоматизацията поевтинява административния процес или производствения) и съкращаване на времето за производство. Но все по-широкото навлизане не технологиите в нашето ежедневие създава и редица рискове. Често критични системи, по-рано управлявани механично или от хора, стават подвластни на програми.

Благодарение на това днес трудно може да забележим промените – технологичният прогрес направи така, че те повече или по-малко да останат скрити, защото често стават с код. Например, слагате крак върху педала на съединителя на колата си, убедени че контролирате автомобила си. Но вместо това давате команда към софтуер, който определя колко въздух да подаде към двигателя… Колата е компютър, в който седите. Воланът и педалите могат да бъдат и клавишите на клавиатурата.

Toyota и неволното увеличаване на скоростта

Случаят със катастрофите на Boeing 737, чието разрешаване предстои, прилича много на друга трагедия, известна като „неволното увеличение на скоростта при Toyota”. В края на октомври 2013 г. японската автомобилна компания Toyota е осъдена в САЩ да заплати обезщетение от 3 млн. щатски долара на Джийн Боко, пострадала, и на семейството на Барбара Шварц, загинала в инцидент с Toyota Carmy. Катастрофата се случва през 2007-а – управлявания от Боко автомобил се блъска в стена. Спирачният път преди удара е 45.7 м (150 фута). Пътничката загива, а шофьорката прекарва месеци в кома, преди да дойде в съзнание.

Toyota обяснява инцидента с набрана постелка на шофьорското място или настъпена дъвка, която залепила обувката на водача върху педала на газта, както и с каране с несъобразена скорост.

Разследването продължава близо 2 години и половина (28 месеца), но накрая софтуерния инженер Майкъл Бар, който е и вещо лице по делото обявява, че той и екипът му имат отговор какво е причинило катастрофата. Става дума за „спагети код“. На професионален жаргон това означава „объркан код“. До ситуацията се стигнало след дългогодишни доработки и добавяне на нови функционалности към програмата на бордния компютър на колите. Новите елементи се трупали върху старите. В крайна сметка става невъзможно кодът да се следва, както и да се тества за недостатъци.

Използвайки компютър, идентичен на този на автомобила от инцидента, Бар доказва, че са налице поне 10 млн. начина ключовите функции на машината да се объркат и в резултат да се получи неволно увеличаване на скоростта. За да стане колата неуправляема, е достатъчна загубата на 1 бит информация – да речем, една нула в кода да се промени в единица или обратното.

Кой носи отговорност за грешките в софтуера?

Случаят с Toyota и разследването на катастрофите с Boeing, поставят един много важен въпрос – за отговорността. Кой носи отговорност, ако софтуерът, който представлява мозъкът на много критични системи, доведе до инциденти? Компанията производител, или инженерите и кодерите, написали програмите? Логично е компанията да отнесе най-сериозната част от негативите, защото въпросната автоматизация е в нейната власт. Но от друга страна, много други професии като пилоти, лекари, сградни инженери и архитекти носят наказателна отговорност, ако действията им доведат до смърт. Засега софтуерните специалисти, които често дори нямат университетско образование, обират само позитивите – те са търсени от работодателите и високоплатени, но не носят никаква отговорност. Това обаче може да се промени.

Тестове за безопасност

Електрическите уреди и електромеханичните системи се тестват за безопасност. Няколко листа хартия могат да опишат една критична електро-механична система. Днес инструкциите за работа със счетоводна програма заемат десетки, дори стотици страници. Производителите на уредите и системите от старото поколение, можеха да кажат точно как ще се държат те при определени условия.

Софтуерът е „друга бира“. Промени в текстовия файл, който се намира на някакъв сървър и управлява устройството, могат да превърнат едно и също парче силиций в автопилот или система за контрол на оборудването. Но тази „гъвкавост“ на софтуера е неговото чудо и проклятие. И тъй като е сравнително евтино, софтуерът се променя (ъпдейтва или актуализира) непрекъснато, а това означава, че „расте“. (Именни подобна стъпка възнамерява да направи Boeing със системата за безопасност на самолетите 737). Непрекъснато нарастващият софтуер остава откъснат от физическия свят и макар че го управлява, е невидим. По тази причина една изключително сложна програма, може да заема същото място като друга, далеч по-елементарна. Особено притеснителни са и амбициите на големите ИТ компании да изградят системи, които да превъзхождат човека, толкова съвършени, че да се намират извън възможностите за интелектуално управление. Подобно високомерие и алчност обаче са опасни.

Загубени в смисъла

Идеята на старите машини беше, че за да бъде надеждно цялото, трябва да са надеждни и частите. Например, една самолетостроителна компания конструира двигателите си така, че да издържат 40 000 цикъла на излитане и кацане. Когато машината е изминала този път, двигателят подлежи на смяна, основен ремонт или дори разглобяване и рециклиране. Грешката в софтуера обаче е като дефектна нишка, която води до катастрофа. Всъщност не софтуерът „греши“, а неговият създател, програмистът (или екипът), който го е написал. Защото програмите са алгоритми и правят точно това, което им е „казано“ да правят. От изявлението на Boeing, всъщност индиректно става ясно, че при липсата на съответствие на данните, идващи от сензорите на носа, катастрофите може да са резултат от логиката на приложението, която не е била проектирана да извършва автоматични коригиращи действия. Фатална грешка, струвала 346 живота! Това е проблемът когато нещо се управлява от код – сложността остава невидима за окото.

Съществува и друго предизвикателство – програмистите се справят трудно със своите творения. Макар, че създават иновации, през последните близо 40 години (от 80-те години на миналия век) много малко неща са се променили в начина, по който работят или в инструментите, които използват. (За справка – за този период горе-долу на всеки 6 месеца компютрите са удвоявали изчислителната си мощ.)

Всъщност, програмистите много често не разбират проблема, който се опиват да решат, например лечението на рака. И даже не се стремят. Основната им задача е да мислят като компютъра. И тъй като кодът е абстрактен – текст, който ИТ специалистите непрекъснато прекарват през главата си, опитвайки се да проследят всяко междинно изчисление на машината, те не мислят за „цялата игра“, а само за отделните парчета на пъзела.

Светът, обаче, в който все повече навлизат технологиите, е комплексен и хуманен. В него иновацията си взаимодейства с човека и трябва да е в негова помощ, а не вреда. Разбира се, това зависи от нас – дали ще позволим технологиите и компаниите, които стоят зад тях да командват живота ни или – обратното – ще използваме силата им в своя полза. Пускането на Google AdSense (2003) донесе спама и процедурно генерираните сайтове (с прекопирано съдържание и измамни линк схеми), които разрушиха бизнес модела на традиционните медии.

Днес на хоризонта се задават по-сериозни проекти като автономните (летящи) таксита и транспортни средства, военни роботи, машини работници и офис служители. На фона на трагичните инциденти със самолетите на Boeing, най-вероятно всички тези бизнес идеи, трябва сериозно да бъдат преосмислени. Не казваме да се спре развитието на технологиите, но навлизането им в критични сфери и системи трябва да бъде гарантирано от изпитания за безопасност и ясно разписани правила кой носи наказателна отговорност.

Коментари