УДК 62.506
А. Н. Антамошкин, А. А. Колташев
ТЕХНОЛОГИЧЕСКИЕ АСПЕКТЫ СОЗДАНИЯ БОРТОВОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СПУТНИКОВ СВЯЗИ
Рассматриваются концепция и методы, приводящие к существенному повышению эффективности и качества разработки и сопровождения бортового программного обеспечения спутников связи.
Развитие современных систем космической связи требует создания спутниковых группировок долговременного функционирования. В свою очередь долговременность функционирования спутников на требуемом уровне качества, оперативность их создания, восстановления и восполнения во многом обеспечиваются качеством бортового программного обеспечения (БПО), технологией его создания и сопровождения, возможностями инструментальных средств разработки и сопровождения.
В настоящее время в Научно-производственном объединении прикладной механики (НПО ПМ) имени академика М. Ф. Решетнева создана и применяется на четвертой вычислительной платформе технология разработки и сопровождения мобильного программного обеспечения для встроенных систем управления реального времени высоконадежного применения, гарантирующая уровень качества как разработки БПО, так и его долговременного сопровождения.
Т ехнология базируется на специальном архитектурном расслоении БПО и использовании типовых сред программного функционирования и управления; на использовании при разработке и сопровождении БПО интегрированной мобильной среды разработки БПО, базирующейся на свойствах высоконадежного языка программирования Модула-2; на специальных методах гарантирования качества, рассмотрению которых и посвящена данная статья.
Согласно концепции, применяемой в НПО ПМ при разработке БПО, его качество основано на трех принципах:
- качестве компонентов БПО;
- качестве управления конфигурацией БПО;
- качестве верификации и подтверждения БПО.
Рассмотрим все эти аспекты гарантирования качества,
более подробно остановившись на основополагающем принципе - гарантировании качества компонентов.
Качество компонентов. Качество компонентов обеспечивается внедрением в технологию их разработки следующих достижений.
1. Определение канонического архитектурного разделения и расслоения БПО спутника, позволяющее выделить типовой набор компонентов, слоев и подсистем БПО, функционально привязав их к подсистемам изделия и структурно объединив набором стандартных интерфейсов и слоев, например таких, как бортовая среда программного функционирования и среда программного управления [1]. Слои и стандартные интерфейсы обеспечивают переносимость БПО на новые вычислительные платформы и другие изделия, а также возможность простой модификации БПО при эксплуатации. Привязка к подсистемам спутника позволяет четко определить требования к ПО, ответственность за архитектурное проек-
тирование, системное тестирование и подтверждение БПО.
2. Определение стандартного сценария детального проектирования и разработки компонента в рамках стандартного документа описания программы, параллельно с проектированием набора тестов и кодированием программы.
Сценарий предусматривает четыре стадии по уточнению требований к компоненту в процессе его разработки: анализ архитектурного проекта завершен, проектирование завершено, программирование завершено, разработка и автономное тестирование завершены, -обеспечивающих согласование позиций проектанта ПО подсистемы и разработчика компонента.
При детальном проектировании компонента используется метод нисходящей декомпозиции потока управления в чертежах, неформальных обозначениях с использованием графического представления (Р-схем и т. п.).
3. Для программирования используется сильно структурированный язык со строгой типизацией данных Модула-2. Использование этого языка позволяет не только перенести выявление большинства ошибок программиста на стадию трансляции, но и, благодаря использованию созданных стандартных библиотек типов, обеспечить переносимость компонентов на различные вычислительные платформы, снизить требования к квалификации программистов и увеличить ясность, понимаемость и потенциальную модифицируемость программ для обеспечения их долговременного сопровождения [2; 3].
Для реализации программ создана эффективная кросс-система программирования для базовой вычислительной платформы, допускающая ее адаптацию для новых вычислительных платформ с сохранением всех пользовательских и программных интерфейсов.
4. Использование методов и средств измерения статических и динамических характеристик программ, позволяющих автоматически не только оценивать достигнутые эксплуатационные характеристики программы (объем памяти, время выполнения, размер стека и т. п.), но и делать оценку добротности программы (оценку уровня сложности, уровня комментируемости, выполнения системных соглашений и т. п.).
5. Применение методов документирования процессов тестирования и их повторения, для чего разработан язык пакетной отладки и средства его интерпретации, обеспечивающие как автоматическое определение и документирование достигнутого уровня критериев тестирования С1 и С, так и существенную автоматизацию процессов регрессивного тестирования компонентов.
6. Использование проблемно-ориентированных командных языков и систем для программирования команд уп-
равления конкретным изделием и логики функционирования изделия в целом. Проблемно-ориентированный интерфейс этих систем позволяет создавать и тестировать прикладное программное обеспечение непосредственно проектантами систем без участия программистов, т. е. без шума (неодинакового понимания), возникающего в процессе создания ПО в интерфейсе «проектант системы -программист ПО системы». Влияние этого шума особенно существенно для класса встроенных компьютерных систем, к которому относятся бортовые комплексы управления спутников связи, и при обычном подходе устраняется методами, отмеченными в п. 2, и верификацией.
7. Главная гарантия качества БПО - возможность пе-реиспользования ранее созданного и уже отработанного на должном уровне программного обеспечения, как бортового, так и инструментального. А гарантия качества длительного сопровождения - это постоянство пользовательских и программных интерфейсов БПО и инструментальных средств и надежное управление конфигурацией программного обеспечения и архивов сопровождения. Поэтому важнейшим свойством сохранения и повышения качества компонентов является их переносимость (мобильность).
Возможности, рассмотренные в пп. 1...6, использование единых средств разработки и постоянных проектных соглашений, а также применение метода создания компонентов БПО как унифицированных объектов позволяют переносить до 80 % БПО систем как на новые вычислительные платформы, так и на новые изделия, сохраняя при этом все программные интерфейсы.
Управление конфигурацией. Для управления конфигурацией БПО разработаны методы и средства идентификации и управления объектами, работами и проблемами ПО, процедуры и средства, автоматизирующие процессы управления конфигурацией, а также формы и процедуры электронного документооборота.
Управление обеспечивается тремя электронными подконтрольными архивами: архивом сопровождения работ и проблем, архивом проектов унифицированных программ и архивами БПО изделий.
Каждый объект разработки возникает как компонент, специфицированный архитектурным проектом в рамках конкретного изделия. После утверждения первой редакции архитектурного проекта информация о всех компонентах вместе с графиком их разработки заносится в архив сопровождения работ и проблем этого изделия.
Разработка компонента заканчивается передачей всей документации сопровождения, оформленной как проект программы, в архив проектов унифицированных программ, а сам компонент, настроенный на конкретное применение, передается в архив БПО изделия. В рамках этого архива осуществляется интеграция БПО и его изготовление.
Компонент разрабатывается в рамках изделия как объект, унифицированный по соглашениям, интерфейсам и языку программирования и библиотекам типов данных. Благодаря этому свойству он пригоден к заимствованию на другие изделия.
После попадания в архив ошибки в компоненте исправляются на основании отчетов о проблеме в программном обеспечении, а изменения в связи с уточне-
нием требований осуществляются по запросам-отчетам, уточняющим требования архитектурного проекта и определяющим полный цикл работ, которые требуют повторения. Вся информация об отчетах, проблемах и запросах хранится в архиве сопровождения работ и проблем.
Данные методы и средства позволяют не только отражать историю изменения объектов БПО, но и автоматизированно управлять конфигурацией БПО: документировать возникшие проблемы, инициировать работы по их устранению, контролировать завершенность проблем, целостность сборок БПО, санкционированность и завершенность всех его изменений.
Верификация и подтверждение БПО. Выделено девять стандартных этапов верификации и подтверждения БПО, в рамках которых применены новые методы и средства: верификация требований, верификация архитектурного проекта, верификация средств разработки и тестирования БПО, верификация детального проекта, верификация кода, автономное тестирование, тестирование интеграции БПО, системное тестирование БПО, квалификационное тестирование ПО систем и БПО в целом в составе подсистем на инженерных моделях и летном изделии. Часть из этих методов была рассмотрена выше.
Главными достижениями по обеспечению верификации и подтверждения ПО подсистем и БПО в целом являются следующие:
- использование в составе средств тестирования верифицированных программных моделей бортового процессора, моделей устройств бортового комплекса управления, моделей поведения подсистем спутника, позволяющих в полном объеме провести автономное и системное тестирование БПО без использования реальной аппаратуры;
- высокий уровень пользовательского интерфейса средств тестирования, позволяющий проводить системное тестирование непосредственно проектантами логики функционирования подсистем изделия и изделия в целом;
- полное сохранение пользовательских интерфейсов средств тестирования при использовании моделей разных вычислительных платформ;
- использование не только диалоговых средств тестирования и отладки, но и языков и средств пакетного тестирования и отладки, позволяющих проектировать и программировать тесты по той же технологии, что и тестируемые программы БПО. Пакеты тестов позволяют автоматизировать регрессивное тестирование и постоянно улучшать набор тестов, а переносимость компонентов БПО и постоянство интерфейсов средств тестирования помогает сохранять актуальность архивов тестов для новых изделий;
- организация системного тестирования в соответствии с архитектурной декомпозицией БПО. Такой подход обеспечивает эффективное распределение ответственности за последовательность и уровни системного тестирования. В действующей технологии системное тестирование осуществляется последовательно на пяти уровнях: среды программного функционирования (на уровне операционной системы), среды программного управления, ПО системы в режимах системы, ПО системы в режимах космического аппарата и БПО в целом.
Средства разработки. Средства разработки, реализующие и поддерживающие перечисленные выше методы, представлены технологическим комплексом производства программ БПО (ТКПП), обеспечивающим разработку, включая автономное тестирование, и сопровождение компонентов БПО, и наземным отладочным комплексом БПО (НОК), обеспечивающим интеграционное и системное тестирование БПО, изготовление и сопровождение БПО конкретных изделий.
В составе ТКПП представлены следующие средства.
1. Мобильная кросс-система программирования (КСП) на языке Модула-2, которая может быть адаптирована для различных целевых платформ, сохраняя все пользовательские интерфейсы. Кроме того, в дополнение к стандартным средства, данная система предоставляет пакетный отладчик, позволяющий организовать регрессивное тестирование, средства измерения полноты автономного тестирования (по критериям С1 и С) и эксплуатационных характеристик компонентов, позволяющие гарантировать требуемый уровень качества компонент БПО. КСП создана в сотрудничестве с ИСИ СО РАН (г. Новосибирск) и ООО «Эксельсиор», функционирующего на базе этого института, соответствует мировому уровню средств разработки надежного ПО для встроенного применения, даже превосходя его по отдельным показателям.
2. Мобильные системы программирования команд управления конкретным изделием и логики функционирования систем изделия на проблемно-ориентированных командных языках. Проблемно-ориентированный интерфейс этих систем позволяет создавать прикладное программное обеспечение непосредственно проектантами систем.
3. Независимые от платформы базовые средства разработки БПО, решающие задачи хранения и сопровождения компонентов БПО, управления конфигурацией и управления качеством.
Все средства эффективно функционирует на любой ПЭВМ на платформе Шв1 Реойцш IV в среде ОС Windows 2000 или 2003.
Наземный отладочный комплекс содержит БПО конкретного изделия, программную модель целевого БЦВК, модели поведения систем изделия, средства организации модельного вычислительного процесса и средства отладки. В состав НОК входит архив БПО изделий и средства изготовления носителей БПО. Данный комплекс является чисто программным средством и функционируют в той же инструментальной среде, что и среда разработки. Он
предоставляет проблемно-ориентированный пользовательский интерфейс, позволяющий проводить системное тестирование ПО систем и БПО в целом проектантами систем изделия. Интерфейс НОК унифицирован с интерфейсом средств заводских испытаний и средств управления при эксплуатации изделий.
Представленная технология и составляющие ее методы и средства успешно апробированы на более чем десяти типах спутников и на трех архитектурно существенно различных вычислительных платформах (CISC, RISC c различной эндианностью, разрядностью, способами адресации и представления данных) и в настоящее время используются в действующих проектах «Экспресс», «Эк-спресс-А», «СЕСАТ», «ГЛОНАСС-М» и «Экспресс-АМ».
Технология зафиксирована в стандарте предприятия, который приведен в соответствие со стандартами Европейского космического агентства и апробирован в двух международных проектах.
Библиографический список
1. Князькин, Ю. М. Гарантии качества программного обеспечения встроенных ЭВМ / Ю. М. Князькин, А. А. Колташев // Проблемы обеспечения качества изделий в машиностроении: материалы Междунар. науч.-техн. конф. / КГТУ Красноярск, 1994.
2. Koltashev, A. A Practical Approach To Software Portability Based On Strong Typing And Architectural Stratification / A. Koltashev // Proceedings Lecture Notes in Computer Science (LNCS 2789): Joint Modular Languages Conference, Klagenfurt, Austria, 25-27 August 2003. Berlin; Heidelberg; New York: Springer-Verlag, 2003.
3. Колташев, А. А. Технология переноса бортового программного обеспечения / А. А. Колташев // Открытые системы. 2004. № 4.
4. Колташев, А. А. Технология разработки и сопровождения мобильного программного обеспечения спутников связи / А. А. Колташев // Известия вузов. Приборостроение. 2004. № 4.
5. Колташев, А. А. Машинно-независимая технология разработки БПО / В. Д. Анисимов, А. А. Колташев // Результаты научно-практической деятельности ученых и инженеров ФГУП «Научно-производственное объединение прикладной механики имени академика М. Ф. Решет-нева» в области прикладной космонавтики: юбил. сб. Красноярск, 2004.
A. N. Antamoshkin, A. A. Koltashev
SOFTWARE ENGINEERING ASPECTS FOR COMMUNICATION SATELLITE DESIGN
There is proposed conception and some methods which lead to essential growth of quality and efficiency of development and maintenance on-board communication satellite software.