V-kosmose.com

Программное обеспечение или Борг: великая угроза для космического корабля?

Ваш корабль осуществляет неожиданное столкновение – насколько программное обеспечение надежно, чтобы с этим справиться?

Статья подготовлена по материалам специалиста Icarus Interstellar Донны А.Дуло, ведущего математика, ученого в сфере программного обеспечения, системного инженера министерства обороны США. Подробнее об Icarus Interstellar в статье Discovery News.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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