Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UML图中必需的指针、列表和向量属性名称?_Uml_Class Diagram - Fatal编程技术网

UML图中必需的指针、列表和向量属性名称?

UML图中必需的指针、列表和向量属性名称?,uml,class-diagram,Uml,Class Diagram,我有一个简短的问题: 我应该在UML图中命名类型的属性,如列表、数组、向量或指向对象的指针(不是原始类型),还是只命名关联/聚合/组合箭头就足够了 示例:这些图中哪一个是正确的 或 这实际上取决于您试图在建筑图纸中传达的内容。 该图的目的是帮助解释软件的结构。不应使用它来表示实现的所有细节。如果您在其中放了太多的细节,它就会变得杂乱无章,并且在发生更改时很难使它与源代码保持一致 UML绘图应该比实现更抽象。它应该有意隐藏细节,以便传递类的外部视图,而不是它们如何在内部实现。通常,您不希望类的用

我有一个简短的问题:
我应该在UML图中命名类型的属性,如列表、数组、向量或指向对象的指针(不是原始类型),还是只命名关联/聚合/组合箭头就足够了

示例:这些图中哪一个是正确的


这实际上取决于您试图在建筑图纸中传达的内容。 该图的目的是帮助解释软件的结构。不应使用它来表示实现的所有细节。如果您在其中放了太多的细节,它就会变得杂乱无章,并且在发生更改时很难使它与源代码保持一致

UML绘图应该比实现更抽象。它应该有意隐藏细节,以便传递类的外部视图,而不是它们如何在内部实现。通常,您不希望类的用户对其内部实现承担太多,因此您不希望将其公开太多


此外,一个体系结构通常由多个图形表示,而不是一个图形。试着让每幅图都集中在一个抽象层次上。如果您有几个表示应用程序主要逻辑的高级类,以及许多低级类,则单独绘制高级类是有意义的。

在UML中,如果您在关联的远端编写属性名称,则第二个图表是正确的。虽然UML属性可以不命名,但这不是一个好的实践。使用关联结尾指示关系存在的原因。有时一对类之间必须存在多个关联,但原因不同。你会如何区分它们


第一个图表显示了每种类型的两个属性。一个已命名,另一个(在每个关联的末尾)未命名。这是不正确的

谢谢。你所说的“在每个协会结束时”是什么意思?你能举个正确的例子吗?第一个和第二个图都显示了聚合和组合(Class4有指向Class5和Class6的指针,但Class6和Class5不知道Class4)有关关联结束的示例,请参阅。有关组合和聚合的说明,请参见:Imho,类图上的unnamed属性意味着名称将与其类的名称相同。我没有把它作为一条规则来阅读,但它被广泛用作一条未说的规则。@Gangnus:在UML2.5规范中,它说有一个约定“适用于整个规范中的所有元模型图。[…]如果关联端未标记,则该端的默认名称是该端附加到的类的名称,修改后的第一个字母为小写字母。“但是,这不是规范的一部分,因此不应依赖它。@JimL。对但这不是一条坏规则,在一个接受它的组织中,你可以依赖它。我在一些书中见过它,在那里它被含蓄地使用。所以,很高兴知道这件事。他没有透露太多信息。他把同样的信息放了两次。第一个是糟糕的风格,第二个是非常糟糕的风格,可以认为是一个错误。