我在大学里做了一个需求分析模块。我们讨论了各种形式的需求,如UML、用例图、序列图和合同。我不得不问--这些东西在现实世界中有任何价值吗?我见过的唯一的用例图可以用简单的英语(甚至用您选择的合理语言编写的代码)更简洁和易懂的方式来概括,我提到的其他事情也是如此。
发布于 2011-08-22 23:17:02
需求分析是一个使用UML图表等工具的过程。
图表有助于交流,有时还可以用来生成代码(例如,下面的1和2)。它们还有助于在解决方案中添加一个可视层,以帮助最终用户和开发人员(例如,下面的4、5)。
用例图表示交互的高级视图,而不替换文本的案例描述。
显示需求和设计的一些非常重要的图表有: 1.实体关系图2.类图3.序列图4. BPM -业务流程模型5.页流程图6.用例
需求分析是一个很大的课题,也可以使用其他图表。重要的是,您捕获并向开发人员和最终用户传达关于系统需求的知识。
有一套工具可以验证上述一些图表(例如,1,2)。有些工具可以自动从(1或4)构建web应用程序。
是的,这些图表很重要,并且在一些项目中使用。
发布于 2011-08-22 22:30:55
学校的问题为了学习过于简单化了。所以你不能根据它们对现实世界中的效用做出任何价值判断。其次,大多数进行需求分析的人都不是程序员,当然也不能用代码来表达需求。第三,在从事大型复杂项目时,这些方法最有用,因此,从事小型工作的人的经验可能表明,在从事航天飞机类项目的人的经验可能不同的情况下,它们的用处不大。
我参与的上一个大型项目有一个800多页的信息需求文档(到最后它变得更大了),有时有一个图表可以更容易地理解书面单词。它还有助于让人们了解需要创建的过程,并有助于防止愚蠢,比如要求软件获得经理的批准,批准一个超过100万美元的项目的预算支出,但没有要求告诉您如果拒绝该项目该怎么办。当您使用结构化方法时,您更有可能看到我认为的所有部分。
这些技术是否总是适用于所有项目,当然不是。敏捷项目一开始就倾向于采用一种不那么复杂的方法,而这些技术可能会被视为浪费时间。从您所写的内容来看,我会怀疑您是一个对敏捷方法更放心的人,因此可能不会使用这些技术,也不会在您所从事的项目中看到它们。对你来说,学习它们的关键可能更多的是去做它们的分析性思维过程,而不是实际的图表本身。
发布于 2011-08-23 03:52:43
是的,这些东西在现实世界中有价值。
您并不总是使用它们,也不总是完美地完善它们,但是它们都是对问题域建模并确保构建正确解决方案的有用工具。
这些工件的存在都是因为它们比纯文本更好地记录正在发生的事情。如果简单的英语更好的话,我们就会用它。(如果简单的英语效果更好,我们就会使用文本要求!)
不要被学习环境中这些事情的简单性所愚弄。在现实世界中,它们会变得相当复杂。或者,有时它们并不复杂--从而成为传达理解的简单方式。
https://softwareengineering.stackexchange.com/questions/102955
复制相似问题