Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники ELECTRONIX.ru _ Управление проектами _ Как описывать архитектуру девайса

Автор: Hexel Jun 13 2018, 16:36

Добрый день!

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

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

 P171207__________.pdf ( 21.75 килобайт ) : 105
 

Автор: AlexandrY Jun 13 2018, 20:18

Цитата(Hexel @ Jun 13 2018, 19:36) *
Компоненты на свободном поле - участки схемы, в белых ящичках - коннекторы и соответствующие им входные цепи. Входа компонентов обозначены как интерфейсы (кружками), я старался размещать их слева.

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

А рисовать в Altium-е.

Автор: a123-flex Jun 14 2018, 03:38

Цитата(Hexel @ Jun 13 2018, 20:36) *
Такой вопрос, кто как составляет структуру, алгоритмы высокого уровня для своих девайсов? Я вот долго накатывал какие-то узлы, блоки, из которых можно потом сооружать новые девайсы с минимальными доработками. Но доработки постоянно приходилось вносить внушительные. Оказалось, что я ни разу не анализировал все взаимосвязи ни аппаратных, ни программных частей - просто рисовал в тетрадке и по ходу рисовал схему, писал код. Пока оно все в голове помещалось. Сейчас я уже понимаю, чтобы была уверенность в том, что все будет работать правильно, в голову всего набивать не надо, а надо в цифровом виде.

Я для себя стал сводить проекты в Excel-е: делаю табличку: сверху вниз тип узла, по горизонтали девайсы, в табличке количество: Spi 2 Adc 3, и тд.
Так описывается семейство устройств.

На строчку ниже удобно в похожем виде описать каждое устройство: сверху вниз тип узла (одинаково с 1), по горизонтали функция каждого конкретного канала.
Так в таблице получается как сводная информация по семейству устройств, так и расшифровка узлов каждого.

Есть проблема с иерархией: вход может быть adc с разными функциями (усилитель, делитель, сух.конт...) но пока у меня это укладывается в плоскую схему: все они подкласс In: InAdcAmp, InDiscrDiv....

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

Родился этот подход из таблицы для всех девайсов, которые стояли в очереди на разработку (их в какой-то момент стало много).
Когда все потребности сведены в такую таблицу, она хорошо показывает, где можно малой кровью сделать одну универсальную плату на несколько устройств, а где неизбежно придется делать несколько плат, тк требования по ресурсам несовместимые: меняя столбцы местами, можно скомпоновать таблицу так, что она разобьется на явные подгруппы: рядом будет стоять то что хорошо совпадает, и будет несколько сильно разных подгрупп.

Набор узлов, их функции, и алгоритм их работы ИМХО на схеме совмещать бессмысленно: они хоть и связаны, но суть и производные, соотв. складывать их вместе теплое с мягким.

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

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

Я имею в виду, что нормальные иерархические блоки: схема+плата я не видел ни в альтиуме ни в менторе, а кэденс мы увы не разумеем(

Автор: AlexandrY Jun 14 2018, 06:16

Цитата(a123-flex @ Jun 14 2018, 06:38) *
Когда все потребности сведены в такую таблицу, она хорошо показывает, где можно малой кровью сделать одну универсальную плату на несколько устройств,

Кстати да, хороший вариант.
Сделать универсальный процессорный модуль и сделать в нем базовый программный фреймворк с RTOS, GUI, FS, RF, CAN и проч.
Тогда и диаграммы станут очень компактными и софт будет просто небольшой надстройкой над фреймворком
А новые платы типа такой можно будет шлепать каждые две недели.



Автор: Hexel Jun 14 2018, 06:46

Ексель - хороший вариант, но на данный момент я составляю в нем спецификацию модулей - перечень стеков, процедур, т. п. и так называемую карту переходов - по вертикали состояния устройства (вкл, работает, ошибка), а по горизонтали приходящие сигналы. На пересечении получается состояние, в которое переходит девайс (узел) в ответ на сигнал. Еще отдельно колонкой условия перехода. Потом таблица соответствий состояний узлов к состояниям верхнего уровня.
Что касается полной картины, чтоб заранее увидеть грабли, которые обычно вылазят уже на стадии кодирования/капчи (схемы)/трассировки/использования =) , то я не смог такую диаграмму придумать в екселе. Как говорится, картинка стоит тысячи слов. Мешанина теплого и мягкого вытекает из того, что девайс и есть суть такой мешанины, и в голове она как раз не помещается. Диаграмма дает возможность анализа косяков, как например, в очередной раз взглянув на представленную мной картинку, заметил кольцевание между модулями, и теперь думаю дальше, как его избежать.
Наподобие таблицы периферии я такое тоже сооружал, по ходу разработки эта таблица перерабатывается, и важно поддерживать ее актуальность.

Автор: a123-flex Jun 14 2018, 06:55

Цитата(Hexel @ Jun 14 2018, 10:46) *
Что касается полной картины, чтоб заранее увидеть грабли, которые обычно вылазят уже на стадии кодирования/капчи (схемы)/трассировки/использования =) , то я не смог такую диаграмму придумать в екселе. Как говорится, картинка стоит тысячи слов. Мешанина теплого и мягкого вытекает из того, что девайс и есть суть такой мешанины, и в голове она как раз не помещается.

Если Вам нужна предельно сжатая структура для облегчения восприятия, то имхо ничего лучше иерархии в природе на эту тему нет.
Желательно иметь динамическую иерархию со сворачиваемыми ветвями - например, notepad++ для кода такое делает прекрасно. И непонятно, что мешает все - и структуру и алгоритм описать текстом.

Также project libre умеет подузлы сворачивать разворачивать.

ActiveHdl ещё в своих блочных диаграммах такое умеет вроде - там и иерархию и алгоритм в картинки впихнуть можно, и они динамические - по ним ходить можно. Ну и да - альтиум.

Автор: AlexandrY Jun 14 2018, 07:31

Цитата(Hexel @ Jun 14 2018, 09:46) *
Что касается полной картины, чтоб заранее увидеть грабли, которые обычно вылазят уже на стадии кодирования/капчи (схемы)/трассировки/использования =) ,

Вместо MBI5039 и регистра клавиатуры я бы предложил AS1115-BSST
Все что можно перевести на локальные шины типа I2C и SPI. Подумать о сопроцессоре и расширяемости.

