需求分析的大道理

简介:

你非常光荣地接受了这个任务,领导任命你为订餐系统的项目经理,你会如何展开需求分析工作呢?
可能你会这样想:那还不容易,这么简单的系统,直接编码就行了,还写什么需求!
伙计,不要冲动,看到这里请你先停止阅读,找张纸和笔,用你自以为合适的方式列出这个系统的需求。
请写完后才继续往下看噢!

不听话了?没写完就往下看?

咱们先说说需求分析的一些大道理:
首先我们需要明确项目的背景,我们要回答这些问题:也就是为什么会有这个项目?客户为什么想做这样的一个项目?如果没有这个项目会怎样?
了解背景的基础上,我们需要进一步了解以下内容:

1)本项目解决了客户的什么问题?
2)本项目涉及到什么人、什么单位?
3)本项目的目标是什么?
4)本项目的范围是怎样的?
5)本项目的成功标准是什么?
以上这些内容,我们称之为客户的“需要”。

接下来,就可以定详细的需求规格说明书了,一般我们会对功能性需求和非功能性需求都列出详细的要求,我们这里把这些要求定义为“需求规格”。


图1 背景、需要、需求规格


对于功能性需求,我们往往会描述成用例图


图2 用例图

对于非功能性需求,往往会对系统稳定性、性能、兼容性等提出要求。

什么是背景?
背景这东西比较笼统,简单地说就是这个项目的来由,我们需要用说故事的方式讲清楚项目的背景。

什么是需要?
需要就是客户真正想要的东东,是高层次的需求,我们可以把需要解决的问题、关键涉众、项目的目标、范围、项目成功标准等全部统称为需要。

什么是需求规格?
需求规格是很细级别的但又没有细到详细设计程度的需求了,描述出系统与用户是如何交互的,系统要满足怎样的一些非功能要求。

需求分析过程,无非就是由背景到需要到需求规格的过程,这个过程是螺旋前进的。需求分析中最难解决的问题往往就是搞不清需求之根源,把握不清背景和需要,往往就会被繁琐的需求规格所困住,被客户牵着鼻子走。理论是完美的,现实是残酷的,我们现实的需求分析工作,往往会出现这些问题:

背景啊背景,我该如何写你呢?
我们公司的需求规格说明书中,第一章节就是“背景”,但往往大部分项目写出来的背景写了等于没写。有些写了诸如此类的内容:某年某月某日与某某公司签订了某某合同,成立了改项目组,项目人员有谁谁谁,客户联络人是谁谁谁。有些项目更懒,直接复制前期需求文档的背景,以致项目已经做到第三期了,第三期的背景仍然是抄第一期的。不知道如何分析背景,背景不知道写啥,这是项目的普遍现象。

目标在哪里?
对于“项目的目标”,项目组普遍的问题有:
1.根本不知道“目标”这回事。
2.目标写出来了,但被扣上“大而虚”的帽子。
3.没有用目标来指导下一步工作,后面遇到具体问题时,没有用目标来思考。
4.目标写出来就不变了,没有持续去思考是否需要调整。

需求规格优先
很多需求分析人员喜欢将系统要做的事情,以用例或者功能点的方式记录下来,但往往没有记录为什么需要这样一个用例或者是功能点,没有去思考这个用例或者功能点背后隐藏的客户需要是什么。更甚者进入具体的界面设计,在需求文档中写清楚界面上放什么按钮什么菜单等,一开始就将需求“僵化”,这样会让后面的工作陷入“万劫不复”之地。

本小结开始的时候,要求你先写下本系统的需求,再继续往下看。不知道你写的需求中是否有背景、需要这些内容呢?你写的需求是不是几乎全部是“需求规格”呢?

下面,我们将来挑战“订餐系统”的背景、需求和需求规格。


图3 某需求规格说明书目录

转:http://www.umlonline.org/school/thread-199-1-1.html



本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2011/07/20/2111659.html,如需转载请自行联系原作者

目录
相关文章
|
10月前
软件工程——软件开发阶段(概要设计、详细设计)
需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。确定系统的具体 实现方案、给出软件的模块结构、编写各个文档
|
3月前
|
测试技术 数据安全/隐私保护 UED
测试人员需求分析都做什么
测试人员需求分析都做什么
|
10月前
|
算法
需求分析引起的算法
需求分析引起的算法
470 0
|
8月前
|
算法 架构师 安全
需求分析和常见的需求问题解决
需求分析和常见的需求问题解决
110762 17
|
10月前
|
数据库
【系统分析】软件工程——概要设计和详细设计
【系统分析】软件工程——概要设计和详细设计
378 0
|
测试技术 项目管理 UED
如何进行需求分析?
做技术的同学对于需求应该是既爱又恨,一方面软件产品的源头来自于需求,另一方面日常工作中面对需求的不明确和经常变更,只能无能狂怒。日常的工作流中,需求分析和需求评审的结果往往决定了这个版本交付质量的好坏。
如何进行需求分析?
|
安全 NoSQL Java
需求分析|学习笔记
快速学习需求分析
318 0
需求分析|学习笔记
|
测试技术
测试理论--需求分析
需求分析就是要弄清楚用户需要的是什么功能,用户会怎样使用系统。这样测试时才能更清楚的知道系统该怎么样运行,才能更好的设计测试用例,才能更好的测试。
198 0
|
存储 数据可视化 数据库
项目需求分析 | 学习笔记
快速学习项目需求分析
207 0
如何做需求分析
什么是需求? 通俗些来讲需求就是现实和想象的差距,差距越大,需求越大。 来源网络,侵权删 如上图理想中的男朋友和现实中的男朋友,因为有差距,所以就有了类似于“如何让男人宠爱一生”之类的书、情感专栏等产品产生。
1354 0