|
Описание алгоритма для разработчика, Что и как правильно требовать разработчику от алгоритмиста? |
|
|
|
Feb 25 2014, 10:23
|

Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845

|
Суть вопроса: Что и как правильно требовать разработчику от алгоритмиста?
По работе занимаюсь реализацией ЦОС алгоритмов на ПЛИСах. Процесс разработки внутри отдела протекает следующим образом. Имеется сектор алгоритмистов, которые на основе ТЗ на НИР, ОКР придумывают алгоритмы. Чаще всего они обкатывают эти алгоритмы на моделях в Матлаб. В результате своей работы они приносят в наш сектор разработчиков-программистов документ под названием "Описание алгоритма ...". Этот документ обычно выглядит как то так:
Введение: космические корабли бороздят просторы вселенной...
Входные данные: А - массив на 1000 элементов (что за элементы, какого типа, какой разрядности?) K - переменная для цикла (очень полезная информация) с - скорость света и т. д.
Основная часть: переписывают листинг программы на матлабе на русский язык
Выходные данные: В - массив на 1000 элементов (что за элементы, какого типа, какой разрядности?)
Я понимаю, когда с такими листочками приходят и просят прикинуть, сколько времени будет выполняться этот алгоритм на плисине, влезет ли по ресурсам. Можно считать это рабочим процессом. В ходе обсуждений и замечаний удается выяснить многие уточнения и ограничения.
Но в конце концов точно такой же алгоритм даже без тех самых уточнений приносят на подпись. Начальство умоляет подписать, так как срочно (ну как всегда) требуется хоть чем то отсчитаться. И все вокруг уверяют, что это только первая версия, предварительная, и потом выйдет настоящий полный алгоритм. А потом про это все забывают, кроме реализатора, то есть меня.
Что-то много букав написал. Суть вопроса вот в чем. Нашел я ГОСТ 24.211-82 Требования к содержанию документа "Описание алгоритма". Пролистал, проникся, зародилась у меня идея, каждый раз, когда приносят мне на ознакомление очередной алгоритм, требовать от его автора соблюдения этого стандарта. Одно смущает, ГОСТ старенький (я не в теме, этот советский гост все еще действителен у нас в современной России?) и относится он к АСУ (лучше бы конечно что-то обобщенное). Может кто подскажет, что посвежее или потематичнее.
Может так же кто поделится своим опытом взаимодействия с коллегами внутри предприятия.
|
|
|
|
|
 |
Ответов
|
Feb 25 2014, 19:01
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(novartis @ Feb 25 2014, 12:23)  Чаще всего они обкатывают эти алгоритмы на моделях в Матлаб.
Этот документ обычно выглядит как то так:
Входные данные: А - массив на 1000 элементов (что за элементы, какого типа, какой разрядности?) K - переменная для цикла (очень полезная информация) с - скорость света и т. д.
Основная часть: переписывают листинг программы на матлабе на русский язык Что-то не стыкуется. В Mаtlab-е не может быть переменных с неизвестным типом. Алгоритмы на языке matlab-а это вообще стандарт де-факто. Зачем их еще на что-то переписывать?
|
|
|
|
|
Feb 26 2014, 05:39
|

Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845

|
Цитата(AlexandrY @ Feb 26 2014, 00:01)  Что-то не стыкуется. В Mаtlab-е не может быть переменных с неизвестным типом. Алгоритмы на языке matlab-а это вообще стандарт де-факто. Зачем их еще на что-то переписывать? В Матлабе по умолчанию переменные имеют тип double (64-разряда). До недавних пор алгоритмисты об этом даже не знали и не задумывались. Абстрактный пример. Приносят алгоритм, в котором упоминается массив на 1000 элементов. Спрашиваю, что за элементы? Это углы поворота антенны. А какой диапазон углов? Ну, как какой, от 50 до 50. Сколько знаков после запятой? Не знаю. Так сколько? Ну пусть будет 5. В результате делаю пометку в алгоритме. Через n-человека-часов их алгоритм реализуется, приношу результаты расчета там-чего-то и слышу, что то как то плохо, у нас на модели точнее получалось, ты наверно ошибку какую допустил. После разбора нескольких таких ситуаций все таки вынудили их прописывать тип переменных, диапазон возможных значений. Но! Они прописать то это прописывают, но в модели это никак не учитывают. Как считалось на дабле, так и считается. Разговор о том, что алгоритмисты должны учитывать погрешность вычислений на различных платформах, рассчитывать доверительные интервалы для контрольных результатов, ведется уже давно. И тут видимо опять, пока я сам за это не возьмусь, пока сам не разработаю методику, не натыкаю носом докторов наук в эту методику (спорить с доктором тех. наук очень сложно, у него железный аргумент: он доктор, а я - нет), дело с места не сдвинется. Вообщем, спасибо всем за ответы. Пршел к такому решению. Необходимо разработать методику описания алгоритма. Согласовать ее с коллегами-алгоримистами, руководством. На уровень СТП выходить не буду, никто меня туда не выпустит. Во всяком случае сперва ее необходимо отладить в рамках отдела, если всех будет устраивать, споров, обоюдной неприязни станет меньше - тогда, можно уже делать как СТП.
|
|
|
|
|
Feb 26 2014, 06:54
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(novartis @ Feb 26 2014, 07:39)  В Матлабе по умолчанию переменные имеют тип double (64-разряда). До недавних пор алгоритмисты об этом даже не знали и не задумывались. Ну вот так яснее. Опять спор кто умнее. В Matlab есть любые целочисленные типы с плавающей и фиксированной запятой. Я все таки склоняюсь, что алгоритмисты умнее.  Уж извините, но ваш пост сильно провоцирует. Если они применили double, значит алгоритм очень медленный и они при желании смогли бы сами сгенерировать исходники в Matlab для какого нибудь дешевого ARM-а. А если кодер сломя голову бросается это сразу делать на FPGA поскольку ничего кроме них не знает, то это уже его личная проблема. Простой контрольный вопрос: почему сами не взяли модель в matlab и сами не верифицировали свой алгоритм в режиме Hardware-in-the-loop?
|
|
|
|
|
Feb 26 2014, 08:00
|

Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845