Общий принцип - модуляризация. Выделить и изолировать отдельные функции дивайса.
Скажем GUI я бы не рисовал на общей диаграмме.
У GUI логичнее рисовать дерево окон и меню, а не какими сигналами оно связано с другими задачами.
GUI не риалтаймная часть системы, зачем его так акцентировать.

Стейт машины рисовать в Excel тоже как-то странновато.
Их рисуют в Matlab StateFlow или на худой конец в IAR Visual State. Там хотя бы из них сразу код генерится и симулировать работу можно.
И даже так мне не удавалось долго сохранять эквивалентность этих моделей и их реализации в дивайсах.
Поскольку потом софт в дивайсе сверху донизу наполняется отладочными хуками, логами, ответвлениями, адаптерами к нижнему API и проч. оснасткой которая никак не лезет в чистые модели.


Автор: a123-flex Jun 14 2018, 07:34

Цитата(AlexandrY @ Jun 14 2018, 10:16) *
Кстати да, хороший вариант.
Сделать универсальный процессорный модуль и сделать в нем базовый программный фреймворк с RTOS, GUI, FS, RF, CAN и проч.

Это не обязательно относится к процессорному мезонину. Мне это пригодилось в управляющих платах. Да и вообще, концепция мезонина, такая прекрасная на первый взгляд, имеет недостатки: цена, габарит, теплоотвод, разьемная ёмкость, надёжность итд.

Кстати посмотрел ещё раз схему ТС - она очень даже неплоха, сильно ее не сократить.

Автор: AlexandrY Jun 14 2018, 07:43

Цитата(a123-flex @ Jun 14 2018, 10:34) *
Это не обязательно относится к процессорному мезонину. Мне это пригодилось в управляющих платах. Да и вообще, концепция мезонина, такая прекрасная на первый взгляд, имеет недостатки: цена, габарит, теплоотвод, разьемная ёмкость, надёжность итд.

Не, главный "недостаток" здесь - это отсутствие видения горизонта разработчиком.
Если разработчик не видит свои разработки дальше чем на год или два, то он и не делает такие модули.
Но модули, конечно, свои должны быть.

Автор: a123-flex Jun 14 2018, 07:58

Цитата(AlexandrY @ Jun 14 2018, 11:43) *
Не, главный "недостаток" здесь - это отсутствие видения горизонта разработчиком.
Если разработчик не видит свои разработки дальше чем на год или два, то он и не делает такие модули.
Но модули, конечно, свои должны быть.

Вам никогда не приходит в голову, что ваши детсадовские походы уже много раз пройдены ?

Если нет, подскажу: попробуйте впихнуть в ваш разъем 900 пинов, мультигигабитную линию без ущерба длине, горячий камень, или просто процессор с бОльшим количеством выводов....

Идите в школу.

Консультировать нужно в чем хорошо разбираетесь - по крутилкам, шевелилкам и ble. А про ваши достоинства как разработчика тяжелых плат EvilWreker уже всё написал.

Автор: AlexandrY Jun 14 2018, 08:18

Цитата(a123-flex @ Jun 14 2018, 10:58) *
Если нет, подскажу: попробуйте впихнуть в ваш разъем 900 пинов, интерфейс ddr3, мультигигабитную линию без ущерба длине, горячий камень, или просто процессор с бОльшим количеством выводов....

900 пинов эт когда вы DDR хотите сделать на одной плате, а процессор на другой, т.е. полный дурдом.
Когда дело идет к разрастанию сигналов, то делают мультипроцессорные решения.
И опять модули здесь сильно помогают.

Человек так устроен, что ему надо все редуцировать, чтобы он мог себе позволить о чем-то забывать.
Вот вы, например, забыли показать свои разработки прежде чем огрызаться. laughing.gif

Согласен, что модули требуют дополнительных усилий и опыта. Сам стал их применять только спустя 10 лет после начала профессиональной деятельности.

Автор: one_eight_seven Jun 14 2018, 10:58

Цитата
900 пинов эт когда вы DDR хотите сделать на одной плате, а процессор на другой, т.е. полный дурдом.

Сервера, персональные компьютеры, ноутбуки...

P.S. Топикстартеру: попробуйте yed. Прекрасен тем, что порог входа практически нулевой. Можно отдавать части работ разным специалистам в предметных областях, которые могут и не знать ничего про альтиумы и т.п. Поддерживает иерархию. В отличие от убогих визиоподобных програм имеет неограниченное рабочее поле, но при этом не требует 32 ядра и 256 гигов оперативы, чтобы программа не тормозила.

Автор: AlexandrY Jun 14 2018, 11:34

Цитата(one_eight_seven @ Jun 14 2018, 13:58) *
P.S. Топикстартеру: попробуйте yed. Прекрасен тем, что порог входа практически нулевой. Можно отдавать части работ разным специалистам в предметных областях, которые могут и не знать ничего про альтиумы и т.п. Поддерживает иерархию. В отличие от убогих визиоподобных програм имеет неограниченное рабочее поле, но при этом не требует 32 ядра и 256 гигов оперативы, чтобы программа не тормозила.

Думаю тем кто пользуется Visio этот yed покажеться сломаными костылями.
В это трудно поверить, но в yed нельзя даже запастить картинку из буфера обмена.

Автор: a123-flex Jun 14 2018, 12:08

Цитата(one_eight_seven @ Jun 14 2018, 14:58) *
Сервера, персональные компьютеры, ноутбуки...

Плис, коммутаторы, ацп, цап... И такие вещи тоже делают люди. И даже в России)

Автор: one_eight_seven Jun 14 2018, 14:37

Цитата
В это трудно поверить, но в yed нельзя даже запастить картинку из буфера обмена.

Ну, если не понимать, что такое yed, и не осилить чтение - то да, поверить трудно...
Ну и самое великолепное - что вставлять картинки и разрабатывать архитектуру - это совсем разные задачи.

Автор: Hexel Jun 14 2018, 16:18

one_eight_seven
Нормальная такая штука этот yed. Пока что я не уверен, что именно буду в нем рисовать, но это будет очень удобно. Потому что с наскока я не придумал как нарисовать схему с первого поста, с пакаджами, компонентами и их расположением на физических носителях (именно так я понимаю UML Deployment), хорошо бы увидеть примеры.

a123-flex
А что есть динамический список? Это когда в екселе нажимаешь Группировать и потом можно свернуть часть ячеек? Да, таким я пользуюсь, многоуровневым. Нет, задачу это не решает)

Автор: a123-flex Jun 14 2018, 19:04

Цитата(Hexel @ Jun 14 2018, 19:18) *
А что есть динамический список? Это когда в екселе нажимаешь Группировать и потом можно свернуть часть ячеек?

