Модула-2 в российском космосе

А.А. Колташев (НПО ПМ им. Решетнева)

Первая попытка по применению МОДУЛЫ-2 для разработки бортового программного обеспечения (БПО) спутников, была сделана в НПО ПМ в конце 80-х — начале 90-х годов в сотрудничестве с ИСИ СО РАН, г. Новосибирск.

Выбор Модулы-2 был сделан без особых затруднений ввиду явного проигрыша остальных языков по показателям простоты и надежности.

В связи с повышением производительности новых модификаций отечественной бортовой цифровой вычислительной машины (БЦВМ), используемой на спутниках связи (усеченная система команд архитектуры IBM-360), было решено начать работы по внедрению в бортовое программирование языков высокого уровня. Анализ языков проводился в диапазоне Ада-Си, однако выбор Модулы-2 был сделан без особых затруднений ввиду явного проигрыша остальных языков по показателям простоты и надежности. Обзор достоинств языка с точки зрения бортового программирования для спутникового применения приведен в конце материала. В рамках работ по созданию интегрированной среды разработки ПО для встроенного применения, проводимой в ИСИ СО РАН под руководством И.В. Поттосина, был создан прототипный образец транслятора Модулы-2 для этой БЦВМ.

Примерно в это же время в ИСИ СО РАН проводились работы по созданию рабочей станции на базе процессора Кронос с Модула-ориентированной системой команд. Работы успешно прошли стадию ОКР, и станцию Кронос стали рассматривать не только как потенциальную инструментальную платформу для средств разработки БПО, но и как прототип процессора для космического применения - было принято решение о создании в подмосковном Зеленограде БЦВМ на базе процессора Кронос. Параллельно начались работы по созданию бортовой операционной системы и средств разработки БПО.

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

Первая внедренная кросс-система программирования (КСП) была создана в НПО ПМ в сотрудничестве с ИСИ СО РАН для отечественной БЦВМ с системой команд VAX 11/750 в рамках проекта Глонасс-М – космической составляющей глобальной навигационной системы. Со стороны ИСИ СО РАН этими работами руководил И.В. Поттосин.

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

На языке Модула-2 было написано все бортовое программное обеспечение, включая операционную систему реального времени, среду программного управления, ПО подсистем спутника и т.п. БПО одного изделия состоит из более чем 500 модулей общим объемом свыше 90 000 строк. В разработке БПО непосредственно участвуют несколько десятков программистов.

В настоящее время (начало 2006) запущено уже четыре спутника этого типа (первый в конце 2003 года), и они будут создаваться до полного обеспечения навигационной системы Глонасс и последующего ее поддержания. Эта программа объявлена Президентом России национальным приоритетом.

Вторая кросс-система была создана в рамках проекта Экспресс-АМ. Изюминкой этого проекта стало создание кросс-системы, сохранившей все пользовательские интерфейсы первой КСП, в том числе в части системы тестирования и отладки, но получавшей исполнимый код, через конвертацию Модула-программ в Си с последующим получением исполнимого кода с помощью КСП на языке ANSI Cи, поставленной разработчиком БЦВМ.

В проекте использовалась БЦВМ производства немецкой фирмы Астриум с системой команд MIL-1750A-STD и операционная система разработчика БЦВМ – MOSES-2.

Достоинства языка – строгая типизация и абстрактные типы данных, позволили создать над ОС MOSES интерфейсный слой, предоставляющий прикладной программный интерфейс, аналогичный МУС-32, и перенести на 16-разрядую машину с обратной эндианностью 80% БПО разработанного для 32-разрядной машины.

Такой подход обеспечил создание БПО для пяти новых телекоммуникационных спутников проекта Экспресс-АМ менее чем за год. Все спутники были успешно запущены в период с 2003 по 2005 год и успешно эксплуатируются.

Работа по созданию этой КСП была выполнена фирмой "Эксельсиор", созданной сотрудниками ИСИ СО РАН, под руководством Андрея Хапугина.

В настоящее время создана и развивается КСП M2-MIPS для новейшего поколения отечественных спутников.

Подробнее о технологии разработки БПО см. здесь.


Достоинства языка Модула-2 для бортового программирования

1. Простота и наглядность языка

Позволяет создавать легко обозримые и понимаемые, а следовательно надежные, эффективные и просто сопровождаемые программы.

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

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

2. Раздельная компиляция

Обеспечивает децентрализацию и распараллеливание разработки

Возможность конструирования БПО и заимствования компонент

3. Абстрактные типы данных

Проблемная ориентированность объектов, повышающая наглядность программ.

Высокая степень переносимости

4. Строгая типизация

Гарантия переносимости

Высокий уровень качества компонент уже на этапе трансляции

5. Структурированность потока управления

Хорошо ложится метод нисходящей декомпозиции с пошаговым уточнением потока управления

При проектировании – легкость понимания

При отработке – упрощение поиска ошибок и возможность автоматической оценки уровня тестируемости

При эксплуатации - надежность, предсказуемость и ремонтируемость.


Оригинал:  Перейти...  http://www.inr.ac.ru/~info21/texts/aakmodula2.htm