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

 
 
> Как описывать архитектуру девайса
Hexel
сообщение Jun 13 2018, 16:36
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 13-03-12
Из: Украина
Пользователь №: 70 785



Добрый день!

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

Если конкретно, вот полная структурная схема девайса, нарисованная в визио. Компоненты в синем ящике - периферия проца, пакаджи - софтовые модули. Компоненты на свободном поле - участки схемы, в белых ящичках - коннекторы и соответствующие им входные цепи. Входа компонентов обозначены как интерфейсы (кружками), я старался размещать их слева. Например, модуль OutExt имеет процедуру SetOut, которая вызывается из модулей UserIF и Evt, и выдает наружу сигналы через выводы Ch1 и Ch2 и через периферию SPI. Местами путаница, но это промежуточный вариант, т. к. визио показался мне не самым удобным инструментом для даной задачи. Вот я и хочу спросить, кто в каком редакторе составляет такие диаграммы? Может быть, хотя бы для чисто софтовых проектов?
На мой взгляд это должен быть UML, пока что только для структуры. За описание процессов я может потом спрошу
Прикрепленные файлы
Прикрепленный файл  P171207__________.pdf ( 21.75 килобайт ) Кол-во скачиваний: 105
 


--------------------
нет повести печальнее на свете, чем повесть о запавшем ресете
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
p_v
сообщение Jun 18 2018, 07:31
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 16-06-18
Из: СПб
Пользователь №: 105 099



Давайте начнем с нуля. Для начала, вы должны четко представлять, какой осязаемый профит вы хотите (можете) получить от рисования картинок. Иначе это будет рисование ради рисование. То есть:
  • Что вы потом станете с этими картинками делать sm.gif
  • Где рисование картинок будет эффективнее других подходов
Например:
  • Рисование железок на блок-схемах - обычно фиговая идея, потому что в редактарах схем группировку можно сделать быстрее и нагляднее.
  • Рисование алгоритмов - фиговая идея, потому что это жутко неудобно
Короче, рисовать надо (полезно) DATA FLOW. То есть, протекание данных и их трансформацию. Данные - это стрелочки с подписями, блоки - куски девайса которые данные трансформируют. Что это нам дает:
  • Можно быстро добиться, чтобы соединения между блоками были максимально простые
  • Проверка целостности - выходы должны генериться на основе входов, а не магически
  • Фиксирование API - для каждой "стрелочки" станет понятно, какие данные внутри.
  • Документация, если требуется донести суть до кого-то другого
Единственное правило, которому стоит сдедовать - никогда не смешивать данные и события на одной диаграмме. На самом деле, любую (практически) систему можно целиком представить как диаграмму данных или диаграмму событий. Проблема с событиями в том, что их можно по ошибке зациклить или напихать лишних. С данными подобного не случится или будет сразу видно.

Например, у нас есть АЦП, с которого 100 раз в секунду снимаются данные.
  • Рисовать "таймер" - очевидная идея. Но глупая sm.gif . Потому что таймер генерирует события, а нам надо рисовать диаграмму данных.
  • "Правильно" будет просто нарисовать стрелочку, на которой подписать что это данные от АЦП (подробности - по обстоятельствам)
Еще один пример - https://github.com/nodeca/relimit/tree/master/docs#data-flow. Кучерявый распределенный rate limiter, где надо гарантировать отсутствие коллизий. Обратите внимание, на диаграмме нет алгоритмов. Там именно протекание данных. Но по такой диаграмме потом криво закодить невозможно sm.gif . Тот случай, когда задача может взорвать мозг, но если проектировать грамотно, то получается очень просто. Обратите внимание - это кажущаяся простота, результат грамотного подхода, а не того что задача плевая.

Инструменты:
  • Для диаграмм использую draw.io, потому что все работы совместные и надо быстро шарить. Кстати, дополнительный стимул, рисовать кратко и только суть sm.gif . IMHO редакторы UML для data flow скорее вредны чем полезны, т.к. забивают мозг псевдополезными вещами.
  • Если задача слишком сложная и в голове совсем вакуум - тогда сначала в mind maps разложить что вообще хочется. Вот это https://coggle.it/ - очень приятная рисовалка, с возможностью делиться ссылками.


