Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2017, 19:20   #1
R2000
 
Регистрация: 15.07.2017
Сообщений: 4
Счастье Создание логики для устройства

Данный вопрос возник при создании нового устройства.
Задача заключается в следующем: взять готовое устройство и создать такое же.
Я лично не являюсь программистом, но мне необходимо спланировать работу программиста.
Что мы запланировали на первое время.
Мы открыли меню программы с помощью которой происходит конфигурация устройства и путем выявления отправленных и полученных команд между похожими устройствами, программист стал писать код программы (или библиотеки как он сказал).
При планировании работ, я выяснил, что команда это программный код (или библиотека), который может создаваться с нуля, или копироваться и далее редактироваться. Если устройство с большим функционалом возможностей, то и библиотек с командами будет много.
Мы договорились, что например библиотеку команды switch on мы назовем 1, а библиотеку команды switch off назовем 2 и т.д.
В дальнейшем мы будем планировать задание на уровне - устройство состоит из команд 1,2……102.
ПОЯВИЛСЯ ВОПРОС: существует ли более профессиональный планировщик? Как профессиональный мир электроники планирует такие работы?
R2000 вне форума Ответить с цитированием
Старый 15.07.2017, 20:35   #2
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Есть, куча способов и методологий разработки ПО. Но после того как за планировали умножте время на 5.

В начале проводиться эскизное проектирование, но котором и оцениваются объемы работ. От 1 недели до 3-х месяцев.
Тут уже будут видны этапы. Программисты любят короткие циклы по 3 месяца, так как заказчик обычно меняет свои требования в ходе работ. Поэтому на каждом этапе стоит запланировать время для перепланировке.
20 процентов и эта задача не может быть распаралелина.

Технический проект. Технический проект ведётся с привлечением специалистов для детального планирования проекта. Выходом является технический отчёт.

Программист должен нарисовать несколько UML схем. Тем самым задача все стороне изучается. Причём следует придираться к каждой функции что-бы программист расписал её состав и набросал алгоритм. Это позволит точно спланировать время.

И да не забываем что программы это алгоритмы+данные. Вот UML так же описывает структуру данных. Её тоже надо спланировать.

И самом-собой временные диаграммы.

Так вот когда функционал структуры будут все учтёны можно рассчитать время на разработку. Учтите что обязательно надо писать тесты, нужно писать документацию, нужно писать код и его отлаживать. Причём последнее занимает гораздо больше времени.

И да эти задачи плохо распаралеливаются между работниками.

Можете почитать Фредерика Брукса «Мифический человеко-месяц».
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 15.07.2017 в 20:39.
Pavia вне форума Ответить с цитированием
Старый 15.07.2017, 21:21   #3
R2000
 
Регистрация: 15.07.2017
Сообщений: 4
По умолчанию

Не уверен что наш программист владеет UML эскизным проектированием.
Значит будем осваивать. Версия UML 2.5 по данным Википедии самая последняя. Или есть другие более удобные варианты?
Зачем программист должен делать несколько схем? Устройство же одно.
алгоритм+данные это программный код и и комментарии к этому коду?
Структура данных это как? можно какой-нибудь пример?
R2000 вне форума Ответить с цитированием
Старый 15.07.2017, 22:19   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Устройство одно и программа одна, но если она чуть сложнее, чем "помигать диодами", то она должна быть модульной. И каждый модуль должен иметь законченную структуру, которая лучше всего отображается блок-схемой. Разбиение на модули позволяет распараллелить работу между исполнителями, упростить отладку, сопровождение и модификацию программ.
Структура данных... Пожалуйста. Из готового проекта.
Уставки.
1-й байт - номер уставки - byte
2..15 байт - название уставки, отображаемое на индикаторе - ASCII string
16,17 - целая часть нижней границы уставки - word
18 - дробная часть -"- - byte
19,20,21 - то же для верхней границы
22,23,24 - то же для текущего значения
25 - флаг изменния уставки
и т.п.
Приведенный пример взят из программы для микроконтроллера, который требователен к расходованию ресурсов (память, быстродействие). У ПК с этим посвободней, но от этого требования к определенности формата данных не исключаются.
Как-то так...

Последний раз редактировалось digitalis; 16.07.2017 в 10:03.
digitalis вне форума Ответить с цитированием
Старый 15.07.2017, 22:48   #5
R2000
 
Регистрация: 15.07.2017
Сообщений: 4
По умолчанию

Если взять устройство, например релейный модуль работающий в протоколе Lon.
Ему надо написать программу низкого уровня (для микроконтроллера) и программу высокого уровня для программы конфигуратора. Эту работу может реализовать один программист (если уровень его знаний позволяет это сделать). Но мне кажется, что эту работу лучше разделить как минимум для 2-х программистов.
Они же могут делать свою работу одновременно?
И каждому из них надо поставить конкретную поэтапную задачу. Оформит которую желательно удобным графиком (структурной схемой) для удобного контроля выполнения работ.
ПО мере выполнения работ, закрывать этапы. И работа выполняется и ты в курсе что делается. Уволился человек, пришел новый и продолжил работу.
R2000 вне форума Ответить с цитированием
Старый 16.07.2017, 07:38   #6
kutani
Форумчанин
 
Регистрация: 23.01.2016
Сообщений: 608
По умолчанию

Цитата:
при создании нового устройства.
Задача заключается в следующем: взять готовое устройство и создать такое же
это называется клонирование или проще - плагиат, но никак не новое устройство.

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

p.s.: очень напомнило сего "менеджера".
kutani вне форума Ответить с цитированием
Старый 16.07.2017, 12:24   #7
R2000
 
Регистрация: 15.07.2017
Сообщений: 4
По умолчанию

kutani
Спасибо за совет!)
R2000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как на c# изменить громкость определённого звукового устройства (не того устройства, которое используется по умолчанию)? AKepchikov C# (си шарп) 1 11.03.2015 09:00
Построение таблиц и логики для специфических задач Illusiony SQL, базы данных 6 13.03.2014 00:07
Драйвер для ISA устройства. genchik Фриланс 11 02.08.2011 12:54
Создание устройства Drocr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 19 03.04.2010 16:46