关于UML,需要了解哪些基本知识?


18

我希望我对程序设计和行为的涂鸦变得更加精简,并与其他开发人员有共同的语言。

我查看了UML,从原则上讲,这似乎是我想要的东西,但这似乎有些过分。我在网上找到的信息似乎也很and肿且学术性强。

我如何以通俗易懂的方式理解UML,足以向同事解释?在基础层面上了解UML的规范资源是什么?


1
我更喜欢旧标题,至少在开头是这样:“ UML最有用的10%是什么?” 否则,请做好编辑!
Joey Adams

如果您已经将文档写成了UML,那么您只是不熟悉他们决定如何称呼您的文档类型
Ryathal 2011年

Answers:


4

喜欢这些问题-与我自己问过的问题相同:

我如何以通俗易懂的方式理解UML,足以向同事解释?在基础层面上了解UML的规范资源是什么?

这是我发现的:

首先,我的选择是Fowler的UML Distilled。如前所述,它实际上是对基础知识的提炼:定义,示例,何时应该使用某种类型的图表的建议。如果您想专注于UML的特定部分而不阅读本书的封面,这也是一个很好的参考

有关更详细但纯英语的介绍: UML 2 for Dummies对我和我的同事都适用。它不仅详细介绍了UML,其语法和用法,而且还对良好的编程和设计实践提供了许多建议。

这两本书之间偶尔会有关于什么语法属于UML标准的哪个版本的区别。然而,这些只是分钟,绝对不是使用UML图传达设计思想所必需的。(例如:UML 2是否允许离散的多重性,即表明某个属性可能确切地具有X,Y或Z对象,而不是仅比0,一个,许多或更多个X;例如,应在参与者的姓名下划线。 ..)

有关完全非学术性且不太冗长的介绍,请访问:此博客中有许多有关UML的文章:http : //blog.diadraw.com/category/uml/

它不是一本教科书,因此还不是很详尽,但还使用了与之相关的非教科书故事和示例。仅有的几篇文章侧重于以视觉方式介绍UML概念,因此您可以完全跳过本文的阅读。


该博客链接很好。
汉诺·菲茨

8

我真的很喜欢Martin Fowler的UML Distilled。简短而甜美,足以满足白板讨论的需要。获得几份副本,并将其传递给团队。


1
+1提到这本书,我在写答案时完全忘记了它!
亚历山大·加尔金

2
您可以进一步介绍一下这本书的经历吗?

拒绝投票的原因是什么?
凯文·克莱恩

1
当我成为团队负责人时,我要做的第一件事就是为团队中的每个人购买本书的副本。它为我们提供了讨论设计的通用词汇。一些年轻人还报告说,这有助于他们更好地理解他们阅读的各种设计模式书中的图表。
TMN

2
@kevincline我通常链接到Amazon,因为它将链接转换为Stack Exchange的引荐来源网址。如果有人点击并从该URL购买,那么Stack Exchange可以赚钱。借助来自亚马逊的书名,作者和ISBN信息,它也变得无足轻重,可以在您喜欢的首选书店中找到该书。
Thomas Owens

5

仅仅图并不总是有用的。例如,用例图无法详细传达业务规则。类图可能非常有用,因为您可以从中生成类代码和DLL。

我发现这些图最有用:

  • 用例图
  • 类图
  • 活动图
  • 顺序图

有很多有用的资源,但是请检查以下内容:

编辑1 以回应Mark的评论。

尽管我每天不使用这些资源,但它们可作为UML语法的快速参考。选择上面的资源是因为它们提供了UML图的快速而又全面的表示。它显示了通用图,并帮助新的UML用户快速查看它们之间的区别。第一个资源,即视频,提供了有关用例及其与其他图表的关系的详细信息。上面的资源对于想要学习UML或OOD的任何人来说并不足够,我意识到学习此类主题并不是原先的问题。


+1表示ClassSequenceActivity图。用例图我一点也不说服,只是用例图是用户报告的绝佳封面,因为用户似乎喜欢这些图片。
Sjoerd

