UML for C编程语言

时间:2010-01-11 15:06:12

标签: c uml

UML最常用于使用C ++建模系统。在我的项目中,C是实现语言。我正在寻找适用于C的UML策略资源。我想在设计过程中使用UML并代表系统的不同方面。

3 个答案:

答案 0 :(得分:32)

我不知道任何现有的资源都讨论过专门针对C使用UML。正如其他人所提到的,UML与语言无关。

请记住,使用UML,您可以拥有问题域的模型,以及实现的另一个模型。尽量不要用C语言模拟问题域,而是用高级OO建模。一旦充分理解了问题域,就可以开始对实现进行建模。

对于过程式C实现的建模,以下图表可能很有用:

  • 类图:
    • 显示C模块API
    • 显示C模块关系(主要是非OO的依赖关系)
    • 显示结构和枚举(使用<< stereotype>>)
  • 包图:显示库的内容(模块)以及库之间的依赖关系
  • 活动图:流程图非平凡算法
  • 序列/协作图:显示模块/实体/输入/输出之间的事件/消息如何及时发生
  • 状态图:当然是对于状态机!

扩展类图,你可以按照以下方式“滥用”它们用于程序式C:

  • 全球外部职能 - >公共方法
  • 本地静态功能 - >私人方法
  • 全球外部变量 - >公众成员
  • 局部静态变量 - >私人会员
  • 结构 - >具有“struct”构造型的类
  • #define常数 - >具有“枚举”刻板印象的类

实验,您将找到自己滥用UML的约定。

答案 1 :(得分:8)

C的问题在于它更像是一种过程编程语言。使用C应用程序更难获得细粒度设计。如果您正在使用C,您可能希望坚持使用序列图和组件图,就像他们描述和概述正在发生的事情而不是依赖关系和交互图。

答案 2 :(得分:5)

面向对象的设计独立于语言,您当然可以使用UML设计系统。像Rhapsody这样的工具也允许代码生成和往返,我们用于一些不能选择C ++的特殊项目。如果您想手动编写代码,请使用一些命名约定,如Subsystem_Module_Class_Method,以面向对象的方式命名函数,并为每个类使用.c文件。使用C不是阻碍设计清洁的障碍。