gpt4 book ai didi

UML 类图概念 vs 规范 vs 实现

转载 作者:行者123 更新时间:2023-12-04 14:05:37 26 4
gpt4 key购买 nike

我目前正在阅读 Martin Fowler 的 UML Distilled。我刚刚介绍了关于类图的部分,他非常强调在对类图建模之前需要理清自己的观点。但是,在实际绘制类图时,我对它的实际外观感到有些困惑。我理解,例如,理论含义将关联的含义从一个角度更改为另一个角度。

我想我的主要问题是,例如,如果我像他在书中所做的那样对一个简单的排序系统进行建模,那么类图是否会有所不同,并且从一个角度到另一个角度包含不同数量的符号。例如,从概念的角度来看,我会只展示类和一些模糊的关联及其多样性,然后在规范的角度进行建模时,包括可导航性和基本类操作和字段。

我真的很感激这方面的一些指导,因为我真的很想更好地掌握这个主题。

最佳答案

好问题。以下是我个人经历的一些想法;不能说马丁是否会同意(!)但希望仍然有用。

总之:主要区别来自关系的形式和设计选择。

我发现以下有用:

  • 基本结构:大致映射到Fowler的UML草图,在白板上交互完成。主要目的是了解整体结构。很不正式。特别是,关注关系只是为了识别它们,而不是形式化 - 所以没有基数、删除行为、容器类的选择等。
  • 领域模型。一个精确的模型,专注于关系的形式化。具体来说,命名关联结束,定义基数并确认删除行为。不考虑可导航性或基数 >1 的容器类选择。我所知道的用于学习问题域的最佳技术之一。

  • 我几乎总是使用上述两种方法。领域模型的关键是使用基于动词的命名而不是基于角色的命名——因为它描述了关系存在的原因(有效地展示了业务规则:例如“订单必须由一个客户下单”)。我使用 Simsion & Witt 中描述的命名模板的书。

    在将域模型转换为工作代码方面还有很多工作要做,特别是在关系中。编程语言不能很好地支持关系,因此必须将关联转换为参与类的属性。正是在这一点上,可导航性开始发挥作用,同时选择多重性 >1 的集合类型。这也是需要指定所有操作的地方。我个人并不觉得这种类型的图表特别有用。域模型加上代码给了我我需要的一切。

    如果我使用的是可执行的 UML 工具,我只会使用“UML 作为编程语言”。

    有点啰嗦请见谅,希望能帮到你。。。

    PS:如果你想要一个更好的基于动词命名的例子,我有一个 post on my blog .请不要将其视为自我推销,在这里重复没有意义。

    关于UML 类图概念 vs 规范 vs 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5814038/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com