哪些UML图仍在广泛使用?[关闭]


19

我在大学阶段教授软件工程,对UML从业者有疑问。

大多数软件工程教科书在覆盖UML图方面都进行了认真的工作。但是,另一方面,我从许多毕业生那里听说,UML似乎不再被使用。

哪些UML图仍在专业实践中广泛使用,为什么?是否存在不再使用的图,为什么?

注意:为了避免基于观点的辩论和讨论,请使用事实和客观因素(如果可能,可验证)或对个人经验的中性观察来说明您的答案


10
我们不知道 我们不会进行调查来发现此类情况。
罗伯特·哈维

3
您的问题主要基于意见。我经常使用UML,但是您会发现很多人回答“ UML已死”。
qwerty_so

1
softwareengineering.stackexchange.com/q/305031/40065是一个非常相关的问题(几乎重复,但是表达方式却非常不同)
Basile Starynkevitch

1
但是(现实生活中)也许不再使用UML了?那是我的意思!那么您的问题的答案将是:
巴西尔·斯塔林凯维奇

1
UML年轻时,Martin Fowler撰写了《UMLstilled》一书,这本书成为了许多程序员的参考书。几年后,马丁撰写了简短的实用应用笔记UmlAsSketchUmlAsNotesUnwantedModelingLanguage
尼克·阿列克谢夫

Answers:


15

从UML提出的许多图表中,类图和序列图仍然被广泛使用,当然还有状态图:

  • 在跳入代码之前,可以轻松地在白板上使用它们来阐述和讨论设计
  • 它们允许非常快速地传达概述,而仅凭代码无法轻易给出概述,并且没有可行的替代方案。

我认为现实生活中的用例是偶尔使用的。在具有数百个用例的大型项目中,绘制图表很麻烦,并且与表格形式相比几乎没有好处。 用于Cockburn风格的流程设计,用户故事映射或事件表格分解的BPMN越来越多。为什么呢 因为它们更容易与业务用户共享以有效地制定需求。

我确信他们是仍然大量和系统地使用UML的地方。我不认为没有完整的UML文档就可以生产航空软件或核动力装置控制系统。但我相信这是例外,而不是规则。

当我在书店里看书时,我感到这一说法得到了证实。几年前,您可以找到许多有关UML 2.0的书籍。如今,如果您正在寻找UML 2.5,则选择非常有限。更糟糕的是:许多作者甚至都没有努力修改以前的书,以使它们保持最新(例如:Fowler的不错的“ UML蒸馏 ”介绍,该介绍仍然可以追溯到2003年的UML 2.0,与Ambler的“ Elements” 相同)UML 2.0样式”!)。

敏捷的普遍性及其对“工作软件超过综合文档”的促进来看,我认为这种下降的趋势不会改变。

最后,我极具挑衅性地宣称,建模方法似乎遵循达尔文主义的方案:只有最合适的绘图技术才能生存,那些相对于非正式方法(例如餐巾纸图示)和详细代码(例如当相应的代码可以放在A4表格上时,为什么还要绘制A1活动图?);-)


另请参见agilemodeling.com
xmojmr

4
“当相应的代码适合A4工作表时,为什么还要绘制A1活动图?” 完善。
nbubis

根据我自己的经验,在相当多的公司中建模被认为浪费时间,只进行编码...
Walfrat

@Christophe什么是“餐巾纸插图”?
地毯

@rugk我指的是您在午餐时间在餐巾纸或桌布上讨论设计时绘制的简化非正式图表(我知道这是个坏习惯),每个人都理解,有时您有时会回到办公室您意识到它实际上解决了您的问题。
Christophe

7

另一方面,我从许多毕业生那里听说,UML似乎不再被使用。

它们都在实践中使用。但是并不是每个人都使用它们。有些人完全避免设计,而直接跳入编码。您不能依靠轶事证据来了解“每个人”的行为。

如果您在增值时使用UML之类的工具,则效果最佳;例如

  • 用于较大的项目
  • 用于项目的复杂部分
  • 当项目设计需要多人参与时

仅出于执行它们(或因为过程表明您必须这样做)而创建它们的工作效率不高。最佳实践是对绘制的图形和使用的类型进行选择。在有帮助的时间和地点使用UML,包括选择使用的UML图类型。

还... UML最初是作为设计工具设计的。(如今)它作为文档工具并不那么有效。如果有动态的代码库结构,典型的IDE可帮助您可视化许多方面。这通常比依赖于可能已经过时/不准确的UML图更好。


3

UML仍然在战es中使用。但是,人们一如既往地使用其中的一部分。哪个子集会遇到手头的问题。

UML有许多版本。但是,像往常一样,人们非正式地和不定期地使用它的符号。

UML是我们了解那里的许多模式书籍的方式。这也是我们在白板上进行交流的方式之一。它没有消失。但是,它永远不会像代码那样被正式使用。

与其培养可以纠正任何UML图以符合UML版本2.5或最新版本的学生,不如让学生理解该图试图传达的内容,即使它与特定的UML版本不完全一致也是如此。如何在沟渠中使用UML。它来自与其他系统混合的怪异的地方方言,有时我们只是组成自己的符号。

告诉他们可以问什么意思。不要教他们纠正违反某些想象规则的其他人。我们只是想在这里交流。

我见过uml最好的用途是让新程序员向我们展示他们解决问题的计划。它迅速向我们展示了他们已经忽略或尚未意识到的系统部分。

我也曾在不需要UML的地方工作过。我们总是使用相同的模式,所以这只是一种形式。我们得出的结论是,我们只是将新名称购物到旧图表中。不要鼓励这种用法。

但是我想我们都知道普通箭头和空心箭头之间存在差异。对?


0

根据我的经验,我将具体介绍:-部署图-序列图-类图这三个是任何项目中使用最多的,它们在不同层次上与团队提供了真正的沟通价值。

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.