На чем пишется софт для КА?

Автор hudvin, 06.05.2009 15:28:09

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Not

ЦитироватьМне кажется надежность все системы гугла переплюнет любые КА и их СУБД в том числе или Вы видели неработающий google.com?
Гугл, находящий не то, что мне нужно я вижу регулярно. Что для меня равносильно неработоспособности. Кроме того, не  так давно отказала почтовая служба gmail и не работала около суток.

LRV_75

ЦитироватьГугл, находящий не то, что мне нужно я вижу регулярно. Что для меня равносильно неработоспособности
ИМХО, Извиняюсь, Вы немного привиредничаете, это всеравно что сказать про снимки допустим messangera, это не совсем то что я ожидал, чисто с позиции обывателя :wink:
Главное не наличие проблем, главное способность их решать.
У каждой ошибки есть Имя и Фамилия

ДалекийГость

ЦитироватьИ это другое - ограничения по памяти и по времени, форматы представления данных, используемые библиотеки, обработка ошибок и переполнений, синхронизация
Все это математик обязан знать и учитывать на этапе разработки алгоритма, независимо от того, кто его будет программировать. Но кроме этого, математик должен знать характерики используемых приборов; разнообразные ограничения, относящиеся к КА; особенности других алгоритмов, с которыми взаимодействует его алгоритм; и т.д. и т.п. Плюс, естественно, много математики. И физика может потребоваться.

То, что относится к компьютеру и программировамию - это маленькая и относительно простая часть знаний и умений, которые требуются для создания ПО КА. Потому что любой компьютер - это по сути калькулятор.  Нужно знать назначение "кнопок" (команд, операторов, библиотек и пр.) и аккуратно на них "нажимать". Вот и все. В нормальной программе на нормально работающен компьютере "4" - это всегда "4". А в нормально работающих приборах "4" вполне может быть "5", а с некоторой вероятностью и "10".
(Я не рассматриваю проблему сбоев компьютера, обычные программисты ей обычно не занимаются. )    

ЦитироватьДля этого между двумя этапами должен быть документ -  разжеванный алгоритм на псевдокоде (бейсике, питоне итд). Наличие сего документа сильно упрощает жизнь и тому и другому.
Если есть лишние деньги и время, то так можно делать, чтобы упростить жизнь программисту. (Дать ему легкую работу вместо того, чтобы уволить за ненадобностью.) Однако, по моему мнению, использование Бейсика как промежуточного языка для написания программы на языке Си - это далеко за пределами разумного.

ДмитрийК

Цитировать
ЦитироватьИ это другое - ограничения по памяти и по времени, форматы представления данных, используемые библиотеки, обработка ошибок и переполнений, синхронизация
Все это математик обязан знать и учитывать на этапе разработки алгоритма, независимо от того, кто его будет программировать. Но кроме этого, математик должен знать характерики используемых приборов; разнообразные ограничения, относящиеся к КА; особенности других алгоритмов, с которыми взаимодействует его алгоритм; и т.д. и т.п. Плюс, естественно, много математики. И физика может потребоваться.
Ну не обязан один и тот же человек одинакого хорошо разбираться в фильтрах Калмана или там алгебре кватернионов и одновременно в прогаммировании контроллера MIL-STD-1153B и примитивах синхронизации в RTEMS или QNX. Может, но не обязан. И тем более нельзя мешать это в одну кучу.

Цитировать
ЦитироватьДля этого между двумя этапами должен быть документ -  разжеванный алгоритм на псевдокоде (бейсике, питоне итд). Наличие сего документа сильно упрощает жизнь и тому и другому.
Если есть лишние деньги и время, то так можно делать, чтобы упростить жизнь программисту. (Дать ему легкую работу вместо того, чтобы уволить за ненадобностью.)
Странные у вас понятия. А о том что продукт надо сопровождать вы в курсе? А то что люди увольняются а на их место приходят другие?

Угу, вот сейчас мы передаем заказчику продукт (под ёлочку :) ) вместе со всей КД, отдали все что было, так они сцу^H^H^H  специально требуют именно такой документ. В дизайне написано "затем находим вершину параболы проходящей через данные 3 точки", ясен перец любой дурак^W программист сможет это ур-е написать и решить. Нет, нужны именно формулы по которым непосредственно производятся вычисления. И я их понимаю. Если б на меня внезапно свалилось столько чужого кода, подобный документ очень бы пригодился.