да, я имел в виду это.

Цитата(Hexel @ Jun 14 2018, 19:18) *
Да, таким я пользуюсь, многоуровневым. Нет, задачу это не решает)

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

Имхо Ваша проблема в том, что сам отображаемый обьект довольно велик. Нельзя впихнуть невпихуемое.

Автор: p_v Jun 18 2018, 07:31

Давайте начнем с нуля. Для начала, вы должны четко представлять, какой осязаемый профит вы хотите (можете) получить от рисования картинок. Иначе это будет рисование ради рисование. То есть:

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

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

Инструменты:

Автор: AlexandrY Jun 18 2018, 08:22

Цитата(p_v @ Jun 18 2018, 10:31) *
Инструменты:
  • Для диаграмм использую draw.io, потому что все работы совместные и надо быстро шарить. Кстати, дополнительный стимул, рисовать кратко и только суть sm.gif . IMHO редакторы UML для data flow скорее вредны чем полезны, т.к. забивают мозг псевдополезными вещами.
  • Если задача слишком сложная и в голове совсем вакуум - тогда сначала в mind maps разложить что вообще хочется. Вот это http://electronix.ru/redirect.php?https://coggle.it/ - очень приятная рисовалка, с возможностью делиться ссылками.

Скажем честно - все эти инструменты просто попытки приблизиться к Visio.
Каждый из них решает часть работ которые все может сделать один Visio.
Но как видно TC не ставит задачу удешевить тулсы, а хочет красивую многофункциональную презентацию.
А поскольку он работает в Excel, то ему удобнее Visio ничего нет, поскольку Excel напрямую может строить диаграммы в Visio на основе своих таблиц.

Автор: p_v Jun 18 2018, 08:53

Давайте не будем пытаться устраивать холивар и тем более решать за автора что ему надо. Попытки подогнать задачу под инструмент так же нелепы, как рисование dataflow начиная с таймера. Речь вообще была не об инструментах а о методологии, и какие у рисования бывают сопутствующие задачи. А инструменты каждый выберет сам, исходя из своих потребностей и кругозора.

Автор: AlexandrY Jun 18 2018, 10:26

Цитата(p_v @ Jun 18 2018, 11:53) *
Давайте не будем пытаться устраивать холивар и тем более решать за автора что ему надо. Попытки подогнать задачу под инструмент так же нелепы, как рисование dataflow начиная с таймера. Речь вообще была не об инструментах а о методологии, и какие у рисования бывают сопутствующие задачи. А инструменты каждый выберет сам, исходя из своих потребностей и кругозора.

Если вы плохо знаете Visio, то действительно разумно дальше не холиварить.
Не забываем, что автор демонстрирует свою работу именно в Visio и не просит чтобы ему дали что-то более примитивное.

Но скажу вам по секрету, что это именно Visio открывает глаза на разнообразие способов построения диаграмм.
Это тот случай когда инструмент учит технологии.
Да все продвинутые инструменты выполняют такую функцию.

Не даром тут UML всплыл.
Я, кстати, не нашел как применить UML, от слова совсем.

Автор: one_eight_seven Jun 18 2018, 10:28

Цитата
Скажем честно


1. Кто вам дал право определять, что есть честно?
2. Нет, большинство "этих програм" даже открыто заявляют, что не собираются быть монструозным комбайном, который призван решить все задачи, но при этом решать каждую из них плохо.

Автор: p_v Jun 18 2018, 10:59

Цитата(Hexel @ Jun 13 2018, 19:36) *
Вот я и хочу спросить, кто в каком редакторе составляет такие диаграммы? Может быть, хотя бы для чисто софтовых проектов?

Цитата(AlexandrY @ Jun 18 2018, 13:26) *
Не забываем, что автор демонстрирует свою работу именно в Visio и не просит чтобы ему дали что-то более примитивное.


"Шарик, ты балбес" (с) Матроскин.

Еще раз прошу не выдавать свое личное мнение за мнение автора, и пытаться представить свои оценки как едиственно верные, тем более за чужой счёт. Общение есть обмен информацией и эмоциями. На техническом форуме информация предпочтительнее. Чего либо полезного по сути вы в своих ответах на мои посты не добавили. Ну а остальное пусть останется на вашей совести.

Автор: AlexandrY Jun 18 2018, 11:04

Цитата(one_eight_seven @ Jun 18 2018, 13:28) *
1. Кто вам дал право определять, что есть честно?
2. Нет, большинство "этих програм" даже открыто заявляют, что не собираются быть монструозным комбайном, который призван решить все задачи, но при этом решать каждую из них плохо.

Ну так для того и обсуждаем.
Или будем обсуждать обсуждение?
Вы тоже имеете право применять риторику. laughing.gif

Visio учит технологии. Эт все равно что книгу по матанализу называть монструозной. Не учебник виноват, а сама область монструозная.

Автор: p_v Jun 18 2018, 11:30

Давайте допустим такой вариант, что я могу как минимум неплохо разбираться в том, о чем пишу sm.gif. И что за моим выбором инструментов стоят более серьезные причины, чем необразованность и нищебродство sm.gif.

Я пытаюсь объяснить довольно непростые вещи по методологии. Упрощать их до выбора редактора и тем более сталкивать в УГ лозунгами про визио не очень конструктивно. Если что-то вызывает трудности - ну переспросите, постараюсь детализировать. Это будет новая информация, от которой толку намного больше, чем от развлечений с "доказыванием правоты".

Автор: AlexandrY Jun 18 2018, 12:22

Цитата(p_v @ Jun 18 2018, 14:30) *
Давайте допустим такой вариант, что я могу как минимум неплохо разбираться в том, о чем пишу sm.gif. И что за моим выбором инструментов стоят более серьезные причины, чем необразованность и нищебродство sm.gif.

Я пытаюсь объяснить довольно непростые вещи по методологии. Упрощать их до выбора редактора и тем более сталкивать в УГ лозунгами про визио не очень конструктивно. Если что-то вызывает трудности - ну переспросите, постараюсь детализировать. Это будет новая информация, от которой толку намного больше, чем от развлечений с "доказыванием правоты".

Просто я здесь не согласен категорически.

Редактор решает все!
То насколько удобно он позволяет делать то или другое определяет то, что вы в нем будете или не будете рисовать.

Это как язык программирования. Я его выбираю не из-за каких-то синтаксических возможностей, а из-за библиотек, фреймворков и IDE под него.

