Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

Ответ 2

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

Ответ 3

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