ДалекийГость

ЦитироватьНу не обязан один и тот же человек одинакого хорошо разбираться в фильтрах Калмана или там алгебре кватернионов и одновременно в прогаммировании контроллера MIL-STD-1153B и примитивах синхронизации в RTEMS или QNX. Может, но не обязан. И тем более нельзя мешать это в одну кучу.
Конечно, не обязан. Это очень разные темы. Но какое отношение это имеет к нашему с Вами обсуждению програмирования оптимальных регуляторов на языке высокого уровня?

Возможно мы с Вами по разному понимаем, что такое  "оптимальный регулятор". Вот ссылка на Википедию про один из типов оптимальных регуляторов в моем понимании этого термина.
http://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE-%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B8%D1%87%D0%BD%D1%8B%D0%B9_%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80
Очевидно, что программирование таких оптимальных регуляторов не имеет никакого отношения к программированию контроллеров и ОС.

ЦитироватьСтранные у вас понятия. А о том что продукт надо сопровождать вы в курсе? А то что люди увольняются а на их место приходят другие?
По моим "странным" понятиям, для сопровождения требуется один человек (программист-математик), а по Вашим - два (программист и математик). В Вашем случае проблемы наступают, если уволится хотя бы один из двух. Вероятность этого события выше, чен вероятность увольнения одного в моем случае.

Цитироватьспециально требуют именно такой документ
Если заказчик требует, то нужно создать такой документ. Нет смысла ссорится с заказчиком из-за ерунды. Но какое это иммет отношение к тому, кто и как создает и программирует алгоритмы?

Not

ЦитироватьТо, что относится к компьютеру и программировамию - это маленькая и относительно простая часть знаний и умений, которые требуются для создания ПО КА. Потому что любой компьютер - это по сути калькулятор.  Нужно знать назначение "кнопок" (команд, операторов, библиотек и пр.) и аккуратно на них "нажимать". Вот и все. В нормальной программе на нормально работающен компьютере "4" - это всегда "4". А в нормально работающих приборах "4" вполне может быть "5", а с некоторой вероятностью и "10".
(Я не рассматриваю проблему сбоев компьютера, обычные программисты ей обычно не занимаются. )
Мне кажется вы несколько упрощаете задачу программиста. Программист - это инженер. Математик - это ученый. Программист КА - специалист высокой квалификации, умеющий применять формальные методы в процессе создания высоконадежного ПО и в то же время владеющий технологией создания ПО, т.е. уметь работать в технологической цепочке проекта, включающей в себя работу с деревом версий, сопровождение и т.д.

Математик в первую очередь должен ориентироваться в великом множестве мат. методов, выбирая оптимальный для данных ограничений задачи, доказывать его оптимальность  и создавать  прототип соответствующего программного модуля. Программист должен уметь прочитать формальную постановку задачи разобраться в конкретной  мат. модели и заменить прототип высококачественным модулем.

И да, защита от аппаратных сбоев - обязанность программиста КА. Т.е. он должен писать программу таким образом, чтобы временное или постоянное повреждение железа имело минимальный эффект на результат собственно миссии КА.

Таким образом, в идеале должны быть как минимум два специалиста - математик и программист. Ну а в реальности бывает и иначе  :D

ДалекийГость

ЦитироватьМатематик - это ученый.
Математики бывают разные. Я писал о математиках  - инженерах.

ЦитироватьПрограммист КА - специалист высокой квалификации, умеющий применять формальные методы в процессе создания высоконадежного ПО и в то же время владеющий технологией создания ПО, т.е. уметь работать в технологической цепочке проекта, включающей в себя работу с деревом версий, сопровождение и т.д.
А если по-простому, без высокопарных слов - сумел осилить пару книг по программированию, математики не знает, алгоритмы придумывать не умеет.
В ПО КА самые разные алгоритмы используются - и вычислительные и логические. А этот программист "высокой квалификации" никаких алгоритмов не умеет создавать. Может запрограммировать только, как тут сказали, "разжеванный" алгоритм.

