ОБЗОРЫ

По материалам журнала CrossTalk

В 1986 г. МО США приняло решение о необходимости замены истребителей F-15C и F-16, которые по всем своим характеристикам существенно уступали разрабатывавшемуся тогда в СССР МиГу-МФИ, и приступило к созданию самолета Advanced Tactical Fighter (позже он получил название F-22 Raptor). Программирование бортовой авионики началось в августе 1991 г., а первый полет с ней F-22 совершил в сентябре 1997-го.

Создание соответствующего ПО первоначально оценивалось как проект с высоким уровнем риска. К его написанию в общей сложности привлекалось около 20 компаний, расположенных в разных штатах. По предварительным оценкам, объем проекта достигал миллионов строк кода - для встраиваемых систем реального времени это очень много. Нужно было не только спрогнозировать развитие ИТ на долгий срок (на десятилетия), предусмотрев их непрерывное изменение, но и организовать тесное и постоянное взаимодействие всех подразделений фирм-исполнителей. Поэтому четыре главных софт-подрядчика - Northrop Grumman, Lockheed Martin, Boeing и General Dynamics (всего в проекте по созданию F-22 участвуют 4500 компаний) самой важной и приоритетной задачей считали сведение к минимуму вероятных рисков. В этом им помогала независимая команда сотрудников института программной инженерии SEI при университете Карнеги - Меллона (где была создана методология CMM). Эта команда оценивала качество бортового ПО и процессы его создания.

Базовой платформой была выбрана VAX/VMS фирмы DEC - единственное на 1991 г. решение, которое отвечало всем требованиям безопасности при групповой распределенной разработке ПО. При этом применялись только коммерческие средства проектирования, разработки и сопровождения (за исключением программы определения интерфейсов Interface Definition Tool). В качестве методологии проектирования ПО использовалась система Design Approach for Real-Time Systems консорциума Software Productivity, ориентированная на язык Ada. Требования к бортовым системам представлялись в виде дерева низкоуровневых спецификаций отдельных компонентов и отслеживались системой контроля требований и тестирования RTM. Документооборот поддерживался продуктом Interleaf, конфигурационное управление - системой PCMS.

В то же время разработчики правильно спрогнозировали угасающие перспективы платформы VAX/VMS, а классический путь, часто применяемый при создании бортового ПО (“выбрать целевой процессор, компилятор и утилиты и ничего в таком комплекте не менять до завершения проекта”), был отвергнут как бесперспективный: на рынке ожидалось появление существенно улучшенных коммерческих средств программирования и проектирования (фирма Rational это доказала), с помощью которых производительность и качество труда можно было увеличить в несколько раз. Поэтому весь процесс разработки базировался на оболочке Cohesion для Alpha-станций VMS/Unix, впоследствии успешно перенесенной с VAX на другую аппаратную платформу.

Первый работоспособный базовый блок 1.1 бортовой авионики F-22 насчитывал 900 тыс. строк кода. Блок 2 обеспечил управление ракетными установками и системами ведения электронной войны. К концу 2000 г. планируется завершение тестирования блока 3.0, поддерживающего работу радарной установки и полный цикл функционирования систем ведения огня - от обнаружения цели до ее уничтожения. К июню 2001-го должен появиться блок 3.1, включающий систему управления вспомогательными видами оружия.

Примерный объем кода для самой бортовой системы составил 2,2 млн. строк (при первоначальной оценке 1,5 млн.). Одна компания написала 500 тыс. строк, остальные - меньшие части. Для интеграции всех подсистем и 108 программно конфигурируемых блоков бортового ПО потребовалось написать еще 700 тыс. строк кода.

Порядка 80-85% программ создавались на языке Ada 83. Подобная пропорция будет соблюдаться и дальше, смена языка программирования не планируется, хотя вполне возможен переход на более современный стандарт Ada 95. Язык Ada не допускает диалектов, но поскольку Ada 83 - это подмножество Ada 95, проблем с переходом на более современный вариант не должно возникнуть.

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

Технологические выводы

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

Что желательно предпринимать при организации работ над такими долгосрочными проектами?

- Попробовать определить наиболее уязвимые места в проекте (это прежде всего сохранение квалифицированного персонала и моральное старение используемых ИТ).

- Правильно выбрать ОС, в идеальном варианте - платформно-независимую (сегодня это Linux) и способную эффективно функционировать на высокопроизводительном оборудовании.

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

- Активно использовать коммерческие средства создания ПО и ведения проекта, ориентируясь при этом не на конкретные версии компиляторов, а на стандарты ANSI. Из языков для российских проектов самым оптимальным представляется Си (программирование на Си++, а тем более на Ada требует более высокой квалификации).

- Применять всевозможные средства распределенного моделирования и тестирования (это особо отметил институт SEI).

- Предусмотреть рост функциональных возможностей системы в несколько раз (до 10).

- Быть готовым к серьезным повторным инвестициям в подготовку и стимулирование персонала и обновление ПО и оборудования (вполне возможно, всю инфраструктуру разработки несколько раз придется переносить на разные платформы).

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

В заключение - о маркетинге

В крупных зарубежных компаниях - компьютерных, промышленных, военных - всегда прекрасно организована работа маркетинговых отделов (собственно, потому эти компании и крупные). В их продукции - будь то СУБД или истребитель - обязательно имеются технологические секреты, раскрыть которые означает проиграть борьбу с конкурентами (на рыночном или военном уровне - в данном случае это неважно). Но если не рассказывать о них, то можно быстро растерять всех клиентов. Поэтому западные маркетологи очень хорошо умеют готовить дозированную открытую информацию о своих находках. Приведенный выше дайджест статей по F-22 - тому пример. За их технологической полезностью скрывается прежде всего маркетинговый расчет.

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

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

F-22

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

Максимальная скорость: 1,8 М.

Крейсерская скорость: 1,5 М.

Предельная высота полета: 20 тыс. км.

Радиус боевых действий: 1500 км.