Показанный там вами http://electronix.ru/redirect.php?https://www.draw.io/?lightbox=1&highlight=0000ff&edit=_blank&layers=1&nav=1&title=Relimit.xml#R1Vpdc%2BI2FP0tffDM9iEZf0MegaUpM5tku5DZ9olRbAGeNRaVRYD%2B%2Bkq2ZCzJBmIMSZJMxr768PXRuUdXFwxnsNzeY7BaPKAQxoZthlvD%2BWrYdte36X9m2OUGr3uXG%2BY4CnOTtTeMo%2F8gN5rcuo5CmEodCUIxiVayMUBJAgMi2QDGaCN3m6FYfuoKzKFmGAcg1q0%2Fo5As%2BGuZ5t7%2BJ4zmC%2F5kXzS8gODXHKN1wh9n2M4s%2B8mbl0BMxfunCxCiTcnkDA1ngBEi%2BdVyO4AxQ1aglo%2F7o6a1cBvDhJw0gI94BfEaCpczx8hOYEFHUNjpTX9BljG1WfSSOr5i7TAJxwQQ1jqL4niAYoSzYY6Z%2FbCuBKNfsNQym%2FEW3VvhDsQEbksm7v09REtI8I524a1O18uH7MRK5Leb%2Fao53LQoLZiwAc6TeTHxHix6wfGqwc7XsBs8PY6fH0aP9wdA3CwiAscrELCWDY0eBdgMLUE6%2Bub9FcQRdQ5iNihK5tyswD302W9LoAp67sSb6qgWtjKsbguw2p4G6%2Ffe8%2FjTg%2Bq%2BJ6Z3Gqa3K4wCmKZffmcyjRKooRus8SsMOYI0zntMV%2BltEIM0jQIZYbiNyN%2Bl63%2BKcdRV1mCKG9Zi3nqHQE3RGgdQpgMBeA5FNx55MJRUvBb6G%2FPWdLq%2BjL%2Brwe9VoC9sGMaARK%2Fy9lC1JNyJ7yiiL1V4YFny6murmr8yH1UWbGUix%2BrKE9nKRDlO2kR08cCu1G3FOqT1Dtum4rBlHvbrcH96kXugjBbuoNkshcRQKV0s5UksF6JeZjlNENL1EmYsZ6b8j2YEIKbCwcDzwZKpRf5fv40pEfovmF7N2RUIMhbkmUd5fNZqFLA1jiMRL5YUL6UIM0sR9oY4EjFTjiMRW6fGkXlrCSXhy3xj6yp2wTDSNiavYRh1lXnUfKClKFKjQvhb55YadUr%2FuigSo%2BV3aCem9AQxQSyTRRjq0RECAi7C%2F4znVXvMwTTyGP9F9nuU%2F%2B%2FEbhGfb94kOvJEHWWeltjt%2Bqq%2Fh9ntepVuVZK7CVVtXf5X63TBtL8VSpptS7I42TZJbd6JkqpQNqVk90KCe5BienfXPsTg8ynpaJQUojlDmSN7Uvr%2FrpFouEmzikiPdrDM1XbfKISWn4imj09TeuZ8HA4mI3r0FHNTt%2FLpfZ6VfOZzk6UsacGkaxycHLdiAc8Rk6LgY0rKku9vx7TFOmezE1z8IMqipmCO1VRZHHmiogR04VxOK62pL6hIp9O2tuh1ksufdkpz6gcdGtBEZjuGVMjAS9aBEZljTHt7fcP7yp4QR%2FOEBQulM6Tq0WfCEAUg7vGGZRSGbHw%2FBi8w7hf1VamemFVYq2KjiF9VborSMffOKNdf62oIVqcjLanbSiTcKFuj3ZVnaCeP14uVM5rCM4y1VW%2B5NFQjeWXBq6sgnZzdC3H7yKmUUgB0m6ZSrnlEOdsSPFXA3CMlICWZEgrfmuB1NAr%2FGP71PBxPpj96k%2BH02%2BhhNNGo%2BqlyHV89%2F1%2BzSOx0NXz5fqIoP8HrViWhKvD3CdE5xePKPKhzoiyINbhqhctTztTFPvtWlfCVirNWKmtJJbwaytb55amlN%2F%2BASlyqUKx%2FHNL72RtNppPRw3A6%2Fvb0yWVEXZOrHpnEHCVweT5BjQna%2FNamdJxQLWxYnBEycebnTpYo8ryPmihbuN20Xu6pOaoqS22pyV31c2r9Uj9XM6%2BvJq5e5Anpsu30xPoLoUKQEnraOrMkeZ0qQlUICOn8IEm1pxaHGm%2BX6un%2BQtulbytJ8pGkWvVLScLPTqpdvcBVqPWFZdqqE%2BmT%2BXl3hkRfh5%2BuJ389yWkswKYy0aUEWOXbkXTO9ZTvI5x36KO3%2By%2B%2F5d333y90hv8D автомат состояний только доказывает это.
Он примитивен, он не симулируется, не параметризуется, он не обложен тестами, он не интегрирован в большую систему, никто его не прочитает, он не презентабелен и т.д.
Это по сути снипет, а не проект.
Только не надо сейчас вываливать уязвленное самолюбие, я верю что где-то там в вашей тусовке и на вас самого это производит впечатление, но попробуйте хотя бы сравнить с Simulink-ом.

Автор: p_v Jun 18 2018, 13:23

Цитата(AlexandrY @ Jun 18 2018, 15:22) *
Просто я здесь не согласен категорически.
Это ваше право. Но оно не делает автоматически ваши утверждения как-то весомее или умнее. Я бы не рискнул столь навязчиво советовать какой-то инструмент, не поинтересовавшись задачами проекта. И тем более не стал бы лезть с фанбойскими заскоками в уже готовые проекты, в чьих потребностях авторы ориентируются намного лучше вас sm.gif . Ваш способ ведения дискуссии не является конструктивным. Возможно, у вас переизбыток времени, и вам нравится его тратить на подобные развлечения. Но пожалейте хотя бы мое время, пока у меня есть настроение чем-то делиться.

==============================================

Кто знает про майндмапы и активно использует - можно смело пропускать. Кто не уверен - можно глянуть примеры и прикинуть насколько это имеет смысл лично для вас.

<tl;dr>