Сообщение отредактировал p_v - Jun 18 2018, 07:33
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Hexel   Как описывать архитектуру девайса   Jun 13 2018, 16:36
- - AlexandrY   Цитата(Hexel @ Jun 13 2018, 19:36) Компон...   Jun 13 2018, 20:18
- - a123-flex   Цитата(Hexel @ Jun 13 2018, 20:36) Такой ...   Jun 14 2018, 03:38
|- - AlexandrY   Цитата(a123-flex @ Jun 14 2018, 06:3...   Jun 14 2018, 06:16
|- - a123-flex   Цитата(AlexandrY @ Jun 14 2018, 10:16) Кс...   Jun 14 2018, 07:34
|- - AlexandrY   Цитата(a123-flex @ Jun 14 2018, 10:3...   Jun 14 2018, 07:43
|- - a123-flex   Цитата(AlexandrY @ Jun 14 2018, 11:43) Не...   Jun 14 2018, 07:58
|- - AlexandrY   Цитата(a123-flex @ Jun 14 2018, 10:5...   Jun 14 2018, 08:18
- - Hexel   Ексель - хороший вариант, но на данный момент я со...   Jun 14 2018, 06:46
|- - a123-flex   Цитата(Hexel @ Jun 14 2018, 10:46) Что ка...   Jun 14 2018, 06:55
|- - AlexandrY   Цитата(Hexel @ Jun 14 2018, 09:46) Что ка...   Jun 14 2018, 07:31
- - one_eight_seven   Цитата900 пинов эт когда вы DDR хотите сделать на ...   Jun 14 2018, 10:58
|- - AlexandrY   Цитата(one_eight_seven @ Jun 14 2018, 13...   Jun 14 2018, 11:34
|- - a123-flex   Цитата(one_eight_seven @ Jun 14 2018, 14...   Jun 14 2018, 12:08
- - one_eight_seven   ЦитатаВ это трудно поверить, но в yed нельзя даже ...   Jun 14 2018, 14:37
- - Hexel   one_eight_seven Нормальная такая штука этот yed. П...   Jun 14 2018, 16:18
|- - a123-flex   Цитата(Hexel @ Jun 14 2018, 19:18) А что ...   Jun 14 2018, 19:04
|- - AlexandrY   Цитата(p_v @ Jun 18 2018, 10:31) Инструме...   Jun 18 2018, 08:22
||- - p_v   Давайте не будем пытаться устраивать холивар и тем...   Jun 18 2018, 08:53
||- - AlexandrY   Цитата(p_v @ Jun 18 2018, 11:53) Давайте ...   Jun 18 2018, 10:26
||- - p_v   Цитата(Hexel @ Jun 13 2018, 19:36) Вот я ...   Jun 18 2018, 10:59
|- - a123-flex   Цитата(p_v @ Jun 18 2018, 10:31) На самом...   Jun 20 2018, 10:35
|- - p_v   Цитата(a123-flex @ Jun 20 2018, 13:3...   Jun 20 2018, 11:10
||- - a123-flex   Цитата(p_v @ Jun 20 2018, 14:10) Это из м...   Jun 20 2018, 11:38
||- - p_v   Цитата(a123-flex @ Jun 20 2018, 14:3...   Jun 20 2018, 12:17
|||- - a123-flex   Цитата(p_v @ Jun 20 2018, 15:17) Да сам н...   Jun 20 2018, 12:38
|||- - AlexandrY   Цитата(p_v @ Jun 20 2018, 15:17) Мне врем...   Jun 20 2018, 12:41
|||- - p_v   Цитата(AlexandrY @ Jun 20 2018, 15:41) Но...   Jun 20 2018, 13:21
|||- - AlexandrY   Цитата(p_v @ Jun 20 2018, 16:21) Просто н...   Jun 20 2018, 13:48
|||- - p_v   Хоссподя... ну вот человек только что с треском об...   Jun 20 2018, 14:44
||- - AlexandrY   Цитата(a123-flex @ Jun 20 2018, 14:3...   Jun 20 2018, 12:24
|- - AlexandrY   Цитата(a123-flex @ Jun 20 2018, 13:3...   Jun 20 2018, 11:28
- - one_eight_seven   ЦитатаСкажем честно 1. Кто вам дал право определя...   Jun 18 2018, 10:28
|- - AlexandrY   Цитата(one_eight_seven @ Jun 18 2018, 13...   Jun 18 2018, 11:04
- - p_v   Давайте допустим такой вариант, что я могу как мин...   Jun 18 2018, 11:30
|- - AlexandrY   Цитата(p_v @ Jun 18 2018, 14:30) Давайте ...   Jun 18 2018, 12:22
|- - p_v   Цитата(AlexandrY @ Jun 18 2018, 15:22) Пр...   Jun 18 2018, 13:23
||- - AlexandrY   Цитата(p_v @ Jun 18 2018, 16:23) Это ваше...   Jun 18 2018, 19:32
|- - a123-flex   Цитата(AlexandrY @ Jun 18 2018, 15:22) Ре...   Jun 19 2018, 20:33
- - p_v   Теперь пройдемся еще раз по диаграммам. А точнее, ...   Jun 18 2018, 15:41
- - p_v   Теперь по инструментам. Лично у меня очень экстрем...   Jun 18 2018, 18:13
- - one_eight_seven   Цитатаданном проекте речь о проектировании машины ...   Jun 18 2018, 19:55
- - p_v   У ВАС на ВАШИХ задачах - свой опыт. У МЕНЯ на МОИХ...   Jun 18 2018, 20:00
|- - AlexandrY   Цитата(p_v @ Jun 18 2018, 23:00) Я отвеча...   Jun 18 2018, 20:18
|- - p_v   Цитата(AlexandrY @ Jun 18 2018, 23:18) А ...   Jun 18 2018, 21:02
- - Hexel   сейчас я между прочим пытаюсь применить sybase PD1...   Jun 20 2018, 07:04
|- - AlexandrY   Цитата(Hexel @ Jun 20 2018, 10:04) сейчас...   Jun 20 2018, 08:57
- - Hexel   p_v Пожалуста, не нужно развивать этот спор. Вы по...   Jun 20 2018, 15:37
- - p_v   Цитата(Hexel @ Jun 20 2018, 18:37) ... Ко...   Jun 20 2018, 16:31
- - a123-flex   Цитата(p_v @ Jun 20 2018, 20:31) Когда за...   Jun 20 2018, 17:54
- - p_v   Цитата(a123-flex @ Jun 20 2018, 20:5...   Jun 20 2018, 18:08
- - a123-flex   Цитата(p_v @ Jun 20 2018, 22:08) Железку,...   Jun 20 2018, 18:19
- - p_v   Цитата(a123-flex @ Jun 20 2018, 21:1...   Jun 20 2018, 19:32


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

 


RSS Текстовая версия Сейчас: 18th June 2025 - 20:03
Рейтинг@Mail.ru


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