Каков вклад НАСА в развитие разработки программного обеспечения? Каковы соответствующие стандарты, которым они должны соответствовать? В основном меня интересует авионика, но я не нахожу никакой актуальной информации о вкладе НАСА в разработку программного обеспечения... Может ли кто-нибудь помочь мне в этом?
НАСА было (и остается) ведущей организацией в области разработки программного обеспечения еще до того, как появился термин «программная инженерия». Типы программного обеспечения, разработанного для НАСА, варьируются от одноразовых сценариев/электронных таблиц, предназначенных для получения грубого приближения к конкретному инженерному вопросу, до программ/сценариев/электронных таблиц, содержащих конфиденциальную, но несекретную информацию (например, номера социального страхования) и летного программного обеспечения для аппараты, которые доставят людей в космос.
НАСА признает, что уровень строгости и уровень защиты данных сильно различаются в зависимости от программного обеспечения, разработанного для него. Некоторое программное обеспечение, такое как электронная таблица, предназначенное для получения приблизительной оценки дельты V, необходимой для полета на Марс, требует очень мало строгости или защиты. Намерение является грубым приближением, и нет конфиденциальных, но несекретных данных, которые нужно защищать. С другой стороны, программное обеспечение для полетов, которое управляет транспортным средством, которое доставляет людей в космос, и которое собирает данные о здоровье космонавтов, нуждается как в максимальной строгости, так и в максимальной защите данных.
С этой целью у НАСА есть несколько рекомендаций и требований относительно того, как человек или организация должны создавать программное обеспечение. Программное обеспечение наивысшей критичности должно соответствовать довольно обременительным правилам для программного обеспечения класса А, установленным процедурными требованиями НАСА 7150.2 . Строго говоря, все программное обеспечение, написанное для НАСА, должно соответствовать правилам, установленным в этом документе. Строго говоря, заметки, написанные мелком на салфетке в баре во время вечерней пятничной встречи за пределами офиса (например, в учреждении, не принадлежащем НАСА, где подают опьяняющие напитки), вполне могут быть достаточными для ранее упомянутой грубой электронной таблицы.
Ваш вопрос очень широк, поскольку программное обеспечение очень важно для всего, что делает НАСА. Но я постараюсь ответить в меру своих возможностей.
НАСА имеет богатую историю развития разработки программного обеспечения. На самом деле, как заметил Мартин Шредер, Маргарет Гамильтон , легендарный инженер-программист программы «Аполлон», придумала термин «инженер-программист». НАСА проложило путь к написанию эффективного, надежного и хорошо протестированного кода. Взгляните на этот документ « Дизайн, разработка, интеграция: система программного обеспечения SpaceShuttle PrimaryFlight ». В нем подробно описан процесс тщательного тестирования и разработки программного обеспечения для полета космического корабля "Шаттл". На протяжении многих лет инженеры-программисты НАСА разрабатывали все более надежные методы разработки программного обеспечения для полетов и тестирования IV&V. Вот отличный документ с обзором программного обеспечения для полетов MER.
Я думаю, что наибольший вклад НАСА в разработку программного обеспечения, прежде всего, заключается в количестве выпущенного ими качественного программного обеспечения с открытым исходным кодом. Просто зайдя на code.nasa.gov , вы получите все, от среды моделирования Trick до программного обеспечения astrobee , которое прямо сейчас летает на МКС. Вот публикация программного обеспечения astrobee. Мой личный фаворит — выпуск Core Flight System (CFS), целью которого является создание общей основы для программного обеспечения для управления космическими кораблями. С его помощью они создали сообщество разработчиков программного обеспечения для полетов, чтобы помочь продвигать современное программное обеспечение для полетов.
Маргарет Гамильтон , женщина, придумавшая термин « программная инженерия », сделала это, будучи директором отдела программной инженерии Лаборатории приборостроения Массачусетского технологического института, которая разрабатывала бортовое летное программное обеспечение для космической программы «Аполлон».
Органический мрамор
Боб Якобсен