ЦитироватьМатематик в первую очередь должен ориентироваться в великом множестве мат. методов, выбирая оптимальный для данных ограничений задачи, доказывать его оптимальность  и создавать  прототип соответстввующего программного модуля.
Математику нужно численно моделировать работу своего алгоритма, чтобы его настроить, отладить и показать его оптимальность. Конечно, математик может это делать, например, на Матлабе. Но какой в этом смысл, если конечная программа должна быть на Си? Будет намного эффективнее, если математик сразу начнет создавать алгоритм на Си. Настроит, отладит, изучит, докажет, испытает - в среде типа Visual C. И, в результате, получит готовый продукт для ПО КА. Никакой программист не нужен.

ЦитироватьИ да, защита от аппаратных сбоев - обязанность программиста КА. Т.е. он должен писать программу таким образом, чтобы временное или постоянное повреждение железа имело минимальный эффект на результат собственно миссии КА.
Ну попробуйте напишите такую программу чтобы она нормально работала в условиях, когда любая используемая переменная ножет измениться произвольным образом.  (Про сбои в исполняемом коде давайте будем считать, что Вы не о них писали.)

ЦитироватьТаким образом, в идеале должны быть как минимум два специалиста.
Такой идеал будет дорогим и медленным.

zyxman

Цитировать
Цитироватьно это все еще не та сложность, которую я бы сравнил с сложностью работы программиста-математика!
Что по Вашему мнению относится к работе программиста-математика?

А то я тут предложил конкретную задачу, непосредственно относящуюся к ПО КА. А мне в ответ, типа - "Это не  задача для программиста-математика."

Разработка и программирование, например, оптимальных регуляторов  - это работа для программиста-математика?

По моему мнению - конечно,  да. Любой математик, который умеет создавать такие алгоритмы, сумеет их запрограммировать на языке высокого уровня. А абстрактный программист, который не разбирается ни в этой ни в других темах, относящихся к ПО КА, - программист, который умеет программировать только уже готовые алгоритмы, совсем не нужен и даже вреден для создания ПО КА.  Пусть он лучше идет создавать базы данных и уеб-дизайны для мелких лавочников.  Где еще нужны такие программисты?!

Это вы уже путаете с программистом-кодером, который действительно знает "только свои кнопки", зато он знает их очень хорошо.

А программист-математик именно тем и отличается, что он знает и алгоритмы и также математику, как эти алгоритмы выводятся, и соответственно может взять какую-то достаточно редкую задачу (которая еще не имеет решения в виде готового блока), формализовать эту задачу и перевести в алгоритмы оптимизируя ее либо под использование памяти, либо под мегагерцы, либо еще под какие-то требования, либо под целый комплекс ограничений.

С этой точки зрения ваша задача "Разработка и программирование, например, оптимальных регуляторов" это почти чистый кодинг, потому что она уже была решена несчетное число раз и достаточно кодеру иметь N соответствующих книг, чтобы реализовать этот алгоритм, даже не зная толком математику.

Средний уровень Веба конечно намного ниже - там более всего котируются художники (именно в прямом смысле, люди имеющие навыки создания красивой картинки), способные хотя-бы правильно использовать уже готовые библиотеки кода.
А вот скажем телекоммуникации, оперативная обработка финансовой (и военной) информации, программирование компьютерных игр (и особенно разработка компьютерных тренажеров) - дадут задаче оптимальных регуляторов огромную фору.

Цитировать
ЦитироватьОтдельные ячейки ПЗС итп матрицы не считаем датчиками
Это почему же так? Отдельная ячейка ПЗС-матрицы содержит свою собственную скалярную информацию и ни чем не хуже, чем любой отдельный датчик со скалярным выходом. Или Вы  любое количество однотипных датчиков считаете за один датчик?
Потому что я вам в ответ покажу обычную сетевую охранную камеру, у которой в ПЗС матрице миллион ячеек и достаточно нетривиальные алгоритмы обработки, и все это в промышленном исполнении, с жесткими требованиями по потреблению и по надежности.
"Демократия, это когда царь умный, а также добрый и честный по отношению к своим холопам".
--
Удача - подготовленный успех!

Alexc

Цитировать
ЦитироватьМне кажется надежность все системы гугла переплюнет любые КА и их СУБД в том числе или Вы видели неработающий google.com?
Всё верно. А всё почему? Гугл денги зарабатывает, а предприятия на которых разрабатывают софт для КА деньги осваивают. Почувствуйте разницу