Касательно майндмапов. Бывает так, что непонятно с какой стороны подступиться. То есть, проблема не в том что именно рисовать, а в том что мы не до конца понимаем что вообще хотим от девайса (или программы) sm.gif . То есть, перед тем как описывать устройство, надо хоть немного уложить мысли, летающие внутри головы и стукающиеся о стенки черепа. Если требования к девайсу (проекту) четко сформулированы - это прекрасно. Но наверняка многие сталкивались с обратным, и тогда рисовать графики несколько преждевременно (можно, но менее эффективно чем майндмапы).

Далее пара примеров.Это конечно только частные примеры. Возможно у вас более простые задачи, которые проще прокрутить в уме и сэкономить время. Но возможно кому-то это поможет понять, пора ли фигачить диаграммы или все-таки сначала лучше разобраться на более высоком уровне. Чем выше уровень проектирования, на котором произошла ошибка, тем дороже обходится исправление по прошествии времени. Поэтому перескакивать не желательно.

Насчет конкретных рисовалок - смотрите в чем удобнее. Если разработка идет в одно рыло, то вообще наплевать на многие вещи. Другой крайний случай, когда разработка это вероятностный процесс. То есть состав разработчиков может меняться, причем внезапно. Тогда крайне важно донести информацию до незнакомых людей с минимальными усилиями. То есть, если вы начинаете рассказывать "надо поставить программу" - это сразу фейл (по моим меркам). Поэтому я предпочитаю вебовские решения. Варианты с выкладыванием скриншотов (и постоянным обновлением после изменений) мне показались недостаточно удобными. Но это исключительно мое личное мнение, которое касается моих проектов. И конечно же это не "единственно верный путь", наверняка есть и другие, просто я делюсь тем, что лично мне и для моих случаев понравилось больше всего. Если это окажется кому-то полезным - ну и славно. Если кому-то не будет пользы - плакать тоже не стану sm.gif

Автор: p_v Jun 18 2018, 15:41

Теперь пройдемся еще раз по диаграммам. А точнее, по диаграммам данных (data flow). Допустим, с майндмапами вам уже все понятно (или с проектом все понятно и без них) и хочется двинуть дальше.

Далее, все что рассказываю, касается разработки софта, как оно в железе - не знаю. Таких сложных железок, чтобы требовали отдельных диаграмм у меня не было. Вообще, существует много диаграмм (данных, состояний, классов, use cases и т.п.). Мало кто делает полный набор, а генерация по диаграммам кода обычно работает только в идеальном шарообразном мире, или в воображении менеджеров по продажам, которые хотят вам втюхать очередную волшебную тулзу за дохрелион денег.

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

Нет смысла упираться в абстрактные принципы. Важен баланс. Нам ведь не надо рисовать диаграммы ради вселенской справедливости или красивого вида. Мы обычно хотим с минимальными усилиями "правильно" разбить систему на части, чтобы не подставляться под дорогие переделки. Что будет балансом в конкретно вашем случае - можете решить только вы. Здесь универсальных советов, к сожалению, нет.

Конечно, всегда найдутся исключения, но я рассказываю про основной подход, с чего хотя бы начать, когда от страха дрожат ручки и дергается глазик. Если задуматься, то суть большинства систем - обработка данных. Есть черный ящик, у которого на входе ручки, за которые дергает безумный юзер, а на выходе (допустим) индикатор. Если проектируем библиотеку, то входы и выходы обзывают словом API. Как-то так, если совсем кратко и с упрощениями. Обращаю особое внимание, не надо путать данные с событиями. Данные можно какбэ "потрогать руками". В событиях проще запутаться. Пример исключения, когда выбирать не приходится - конечный автомат. Там без событий никак. Но не стоит усложнять себе жизнь раньше времени. Диаграммы данных вам понадобится рисовать практически всегда. Остальное - по обстоятельствам.

Профит: если вам удалось сделать корректную диаграмму данных, то налажать потом в коде практически невозможно sm.gif.

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

Итак, начинаем с того, что фиксируем входы и выходы. Т.к. если мы не знаем, "что обрабатывать", то и внутренние блоки станут перемалывать какую-то туфту, и ничего хорошего не выйдет. На самом верхнем уровне входы и выходы называются "use cases" - как юзер захочет подергать ручки, как ему будет удобно дергать API и что он захочет получить взамен. Обычно use cases сначала выглядят несколько сумбурно, поэтому проще их выписать в столбик, чтобы найти что-то общее. Или откатиться на шаг назад и прогнать через mind map для особо тяжелых случаев.
Итого, у нас должно получиться:Ну и остается дорисовать блоки, которые эти данные как-то переколбасят.

На что стоит обратить внимание:Примеры "стрелок":Примеры очень упрощенные, только чтобы продемонстрировать суть объяснений.

По блокам внутри диаграммы. Тут универсального рецепта нет. Могу только посоветовать придерживаться некоторых ограничений:Возможно, в конце у вас получится совсем простая диаграмма из пары-тройки блоков, и вы подумаете "неужели из-за такой тривиальщины я страдал фигнёй". Но ведь смысл именно в том, чтобы понять, как сделать просто, а не наворотить чумную вундервафлю. На практике у меня получались рисунки с 3-5 блоками, и очень редко - с подуровнем для одного-двух блоков. Просто я не вижу смысла упираться в диаграмму как в самоцель. Рисую только до той степени, которая позволить двинуться дальше - продолжить в коде.

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

Автор: p_v Jun 18 2018, 18:13

Теперь по инструментам. Лично у меня очень экстремальные требования по доступности. Такие далеко не у всех, но опыт может оказаться полезным на перспективу - кто знает как жизнь обернется, будете иметь в виду направления, куда можно копать.

Проекты опенсорсные:

Конкретные тулзы, которые удобнее для моих случаев, уже называл - coggle.it и draw.io. Но то что удобно для меня - не обязательно удобно для всех или для вас лично. Рассматривайте просто как информацию для расширения кругозора. Я объясняю только некоторые принципы и подходы, а не раздаю "валшэбные рицепты".

Автор: AlexandrY Jun 18 2018, 19:32

Цитата(p_v @ Jun 18 2018, 16:23) *
Это ваше право. Но оно не делает автоматически ваши утверждения как-то весомее или умнее. Я бы не рискнул столь навязчиво советовать какой-то инструмент, не поинтересовавшись задачами проекта. И тем более не стал бы лезть с фанбойскими заскоками в уже готовые проекты, в чьих потребностях авторы ориентируются намного лучше вас sm.gif .

