реклама на сайте
подробности

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


Местный
***

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



Суть вопроса: Что и как правильно требовать разработчику от алгоритмиста?

По работе занимаюсь реализацией ЦОС алгоритмов на ПЛИСах.
Процесс разработки внутри отдела протекает следующим образом.
Имеется сектор алгоритмистов, которые на основе ТЗ на НИР, ОКР придумывают алгоритмы.
Чаще всего они обкатывают эти алгоритмы на моделях в Матлаб.
В результате своей работы они приносят в наш сектор разработчиков-программистов документ под названием "Описание алгоритма ...".
Этот документ обычно выглядит как то так:

Введение:
космические корабли бороздят просторы вселенной...

Входные данные:
А - массив на 1000 элементов (что за элементы, какого типа, какой разрядности?)
K - переменная для цикла (очень полезная информация)
с - скорость света
и т. д.

Основная часть:
переписывают листинг программы на матлабе на русский язык

Выходные данные:
В - массив на 1000 элементов (что за элементы, какого типа, какой разрядности?)


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

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

Что-то много букав написал. Суть вопроса вот в чем.
Нашел я ГОСТ 24.211-82 Требования к содержанию документа "Описание алгоритма".
Пролистал, проникся, зародилась у меня идея, каждый раз, когда приносят мне на ознакомление очередной алгоритм, требовать от его автора соблюдения этого стандарта. Одно смущает, ГОСТ старенький (я не в теме, этот советский гост все еще действителен у нас в современной России?) и относится он к АСУ (лучше бы конечно что-то обобщенное).
Может кто подскажет, что посвежее или потематичнее.

Может так же кто поделится своим опытом взаимодействия с коллегами внутри предприятия.





Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AlexandrY
сообщение Feb 25 2014, 19:01
Сообщение #2


Ally
******

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



Цитата(novartis @ Feb 25 2014, 12:23) *
Чаще всего они обкатывают эти алгоритмы на моделях в Матлаб.

Этот документ обычно выглядит как то так:

Входные данные:
А - массив на 1000 элементов (что за элементы, какого типа, какой разрядности?)
K - переменная для цикла (очень полезная информация)
с - скорость света
и т. д.

Основная часть:
переписывают листинг программы на матлабе на русский язык


Что-то не стыкуется.
В Mаtlab-е не может быть переменных с неизвестным типом.
Алгоритмы на языке matlab-а это вообще стандарт де-факто.
Зачем их еще на что-то переписывать?
Go to the top of the page
 
+Quote Post
novartis
сообщение Feb 26 2014, 05:39
Сообщение #3


Местный
***

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



Цитата(AlexandrY @ Feb 26 2014, 00:01) *
Что-то не стыкуется.
В Mаtlab-е не может быть переменных с неизвестным типом.
Алгоритмы на языке matlab-а это вообще стандарт де-факто.
Зачем их еще на что-то переписывать?


В Матлабе по умолчанию переменные имеют тип double (64-разряда).
До недавних пор алгоритмисты об этом даже не знали и не задумывались.
Абстрактный пример. Приносят алгоритм, в котором упоминается массив на 1000 элементов. Спрашиваю, что за элементы? Это углы поворота антенны. А какой диапазон углов? Ну, как какой, от 50 до 50. Сколько знаков после запятой? Не знаю. Так сколько? Ну пусть будет 5. В результате делаю пометку в алгоритме. Через n-человека-часов их алгоритм реализуется, приношу результаты расчета там-чего-то и слышу, что то как то плохо, у нас на модели точнее получалось, ты наверно ошибку какую допустил.
После разбора нескольких таких ситуаций все таки вынудили их прописывать тип переменных, диапазон возможных значений.
Но! Они прописать то это прописывают, но в модели это никак не учитывают. Как считалось на дабле, так и считается.
Разговор о том, что алгоритмисты должны учитывать погрешность вычислений на различных платформах, рассчитывать доверительные интервалы для контрольных результатов, ведется уже давно. И тут видимо опять, пока я сам за это не возьмусь, пока сам не разработаю методику, не натыкаю носом докторов наук в эту методику (спорить с доктором тех. наук очень сложно, у него железный аргумент: он доктор, а я - нет), дело с места не сдвинется.


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



Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Feb 26 2014, 06:54
Сообщение #4


Ally
******

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



Цитата(novartis @ Feb 26 2014, 07:39) *
В Матлабе по умолчанию переменные имеют тип double (64-разряда).
До недавних пор алгоритмисты об этом даже не знали и не задумывались.



Ну вот так яснее.
Опять спор кто умнее.
В Matlab есть любые целочисленные типы с плавающей и фиксированной запятой.
Я все таки склоняюсь, что алгоритмисты умнее. biggrin.gif Уж извините, но ваш пост сильно провоцирует.
Если они применили double, значит алгоритм очень медленный и они при желании смогли бы сами сгенерировать исходники в Matlab для какого нибудь дешевого ARM-а.
А если кодер сломя голову бросается это сразу делать на FPGA поскольку ничего кроме них не знает, то это уже его личная проблема.

Простой контрольный вопрос: почему сами не взяли модель в matlab и сами не верифицировали свой алгоритм в режиме Hardware-in-the-loop?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Feb 26 2014, 07:13
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(AlexandrY @ Feb 26 2014, 10:54) *
В Matlab есть любые целочисленные типы с плавающей и фиксированной запятой.
Я все таки склоняюсь, что алгоритмисты умнее. biggrin.gif Уж извините, но ваш пост сильно провоцирует.

А если кодер сломя голову бросается это сразу делать на FPGA поскольку ничего кроме них не знает, то это уже его личная проблема.

Простой контрольный вопрос: почему сами не взяли модель в matlab и сами не верифицировали свой алгоритм в режиме Hardware-in-the-loop?

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
|- - novartis   ЦитатаНу вот так яснее. Опять спор кто умнее. В Ma...   Feb 26 2014, 08:00
|- - Maverick   Цитата(novartis @ Feb 26 2014, 10:00) Есл...   Feb 26 2014, 08:36
|- - AlexandrY   Цитата(novartis @ Feb 26 2014, 10:00) Пос...   Feb 26 2014, 09:49
- - 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 02:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.0143 секунд с 7
ELECTRONIX ©2004-2016