您或您公司开发的软件项目使用了多少计划?
我提出这个问题的原因是因为我正在上课,我正在接受UML和其他类似的东西。从设置类的方式来看,我们已经使用Visual Paradigm这样的程序广泛地创建了一个模拟库系统,但到目前为止我们还没有完成任何编程工作(我们也不打算这个模拟项目)。
也许这就是课堂教学的方式,但在我看来,课程中教授的很多内容都非常荒谬 - 它在介绍软件项目的重要规划时也是如此。我可以看到有用的对象图是多么有用,但其他图表还有很多不足之处。实际中序列图或状态机图有多大用处?
因此,由于前面提到的,您或您公司开发的软件项目使用了多少和哪些计划?它是广泛的还是最小的?在编写代码之前,您是否深入研究计划所有内容或者是否对项目有一般感觉?
答案 0 :(得分:2)
我认为你混淆了规划和设计/架构。规划通常指的是事物的业务方面 - 有多少人会做多久的事情。假设您有足够的时间和预算,设计/架构应该处理如何做正确的事情。
在设计方面,大多数开发人员在某种程度上了解UML,但不一定使用它。如果他们被给予CASE工具,他们可能会使用类图表供个人使用,但不能经常使用其他人。 CASE工具强迫您使用UML的“正式形式”,因此它们非常严格,限制了它们的创造性使用。通常创建CASE模型以从代码生成中受益。在我自己的公司,我们生产了大量的代码,但根本不使用UML。
对于协作设计和审查(例如,在董事会上绘图),UML更常见,因为“每个人都会说”。然而,从我已经完成并发表的观察性研究中,在董事会上绘制的UML仅仅意味着结束 - 人们借用某些符号,但用它们来传达思想。所以你会在类图上看到序列和控制流等内容。生成的工件不是您可以捕获到CASE工具中的东西。当您将一群经验丰富的开发人员分组进行设计时,您可以看到my dissertation的许多照片。
在规划方面,我的经验是,软件公司和开发软件的公司之间存在很大差异。在后者(占大多数)中,宏观层面的规划通常是基于企业文化和商业风格规划,即你在MBA学习的东西。它通常不是特定于软件,就管理而言,您可能正在构建软件或烘烤松饼,这只是数字。在更微观的层面上,实际上并没有使用任何官方系统。甘特图和电子表格等工具用于跟踪基本上最佳情况的猜测和下滑的时间表。但最终,这取决于管理层的经验 - 以前的开发者通常都会更加强大。像Agile这样的某些实践在某些方面简化了规划。