TC показал достаточно подробную диаграмму своего дивайса.
Что там может быть не ясного? Чего еще интересоваться?
Там работы сделать плату на две недели еще две недели на софт. Все!
Профессионалы такие делают без всяких диаграм или с минимальным эскизом (в Visio) типа такого:


А пока поспорю относительно ваших представлений о проектировании дивайсов такого рода.
Первое, программно аппаратную часть такой системы вполне доступно разработать одному специалисту.
Посему отметаем всякую мишуру там с шарингом, броузерными приложениями и проч. Броузерные приложения однозначно тормозят работу и снижают эффективность.
Второе, привлекать Mind map в данном случае поздно ибо TC уже перешел на уровень детализации. Mind map скорее средство сосредоточения на задаче людям с синдромом дефицита внимания.
Далее про диаграммы логики работы софта. Не путаем DSP алгоритмы и машины состояний. Они моделируются (а не рисуются как у вас) совершенно в разном стиле.
В данном проекте речь о проектировании машины состояний. Она проектируется так:

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

Автор: one_eight_seven Jun 18 2018, 19:55

Цитата
данном проекте речь о проектировании машины состояний. Она проектируется так:

> Тут каляки-маляки <


Т.е. мы формируем события из входов, делаем машину состояний и выдаем из нее действия которые драйверами превращаем в выходные сигналы.
Потоки данных тут не при чем.

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

Автор: p_v Jun 18 2018, 20:00

У ВАС на ВАШИХ задачах - свой опыт. У МЕНЯ на МОИХ задачах - свой. Я не вижу тут предмета спора. Мой опыт не делает бесполезным ваш, а ваш не делает бесполезным мой. Потому что и там и там это реальный многолетний опыт, а не высосанный из пальца. Моделировать диаграммы состояний мне вообще не требуется, они рисуются очень редко, и я пытался объяснить почему обычно (возможно вы - необычный) практичнее начинать с диаграмм данных (после майндмапов).

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

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

Автор: AlexandrY Jun 18 2018, 20:18

Цитата(p_v @ Jun 18 2018, 23:00) *
Я отвечал для TC-а, потому что сам был в подобной ситуации, только на более крупных вещах, в софтовом варианте.

А почему вы думаете что я отвечал не TC-у? laughing.gif
Но только я делаю системы почти такие же как и у него, а вы делаете непонятно что-то софтовое.
Почему вы решили что ваш опыт можно экстраполировать на такие системы?

Мне кажется все-таки что разработчики определенного рода устройств приходят к одной и той же технологии их создания.
У TC я вижу этап который сам когда-то проходил. И он кончится когда автор перестанет ждать чуда от диаграмм и перейдет к нормальному моделированию.

Автор: p_v Jun 18 2018, 21:02

Цитата(AlexandrY @ Jun 18 2018, 23:18) *
А почему вы думаете что я отвечал не TC-у? laughing.gif
Наверное потому что вы цитировали мои сообщения, или творчески интерпретировали их смысл, вкладывая то что я не говорил. А мне не очень нравится, когда пытаются приврать от моего имени или втянуть в спор на левые темы, до которых мне нет дела. Пример, когда вы обращались ко мне и пытались сочинить за ТС-а, я вам тоже приводил. Лично мне было бы гораздо проще без вашей "помощи". Я вполне в состоянии выражать мысли связно, и читать тоже обучен.

Цитата(AlexandrY @ Jun 18 2018, 23:18) *
Но только я делаю системы почти такие же как и у него, а вы делаете непонятно что-то софтовое.
Вы не знаете всего что я делаю. И написанное про методологию тоже не очень понимаете. Но беретесь судить. И решать за других. В очередной раз. Это не профессионально. Рассуждения об элементарной вежливости пропущу, о профессионализме наверное должно быть понятнее.

Автор: a123-flex Jun 19 2018, 20:33

Цитата(AlexandrY @ Jun 18 2018, 15:22) *
Редактор решает все!
То насколько удобно он позволяет делать то или другое определяет то, что вы в нем будете или не будете рисовать.

Это как язык программирования. Я его выбираю не из-за каких-то синтаксических возможностей, а из-за библиотек, фреймворков и IDE под него.

Показанный там вами автомат состояний только доказывает это.
Он примитивен, он не симулируется, не параметризуется, он не обложен тестами, он не интегрирован в большую систему, никто его не прочитает, он не презентабелен и т.д.

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

Посмотрите. То о чем вы говорите, очень смахивает на Fpga Advantage. Продукт уже мертвый, но в точности соответствует всем вашим запросам)

Да, и если возможно, я был бы очень признателен за консультацию, как в Visio "симулировать, параметризировать, делать тесты, интегрировать в большую систему".
Я в нем картинки порисовать тоже люблю, а вот моделировать и интегрировать еще не научился, видимо кругозора не хватает((

Автор: Hexel Jun 20 2018, 07:04

сейчас я между прочим пытаюсь применить sybase PD16, так что действительно, у всех мозги по-своему. жестких временных рамок у проекта нет, потому есть время поизучать что-то новое. но пожалуста, не надо высказываться так категорично насчет того или иного подхода, я все их попробую и расскажу что у меня получилось. как не крути, они имеют примерно одну цель - смотрите, картинка с изображением электропривода изображает не что иное, как data flow.

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

Автор: AlexandrY Jun 20 2018, 08:57

Цитата(Hexel @ Jun 20 2018, 10:04) *
сейчас я между прочим пытаюсь применить sybase PD16,

Жесть! lol.gif
Вместо моделирования, рисовалок и заточенных embedded тулсов вы выбрали корпоративный дизайнер SQL баз данных.
Абсолютно корпоративную хламоту (это метафора, не принимать ни на чей счет, выражает личное мнение автора) сделанную для убивания времени офисного планктона.
Хочу вам сказать что такой построитель реляционных структур вы найдете и в MS Access.
И не надо качать этот реально монструозный и замороченный SAP PowerDesigner ( больше 2 гиг, если кто не в курсе)

Ну ка , кто тут сравнит SAP PowerDesigner с yEd? biggrin.gif
Mind map нервно курят.

Автор: a123-flex Jun 20 2018, 10:35

Цитата(p_v @ Jun 18 2018, 10:31) *
На самом деле, любую (практически) систему можно целиком представить как диаграмму данных или диаграмму событий. Проблема с событиями в том, что их можно по ошибке зациклить или напихать лишних. С данными подобного не случится или будет сразу видно.

А нельзя ли этот момент поподробней ? Это Ваше имхо, или базовый постулат откуда-то ?

Цитата(AlexandrY @ Jun 18 2018, 14:04) *
Visio учит технологии.

Какой, если не секрет?)

Кстати, и насчёт машины состояний очень интересно: в каком формате (или стандарте, простите отсутствие кругозора) она нарисована ?)