|
Цитата Ну вот так яснее. Опять спор кто умнее. В Matlab есть любые целочисленные типы с плавающей и фиксированной запятой. Я все таки склоняюсь, что алгоритмисты умнее. Из каких моих слов вы взяли, что я кому то приписываю низкий интеллект? Цитата Уж извините, но ваш пост сильно провоцирует. Всегда расписываю ситуацию так, чтобы ее мог понять и школьник. Уж извините и вы меня за это. Цитата А если кодер сломя голову бросается это сразу делать на FPGA поскольку ничего кроме них не знает, то это уже его личная проблема. Зачем вы это написали? Вы считаете меня именно таким кодером? Хотите дать мне понять, что мне не стоит задавать вопросы на форуме - месте, где люди обмениваются опытом, знаниями? Цитата Простой контрольный вопрос: почему сами не взяли модель в matlab и сами не верифицировали свой алгоритм в режиме Hardware-in-the-loop? Последнее мое взаимодействие с алгоритмистами сводилось к задаче поиска собственных чисел и собственных векторов. Знаете какая модель у них была? [V0,D0] = eig(A0) На плис я реализовал алгоритм по самому простому методу Якоби. Какой метод используется в eig - представления не имею. Результаты из матлаба и из плис не совпали, и даже проблема не в погрешности вычислений. Они были просто разные. Но то, что я реализовал поиск собственных чисел и собственных векторов верно, я уверен, так как это легко проверить, подставив результаты в формулу-опрделение собственных чисел-векторов. У меня так же будет простой контрольный вопрос: вы мой пост читали? Цитата В Матлабе по умолчанию переменные имеют тип double (64-разряда). До недавних пор алгоритмисты об этом даже не знали и не задумывались. А вы пишите: Цитата Если они применили double, значит алгоритм очень медленный Если солнце всходит и заходит, значит солнце вращается вокруг земли.
|
|
|
|
Сообщений в этой теме
novartis Описание алгоритма для разработчика Feb 25 2014, 10:23 TSerg Когда-то это все было обязательным, потому и спутн... Feb 25 2014, 10:33 iosifk Цитата(novartis @ Feb 25 2014, 14:23) Сут... Feb 25 2014, 10:33 Maverick Цитата(novartis @ Feb 25 2014, 12:23) Сут... Feb 25 2014, 12:14 ASN novartis
Видимо, дело тут в том, что Ваши алгоритм... Feb 25 2014, 16:13   iosifk Цитата(AlexandrY @ Feb 26 2014, 10:54) В ... Feb 26 2014, 07:13    Maverick Цитата(novartis @ Feb 26 2014, 10:00) Есл... Feb 26 2014, 08:36 fowler Самый простой вариант - сделать СТП (стандарт пред... Feb 25 2014, 19:30 Maverick Цитата(fowler @ Feb 25 2014, 21:30) Самый... Feb 25 2014, 22:27 novartis Обид нет, одно негодование Надеюсь, на меня тоже ... Feb 26 2014, 08:44 iosifk Цитата(novartis @ Feb 26 2014, 12:44) , а... Feb 26 2014, 08:53 TSerg Алгоритмы-алгоритмам рознь.
Здесь придется делитьс... Feb 26 2014, 14:36 yes в такой годный тред хочется немного набросить
я ... Feb 26 2014, 15:21 SM Цитата(yes @ Feb 26 2014, 19:21) это я к ... Feb 26 2014, 15:44  yes Цитата(SM @ Feb 26 2014, 19:44) Если руко... Feb 28 2014, 15:49 ASN yes
Хмм...
Ну если Вы реализовали (а значит и разо... Feb 26 2014, 17:03  Maverick Цитата(ASN @ Feb 26 2014, 19:03) Ну а про... Feb 27 2014, 07:30 syoma Цитата(novartis @ Feb 25 2014, 12:23) Име... Aug 8 2014, 07:48 VNS Цитата(novartis @ Feb 25 2014, 14:23) Сут... Sep 12 2014, 01:32
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|