Серокой> правильно, всё так и происходит, с поправкой на то, что это не так уж и много людей, кроме того, сами разработчики железа запускают эти базы. Тесты написаны также несколько искусственно, то есть как я говорил - по бумажке, плюс база стохастических тестов.
Вот видишь, ты даже не понял, что речь идёт о тестировании софта, а не железа. Это как должно быть, если хочешь нормальный софт с минимум ошибок.
Серокой> Но я не понял фразы - "кто программистам даст столько рессурсов и времени?" Почему именно программистам? Прости, но с равной долей тут должны стоять (и стоят!) железячники! Ответственность за баг подёт на них, а вовсе не на программистов-верификаторов.
Потому программистам, что я описал
нормальный процесс разработки софта. Embedded софт должен проходить дополнительные проверки. Ну и QA (не весь, а специальные люди) должны быть частью процесса
проектирования софта. Понимаешь, не разработки, а проектирования. Ну, и как говорит довольно новые методологии (все ветки extremeprogramming) — тесты должны быть разработаны даже до разработки софта. Я с этим согласен (хотя не везде согласен с XP методологией и её отпрысков). Но эта тема, на которую можно говорить очень много — диссер у моего научного руководителя был посвящён верификации программ, а позже куча работ — созданию методологий по производсту надёжных программ.
Серокой> А ничего, что железо чаще меняется не из-за глюков, а из-за требований самих программистов? То есть когда найдена ошибка - программист ничего не делает. Он тыкает пальцем и ждёт, пока её исправят. Его программа при этом никак не меняется. Это потом начинается: хочу аппаратное копирование кусков! Хочу сопроцессор для быстрого фурье! А здесь у вас не правильные регистры, потому как скачанный мной из Интернета драйвер на вашей железке не работает!
Не, ничего.
Это часто происходит по той причине, что товарищи железячники берут short cuts. Проще в железе воплотить. Ну, и не производят часто
совместного анализа требований и спецификаций на решение задачи. Поэтому и происходят такие возвраты. Пример au, как он решал задачу путём применения ПЛИС — классический пример.
Серокой> Наезд в том, что заявляется, что у железячников лафа, им десяток лет на разработку, а программистам столько никто не даст. )
Никто не говорит, что у них лафа. Но и почти всегда им давать больше времени и рессурсов тоже не правильно. Это надо осознать просто. Поскольку создаётся программно-аппаратный комплекс. Когда для решения задач подходит стандартное железо, то другое дело. Ты пытаешься на это дело перейти, но, ИМХО, тут больше разговор именно о программно-аппаратном комплексе.
Серокой> Дело в том, что железо редко меняется по прихоти. В ТЗ означен типа памяти, ну и так далее. Я ж выше писал, что изменения - чаще всего просто правка багов. Или внесение фич по требованию программистов.
О, если бы так же было для программеров, то и вопросов бы не было. Только очень мало людей могут это сделать. Т.е. сделать, как в ТЗ (приличном ТЗ, а не "сделайте так, чтобы работало и решало") — проблем не возникает. Проблема в том, что тут пытаются решить задачи, которые сами постановщики ТЗ не понимают, не знают, как решить. Уровень абстракции намного выше, оперируют блоками, которые, по сути, сами офигенные задачи. А потом проблемы — прямо на фейсе.
Серокой> Параллельно конечно же ведётся. Но грубо говоря, 5% последних багов занимают 95% времени. То есть когда железка дышит,то начинается кое-какая жизнь. Например, загрузка ОС на ней. Но в общем-то ОС, несмотря на свою сложность - это конечный набор ситуаций, и ошибки есть, которые будут выловлены потом, на каких-то прикладных задачах, когда железо уже будет не на стадии ПЛиС.
Не, ОС — это только кажеться, что это набор конечных ситуаций. Т.е. математически это корректно. Но вот скажи ты мне — у вас временные диаграммы в ОСи построены? Кто-то проверял на непротиворечивость? Невозможность появления dead lock-ов, плохой конкуренции за рессурсами? А веть это составные части обязательных проверок параллельных систем.
Серокой> Надо. Но у него это получается быстрее. И проще исправить ошибку.
Оно получиться быстрее, если выделить ему столько рессурсов, сколько я упомянул ранее. У вас такое делается?
Серокой> Ты наверное не понял, что я имел в виду. Суть в том была, что железячников тоже подгоняют.
Почему же не понял? Понял. Подгоняют всех.
Серокой> ТИ когда на макете с ПЛИС более-менее задышало, тут всё, сроки поджали (а срок обычно около года, не больше), всё, надо отправлять на изготовление, изготовили, спаяли, а тут программистам наконец-то захотелось проверить, скажем, запуск "исков" в нестандартном режиме, и всё полетело. А поздно, железо готово и его фиг исправишь.
Ы? А почему это проблема программистов? Налицо, ИМХО, не понимание. Это проблема тестировщиков железа. Я понимаю, что есть дорогие ошибки. Но тут и кроется главное наше несогласие — в этот момент почти все считают, что программы легче исправить. Не понимая, что надо прогнать с самого начала — начиная с архитектуры (и дизайна). Кто даст столько времени и рессурсов, чтобы это сделать? Вот и лепят заплату, которая позже вылезет боков с вероятностью 90%.
Серокой> Ему дадут больше! Ему, мало того, дано по статусу. У него есть железка, он под неё пишет, а если ошибку нашёл, то пропатчил - и всё. Я выше тоже описал. )
Да не работает так.
Вот как создал исправление, то, по хорошему, надо посмотреть — а как влияет на архитектуру, нарушение взаимотношения блоков, временные диаграмы, статус конечных автоматов (я тебе могу рассказать, как мы полтора месяца недавно елозили из-за такой ошибки, пока я не проанализировал конечный автомат состояний реализации сетевого протокола (нашего) и просто не запретил другой стороне, пользуясь статусом principal software engineer, делать то, что они делали).