UML обычно используется для моделирования системы при помощи C++. В моих проектах C является языком реализации. Я ищу ресурсы на стратегиях UML, которые применимы для C. Я хочу использовать UML во время дизайна и представить различные аспекты системы.
Не знаю ни одного существующего ресурса, где бы обсуждалось использование UML специально для C. Как упоминали другие, UML - это диагностика языка.
Имейте в виду, что с UML вы можете иметь модель для проблемного домена, а другую - для реализации. Старайтесь не моделировать проблемный домен с точки зрения C, а использовать его в качестве высокоуровневого OO. Как только вы достаточно хорошо разберетесь в проблемном домене, можно приступать к моделированию реализации.
Для моделирования реализаций C процедурного стиля могут быть полезны следующие диаграммы:
Расширяя диаграммы классов, вы можете "злоупотреблять" ими следующим образом для процедурного стиля C:
#define
константы -> класс со стереотипом "перечисления"Эксперимент, и вы найдете свои собственные конвенции по злоупотреблению UML.
Проблема с C заключается в том, что это больше процессуального языка программирования. Труднее получить мелкозернистый дизайн с приложением C. Если вы работаете с C, вы можете захотеть придерживаться диаграмм последовательности и компонентными диаграммами, так как они описывают и обзор того, что происходит, а не график зависимостей и взаимодействия.
Объектно-ориентированный дизайн не зависит от языка, и вы можете определить вашу систему с помощью UML. Некоторые инструменты, такие как Rhapsody, также позволят генерации кода и окружающей среды, мы используем для некоторых специальных проектов, где C ++ не является опцией. Если вы хотите написать свой код вручную, используйте некоторую конвенцию именования, такую как подсистема_Module_Class_Method, чтобы назвать свои функции в объекте ориентированным образом и использовать файл .c на класс. Использование C - это не препятствие против чистой конструкции.