А вот хрен вам.... (Ну может и не хрен а только редька  :lol: )
Картина маслом - датацентр Гугла по которому рысью бегают мужики с тележками и непрерывно меняют накрывшиеся диски  8)
Другой вопрос что избыточность такова, что ни потери данных ни деградации сервиса не происходит.

Вопрос надежности единичных образцов так не решить. А то-
Запускаем много много спутников, и держим пару запасных на старте. Как только какой выщел из строя - пускаем новый   :D  :D  :D
Удачи, Алексей

ДалекийГость

ЦитироватьЭто вы уже путаете с программистом-кодером, который действительно знает "только свои кнопки", зато он знает их очень хорошо..
Я не путаю программиста-кодера с программистом-кодером. Если внимательно прочитать сообщения в этой теме, то нетрудно заметить, что я именно так и назвал такого программиста  -  кодером.
 
ЦитироватьА программист-математик именно тем и отличается, что он знает и алгоритмы и также математику, как эти алгоритмы выводятся, и соответственно может взять какую-то достаточно редкую задачу (которая еще не имеет решения в виде готового блока), формализовать эту задачу и перевести в алгоритмы оптимизируя ее либо под использование памяти, либо под мегагерцы, либо еще под какие-то требования, либо под целый комплекс ограничений..
Если внимательно прочитать сообщения в этой теме, то нетрудно заметить, что я именно так и называл такого программиста-математика  -  программистом-математиком.

ЦитироватьС этой точки зрения ваша задача "Разработка и программирование, например, оптимальных регуляторов" это почти чистый кодинг, потому что она уже была решена несчетное число раз и достаточно кодеру иметь N соответствующих книг, чтобы реализовать этот алгоритм, даже не зная толком математику.
Если действительно прочитать эти N книг, то нетрудно заметить, что во многих из них описываются общие методы для "сферического коня в вакууме". В остальных рассматриваются конкретные задачи, всегда очень далекие от нужной. После прочтения этих книг также станет понятным, почему эту задачу уже решали бесчисленное количество раз и дальше будут решать.

Но предположим, что удалось найти книгу про оптимальный регулятор для решения задачи, которую я предлагал на стр. 39 этой темы. Вот ссылка (3.3 Мб) :
http://dspace.mit.edu/bitstream/handle/1721.1/3208/P-1985-22200134.pdf;jsessionid=A6E93AE3825EAE6175F9E74BA80D8A08?sequence=1
Это уже не для "сферического" и не "в вакууме", но все равно еще далеко не конечный алгоритм, а только начальное приближение к нему, Тем не менее, смогли бы Вы запрограммировать метод, описанный в этой ссылке, не змая "толком" математики?

ЦитироватьПотому что я вам в ответ покажу обычную сетевую охранную камеру, у которой в ПЗС матрице миллион ячеек и достаточно нетривиальные алгоритмы обработки, и все это в промышленном исполнении, с жесткими требованиями по потреблению и по надежности.
Не понял. Вы говорите, что ячейка ПЗС матрицы не является датчиком со скалярным выходом, потому что ПЗС матрицы выпускаются в промышленном исполнении? Так?

ДмитрийК

Уважаемый Далекий Гость, не очень понятно к чему вы клоните.
Я совершенно согласен, что разработка напр. оптимальных регуляторов - задача нетривиальная. Вопрос что является результатом такой активности. На мой взгляд результатом этого этапа работы является набор конкретных формул с конкретными цифрами в виде пригодном для программирования, а превращение этих формул в рабочий код - отдельная задача, по-своему сложная и ответственная и с предыдущей имеющая очень мало общего. Вы же похоже считаете что настоящим результатом является только код который идет непосредственно в продукт, а формулы расчета - это так, несущественный промежуточный этап, при этом процесс превращения сих формул в код для целевого железа - не стоит выеденного яйца, так? Это мне как-то даже  сложно представить. Все равно эти формулы должны быть в наличии перед тем как начинать писать на Си, на клочке бумажки ли, в "математике", в матлабе, на бейсике, да хоть в голове - неважно.   А как же быть человеку которому придется потом этот код править? Каждый раз повторять заново все шаги вывода чтобы понять откуда взялся тот или иной магический коэффициент?

