Проработка концепции приложения для микроконтроллера
С ростом сложности наших проектов (в общем и целом встраиваемые системы), растет сложность софта для микроконтроллеров. Сложно планировать работу, трудно предсказывать сложность, труднее делить задачу на подзадачи. Если раньше программка писалась за день-два, и все что нужно я держал в голове, то теперь объемы работы требует недель и месяцев. Так, например, в прошлом проекте у меня был задействован полноценный GUI на сенсорном TFT экране, небольшой веб-сервер, telnet-консоль, CANopen стек, файловая система на внешней флешке и т.д. Все это было написано на обычном Си на cortex-m3 микроконтроллере. На этапе проработки концепции я пользовался чем попало: от обычных алгоритмов до разного рода диаграмм. Все это мало помогло. Буду признателен, если мне подскажут, каким образом можно применить проверенные методы разработки концепции софта. Я пытался применить UML, но впал в совершенную растерянность. Диаграммы классов? Но у меня же обычный Си, это даже не C++. Диаграммы прецендентов? Пожалуй, что да, но дальше то что? Как и в каком порядке применять эти диграммы, как планировать процесс разработки? И, наконец, какие программы использовать?
По поводу классов - на самом деле не особо важно какой язык используется. Для описания работы приложения его в вашем случае можно разбить на сущности, которые хранят данные и отправляют друг другу сообщения. Первое (данные) - это диаграммы классов, второе (отправка сообщений) - сиквенс диаграммы. Мы используем для этого RSA (https://ru.wikipedia.org/wiki/Rational_Software_Ar... причем он даже может какой-то код генерить из диаграмм (сам я не пробовал). Но он слишком энтерпрайзен, думаю есть что-то попроще.