UML实用吗?

UML实用吗?,uml,class-design,diagram,Uml,Class Design,Diagram,在大学里,我上过很多设计和面向对象的课程,我认识到UML可以用于软件项目,特别是映射,但它真的实用吗?我已经做了一些合作工作术语,看起来UML在行业中没有被大量使用。在项目期间花时间创建UML图是否值得?此外,我发现类图通常没有用处,因为查看类的头文件会更快。具体来说,哪些图表最有用 编辑:我的经验仅限于10个以下的小型开发人员项目 编辑:许多好的答案,虽然不是最详细的,但我相信选择的答案是最平衡的。通用工作流和DFD对于复杂流程非常有用。根据我的经验,所有其他的图表(尤其是UML)毫无例外地都

在大学里,我上过很多设计和面向对象的课程,我认识到UML可以用于软件项目,特别是映射,但它真的实用吗?我已经做了一些合作工作术语,看起来UML在行业中没有被大量使用。在项目期间花时间创建UML图是否值得?此外,我发现类图通常没有用处,因为查看类的头文件会更快。具体来说,哪些图表最有用

编辑:我的经验仅限于10个以下的小型开发人员项目


编辑:许多好的答案,虽然不是最详细的,但我相信选择的答案是最平衡的。

通用工作流和DFD对于复杂流程非常有用。根据我的经验,所有其他的图表(尤其是UML)毫无例外地都是对时间和精力的痛苦浪费。

UML有它的位置。随着项目规模的扩大,它变得越来越重要。如果您有一个长期运行的项目,那么最好用UML来记录所有内容。

UML只是人与人之间交流的方法之一。
白板更好。

我不同意这种说法,UML被广泛使用——在设计IT项目的任何地方,UML通常都会出现

现在,它是否被很好地使用是另一回事

正如斯图所说,我发现从开发人员的角度来看,用例(以及用例描述)和活动图都是最有帮助的

当试图显示关系以及对象属性(如持久性)时,类图非常有用。当涉及到添加任何单个属性或属性时,它们通常都是多余的,尤其是当编写代码后,它们往往会很快过时


UML最大的问题之一是,一旦生成代码,就需要大量的工作来保持它的最新状态,因为很少有工具可以从代码中重新设计UML,也很少有工具能够很好地完成它。

我看到序列图和活动图经常被使用。我对与其他系统交互的“实时”和嵌入式系统做了大量工作,序列图在可视化所有交互方面非常有用

我喜欢做用例图,但我没有遇到太多认为它们有价值的人


我经常想知道RationalRose是否是从基于UML模型的设计中获得的各种应用程序的一个好例子。在一个足够复杂的系统中,它是臃肿的、有缺陷的、缓慢的、丑陋的,

在某些地方,一些
UML
被认为是有用的

系统的有用图表因适用性而异。
但最广泛使用的是:

  • 类图
  • 状态图
  • 活动图
  • 序列图
有许多企业对它们信誓旦旦,也有许多企业干脆拒绝它们,认为这完全是浪费时间和精力


最好不要过火,不要认为什么对您所从事的项目最有利,而要选择适用且有意义的东西。

我将通过提及我没有在大型(类似IBM的)公司开发环境中的经验来限定我的答案

我看待UML的方式和方法是,它更多的是谈论你要做什么,而不是实际做你要做的事情


(换句话说,这在很大程度上是浪费时间)

我在学校的最后两个学期共同教授了一门高级发展项目课程。该项目拟用于当地非营利组织作为付费客户的生产环境。我们必须确保代码达到了我们预期的效果,并且学生能够捕获满足客户需求所需的所有数据

上课时间是有限的,我的课外时间也是有限的。因此,我们必须在每次班会上进行代码审查,但由于有25名学生报名,个人审查时间非常短。在这些复习课中,我们发现最有价值的工具是ERD、类图和序列图。ERD和类图仅在Visual Studio中完成,因此创建它们所需的时间对学生来说微不足道

这些图表很快传达了大量信息。通过快速概述学生的设计,我们可以快速隔离他们代码中的问题区域,并当场执行更详细的审查


如果不使用图表,我们将不得不花时间逐一查看学生的代码文件以查找问题。

我发现UML对于非常小的项目并不真正有用,但确实适用于较大的项目

本质上,你使用什么并不重要,你只需要记住两件事:

  • 你需要一些建筑规划吗
  • 您希望确保团队中的每个人都在使用相同的技术进行项目规划
所以UML就是这样:一个关于如何规划项目的标准。如果你雇佣新员工,他们更可能了解任何现有的标准——不管是UML、Flowchard、Nassi Schneiderman还是其他什么——而不是你现有的内部工作


对一个开发人员和/或一个简单的软件项目使用UML对我来说似乎有些过分,但当在一个更大的团队中工作时,我肯定会想要一些规划软件的标准。

使用UML就像走路时看着你的脚一样。它使你有意识地、明确地做一些你通常可以无意识地做的事情。初学者需要仔细考虑他们在做什么,但是专业程序员已经知道他们在做什么了。大多数情况下,编写代码本身比编写代码更快、更有效,因为他们的编程直觉与任务相适应

唯一的例外是,为什么你发现自己晚上在树林里没有手电筒,而火把开始燃烧