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

 
 
> Разработка концепции программы для микроконтроллера
yanvasiij
сообщение Nov 13 2013, 07:20
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Дошёл до такого уровня, когда программа пишется не за день-два и все необходимое держишь в голове, а когда проект большой и сложный на несколько месяцев. Мне нужно средство, которое позволило бы грамотно проработать концепцию программы, спланировать работу, разбить ее на куски и т.д. То есть здесь не обойтись просто алгоритмами, нужно нечто более глобальное такое как UML. Но как применить UML к embedded на простом Си. Как составлять диаграммы классов, если у тебя их в явном виде нет как таковых, какие диаграммы из стандарта мне вообще нужны и в каком порядке мне их применять? Посоветуйте, что знаете и что сами применяете. Вообщем поделитесь опытом, буду признателен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
yanvasiij
сообщение Nov 15 2013, 05:06
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Цитата(kolobok0 @ Nov 14 2013, 21:31) *
как то всё в кучу. у Вас.
постараюсь выдать свой "поток разума" или по другому: сначала термины и песочница, потом как это применяю...

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


Спасибо! Как раз то, о чем я спрашивал!

Цитата(AlexandrY @ Nov 14 2013, 21:43) *
Во первых, что наглядно Васе не обязательно будет наглядно Пете которому он это будет показывать. Ассоциативные связи они у всех разные.
Во вторых, если Вася успеет кроме диаграмм еще и наклепать исходников по ним, то потом заставить Васю переделать это будет гораздо трудней, как бы Вася не уверял что он весь такой готовый к конструктиву.
А разработка это ведь итеративный процесс.
В третьих, если же Вася будет рисовать только диаграммы пока не добьется их совершенства он потеряет кучу времени, ибо диаграммы рисуются гораздо медленнее чем пишутся исходники.

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

UML он как раз для того и придуман, это стандарт, все должны рисовать в нем по вполне конкретным правилам, чтобы другой мог понять. То есть по идее должен быть нагляден любому знающему стандарт.
Я уверен, что с опытом необходимость в таких диаграммах может отпасть. У человека появляется чувство хорошего тона и стиль программирования. Но лично я на собственно шкуре испытал, что если кодить и думать "на ходу", а еще хуже кодить, а потом думать, получается, я извиняюсь "какашка", которая может и работает но ее мучительно тяжело сопровождать и поддерживать.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 15 2013, 07:32
Сообщение #3


Ally
******

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



Цитата(yanvasiij @ Nov 15 2013, 07:06) *
UML он как раз для того и придуман, это стандарт, все должны рисовать в нем по вполне конкретным правилам, чтобы другой мог понять. То есть по идее должен быть нагляден любому знающему стандарт.
Я уверен, что с опытом необходимость в таких диаграммах может отпасть. У человека появляется чувство хорошего тона и стиль программирования. Но лично я на собственно шкуре испытал, что если кодить и думать "на ходу", а еще хуже кодить, а потом думать, получается, я извиняюсь "какашка", которая может и работает но ее мучительно тяжело сопровождать и поддерживать.


Да вспоминаю, было такое чувство. Да и до сих пор некоторые старые исходники хочется переделать. Это чистая психология, ничего технического.

Но если посмотреть ту же книгу "Practical UML Statecharts" можете ли вы там понять любую попавшуюся случайно UML диаграмму?
Гарантирую что нет. Все диаграммы там абсолютно зависят от контекста, как математические формулы.
Пока не прочитаете всю статью ниже с описаниями всех символьных переменных в диаграмме, что делает диаграмма вообще не поймете.
Чем это отличается от чтения чистых исходников?

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

Проект FreeMODBUS как раз сделан на этой концепции.
Не далее как весной разбирался с портированием FreeMODBUS.
Надо было сделать мост между сетью MODBUS устройств на шине RS485 и сетью Ethernet.

Так вот, исходники автоматов состояний не имея перед глазами их диаграмму расшифровывать очень трудно.
FreeMODBUS достаточно простой проект. Там объем реальных исходников не больше 100 кБ. Но возиться с ним пришлось наверно около недели.
Ребята умудрялись передаваться события в пределах одного автомата используя внешние сервисы. Это, как понимаю, называют декомпозицией на слои.
Т.е. все равно как если бы в пределах одной процедуры чтобы передать данные дальше вы вызываете процедуру прерывания с аргументом, а та передает аргумент в вашу же функцию записью в статическую переменную.
Да, красиво, эффектно, масштабируемо biggrin.gif Но по сути дурь.

