Софтуер или Борг: Голяма заплаха за космически кораб?

Софтуер или Борг: Голяма заплаха за космически кораб?

Вашият кораб извършва неочакван сблъсък - колко надежден е софтуерът да се справи с него?

Статията е подготвена на материалите на специалиста Icarus Interstellar Donna A. Dulo, водещ математик, социолог, системен инженер от Министерството на отбраната на САЩ. Прочетете повече за Icarus Interstellar в статията Discovery News.

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

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

Веднага щом започнете отново да изчислявате маршрута си, откривате друг сигнал. Модулът на системата за поддръжка на живота на кораба се провали поради софтуерна грешка, възникнала по време на маневра за избягване на сблъсък. Софтуерът повреди системите за поддържане на живота на екипа и разбирате, че корабът вече не може да изтегли въздух за дишане в следващите 24 часа. Резервната система е безпомощна, а хардуерният компонент на резервното копие използва същите софтуерни процедури. Спасителните приспособления позволяват за 48 часа да поемат въздух за дишане, а мобилните устройства на борда са снабдени с въздушни комплекти, предназначени за 8 часа дишане.

Изпращате най-добрите си компютърни учени и софтуерни инженери в машинното отделение, за да диагностицирате проблем. Те ви уведомяват, че поне ще са необходими четири дни за решаване на проблема, за да се изолират и отстранят грешките в няколко стотин милиона реда кодове, които контролират системите за поддържане на живота на кораба.

Вашето положение е особено трудно сега. Вие изисквате доклад от некритични системи и спешно изпращате екип от програмисти. Сега ще чакате, знаейки, че животът на всички присъстващи членове на екипажа вече е в ръцете на екипа за разработване на софтуер.

Описаният по-горе сценарий демонстрира жизненоважния характер на софтуера при пътуване с дълъг кораб. Възниква естествен въпрос: какво е голям враг: флотилия от космически злодеи или слабост в софтуерната система на корабните системи?

За тези, които са запознати с много сложния характер на софтуерната система, отговорът е очевиден; това е софтуерът, който представлява най-голяма опасност.

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

Както в ситуацията с Борг, където сте обмислили всичко предварително, направили планове за извънредни ситуации и планирани пътища за евакуация, тогава е възможно планирането на сигурността на дългосрочния софтуер на космически кораб. Това планиране обаче трябва да се осъществи по време на развитието на кораба, както и по време на междузвездните му операции. Ключът към новата инженерна парадигма се нарича "устойчивост" и това може лесно да се приложи към разработването и разработването на софтуер.

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

Софтуерът, както и членовете на екипажа, които го използват, трябва да бъдат стабилни, за да се справят с всички критични ситуации в поддържането на сигурността. Концепцията за устойчивост като дисциплина в инженеринга се появява в средата на 2000-те години като начин за намаляване на неуспехите в сложните системи в светлината на разумните инженерни усилия. Устойчивостта на инженеринга, като софтуерна концепция, се обхваща от начина, по който хората се справят със сложността на софтуерната система, за да успеят за кратко време дори в най-трудните ситуации. Инженерната устойчивост се фокусира върху способността на системата да се адаптира към постоянно променящата се ситуация и условия, така че да се поддържа положително състояние на контрол над системата, за да се избегне неуспех. В комбинация със способността на системата да се адаптира, възможностите на човешкия фактор в системата са необходими за по-голяма адаптивност към променящите се условия. Комбинацията от системи човек-машина носи нов подход към сигурността, предоставяйки на хората елементи за придобиване на знания и предвиждане на процесите в системата, позволявайки им да се превърнат в активна част от работата по сигурността на самата система.

Има два аспекта на софтуерното инженерство за устойчивост: софтуерна устойчивост чрез стабилен процес на ориентирано развитие на сигурността и текущата работа на софтуера в реално време с положителен човешки отговор в цикличните операции. Цялостната програма работи в съответствие с концепцията, че сигурността е основна ценност, заедно с постоянното очакване на потенциален софтуерен неуспех.

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

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

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

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

Тогава човекът, като елемент на устойчива система, влиза в играта. След повреда в системата за поддръжка на екипажа, екипажът е на работа, като незабавно превключва системата към резервни компоненти, в които протича различен набор от софтуерни процедури, включително напълно различен набор от математическа логика.

Всички членове на екипажа са обучени в нюансите на хардуера и софтуера на кораба, както и отговорностите за разбиране на всички видове изчислителни грешки и как да се справят с тях. Значително време по-късно софтуерната система на инженерния екип продължава да работи за отстраняване на неизправностите в логическата верига на основния набор от софтуерни процедури, тъй като резервната система функционира безупречно.

Софтуер или Борг: Голяма заплаха за космически кораб?

Задачата за поправка е по-проста, тъй като софтуерът е по-модулен, лесно се разделя йерархично и внимателно документиран в дизайна, архитектурата, а също и в математически доказаните си структури. Екипът е допълнен от набор от софтуерни инженери от второ ниво, които имат необходимото развитие и изпълняват второстепенните функции на екипажа и висококвалифицирания първичен екип.

Сценарият е добре репетиран предварително, по време на тренировката, а играчът на всеки отбор е запознат с неговата функция: кодер, верификатор, математик, тестер и изпълнител. В систематично организираната дейност по инженерно управление, се разработва и кодира нов набор от логики за основната система. В рамките на два дни той се проверява и в крайна сметка отива на работа. След осъществяването на експеримента с пълното участие на екипажа, корабът се върна към първоначалния ред на битката.

Чрез прилагане на постоянство в разработката на софтуер и работа в реално време на космическия кораб, екипажът може да увеличи оцеляването на кораба, дори в момент, когато възникнат сериозни софтуерни проблеми. Благодарение на разработването и прилагането на авангардни теории и методологии за разработване на софтуер за устойчивост, корабът ще разполага с инструменти и обучен екипаж за безопасно извършване на задълбочени софтуерни операции.

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

По този начин устойчивостта ще направи корабът дълготраен, предназначен да премине през галактика с безкрайни възможности за настоящите и бъдещите поколения. Дори когато няма шанс пред Борг. Мисията на Icarus Interstellar е да насърчава развитието на космическите изследвания, както за пилотирани, така и за безпилотни превозни средства. Софтуерът ще поеме огромна част от тези бъдещи системи и стабилността на изследването ще помогне да се постигнат крайните цели, преди всичко да стигнат до звездите и след това да се движат между тях, както в междузвездна цивилизация.

Коментари (0)
Свързани статии
Популярни статии
Търсене