А знаете на что уходит больше всего времени? На "code review", а именно сидят 5 человек и отчаянно борются со сном а 6-ой монотонно вещает: в строчках 789-792 мы вычисляем значение alpha2 согласно формуле пп. 13.24.1.5 детальной спецификации расчета... В этот момент раздается шорох - каждый роется в 5-сантиметровой стопке бумаги, достает нужный документ, тупо смотрит на формулу, потом в код. И т.д. до потери пульса.Так что вашему супер-дупер математику-программисту на 3-ей строчке бы сказали -"А это здесь у вас выражение X^2/2 откуда взялось, из какого параграфа это следует? Непорядок!" И привет - пошел писать "Дополнение Е5 к спецификации АБВГД о методике расчета...". А потом опять собирать комиссию чтобы его по параграфам разжевать и утвердить.  Потому как  каждая строчка кода и каждый параграф документа должен быть обсужден и принят комиссией. Подается это под соусом гарантии качества, на самом деле служит целью прикрытия коллективной #опы. Об эффективности пр-ва и речи не идет. Разумеется когда срок сдачи начинает приближаться а еще ничего ни хрена не сделано, то народ начинает на бюрократию класть и писать код как все нормальные люди, и только поэтому что-то вообще получается сдать, но это уже исключение а не правило :) Я не придумываю, я сам в подобном участвовал (пока не сбежал). Компания кстати весьма известная в области войны и аэро-спейс.

ДалекийГость

ЦитироватьУважаемый Далекий Гость, не очень понятно к чему вы клоните.
Я "клоню" к следующему. Использование  одного человека, программиста-математика, для создания ПО (разработка алгоритма и его программирование) эффективнее и надежнее, чем использование двух человек, математика и программиста-кодера.  

ЦитироватьНа мой взгляд результатом этого этапа работы является набор конкретных формул с конкретными цифрами в виде пригодном для программирования
Получить конкретные формулы с конкретными цифрами можно только после многократного численного моделирования, в процессе которого "формулы и цифры" будут многократно изменяться. Поэтому современый математик-инженер обязан уметь программировать.  

Цитироватьпревращение этих формул в рабочий код - отдельная задача, по-своему сложная и ответственная и с предыдущей имеющая очень мало общего.
Это миф (для программирования на языках высокого уровня), который придумали и распространяют программисты-кодеры,  чтобы не остаться без работы.

ЦитироватьВы же похоже считаете что настоящим результатом является только код который идет непосредственно в продукт, а формулы расчета - это так, несущественный промежуточный этап, при этом процесс превращения сих формул в код для целевого железа - не стоит выеденного яйца, так?
Нет, не так. Програмисты-математики создают конечный продукт - ПО. В этом процессе есть разные этапы. Непосредственно программирование - один из самых простейших.

ЦитироватьВсе равно эти формулы должны быть в наличии
Если должны быть (для себя, заказчика, начальника, отчетности, научных журналов) - значит будут. Программист-кодер для этого совершенно не нужен.

ЦитироватьА как же быть человеку которому придется потом этот код править? Каждый раз повторять заново все шаги вывода чтобы понять откуда взялся тот или иной магический коэффициент?
Для таких описаниий ПО, программист-кодер тоже не нужен. Он и не может ничего написать, для него все коеффициенты - "магические".

Дем

ЦитироватьЯ "клоню" к следующему. Использование  одного человека, программиста-математика, для создания ПО (разработка алгоритма и его программирование) эффективнее и надежнее, чем использование двух человек, математика и программиста-кодера.
Разумеется. Но где же такого найти? Как правило математики - очень хреновые программисты.
Так что пусть он программит свои формулы, а всю обвязку делает профессиональный программист.
Летать в космос необходимо. Жить - не необходимо.

ДалекийГость

ЦитироватьКак правило математики - очень хреновые программисты.
У меня другой опыт. Хороший математик-инженер - как правило, хороший программист.

Not

Цитировать
ЦитироватьКак правило математики - очень хреновые программисты.
У меня другой опыт. Хороший математик-инженер - как правило, хороший программист.
Странный спор, ей богу. Может ли хороший конструктор одновременно быть хорошим технологом? А клепальщиком тоже может? А наоборот? Так может всех технологов и клепальщиков уволить ?  :D

