ТюгашевА.А., ИльинИ.А., ЕрмаковИ.Е.
СГАУ, Самара
МЕТОДЫ ОБЕСПЕЧЕНИЯ НАДЕЖНОСТИ И КАЧЕСТВАПРОГРАММНОГО ОБЕСПЕЧЕНИЯ В АЭРОКОСМИЧЕСКОЙ ОТРАСЛИ
1. ВВЕДЕНИЕ
В настоящее время можно говорить о кризисе отечественной космической отрасли. Широко известны неудачи, особенно неприятные и болезненно воспринятые в год 50-летнего юбилея полета Юрия Гагарина, ознаменовавшего триумф нашей страны и закрепившего приоритет, достигнутый выводом первого искусственного спутника на орбиту Земли.
Крайне сложными для высокотехнологичных и наукоемких отраслей промышленности в нашей стране стали 1990-е годы, когда в результате хронического недофинансирования, распада хозяйственных связей между бывшими советскими республиками, непродуманных реформ, потери квалифицированных специалистов предприятиям и конструкторским бюро был нанесен тяжкий урон. В этот период потенциал аэрокосмической науки и промышленности был в значительной степени утрачен.
Несмотря на перечисленные факторы, задел, созданный в годы СССР в аэрокосмической промышленности, был настолько велик, что удавалось на протяжении длительного периода времени держаться на его основе [1,2], фактически «проедая» советское наследство. Россия на протяжении ряда лет удерживает лидерство на мировом рынке пусковых услуг, а модифицированные космические корабли «Союз» в настоящее время являются единственным средством доставки космонавтов на Международную космическую станцию.
Однако начиная с конца 2010 года, когда аварии и катастрофы, вообще-то нормальные в определенных пределах для отрасли, создающей и эксплуатирующей столь сложные изделия, стали повторяться с печальной частотой, кризис стал очевиден и получил громкий общественный резонанс. Авария имевшей более 30 лет без катастроф ракеты-носителя «Союз», потеря межпланетной автоматической станции «Фобос-Грунт» - одни из самых обсуждаемых в связи с этим тем. Тем более печально это на фоне увеличивающегося финансирования и внимания со стороны правительства страны.
2. СОВРЕМЕННОЕ СОСТОЯНИЕ в области СОЗДАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ В АЭРОКОСМИЧЕСКОЙ ОТРАСЛИ
Кризис аэрокосмической индустрии страны, к сожалению, имеет системный характер и простым «вливанием» миллиардов рублей его преодолеть не удастся, нужны вдумчивый и продуманный подход к преодолению негативных явлений, комплексная стратегия развития отрасли на длительный период. Предприятиям необходимо переоснащение материальной базы, внедрение современных технологических процессов, обеспечение контроля качества производимых изделий. При создании космической техники необходим переход к использованию негерметичных высоконадежных платформ и современной электронной элементной базы.
Весьма остро стоит кадровая проблема. На протяжении многих лет уровень заработной платы и престиж работника отрасли, научного сотрудника были недопустимо низкими, что привело как к уходу наиболее активных и квалифицированных кадров, так и к тому, что способные молодые специалисты -выпускники образовательных учреждений с соответствующими специальностями, не шли на предприятия отрасли, выбирая другие пути построения карьеры. Несмотря на то, что сейчас многие предприятия активно занимаются исправлением сложившейся ситуации, и число молодых специалистов выросло, смело можно говорить о «провале» в наиболее востребованной и активной группе 35-45 летних квалифицированных работников на предприятиях отрасли. Следует отметить, что, несмотря на наличие опытных специалистов старшего и предпенсионного возраста, существует весьма непростая проблема передачи их уникальных навыков и профессиональных знаний молодежи, которая вследствие разрыва традиционных существовавших в СССР связей между вузами и промышленностью, сейчас приходит на работу неподготовленной к практической профессиональной деятельности. Кроме этого, за годы экономических реформ резко упал объем научно-исследовательских и опытно-конструкторских работ (НИОКР), хоздоговорных работ, проводимых по заказу предприятий аэрокосмической отрасли вузами и научноисследовательскими организациями.
Среди одних их главных причин аварий, потери дорогостоящих аппаратов, в которые вложен долголетний труд многотысячных коллективов, зачастую - международных, можно назвать сбои и ошибки систем управления. При этом весьма часто к критическим последствиям приводят недостатки, ошибки и низкий уровень отказоустойчивости бортового программного обеспечения, на которое и возлагается в настоящее время, как правило, даже на микро и наноспутниках, непосредственное решение задач, связанных с логикой управления космическими аппаратами.
Рассматривая ситуацию через призму проблем в данной узкой области, можно отметить следую-щее.Еще в годы реализации программы «Аполлон» ее руководитель Дж. Ф Ши отмечал [3]: «Хотя инженеры в любой области стремятся расценивать свои собственные разработки как наиболее ответственные, все же можно утверждать, что после создания необходимых ракетных двигателей основой надежного выполнения широких задач при длительных космических полетах являются вычислительные средства, имеющиеся на борту космического корабля».
И сейчас [б] по многим оценкам, именно построение комплекса программного обеспечения - наземного и бортового, является зачастую критическим путем на сетевом графике работ по созданию современных аэрокосмических комплексов. Современному программному обеспечению свойство сложности присуще вообще, как неотъемлемая черта. Объем используемых в промышленности программ сегодня достигает десятков миллионов строк исходного кода. Успешная и своевременная реализация проектов в сфере создания современного сложного программного обеспечения - весьма сложная проблема даже для опытных высококвалифицированных коллективов, вовсе не всегда успешно решаемая [4,6] .
Еще более усугубляется ситуация, когда речь идет об управляющих программах, функционирующих в режиме реального времени и от правильного функционирования которых напрямую зависит реализация важнейших миссий, безопасность, а иногда - человеческие жизни. К надежности подобного программного обеспечения, называемого критическим, предъявляются особо высокие требования. Именно такого рода программное обеспечение используется в аэрокосмической отрасли. К сожалению, ошибки в программах приводили и приводят к катастрофам и авариям.
Можно отметить следующие современные тенденции при создании систем управления космическими комплексами:
Реализация управления современными средствами выведения и космическими аппаратами с помощью бортовых цифровых вычислительных машин (БЦВМ) или комплекса БЦВМ - БВС (бортовой вычислительной системы).
Перенос «центра тяжести» в принятии решений с Земли на борт
Возрастающий объем и сложность бортового программного обеспечения
Необходимость согласованной работы большого числа приборов, устройств, функциональных программных модулей.
Наиболее широко на предприятиях отрасли применяется подход к обеспечению надежности, основанный на многоэтапной отладке и испытаниях управляющего программного обеспечения. Сначала проводится, как правило, автономная отладка, затем проверка функционирования управляющего ПОво взаимодействии со специально созданными программными моделями бортовых систем и параметров движения летательного аппарата, и на заключительном этапе комплексной отладки - совместно с реальной БВС и бортовой аппаратурой [1,2] .
Несмотря на это, можно говорить о частном «кризисе» разработки программного обеспечения (ПО) в космической отрасли. Трудоемкость, стоимость и сложность разработки ПО вносят значительный вклад в стоимость и сроки создания ракетно-космических комплексов в целом. Повторяющиеся ошибки в управляющем ПО приводят к потерям дорогостоящих аппаратов, утрате результатов длительного труда многотысячных коллективов, включая международные проекты. Существующие методы и технологии не позволяют гарантировать необходимый уровень надежности, отказоустойчивости и безопасности.
Говоря о причинах сложившейся ситуации, можно выделить:
Зависимость от уникального опыта и квалификации конкретного разработчика Переход на новые вычислительные платформы (в том числе зарубежные)
Недопонимание между специалистами по бортовым системам, проектантами, программистами Большой объем программной документации, требующий актуализации наряду с ПО Противоречивость требований к управляющему ПО.
При этом следует сказать, что тестирование ПО не дает необходимых гарантий качества и надежности и не может дать их в принципе, что отмечалось еще классиками программирования [5]. Использование программных моделей бортовой аппаратуры (БА) на испытательных стендах в свою очередь требует верификации и ускорения разработки комплекса моделей. Часто одна и та же логика управления должна реализовываться на различных аппаратных и программных платформах.
Ясно, что нужна разработка и внедрение в аэрокосмической отрасли комплекса мер для преодоления сложившегося кризиса, качественного увеличения уровня надежности, безопасности и отказоустойчивости ПО и на этой основе - отказоустойчивости и надежности ракетно-космических изделий в целом с соответствующим повышением вероятности успешного выполнения целевых задач..
3. МЕТОДЫ ПОВЫШЕНИЯ НАДЕЖНОСТИ И КАЧЕСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ В АЭРОКОСМИЧЕСКОЙ ОТРАСЛИ На основании проведенного анализа, изучения отечественного и зарубежного опыта, современных достижений информатики и программирования, авторы выделяют следующие методы повышения качества и надежности ПО в отрасли:
Совершенствование процессов разработки ПО - обеспечение качества за счет использования современных методик, языков и инструментов
Создание методик и языков для строгой, непротиворечивой и полной спецификации требований к ПО Автоматизация тестирования ПОс обеспечением требуемой полноты покрытия
Автоматическая генерация фрагментов программ, заведомо соответствующих спецификации (где это возможно )
Формальные методы верификации со строгим доказательством свойств ПО Использование проверки моделей (model checking)
Кроме этого, для решения проблемы своевременного создания комплекса бортового ПО и повышения производительности труда разработчиков, целесообразна работа по следующим направлениям: Использование современных методик, языков и инструментария Внедрение платформенно-независимого «промежуточного слоя» ПО Применение интуитивно понятных человеку визуальных представлений Автоматическая генерация фрагментов программ (где это возможно)
Автоматизация тестирования ПО
Снижение зависимости от уникального опыта и квалификации конкретного разработчика за счет создания полной и качественной документации и использования проблемно-ориентированных языковых средств высокого уровня, удобных для человека.
Внедрение в жизнь перечисленных мер возможно путем разработки и внедрения на предприятиях аэрокосмической отрасли специализированных методик спецификации, проектирования, разработки, синтеза и верификации программного обеспечения, поддерживаемых специализированными инструментальными программными средствами. Комплекс инструментальных программных средств может рассматриваться как система автоматизации проектирования (САПР) ПО (или CASE-среда, от
ComputerAidedSoftwareEngineering) в аэрокосмической отрасли, создаваемая со следующими главными целями:
Обеспечение необходимых показателей надежности, качества и безопасности ПО в отрасли Снижение сроков, стоимости и трудоемкости разработки управляющего ПО
Снижение сроков, стоимости и трудоемкости разработки программных моделей БА, используемых при испытаниях
Автоматизация построения актуальной, полной и точной программной документации.
Примером работ в направлении построения комплексной отраслевой САПР ПО может служить программный комплекс ГРАФКОНТ/ГЕОЗ, созданный в Самарском государственном аэрокосмическом университете (национальном исследовательском университете), по заказу ГНПРКЦ «ЦСКБ-Прогресс» [7] . Программный
комплекс включает следующие основные модули и средства:
Транслятор с проблемно-ориентированного языка спецификаций управляющих алгоритмов реального времени
Визуальный конструктор циклограмм управляющих алгоритмов
Визуальный конструктор управляющей программы комплексного функционирования
Генератор управляющей программы на языках ассемблер и Си (может параметрически настраиваться на другие языки программирования)
Генератор таблицы возможных вариантов исполнения управляющего алгоритма Генератор отладочных заданий для каждого варианта исполнения
Генератор таблицы управляющих и информационных связей управляющей программы
Среди других работ в данной области можно назвать технологию ГРАФИТ-ФЛОКС, используемую успешно в НПЦ АП имени Н. А. Пилюгина, на протяжении ряда лет, в том числе в проектах «Морской старт», РБ «Бриз-М», РБ «Фрегат» [10, 11]. Технология использует визуальный конструктор процедурной части управляющих программ ГРАФИТ и табличный процессор декларативной части ФЛОКС.
Весьма значительных успехов в совершенствовании технологии создания управляющих программ для своих космических аппаратов достигло ОАО «ИСС», см. работы А.А. Колташева и В. В. Хартова [8,9] . Важнейшими принципами при этом стали использование нескольких слоев программного обеспечения с выделением платформенно-независимого промежуточного слоя, использование и бортовых интеллектуальных интерпретаторов СЕАНС и ДКД, реализующих автономное управление КА. При написании бортовых
программ используется язык Модула-2 со строгой статической типизацией, жесткими нормами модульности и структурного программирования, позволяющие снизить количество ошибок в БПО.
В качестве направлений дальнейших работ в настоящее время целесообразным представляется следующее [12].
Первое направление связано с созданием теоретического и методологического фундамента для качественного совершенствования процессов разработки БПО за счёт внедрения и развития современных достижений науки и практики программной инженерии, таких как:
• высокоуровневые языки спецификаций, проектирования, моделирования, программирования, в том числе визуальные;
• формальные методы спецификации требований кПО систем управления, верификации и валидации ПО, аттестации ПО на соответствие требованиям, гарантирующие качество ПО в противоположность традиционному тестированию;
• развитое технологическое ПО - инструментов автоматизации, поддерживающих ПО на всех этапах жизненного цикла;
• построение и развитие интегрированной расширяемой отраслевой САПР БПО.
Использование автоматизированных средств разработки ПОв отрасли даст возможность обеспечить гарантированный уровень качества ПО (его надёжности, отказоустойчивости и безопасности), сниже-
ние влияния человеческого фактора на качество ПО, автоматическую генерацию программной документации, автоматизацию генерации полного набора тестов с учетом внутренней структуры программ, технологичность и единообразие процессов создания ПО, сокращение сроков и трудозатрат.
Второе направление - это всемерное развитие и совершенствование нормативных основ в области процессов создания БПО в виде рекомендаций, требований, отраслевых стандартов. Подобного рода единый отраслевой нормативный базис призван обеспечить:
• единство основополагающей терминологии, определений и классификаций;
• использование на предприятии методологически проработанных подходов, моделей, инструментов при создании ПО;
• единую шкалу требований и критериев, определяющих качество процессов и технологий создания ПО и качество программной продукции;
• задание направлений совершенствования процессов и технологий разработки ПО в отрасли.
И, наконец, третьим направлением работ является создание, наполнение и развитие учебнометодической базы знаний в сфере создания БПО для обеспечения кадровой преемственности. Данная база знаний предназначена:
• для парирования кадровых проблем (естественный уход квалифицированных кадров старшего поколения и низкое качество подготовки молодых специалистов);
• для обеспечения необходимого уровня качества подготовки персонала и сокращения сроков такой подготовки;
• для аттестации персонала;
• для сохранения опыта, накопленного в отрасли за десятилетия (и предотвращения реальной угрозы его невосполнимой утраты) и пополнения этого опыта современными достижениями науки и практики;
• для обеспечения основы взаимодействия с системой высшего и специального образования.
Соответственно, можно выделить следующие виды работ по указанным направлениям:
• Аналитическое — изучение отечественного и зарубежного опыта в области создания ПОв аэрокосмической отрасли, отслеживание перспективных тенденций и их оценка, изучение соответствующих процессов на предприятиях нашей страны
• Теоретическое — разработка формализованных методов и математических моделей, применимых на различных этапах жизненного цикла критического ПО
• Нормативное — разработка требований, рекомендаций и проектов стандартов, регламентирующих процессы разработки и этапы жизненного цикла БПО
• Технологическое — формулирование требований к отдельным средствам инструментального ПО и к единой САПР ПО, их проектирование и разработка .
• Информационно-методическое — создание электронной отраслевой базы знаний по теме разработки и использования ПО, планирование состава и содержания методического обеспечения подготовки специалистов соответствующего профиля для аэрокосмической отрасли.
ЛИТЕРАТУРА
1. А.Н. Кирилин, Р.Н. Ахметов, А.В. Соллогуб, В.П. Макаров. Методы обеспечения живучести низкоорбитальных автоматических КА зондирования Земли: математические модели, компьютерные технологии. М^Машиностроение, 2010. ISBN 978-5-94275-547-8.384 с.
2. Управление космическими аппаратами зондирования Земли: компьютерные технологии/ Д.И. Козлов, Г.П. Аншаков, Я.А. Мостовой, А.В. Соллогуб. - М.: Машиностроение, 1998. 368 с. ISBN 5-217-
02869-6.
3. Авиастроение. Том 6 (Итоги науки и техники, ВИНИТИ АН СССР). М., 1978.
4. Brookse, F. No Silver Bullet — Essence and Accident in Software Engineering. Proceedings of the IFIP Tenth World Computing Conference: 1069-1076.
5. Дейкстра Э. В. Навстречу корректнымпрограммам. 1967
6. А.А. Калентьев, А.А. Тюгашев. ИПИ/CALS
технологиивжизненномциклекомплексныхпрограммуправления - Самара: Изд-во Самарского научного
цента РАН, - 2006.
7. Тюгашев А.А. Интегрированная среда для проектирования управляющих алгоритмов реального времени / Известия российской академии наук: Теория и процессы управления. - 2006. - № 2. - С. 128-
141.
8. Хартов, В. В. Автономное управление космическими аппаратами связи, ретрансляции и навигации [Текст] / В. В. Хартов // Авиакосмическое приборостроение. - 2006. - N 6. - С. 29-33
9. Колташев А. А. Эффективная технология управления циклом жизни бортового программного обеспечения спутников связи и навигации // Авиакосмическое приборостроение. - 2006. - N 12. - С. 20-25
10. Балтрушайтис В.В. «ГРАФИТ-ФЛОКС» - технология разработки программного обеспечения бортовых вычислительных машин. // Межд.научно-техн.конф., посвященная 90-летию со дня рождения акад.Н.А. Пилюгина. Тезисы докл.-М.: НПЦ АП, 1998.- С.79-81.
11. Паронджанов В.Д. Развитие системного обеспечения вычислительных комплексов при отработке систем управления ракет-носителей и космических аппаратов.-В кн. :XXII научные чтения по космонавтике, посвященные памяти академика С.П. Королева и других выдающихся отечественных ученых -пионеров освоения космического пространства. Тезисы докл.-М.:ИИЕТ РАН, 1998. С.14-15.
12. И.А. Ильин, И.Е. Ермаков, А.А. Тюгашев. Создание единой отраслевой САПР ПО как основное условие предотвращения кризиса управляющего ПО в космической отрасли. // Актуальные проблемы российской космонавтики: Труды XXXVI Академических чтений по космонавтике. Москва, январь 2012 г. С. 468 .