UML для [закрытого] языка программирования C

UML обычно используется для моделирования системы при помощи C++. В моих проектах C является языком реализации. Я ищу ресурсы на стратегиях UML, которые применимы для C. Я хочу использовать UML во время дизайна и представить различные аспекты системы.

28
задан Andy 11 January 2010 в 15:06
поделиться

3 ответа

Не знаю ни одного существующего ресурса, где бы обсуждалось использование UML специально для C. Как упоминали другие, UML - это диагностика языка.

Имейте в виду, что с UML вы можете иметь модель для проблемного домена, а другую - для реализации. Старайтесь не моделировать проблемный домен с точки зрения C, а использовать его в качестве высокоуровневого OO. Как только вы достаточно хорошо разберетесь в проблемном домене, можно приступать к моделированию реализации.

Для моделирования реализаций C процедурного стиля могут быть полезны следующие диаграммы:

  • Диаграмма классов:
    • Показать API модуля C
    • Показать отношения модуля C (в основном зависимости для не-OO)
    • Показать структуры и перечисления (используя < < стереотип> >)
  • Диаграмма пакета: Показать содержимое (модули) библиотек, а также зависимости между библиотеками
  • Диаграмма активности: Показ нетривиальных алгоритмов
  • Диаграмма последовательности/сотрудничества: Показать, как события/сообщения между модулями/средствами/входами/выходами происходят во времени
  • Statechart diagram: Для государственных машин, конечно!

Расширяя диаграммы классов, вы можете "злоупотреблять" ими следующим образом для процедурного стиля C:

  • Глобальные функции extern -> публичные методы
  • Локальные статические функции -> приватные методы
  • Глобальные переменные extern -> публичные члены
  • Локальные статические переменные -> приватные члены
  • Структуры -> класс со стереотипом "struct"
  • #define константы -> класс со стереотипом "перечисления"

Эксперимент, и вы найдете свои собственные конвенции по злоупотреблению UML.

33
ответ дан 28 November 2019 в 03:22
поделиться

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

8
ответ дан 28 November 2019 в 03:22
поделиться

Объектно-ориентированный дизайн не зависит от языка, и вы можете определить вашу систему с помощью UML. Некоторые инструменты, такие как Rhapsody, также позволят генерации кода и окружающей среды, мы используем для некоторых специальных проектов, где C ++ не является опцией. Если вы хотите написать свой код вручную, используйте некоторую конвенцию именования, такую ​​как подсистема_Module_Class_Method, чтобы назвать свои функции в объекте ориентированным образом и использовать файл .c на класс. Использование C - это не препятствие против чистой конструкции.

5
ответ дан 28 November 2019 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: