所以我知道UML图有助于程序的构建,但是什么时候使用它们?在开始编码之前是否需要它们?你需要它们所以你知道你需要编码吗?或者在编写程序后使用它们?
答案 0 :(得分:4)
我会采取一些不同的立场。
除了 Sequence Diagrams (通常在架构/设计阶段),我们不严格意义上使用UML。我会说它在学术界最有用,当你描述一些确切的和理论上的东西时。
在每天的工作中,一张纸上的任何方框和箭头都将到期。实际上,使用的一个好规则是,如果你不能用手工绘制的单张纸上解释你的设计,那就太复杂了。
答案 1 :(得分:4)
我倾向于对这个主题有些愤世嫉俗......并且回答UML图应该永远不会使用。
当您需要与不熟悉编程的人进行交流时,往往会使用UML图。漂亮的图形绘制使它们更加轻松舒适,但通常像以前一样无能为力。
根据我的经验,UML是一个很大的时间损失,并且倾向于取代其他工具既简单又高效。伪代码就像类图一样容易阅读(对我来说更容易)并且更容易输入;用例比scrum或XP中的好用户故事效率低;所有图表都很难与代码库和文档一起维护。并且您可以轻松地绘制设计错误而不是绘制它们(并且当以UML形式放置时,设计错误将变得更难以检测和克服,同意您在考虑绘图时可能会避免最明显的错误)。 / p>
我相信我花了很多时间绘制UML图表,但我仍在寻找一个他们给我带来任何利益的案例。
答案 2 :(得分:2)
之前,期间和之后。
您可以使用它们来描述需求,目标架构,软件设计,实施和部署。
即使是使用该软件的操作程序也可以用UML图表的形式来描述。
答案 3 :(得分:2)
UML图只是一种表示法,所以真正的问题是何时应该使用建模。有许多不同的方法和不同的方法和态度。统一过程就是其中之一,它是免费的并且极大地利用了UML,从中您可以了解如何使用UML图以及它们如何有用。但是,您必须确定哪些实践对您有益。我个人认为UML和建模是一种主要用于代码生成的工具,因此这些模型实际上是声明性程序。但是,它们也可以作为文档。另一方面,它们是否是用于动态行为的要求和描述的最佳工具可能是有问题的。我希望我能给你一些线索。
答案 4 :(得分:1)
我在不同的项目中以不同的方式使用它们。我已经看到类和序列图用作设计时工件,它们成为设计文档的一部分,我认为它们当时非常有用。它们可以帮助传达类之间的关系以及它们将如何交互。我发现它一目了然,并且知道接口和接口是什么。类是,哪些是相互扩展/实现的,特别是当我参加其他人的设计评审时。但我发现,如果开发人员不努力保持设计文档的最新状态,那些UML图表可能会很快过时。
我们在当前项目中大量使用UML,因为我们使用的是名为AndroMDA的UML代码生成工具。它肯定有其起伏,但我们用它来生成一些后端类,接口,存根impl,hibernate配置文件& spring配置文件。冬眠&弹簧配置文件是可能的,因为您向UML添加了额外的注释。无论如何,因为我们正在使用这个工具,所以当我们对后端代码进行更改时,我们必须首先更新我们的UML。因此,它确保我们的UML始终代表我们的代码中真正发生的事情。
答案 5 :(得分:0)
根据我使用方法DSDM推动移动电话应用程序开发的经验,我在功能原型设计阶段(开发开始之前)使用了UML图。
我发现他们让我更清楚地了解应用程序的外观,如何与人和其他系统进行交互,并开始向我展示如何构建代码。
例如,在开始开发应用程序之前会创建一个类图,因为它允许您考虑可能需要的类和属性。
答案 6 :(得分:0)
根据我的经验,它们主要在实现之前用于传达如何构建组件。它们为人们提供了一种以良好的标准化格式(设计评审)审查潜在设计的方法。他们还可以向对系统感兴趣的非开发人员(功能审查)提供系统的高级视图。我也看到它们在实现后用作新开发人员的参考,他们需要了解系统的工作原理。