Цитата(AlexandrY @ Jun 18 2018, 22:32) *
На рисунки студенты могут тратить время, а инженера держат не за рисование.

Судя по непрерывному хамству, вы считаете что ваш кругозор самый большой.
А образования высшего судя по всему нет.
Вы вообще знаете что такое ТЗ на изделие ?

Или настоящим профессионалам такое знать необязательно ?

Автор: p_v Jun 20 2018, 11:10

Цитата(a123-flex @ Jun 20 2018, 13:35) *
А нельзя ли этот момент поподробней ? Это ваше имхо, или базовый постулат откуда-то ?


Это из методологии разработки, которую лет 20 назад пришлось экстренно изучать. К сожалению, теперь даже имен авторов не смог в интернете найти.

Мне с тех пор не попадались явные рекомендации "заниматься данными и не лезть в события". Что странно, т.к принцип невероятно полезный.

Автор: AlexandrY Jun 20 2018, 11:28

Цитата(a123-flex @ Jun 20 2018, 13:35) *
Какой, если не секрет?)

Кстати, и насчёт машины состояний очень интересно: в каком формате (или стандарте, простите отсутствие кругозора) она нарисована ?)


Любопытно. У вас образование высшее есть ?
Вы вообще знаете что такое ТЗ и ту на изделие ?

Или настоящим профессионалам такое знать необязательно ?

Visio учит правильному построению диаграмм, планов и чертежей для многих видов деятельности.
Куда входят UML, BPMN, IEEE и т.д.
К сожалению (или к счастью) мне, как независимому разработчику все это не нужно. Может только IEEE, но это гораздо удобнее делать в Altium-е и SolidWorks Electrical.

Машину состояний я здесь нигде не демонстрировал, если вы только по простоте душевной не приняли за таковую показанную мной упрощенную иллюстрацию технологии создания машин состояний из мануала VisualState. biggrin.gif

Может вы не в курсе особенностей работы независимых разработчиков, но мне реально не нужны ТЗ.
Моя работа начинается с экспертизы потребностей заказчика.
Это моя забота и решение писать или не писать ТЗ или какие-то другие бумаги.
Тут как-то термин стал всплывать - "технический долг". Так вот в этот "долг" гораздо важнее всякого ТЗ.
Т.е. если хотите успешно продвигаться, то надо выполнять не ТЗ, а отдавать долг.

Автор: a123-flex Jun 20 2018, 11:38

Цитата(p_v @ Jun 20 2018, 14:10) *
Это из методологии разработки, которую лет 20 назад пришлось экстренно изучать. К сожалению, теперь даже имен авторов не смог в интернете найти.

Очень жаль. Если Вы вдруг вспомните, или встретите какие-либо подробности или ссылки, очень интересно.

Цитата(AlexandrY @ Jun 20 2018, 14:28) *
Visio учит правильному построению диаграмм, планов и чертежей для многих видов деятельности.
Куда входят UML, BPMN, IEEE и т.д.
....
Может вы не в курсе особенностей работы независимых разработчиков, но мне реально не нужны ТЗ.
Моя работа начинается с экспертизы потребностей заказчика.
Это моя забота и решение писать или не писать ТЗ или какие-то другие бумаги.
Тут как-то термин стал всплывать - "технический долг". Так вот в этот "долг" гораздо важнее всякого ТЗ.
Т.е. если хотите успешно продвигаться, то надо выполнять не ТЗ, а отдавать долг.

Как бы за всем этим словоблудием не оказалось пустоты.

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

Цитата
Может вы не в курсе особенностей работы независимых разработчиков, но мне реально не нужны ТЗ.

Цитата
Т.е. если хотите успешно продвигаться, то надо выполнять не ТЗ, а отдавать долг.

Нужно завести в электрониксе копилку золотых цитат. Эта явно туда.

Автор: p_v Jun 20 2018, 12:17

Цитата(a123-flex @ Jun 20 2018, 14:38) *
Очень жаль. Если Вы вдруг вспомните, или встретите какие-либо подробности или ссылки, очень интересно.
Да сам не люблю в качестве доводов использовать "авторитетное я". Уже несколько раз за последнюю неделю пытался найти, вообще дыра. 2 чела, фамилии кажется Cotton и Yordan. И кажется одного из них звали Eric. Лет 10 назад удавалось находить хотя бы упоминания, что эти люди что-то подобное написали. Сейчас даже людей нема.

Но самую великую мудрость из их методики я вам рассказал, а в остальном подобные книжки как близнецы-братья. Ну в одном месте напишут, что надо не больше 5 квадратов на лист, в другом не больше 7 , в третьем не больше 9 sm.gif . Вы спрашивайте, если что-то непонятно. Мне временами приходится людей натаскивать, как рисовать диаграммы, чтобы это были не просто красивые картинки, рука набита уже sm.gif

Из классики могу назвать Rapid Development и Code Complete, автор Steeve Mc Connel. Но по-моему про первую и так знают абсолютно все, кто хоть раз пытался въехать в разработку высокого уровня. А вторая специфична для программистов.

Автор: AlexandrY Jun 20 2018, 12:24

Цитата(a123-flex @ Jun 20 2018, 14:38) *
Нужно завести в электрониксе копилку золотых цитат. Эта явно туда.

Это непонимание вероятно от того, что вы работаете в среде с другими производственными отношениями.
Но любой универсал меня поймет.

UML, BPMN, IEEE - это и стандарты оформления диаграмм и схем и методики одновременно.
У кого-то вся работа заключается в разработке диаграмм по этим стандартам, а кто кто-то исключительно ими руководствуется. Им Visio просто незаменим.

Фразу "Она проектируется так" следует читать так - "посмотрите на иллюстрацию показывающую этапы создания машины состояний"
Как можно в такой простой фразе потерять смысл ума не приложу, у вас наверно чтение технической литературы вызывает огромные сложности. biggrin.gif

Автор: a123-flex Jun 20 2018, 12:38

Цитата(p_v @ Jun 20 2018, 15:17) *
Да сам не люблю в качестве доводов использовать "авторитетное я". Уже несколько раз за последнюю неделю пытался найти, вообще дыра. 2 чела, фамилии кажется Cotton и Yordan. И кажется одного из них звали Eric. Лет 10 назад удавалось находить хотя бы упоминания, что эти люди что-то подобное написали. Сейчас даже людей нема.