Автоматы состояний - зло.
Применение RTOS позволяет отказаться от автоматов состояний.
В результате я написал полностью свой MODBUS мост немного основываясь на исходниках от Micrium без всяких диаграмм в линейном стиле только на вложенных if else.
Такой стиль абсолютно прозрачен, понимается в лёт, не нужно никаких дополнительных диаграмм. Через сто лет понадобится минимум времени чтобы понять что там написано.

Советую перепрыгнуть этап рисования диаграмм, а сразу начинать изучать исходники авторитетных проектов.
Например uC/OS от Micrium и весь их промежуточный софт или MQX от Freescale.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- yanvasiij   Разработка концепции программы для микроконтроллера   Nov 13 2013, 07:20
- - yanvasiij   Для диаграмм состояний нашел вот такую книжку. Ув...   Nov 14 2013, 04:18
|- - AlexandrY   Цитата(yanvasiij @ Nov 14 2013, 06:18) Дл...   Nov 14 2013, 07:42
|- - Idle   Цитата(yanvasiij @ Nov 14 2013, 08:18) Дл...   Nov 19 2013, 07:14
- - yanvasiij   Ну та ссылка действительно на рекламу, ибо не охот...   Nov 14 2013, 09:20
|- - AlexandrY   Цитата(yanvasiij @ Nov 14 2013, 11:20) Ещ...   Nov 14 2013, 10:37
- - yanvasiij   Честно говоря, не читал эту книгу полностью. Мне б...   Nov 14 2013, 11:05
|- - Dog Pawlowa   Цитата(yanvasiij @ Nov 14 2013, 14:05) А ...   Nov 14 2013, 11:56
|- - AlexandrY   Цитата(yanvasiij @ Nov 14 2013, 13:05) Че...   Nov 14 2013, 12:07
- - yanvasiij   Цитата(yanvasiij @ Nov 14 2013, 14:05) А ...   Nov 14 2013, 12:21
|- - Dog Pawlowa   Цитата(yanvasiij @ Nov 14 2013, 15:21) А ...   Nov 14 2013, 12:59
|- - AlexandrY   Цитата(yanvasiij @ Nov 14 2013, 14:21) Ну...   Nov 14 2013, 13:02
|- - wangan   Цитата(yanvasiij @ Nov 14 2013, 19:21) Ну...   Nov 28 2013, 05:22
- - _Pasha   А по-моему, надо не в диаграммы упираться а в сред...   Nov 14 2013, 13:25
- - yanvasiij   Ну положим с неделькой то я действительно загнул, ...   Nov 14 2013, 15:24
|- - AlexandrY   Цитата(yanvasiij @ Nov 14 2013, 17:24) Я ...   Nov 14 2013, 15:43
|- - _Pasha   Цитата(AlexandrY @ Nov 14 2013, 18:43) Ко...   Nov 14 2013, 15:54
- - kolobok0   Цитата(yanvasiij @ Nov 13 2013, 11:20) .....   Nov 14 2013, 15:31
|- - Виктория   Цитата(yanvasiij @ Nov 15 2013, 08:06) Сп...   Nov 15 2013, 05:50
|- - Aner   QUOTE (AlexandrY @ Nov 15 2013, 10:32) .....   Nov 15 2013, 10:31
- - yanvasiij   Цитата(Виктория @ Nov 15 2013, 11:50) То ...   Nov 15 2013, 07:49
- - Harbour   Использую dia для красоты и обыкновенную классную ...   Nov 22 2013, 05:52
|- - ARV   Цитата(Harbour @ Nov 22 2013, 09:52) Поня...   Dec 6 2013, 05:48
|- - Shein   Цитата(ARV @ Dec 6 2013, 11:58) программы...   May 22 2014, 06:15
- - syoma   А может есть смысл подумать о MATLAB/Simulink - и ...   Nov 25 2013, 16:12
- - ukpyr   бред эти все диаграммы и UML. гораздо проще записа...   Nov 26 2013, 01:27
- - yanvasiij   ЦитатаДа вспоминаю, было такое чувство. Да и до си...   Dec 6 2013, 05:21
- - TSerg   И как мы раньше обходились без UML:)   Dec 10 2013, 10:15
- - FPGAz   Цитата(yanvasiij @ Nov 13 2013, 11:20) Мн...   Feb 9 2014, 22:17
- - Kopa   Цитата(FPGAz @ Feb 10 2014, 06:27) При та...   May 22 2014, 15:05


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

 


RSS Текстовая версия Сейчас: 13th August 2025 - 19:24
Рейтинг@Mail.ru


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