@Sjoerd,感谢您的评论。如您所正确指定的,用例会受到用户的喜爱。此外,用例图具有许多值。它们使您可以识别参与者(主要和次要),并允许您发现“ C级Cse案例”。它与活动图和类图的关系在规范中建立了凝聚力。请记住,它们不能代替详细的业务规则和完整的需求文档。
NoChance 2011年

您可以使用这些资源进一步了解您的经历吗?那么他们(而不是其他人)如何帮助您理解UML?

@MarkTrapp,感谢您的评论和修改。
NoChance 2011年

2

如果您仅对其中的10%感到满意,那么您不应该尝试从UML书中学习它。相反,您最好阅读一本有关面向对象的分析设计模式的好书-这些书为您提供了所需要的10%。

但是,如果您正在寻找有关UML的教程,我会推荐该网页,尤其是有关UML图表的文章(这不是广告,我个人与该网站没有任何关系)。只需浏览这些图并查看它们:它们大多是不言自明的,只要您了解OOP以及程序设计和体系结构,就可以轻松理解它们所描绘的内容。

为什么我会推荐这个页面呢?(在评论中提出)

我之所以喜欢它,有几个原因:

  1. 它在第一页为您提供了UML图的概述表。
  2. 该表除了提供每个UML2.0 Digramm的简短描述之外,还具有一个非常有用的“学习优先级”列,可以帮助UML入门者识别最常用的UML图。
  3. 即使它也包含机器渲染的图,但大多数图看起来都是手绘的(可能手绘的)。我以此为标志,仍然可以只用铅笔和纸进行建模,而无需一开始就研究UML可视化软件。

您可以通过这些建议进一步了解自己的经历吗?那么他们(而不是其他人)如何帮助您理解UML?

1

O'Reilly的UML 2.0 Pocket Reference比这要详细一些,但可能是最好的选择,因为它足够小,可以快速找到您需要的内容,但是在需要时仍然有说明。而且它是最新的,对于“ UML备忘单”或我在网上发现的参考卡而言,情况并非如此-这些大多描述了UML 1.x


您可以进一步了解这本书的经历吗?那么,而不是其他书籍如何帮助您理解UML?

@Mark Trapp:主要是因为它很小,因此您可以快速拿起所有必需品,而不会在细节和特殊情况下迷失方向。
Michael Borgwardt

0

这包括三个部分:

  1. 获取正式的UML参考

    每当您学习一种新的“语言”时,无论您是书本还是在线资源,都可以获得可以随时使用的参考。UML Distilled很小,有很好的解释,并且有很多清晰的图表。即使您没有使用所有功能,也可以随时回过头来看看表达某些东西的“正确”方法。

  2. 使用UML为事物建模

    现在您有了参考,开始使用它来为现有的一些小型系统或即将使用的系统建模。在大多数情况下,您可能需要坚持使用类图,序列图和状态图。如果不确定,请查阅参考资料并查找“正确的”用法-如果没有帮助,请尝试使用Google谷歌搜索或询问Stack Overflow。就像编程一样,练习是关键。

  3. 在实际项目中使用一些 UML

    当您开始与团队一起使用UML时,请记住,这只是了解您所构建或将要构建的系统的工具。在绘制图表时,您仍然应该检查参考,但要专注于传达信息,而不是严格遵循规则。

回想一下您的高中写作课。您的老师可能认为以“ and”,“ but”或“ or”开头的句子是最主要的罪过。随着更多的写作和对英语的更多控制,您学会了如何改变规则以取得更大的效果-您从遵循正确的方法过渡到传达您想说的最好的方法。UML应该以完全相同的方式在行业中使用。


0

我想说的是,如果您知道UML,那么所有图都将为您提供应用程序的不同视图。有很多书籍。

如果您不了解UML,最简单的方法就是仅创建已从现有代码中逆转的类/序列图。您只需要将现有代码转换为UML并在类/序列图中添加自己的注释即可。类图将为您的应用程序提供静态视图,序列图将描述方法流程以及应用程序行为。UML工作完成,没有错误:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.