Но самую великую мудрость из их методики я вам рассказал, а в остальном подобные книжки как близнецы-братья. Ну в одном месте напишут, что надо не больше 5 квадратов на лист, в другом не больше 7 , в третьем не больше 9 sm.gif . Вы спрашивайте, если что-то непонятно. Мне временами приходится людей натаскивать, как рисовать диаграммы, чтобы это были не просто красивые картинки, рука набита уже sm.gif

Из классики могу назвать Rapid Development и Code Complete, автор Steeve Mc Connel. Но по-моему про первую и так знают абсолютно все, кто хоть раз пытался въехать в разработку высокого уровня. А вторая специфична для программистов.

Да спасибо, почитаю тему.

Автор: AlexandrY Jun 20 2018, 12:41

Цитата(p_v @ Jun 20 2018, 15:17) *
Мне временами приходится людей натаскивать, как рисовать диаграммы, чтобы это были не просто красивые картинки, рука набита уже sm.gif

Из классики могу назвать Rapid Development и Code Complete, автор Steeve Mc Connel.

Но что-то кроме примитивных, мягко говоря, mind map-ов вы ничего не показали.
Если вам так близка Java, то вам следовало бы показать нам что-то вроде концепции MVC (model-view-controller)

(для неподготовленных - это не сам пример реализации MVC)
Взято из "Android Programming. The Big Nerd Ranch Guide"
С ней в частности создают программные проекты под embedded в Android Things.

Автор: p_v Jun 20 2018, 13:21

Цитата(AlexandrY @ Jun 20 2018, 15:41) *
Но что-то кроме примитивных, мягко говоря, mind map-ов вы ничего не показали.
Просто не в коня корм. Как я уже говорил, для вас понятие "методология" - пустой звук. Но меня вполне устраивает, что мои посты полезны другим.

Цитата(AlexandrY @ Jun 20 2018, 15:41) *
Если вам так близка Java, то вам следовало бы показать нам что-то вроде концепции MVC (model-view-controller)

Я вообще не пишу на яве. Не демонстрируйте свою "универсальную компетентность" столь явно, в очередной раз. Куда именно себе засовывать советы что мне делать - разберитесь самостоятельно.

Автор: AlexandrY Jun 20 2018, 13:48

Цитата(p_v @ Jun 20 2018, 16:21) *
Просто не в коня корм. Как я уже говорил, для вас понятие "методология" - пустой звук. Но меня вполне устраивает, что мои посты полезны другим.

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

Автор: p_v Jun 20 2018, 14:44

Хоссподя... ну вот человек только что с треском обделался с "java", и как не бывало, отряхнувшить, лезет с новой демагогией. У вас там память что ли каждые пол часа зануляется? Дефицит внимания? Ну давайте один раз всем разделом отложим свои дела и попробуем вам как-то помочь. Очень уж утомительно вы лезете под руку со своими глупостями. Как один собакен из анекдота, у которого зубов нет но засасывает насмерть.

Автор: Hexel Jun 20 2018, 15:37

p_v
Пожалуста, не нужно развивать этот спор. Вы поделились действительно полезным опытом, мне еще предстоит его осмыслить. Я нашел еще одну замечательную программу (опять же на рутрекере =) Visual Paradigm и пробую с нуля пройти весь цикл разработки. У меня еще появятся вопросы) Поэтому хотелось бы, чтобы вы не составляли общее мнение обо всех участниках.

да, UML, BPM и IEEE конечно нужные штуки, но это не повод курицу ставить важнее яйца. и что я так уж продвинулся, тоже забегать не будем, в личном общении думаю я бы многих разочаровал своими познаниями

Автор: p_v Jun 20 2018, 16:31

Цитата(Hexel @ Jun 20 2018, 18:37) *
...

Когда захотите отвлечься от понтовых программ - попробуйте почитать в вики про эволюционное прототипирование. Там немного совсем.

Автор: a123-flex Jun 20 2018, 17:54

Цитата(p_v @ Jun 20 2018, 20:31) *
Когда захотите отвлечься от понтовых программ - попробуйте почитать в вики про эволюционное прототипирование. Там немного совсем.

Если бы железяку было так легко изменить, как код(

ТС решает жутко насущную задачу.
К сожалению с программно-аппаратными комплексами эволюционное прототипирование это очень долго.

Автор: p_v Jun 20 2018, 18:08

Цитата(a123-flex @ Jun 20 2018, 20:54) *
Если бы железяку было так легко изменить, как код(

ТС решает жутко насущную задачу.
К сожалению с программно-аппаратными комплексами эволюционное прототипирование это очень долго.


Железку, естественно, менять часто и мелкими порциями не прокатит. Но фирмварь обычно более емкая (по челочасам) штука, плюс хвост из новых версий. Я не вижу особого профита рассматривать программно-аппаратный комплекс как монолитную неделимую штуку. Наоборот, железякопроблемы не должны тянуть за собой в могилу еще и код sm.gif

Автор: a123-flex Jun 20 2018, 18:19

Цитата(p_v @ Jun 20 2018, 22:08) *
Железку, естественно, менять часто и мелкими порциями не прокатит. Но фирмварь обычно более емкая (по челочасам) штука, плюс хвост из новых версий. Я не вижу особого профита рассматривать программно-аппаратный комплекс как монолитную неделимую штуку. Наоборот, железякопроблемы не должны тянуть за собой в могилу еще и код sm.gif

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

Другой вопрос, зачем ставить задачу в таком ключе, чтобы сразу продумать весь софт - я, например, беспокоюсь чтобы просто функции io платы совпали с задачей, и с раскладкой в процессоре. После корректного определения функциональных выводов контроллера имхо дальше софт с железом независимы.

Правда описанный мной анализ относится к платам, в которых нет жесткого реального времени.

Автор: p_v Jun 20 2018, 19:32

Цитата(a123-flex @ Jun 20 2018, 21:19) *
Я для себя тему топика понял как анализ комплекса с целью получить на выходе правильное железо.

Возможно каждый увидел то что ему ближе sm.gif. Первый пост не секретный, всегда можно перепроверить.

Цитата(a123-flex @ Jun 20 2018, 21:19) *
Дабы софт легко исправить, то приоритет имхо ясен.

Зависит от того, кого именно будут натягивать на глобус за сбойнувший софт sm.gif

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)