Туман Андромедов

Цитировать... Может ли хороший конструктор одновременно быть хорошим технологом? ....
Один из главнейших критериев, насколько хорош конструктор - это то, насколько он хороший технолог.

Frontm

Цитировать
Цитировать... Может ли хороший конструктор одновременно быть хорошим технологом? ....
Один из главнейших критериев, насколько хорош конструктор - это то, насколько он хороший технолог.
Видимо Вы мало знакомы с работой ХОРОШЕГО технолога, либо уменьшаете функционал технолога

ДалекийГость

ЦитироватьСтранный спор, ей богу. Может ли хороший конструктор одновременно быть хорошим технологом? А клепальщиком тоже может? А наоборот? Так может всех технологов и клепальщиков уволить ?
Странные аналогии. Программирование - часть деятельности математика-инженера. При чем тут технологи  и клепальщики?

Более уместная аналогия - это расчетчики. Была такая специальность. Математики давали им наборы арефметических операций, которые нужно посчитать и расчетчики считали их на арифмометрах. Сейчас эта профессия совсем прекратилась. Вычисления на калькуляторах стали обычной деятельностью математиков. С программированием тоже самое.

ДмитрийК

Цитировать
ЦитироватьУважаемый Далекий Гость, не очень понятно к чему вы клоните.
Я "клоню" к следующему. Использование  одного человека, программиста-математика, для создания ПО (разработка алгоритма и его программирование) эффективнее и надежнее, чем использование двух человек, математика и программиста-кодера.
Ну начать с того что ПО о котором идет речь в одиночку не пишется в принципе, обязательно есть команда. И в отличии от "коммерческого" софта, народ проводит бОльшую часть времени проверяя и перепроверяя работу друг друга, поэтому все в курсе кто чем занимается и в принципе все взаимозаменяемы в любой момент (а код получается на удивление лишенный индивидуальности). При наличии соответствующего документа с формулами, кроме этих непосредственно формул никакой связи между этапом разработки алгоритма и его кодированием нет вообще. И кому из команды поручить тот или иной этап - совершенно пофиг.        

Цитировать
ЦитироватьНа мой взгляд результатом этого этапа работы является набор конкретных формул с конкретными цифрами в виде пригодном для программирования
Получить конкретные формулы с конкретными цифрами можно только после многократного численного моделирования, в процессе которого "формулы и цифры" будут многократно изменяться. Поэтому современый математик-инженер обязан уметь программировать.
Эээ постойте, где это будут меняться, на орбите что ли? Я говорю о формулах которые пойдут в продукт. К этому моменту все моделирование должно быть уже проделано. И естественно математик должен уметь программировать, с этим никто не спорит. Никто не предлагает рядом с каждым гением - математиком сажать обезьянку - кодера чтобы воплощать его великие идеи в код. Но, во-первых он может использовать язык/инструмент который ему наиболее удобен (а это как правило НЕ язык конечного продукта), во вторых не заботиться об оптимизации кода (оптимизировать алгоритм) ну а в третьих ему не надо забивать себе голову контекстом - как и где сей алгоритм будет существовать, откуда и куда он будет слать данные и в каком формате, как отрабатываются ошибки и т.д. Ну а взамен появляется этап перевода "исследовательского" кода в "продуктовый". Как правило приходится переписывать начисто :)

Цитировать
Цитироватьпревращение этих формул в рабочий код - отдельная задача, по-своему сложная и ответственная и с предыдущей имеющая очень мало общего.
Это миф (для программирования на языках высокого уровня), который придумали и распространяют программисты-кодеры,  чтобы не остаться без работы.
Да откуда же вы их взяли, этих мифических кодеров, которые ни математики ни логики не знают, умеют только кнопки нажимать? Да их на пушечный выстрел к такому проекту никто не подпустит. Кстати, студентов-стажеров у нас берут как-раз на инженеров-исследователей, пусть себе сидят, графики чертят в матлабе, авось начертят что-нибудь умное, а базу кода (продуктового) им никто трогать не даст, себе дороже.


