Oberon space
General Category => Общий раздел => Тема начата: Geniepro от Октябрь 15, 2012, 12:23:47 pm
-
"Как у нас пишут ПО для космических аппаратов" (http://metadeus.wordpress.com/2012/09/18/%D0%BA%D0%B0%D0%BA-%D1%83-%D0%BD%D0%B0%D1%81-%D0%BF%D0%B8%D1%88%D1%83%D1%82-%D0%BF%D0%BE-%D0%B4%D0%BB%D1%8F-%D0%BA%D0%BE%D1%81%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85-%D0%B0%D0%BF%D0%BF%D0%B0/)
Все мои наблюдения оформлю в виде небольших тезисов.
1. Большая часть ПО написана не профессиональными программистами.
В основном функциональные системы написаны либо людьми имеющими инженерное образование связанное с летательными и космическими аппаратами, либо физиками и математиками, которым в силу необходимости пришлось научиться перекладывать свои знания на абстракции низкоуровневых языков программирования (типа C).
Соответственно и на результаты такого написания кода без слёз взглянуть сложно.
...
И старая статья про ПО для шаттлов:
"Они пишут правильную вещь" (http://kholeg.wordpress.com/2006/11/20/%D0%BE%D0%BD%D0%B8-%D0%BF%D0%B8%D1%88%D1%83%D1%82-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D1%83%D1%8E-%D0%B2%D0%B5%D1%89%D1%8C/)
-
Вранье все это :D - согласно коровятам у нас пишут на передовом и сверхнадежном ЯВУ Модула 2, с использованием уникальной среды "Дракон" .для формализации алгоритмов.. безо всяких элабораций, фунюкций и прошмонад...
-
Откровенно говоря, вот это дико напоминает идеалогию программирования на Обероне (неоднократно встречалось подобное в обсуждениях):
Преждевременные псевдооптимизации при явной пессимизации.
В программах почти всех инженеров ставших программистами по необходимости можно увидеть псевдомикрооптимизации, которые делают код нечитаемым (например: использование операций сдвига вместо умножения, использование битовых операций для ускорения исполнения программы, отказ от выделения функций для экономии на вызовах и т.д. и т.п.). Программы приобретают поистине кошмарный вид с десятком уровней вложенности и переиспользованием одной переменной для разных задач в пределах одной функции, с затейливой битовой арифметикой и шаманскими макросами имеющими глобальную область видимости.
Вместе с тем при компилировании релизной бортовой версии могут быть сознательно выключены все оптимизации компилятора и линковщика для обеспечения какой-нибудь редкоиспользуемой низкоуровневой функции (например: реализации бинарных патчей). Что в конечном счете приводит к тому, что бортовой код становится медленным как черепаха и выходит за такт жесткого реалтайма, и в свою очередь вызывает новую волну дебильных микрооптимизаций по включению тела функций в места их вызова и замены нормальных вычислений сдвигами и т.п.
-
и чо? :D
-
А вот тут про то как готовились к запуску Бурана. Написано достаточно хорошим языком: http://www.buran.ru/htm/memory.htm
-
А вот тут про то как готовились к запуску Бурана. Написано достаточно хорошим языком: http://www.buran.ru/htm/memory.htm
ну это беллетристика... лично я просил завершить мыслю с предыдущей цитатой (в контексте обсуждаемой темы - ИМХО - она, как не пришей к п. рукав...)
-
"Роскосмос" - это огромное число предприятий, где ситуация в разных местах очень сильно отличается от "средней по палате".
Есть, например, РКК "Энергия", занимающаяся, в числе прочего, МКС-ом. ПО для МКС занимается группа академика Микрина (он также проф. Бауманки; есть его отличный учебник по бортовым системам управления, издательство МГТУ им. Баумана).
У них там вполне себе UNIX-based-процесс разработки (на QNX), со всеми современными принципами. Даже boost используют :)
Принципы обеспечения надёжности - за счёт дробления системы на мелкие изолированные процессы, которые взаимодействуют сообщениями по специфицированным протоколам. Т.е. граница надёжности - мини-процесс.
Вот несколько их презентаций.
http://narod.ru/disk/62652190001.43967d8e7b686e201afd9b430e3fac58/1.ppt.html
http://narod.ru/disk/62652270001.38e2039ff48adab3d28cfdf03cad8156/3.ppt.html
http://narod.ru/disk/62652366001.189854592074da4a1e4f52490f04e2da/4.ppt.html
ПО, кстати, у них разрабатывают программисты, коллектив довольно молодой (да и сам Микрин не стар). Специальная подготовка, конечно, нужна, обычный пальцегнутый выпускник ВМК МГУ ещё должен пальцы свои разогнуть и понять специфику и ответственность.
(Колташёв и НПО Решетнёва - тоже флагманы, но они далеко, я знаю не больше, чем в статьях про Модулу-2.)
-
... Это и устаревшие морально операционные системы, подходы к проектированию, реализации и тестированию программных продуктов.
Вот чего я никогда не понимал, так это термин "морально устарел". Какое отношение технология имеет к морали? Штука (устройство, ЯП, ОС и так далее) либо справляется с задачами которые на неё возложены, и тогда оно не устарело, либо не справляется (например стоимость поддержки/тех. обслуживания стала слишком высока) и тогда эта штука устарела натурально, а не "морально".
-
Традиционно различают физический износ и моральный. Второй имеет две формы:
1) Когда стоимость создания такого же объекта в современных условиях ниже, чем в то время, когда создавался объект;
2) Когда производительность/эффективность объектов, созданных в настоящее время, больше, чем у старых.
Видимо, по аналогии и "морально устарел". Значит, что таких же результат можно достигнуть быстрее и с большей эффективностью, расширяемостью и т.д..
-
Традиционно различают физический износ и моральный. Второй имеет две формы:
1) Когда стоимость создания такого же объекта в современных условиях ниже, чем в то время, когда создавался объект;
2) Когда производительность/эффективность объектов, созданных в настоящее время, больше, чем у старых.
Видимо, по аналогии и "морально устарел". Значит, что таких же результат можно достигнуть быстрее и с большей эффективностью, расширяемостью и т.д..
Физического износа у ПО не бывает вообще, а оставлять ПО только моральный износ/устаревание - как то глупо. Тем более что сверхновое ПО иногда (точнее часто) страдает от тех же проблем что и древнее (нельзя легко найти специалистов по этому ПО, хреново работает и так далее).
Поэтому "традиционные различия" для ПО просто не применимы. Это все равно что сказать: законы Ньютона морально устарели (ну да, ведь есть ОТО!).
-
Глупость, основа высказывания принципиальное различие между объективным,материальным,физическим и субьективным,нематериальным,моральным,этическим соответственно и употребление 1.категорическое несогласие с использованием чего либо не нуждающееся в рациональном обосновании 2. Когда неприятие порождено исключительно иррациональными, в том числе морально-этическими причинами,3.-чисто для усиления высказывания (эмоциональное)-основанное на ассоциациях порождаемых этими словами в мозгах аудитории