9

UML 有任何命名约定吗?

我有兴趣知道如何命名类、包和方法。但是,如果有一些文档指定了每个 UML 图的所有命名约定,请分享它。

4

4 回答 4

5

UML 标准没有指定任何命名约定。您选择的命名标准取决于您的 UML 模型的目标受众。此受众再次取决于您的模型的目的。例如,如果您打算从您的模型生成代码,那么您需要有一个适合您的目标平台的结果。我自己的经验是,如果您希望在更改目标平台后仍保留模型,或者如果您打算为多个目标平台生成代码,那么选择与平台无关的命名会很有帮助。例如,如果您打算为您的 SQL 数据库创建 Java 代码、DDL 语句和为您的 Restful 服务创建 XSD 模式定义,那么您将拥有三个不同的目标,您需要为所有三个目标使用一种通用语言。恕我直言,一个好的方法是使用与平台无关的类型系统,如 CORBA IDL,XSD 类型甚至 ISO 类型。您还可以使用自然语言类型描述,如“日期”、“时间”、“数字”、“货币”。对于您的域特定内容的名称,您可以使用映射。例如,如果您命名一个类“客户联系人”和操作“呼叫客户”,一个属性“客户名称”,那么映射将允许创建例如 Customer_Contact 作为 Java 类名称“callCustomer”作为操作名称和“customersName”作为属性名称。

是否可以应用映射取决于您使用的工具链。如果您不能使用映射,则必须决定哪个是目标平台的最小公分母。如果没有,您将不得不决定不遵循命名约定最省力的地方。

最重要的是恕我直言,将模型元素映射到其他工件的规则是否得到严格遵循和系统化(甚至可能是自动化的),或者该模型是否用于说明目的并且映射规则是否仅由相关人员使用他们的大脑来应用。

于 2012-12-17T10:10:22.430 回答
2

根据不同的实现目标使用不同的命名约定。这里有几个:

以多种语言实现的协议也是很好的例子:

  • 比特流
  • 库库尔
  • libusb
  • 库吉特
  • libexpect
  • xmpp
  • 测试任何协议(点击)
  • irc
  • 网络驱动程序
  • 管家
  • 网络套接字
  • 内存缓存
  • 昂首阔步
  • XDG
于 2013-01-03T23:55:00.403 回答
1

您的 UML 命名约定应该基于您正在编程的语言的命名约定。您正在描述您的实际类、包和方法,因此请使用您将要使用或已经在代码中使用的相同名称。

于 2012-12-14T23:49:13.243 回答
0

正如 Wolfgang Fahl 所述,UML 没有指定任何命名约定。然而,几个月前,我们发布了一套独立于平台和以域为中心的 UML 命名指南。即使这个答案来得太晚了,您(和其他人)可能会发现它们非常有用:http ://dx.doi.org/10.1016/j.datak.2013.09.001和http://mpi.upc.edu /gmc-en/methods-best-practices-and-profiles/naming-guidelines-for-uml-ocl

于 2014-04-17T08:53:41.100 回答