TAU писал(а):
Владимир Шелехов писал(а):
... до сих пор применяется ассемблерное программирование.
Между тем, в космическом агентстве NASA очень значительная (если не большая) часть функциональности КА реализуется программно, а не аппаратно. А что у нас?
Ну, не все столь ужасно. ........
В РКК "Энергия" имени С.П. Королева неплохая развитая
технология, они выпустили по ней
уже не одну книгу.
Наверное, это лучшее учебное пособие по технологии бортового программирования, в котором архитектура бортовых комплексов управления и методы их конструирования тщательно проработаны и в доступном виде изложены для студентов. Технология бортового программирования базируется на
общей технологии программирования, представленной в оглавлении учебного пособия следующими двумя подразделами:
2.2. Методология модульного проектирования архитектуры программного обеспечения бортовых комплексов управления ... 123
2.3. Методология структурного проектирования компонентов программного обеспечения бортовых комплексов управления ... 133Отметим, что эта часть учебного пособия не претерпела существенных изменений по сравнению с более ранними версиями начиная с 2003г.
Методы модульной и структурной декомпозиции программ -- это уровень технологии начала 1980-ых годов. Тогда на смену модульной пришла
объектно-ориентированная технология, позволяющая спрятать внутри классов часть структур данных и связей между ними, тем самым существенно упрощая основную программу. Отметим, что объектно-ориентированная методология применима и для разработки программ на языках типа Модула-2 или Си.
Технологический базис космической отрасли -- это набор технологий, используемых в отрасли и являющихся внешними по отношению к ней в отличии от технологий, разрабатываемых внутри отрасли. Технологический базис -- это основа, на которой строится
технологическая платформа отрасли, например, такая как
НИСС. Общая технология программирования входит в технологический базис, но не только она. Далее рассмотрим часть технологического базиса, связанного с бортовым программированием.
Имеются три индустрии:
1. Software engineering -- Программная инженерия
2. Requirements engineering -- Инженерия требований
3. Systems engineering -- Системная инженерия -- Системотехника в СССР
Технология программирования часто используется как эквивалент программной инженерии, хотя содержание этих понятий не совпадает. Частью программной инженерии являются
формальные методы (Formal methods). Они базируются на формальной спецификации программ. Формальные методы включают:
- тестирование на базе формальной спецификации;
- статическую верификацию (software model checking);
- проверку на моделях (model checking);
- дедуктивную верификацию;
- программный синтез.
Требования — совокупность утверждений относительно свойств разрабатываемой системы. В качестве системы может быть КА или бортовая программа. Инженерия требований применяется как в программной, так и в системной инженерии. Языки и методы инженерии требований, применяемые в космической отрасли, должны быть едиными для КА и бортовых программ. Существуют разные виды требований. В первую очередь, это функциональные требования, определяющие поведение системы. Другой пример -- требования безопасности.
Формальные методы и инженерия требований появились около 40 лет назад. Поскольку они важны для космической отрасли, я собираюсь дать их краткое популярное изложение в рамках рубрики "Космическое программирование" в отдельных темах, чтобы не загромождать основную линию ведения дискуссии. Очень желательно, чтобы кто-нибудь дал популярное изложение системной инженерии.
Вопрос: чем технологический базис нашей космической отрасли отличается от уровня 1980 года?
Отличается. Появились графические языки программирования: Дракон в НПЦ АП и язык блок-схем в МОКБ «Марс». В 1980 году еще не было графических интерфейсов пользователя.
А чем еще ???
То, что у нас в этом плане не все хорошо, проливает свет сообщение форума:
http://forum.oberoncore.ru/viewtopic.php?f=140&t=5351#p90975.