我在大学阶段教授软件工程,对UML从业者有疑问。
大多数软件工程教科书在覆盖UML图方面都进行了认真的工作。但是,另一方面,我从许多毕业生那里听说,UML似乎不再被使用。
哪些UML图仍在专业实践中广泛使用,为什么?是否存在不再使用的图,为什么?
注意:为了避免基于观点的辩论和讨论,请使用事实和客观因素(如果可能,可验证)或对个人经验的中性观察来说明您的答案
我在大学阶段教授软件工程,对UML从业者有疑问。
大多数软件工程教科书在覆盖UML图方面都进行了认真的工作。但是,另一方面,我从许多毕业生那里听说,UML似乎不再被使用。
哪些UML图仍在专业实践中广泛使用,为什么?是否存在不再使用的图,为什么?
注意:为了避免基于观点的辩论和讨论,请使用事实和客观因素(如果可能,可验证)或对个人经验的中性观察来说明您的答案
Answers:
从UML提出的许多图表中,类图和序列图仍然被广泛使用,当然还有状态图:
我认为现实生活中的用例是偶尔使用的。在具有数百个用例的大型项目中,绘制图表很麻烦,并且与表格形式相比几乎没有好处。 用于Cockburn风格的流程设计,用户故事映射或事件表格分解的BPMN越来越多。为什么呢 因为它们更容易与业务用户共享以有效地制定需求。
我确信他们是仍然大量和系统地使用UML的地方。我不认为没有完整的UML文档就可以生产航空软件或核动力装置控制系统。但我相信这是例外,而不是规则。
当我在书店里看书时,我感到这一说法得到了证实。几年前,您可以找到许多有关UML 2.0的书籍。如今,如果您正在寻找UML 2.5,则选择非常有限。更糟糕的是:许多作者甚至都没有努力修改以前的书,以使它们保持最新(例如:Fowler的不错的“ UML蒸馏 ”介绍,该介绍仍然可以追溯到2003年的UML 2.0,与Ambler的“ Elements” 相同)UML 2.0样式”!)。
从敏捷的普遍性及其对“工作软件超过综合文档”的促进来看,我认为这种下降的趋势不会改变。
最后,我极具挑衅性地宣称,建模方法似乎遵循达尔文主义的方案:只有最合适的绘图技术才能生存,那些相对于非正式方法(例如餐巾纸图示)和详细代码(例如当相应的代码可以放在A4表格上时,为什么还要绘制A1活动图?);-)
另一方面,我从许多毕业生那里听说,UML似乎不再被使用。
它们都在实践中使用。但是并不是每个人都使用它们。有些人完全避免设计,而直接跳入编码。您不能依靠轶事证据来了解“每个人”的行为。
如果您在增值时使用UML之类的工具,则效果最佳;例如
仅出于执行它们(或因为过程表明您必须这样做)而创建它们的工作效率不高。最佳实践是对绘制的图形和使用的类型进行选择。在有帮助的时间和地点使用UML,包括选择使用的UML图类型。
还... UML最初是作为设计工具设计的。(如今)它作为文档工具并不那么有效。如果有动态的代码库结构,典型的IDE可帮助您可视化许多方面。这通常比依赖于可能已经过时/不准确的UML图更好。
UML仍然在战es中使用。但是,人们一如既往地使用其中的一部分。哪个子集会遇到手头的问题。
UML有许多版本。但是,像往常一样,人们非正式地和不定期地使用它的符号。
UML是我们了解那里的许多模式书籍的方式。这也是我们在白板上进行交流的方式之一。它没有消失。但是,它永远不会像代码那样被正式使用。
与其培养可以纠正任何UML图以符合UML版本2.5或最新版本的学生,不如让学生理解该图试图传达的内容,即使它与特定的UML版本不完全一致也是如此。如何在沟渠中使用UML。它来自与其他系统混合的怪异的地方方言,有时我们只是组成自己的符号。
告诉他们可以问什么意思。不要教他们纠正违反某些想象规则的其他人。我们只是想在这里交流。
我见过uml最好的用途是让新程序员向我们展示他们解决问题的计划。它迅速向我们展示了他们已经忽略或尚未意识到的系统部分。
我也曾在不需要UML的地方工作过。我们总是使用相同的模式,所以这只是一种形式。我们得出的结论是,我们只是将新名称购物到旧图表中。不要鼓励这种用法。
但是我想我们都知道普通箭头和空心箭头之间存在差异。对?