标签: uml
标准 UML 有多标准?
拥有标准 UML 意味着什么,以及为什么该标准没有像人们认为的那样对许多事物进行标准化。
定义 UML 核心
在 2000 年的 UML World 大会上,我们进行了一场关于是否应该为 UML 建立核心的专题讨论。《SD Magazine》将其变成了一篇出奇连贯的文章(没有什么比得上一个好编辑了!)看看我会把核心做得多么小,这真是令人惊讶。
聚合和组合
在 UML 中,很少有东西比聚合和组合更令人困惑,特别是它们与常规关联的区别。
球和插座
UML 2 中出现的一种新符号是用于显示类所需接口的插座符号。它的起源是微软推广的“棒棒糖”符号,用于显示实现多个接口的类。所以我可以像这样显示 Array 类实现了多个接口。
类图上的集合
假设你有一个专辑类,它有一个曲目的 ArrayList。如何在 UML 类图中显示它?
依赖和关联
依赖和关联有什么区别?
派生信息
如何在 UML 中表示派生信息?
包含和扩展
UML 用例图定义了用例之间的一组关系。最著名的两个是包含和扩展。关于这两种关系的问题似乎比用例的任何其他部分,甚至比 UML 中的任何东西都多。
类图中的局部变量
如何在 UML 类图上显示局部变量(参数、临时变量等)?
模型驱动软件开发
模型驱动软件开发(MDSD)是一种软件开发风格,它认为自己是传统编程风格的替代方案。该方法的核心是构建软件系统的模型。这些模型通常通过图表设计符号来体现——UML 就是一种选择。其理念是使用这些图表向建模工具指定系统,然后使用传统编程语言生成代码。
多重性而非基数
当数据建模方法讨论关系时,它们使用术语基数来表示可以链接在一起的实体数量。因此,你可能在订单和客户之间建立关系,并说关系的基数是一对多。或者你可能会听到,一个订单的客户基数是 0 到多。
平台无关的误用
关于模型驱动架构(MDA)的一大说法是,它允许你在平台无关模型(PIM)中开发系统,然后将其转换为针对 .NET 或 Java 等技术的平台特定模型(PSM)。一个警觉的读者应该会说:“等等,Java 的全部意义不就是平台无关吗?那么,为什么我需要一些平台无关的技术来生成另一种平台无关的技术呢?”
UML 活动图
在《UML 精粹》中,我感叹没有一本好书来教授 UML 的活动图。现在仍然没有,但我最近看到了Conrad Bock 关于 UML 2.0 的文章。其中有一系列关于活动图的文章,比我在《精粹》中介绍的要深入得多。(对于那些不知道的人来说,Conrad Bock 是 UML 2 中活动图工作的领导者之一。)
UML 作为蓝图
长期以来,受工程影响的软件流程一直在寻找一种方法,以这样的方式来表达软件设计:可以将设计交给另一个小组来编写代码,就像在桥梁建设中使用蓝图一样。这将使稀缺且昂贵的软件设计师能够专注于蓝图,而许多更便宜的程序员则专注于构建。
UML 作为笔记
昨天,我正在查看一个代码库,查看代码的领域模型部分。在探索代码库时,我喜欢做笔记,以帮助我记住我学到的东西。对于某些代码库,特别是领域模型,我发现绘制 UML 类图很方便。
UML 作为编程语言
如果可以详细说明 UML,并为软件中需要的所有内容提供语义,则可以使 UML 成为编程语言。工具可以使用绘制的 UML 图,并将它们编译成可执行代码。
它的承诺是,UML 是一种更高级的语言,因此比当前的编程语言更有效率。
UML 作为草图
在这种UML 模式中,开发人员使用 UML 来帮助传达系统的某些方面。与蓝图一样,可以使用草图进行正向工程或逆向工程。正向工程是在编写代码之前绘制 UML 图,而逆向工程是从现有代码构建 UML 以帮助理解它。
UML 模式
当我在研究 UML 2 时,我突然意识到,人们对 UML 中应该包含什么存在分歧,因为人们对 UML 应该是什么有着不同的基本看法。在思考这个问题时,我想出了三种主要的 UML 思考分类:UML 作为草图、UML 作为蓝图和UML 作为编程语言。(有趣的是,Steve Mellor 独立地提出了相同的分类。)
UML 绘图工具
我绘制了很多 UML 图,但我没有使用 CASE 工具。原因是我对UML 作为草图感兴趣,而不是对所有存储库内容感兴趣。到目前为止,我的常规选择一直是 Visio。尽管 Visio 附带了 UML 模板,但我没有使用内置的模板——我更喜欢Pavel Hruby的模板。
UML2
上周,OMG 采用了 UML 2 的上层结构文档。实际上,这意味着 UML 2 已经达成一致。UML 2 对 UML 进行了许多更改——这是自最初商定 UML 以来对 UML 进行的最大一次修改。对于普通用户来说,最明显的更改可能是
用例
用例是一种组织和获取需求的技术。它们最初是由 Ivar Jacobson 在 20 世纪 80 年代末和 90 年代初推广的。