Цитировать
ЦитироватьВы же похоже считаете что настоящим результатом является только код который идет непосредственно в продукт, а формулы расчета - это так, несущественный промежуточный этап, при этом процесс превращения сих формул в код для целевого железа - не стоит выеденного яйца, так?
Нет, не так. Програмисты-математики создают конечный продукт - ПО. В этом процессе есть разные этапы. Непосредственно программирование - один из самых простейших.
Да, только почему-то в этом конечном продукте - ПО - гениальный регулятор занимает 1% от силы а остальные 99% - это "простейшее программирование", типа там ОС реального времени, файловая система, каналы связи, телеметрия, обнаружение и обработка ошибок, "безопасный режим" и прочая подобная фигня. И на все это талмудец документации сантиметров в 5, который надо прочесть от корки до корки а избранные места выучить наизусть прежде чем на кнопки нажимать. Так нафига нашему гению-математику мозги канифолить себе и другим ради 1%, пусть формулы напишет, уж там вколотим где и как надо.

Цитировать
ЦитироватьВсе равно эти формулы должны быть в наличии
Если должны быть (для себя, заказчика, начальника, отчетности, научных журналов) - значит будут. Программист-кодер для этого совершенно не нужен.
А будут формулы - не нужен математик :)

Цитировать
ЦитироватьА как же быть человеку которому придется потом этот код править? Каждый раз повторять заново все шаги вывода чтобы понять откуда взялся тот или иной магический коэффициент?
Для таких описаниий ПО, программист-кодер тоже не нужен. Он и не может ничего написать, для него все коеффициенты - "магические".
Да, только есть например правило: Никаких чисел в коде кроме 0 и 1. Все прочие должны быть определены в .h файле и прокомментированы, что означают и откуда взялись. Так что извольте либо трактат в комментариях либо ссылку на документ.

ДалекийГость

ЦитироватьНу начать с того что ПО о котором идет речь в одиночку не пишется в принципе, обязательно есть команда.
Конечно.

Цитироватьвсе в курсе кто чем занимается и в принципе все взаимозаменяемы в любой момент (а код получается на удивление лишенный индивидуальности). При наличии соответствующего документа с формулами, кроме этих непосредственно формул никакой связи между этапом разработки алгоритма и его кодированием нет вообще. И кому из команды поручить тот или иной этап - совершенно пофиг.
А это ненаучная фантастика. Ну разве, что для ПО очень простого спутника, типа тех, которые делают студенты. Программисты-кодеры конечно леко взаимозаменяемы в любой момент времени, но серьезный проект не может состоять из одних кодеров.

ЦитироватьЭээ постойте, где это будут меняться, на орбите что ли?
На орбите. По результатам летных испытаний и эксплуатации. Обычное дело.

ЦитироватьНо, во-первых он может использовать язык/инструмент который ему наиболее удобен (а это как правило НЕ язык конечного продукта)
Удобнее, когда все программисты-математики, работающие в одном проекте, используют один и тот же язык, потому что для численного моделирования одного алгоритма требуются другие смежные алгоритмы. Например, для численного моделирoвания и настройки "формул и цифр"  этого оптимального регулятора требуется с десяток других алгоритмов, относящихся как к ПО КА , так и программам, имитирующим приборы КА и среду. Если программисты-математики проводят численое моделирование на разных языках, то им придется создавать разноязычные версии одних и тек же алгоритмов. Это лишня работа, которая к тому же снижает надежность моделирования.
Если все используют один язык, то естественно удобнее, когда это язык конечного продукта. При этом очень удобно, когда все работают в одной среде программирования типа Visual C.
 
ЦитироватьДа откуда же вы их взяли, этих мифических кодеров, которые ни математики ни логики не знают
Я их взял из своего опыта. Если Вы с самого начала считали, что таких не бывает, то о чем Вы со мной спорили? Сразу бы так и написали, мы бы сьэкономили кучу времени.

Цитироватьтолько почему-то в этом конечном продукте - ПО - гениальный регулятор занимает 1% от силы а остальные 99% - это "простейшее программирование", типа там ОС реального времени
Я пишу в этой теме про программирование прикладных задач, не про ОС. Я Вам уже сообщал об этом. Меряться обьемами программ совершенно разного типа- бесмысленно. Это все равно что сравнивать, например, обьем процессора с обьемом солнечных батарей.