【本篇为《如何有效实现软件的需求管理》第四篇,(第一篇第二篇第三篇第四篇第五篇,第六篇,第七篇,第八篇)】

第二阶段:需求分析与设计(怎么去做)

既然需求已经获取了,也就是说客户已经跟我们说了要做什么或者我们自己想出来的一些需要做的功能,好了,那现在就真正开始进入需求管理阶段了。

首先就是需求分析阶段了,所谓的需求分析,简单点来说就是把获取的需求分析一下,看看是否真的是客户所想的,看看是否是我们产品能做的。 有时候一个需求就是客户一句话,但是真正理解起来并不是一句话就能解决的,所以你可能需要再跟客户确认,了解他们的真实意图。(下面就是一张经典的需求分析出错的图,呵呵,我大学时老师讲到过,这次碰巧又被我看到了,就借来一用)

对于一个需求而言,它不是简简单单一个功能上的操作,它有可能是一个性能需求,也有可能是安全保密需求,甚至还有可能是用户接口需求、成本消耗需求、可靠性需求等,所以在需求分析的阶段,不是说跟客户交流几句话就能把这个需求完全搞清楚的,而且即使搞清楚了这个需求,能不能做(可行性)也不可能一下子想清楚。

所以为了解决这种问题,各种需求分析的方法也相应而生。如果你在大学的时候学过软件工程的话,可能你会记得像结构化分析方法之类的方法,什么数据流程图啊、数据字典啊、判定表啊,等等,也许当初你为了应付考试,就匆匆背了一下,到现在想必也应该忘了,即使你当初很用心地去看了,去理解了,我相信没有真正在工作中用到的话,你其实没有真正理解它们。

不过,如果你想从事需求分析相关的工作,我可以告诉你,这些知识还是很有用的,需求分析还是需要用到它们的,当然很多时候你应该不会直接用到这些理论,但是总是间接的用了体现它们思想的工具。(比如UML建模)

今天谈的是需求的管理,所以对于怎么做需求分析这种技术性的活,我不多说了,因为前面也说了,这个靠一篇文章是不能教会的,要真的教会我可能得出一本书了,呵呵。所以我还是侧重于去讲如何来管理整个过程,包括需求分析阶段,也包括之后的需求设计和需求实现阶段。

上面提到建模,也许有人问,为什么要建模,建模有啥好处,呵呵,这个问题本来不想回答,但是总是有人在问。

一方面,咱们在开发软件或者硬件,但是你拿到需求后不可能马上就能给客户看到这个产品是怎样的,所以你有必要做个模型出来,让客户能看看涨什么样子,是不是符合他们的要求,这种就是简单的建模,对于硬件而言,你可以把缩小版的样子给客户看,对于软件而言,你可以把这个软件的架构啊,可以实现的功能啊、数据流啊、程序流啊之类的列出来让客户去看;

另一方面,我们在实际开发中,可能有很多地方不能实际去验证,需要通过建模方式模拟验证,比如原子弹爆炸,我们不可能天天去爆炸一颗原子弹去验证是否符合设计,而是通过仿真模拟来验证,输入的数据跟真实原子弹的实物数据一样,然后配合实际的物理与化学逻辑,用工具模拟出爆炸情况。

我们自己公司经常用到的需求分析建模工具是FreeMind,基于思维导图原理,还行挺好用,之前用它的原因是我们用的需求管理工具 TechExcelDevSpec 自带了这个小工具,用用挺好用,就用上了,其实以前也用过Visio,也挺好的,不过白猫黑猫,能抓老鼠就是好猫,只要适合就行了。(下面是FreeMind的截图,功能还是很强大的)

第三阶段:需求评审(能不能做、做得好不好)

 

这个阶段放在第三阶段,其实我是为了配合这篇文章的,实际需求的评审出现在整个需求过程的很多阶段,比如你获取需求以后,需要评审一下,觉得这个需求要不要;你需求分析完了以后,也要评审一下,看看可行性、看看时间与成本;你需求设计以后,还是需要评审一下,看看是否设计合理。。。,所以评审贯穿与需求的始末,有了评审,才能保证你的产品在健康的道路上前进。

第四阶段:需求实现(开始做/让谁去做)

 

这个阶段其实严格来说不算在需求过程里,而是在开发阶段,不过因为总是是把需求让开发去实现,或多或少总是有点关系,所以我也把它放进来,但是后面可能会较少提及这个阶段。

(未完待续)

如何有效实现软件的需求管理 - 4相关推荐

  1. 如何有效实现软件的需求管理 - 7

    [本篇为<如何有效实现软件的需求管理>第七篇,(第一篇,第二篇,第三篇,第四篇,第五篇,第六篇,第七篇,第八篇)] 在我们公司,获取了一个需求以后, 首先,相关人员会先在DevSpec建立 ...

  2. 如何有效实现软件的需求管理 - 1

    [本篇为<如何有效实现软件的需求管理>第一篇,(第一篇,第二篇,第三篇,第四篇,第五篇,第六篇,第七篇,第八篇)] 前言:   开始在CSDN写博已经有差不多三个月了,主要是把我这几年在软 ...

  3. 如何有效实现软件的需求管理 - 5

    [本篇为<如何有效实现软件的需求管理>第五篇,(第一篇,第二篇,第三篇,第四篇,第五篇,第六篇,第七篇,第八篇)] 好了,上面把需求处理过程的四个阶段简单介绍了一下,后面结合我们公司流程时 ...

  4. 如何有效实现软件的需求管理 - 3

    [本篇为<如何有效实现软件的需求管理>第三篇,(第一篇,第二篇,第三篇,第四篇,第五篇,第六篇,第七篇,第八篇)] 我们先看下面一个简单的软件开发中的流程图,大家可以看到需求阶段主要是由这 ...

  5. 如何有效实现软件的需求管理 - 2

    [本篇为<如何有效实现软件的需求管理>第二篇,(第一篇,第二篇,第三篇,第四篇,第五篇,第六篇,第七篇,第八篇)] 什么是软件需求呢?为什么它需要管理呢? 软件需求完全严格来解释就是: ( ...

  6. 如何有效实现软件的需求管理 - 8 (全文完)

    [本篇为<如何有效实现软件的需求管理>第八篇,(第一篇,第二篇,第三篇,第四篇,第五篇,第六篇,第七篇,第八篇)] 版本控制:   在我们公司的实际需求管理中,需求的版本控制用的地方非常多 ...

  7. 如何有效实现软件的需求管理 - 6

    [本篇为<如何有效实现软件的需求管理>第六篇,(第一篇,第二篇,第三篇,第四篇,第五篇,第六篇,第七篇,第八篇)] 需求分析阶段完了以后,就是需求设计,然后就是需求实现了,过程看起来很简单 ...

  8. 如何有效实现软件的需求管理(1)

    之前把软件工程中的测试部分,文档管理部分都已经做了一些简单的介绍,因为都是我实际工作中经常接触的,所以也算是我的一些经验吧,不过我也不是每个部分都接触得很深入,总是有些地方讲得不太好的,也请大家谅解, ...

  9. 如何有效实现软件的需求管理(6)

    在我们公司,获取了一个需求以后, 首先,相关人员会先在DevSpec建立一个条目,添加相应的一些属性信息,比如标题,内容描述,状态,对应文档,优先级,紧急程度,负责人,对应版本,对应浏览器,对应数据库 ...

最新文章

  1. 反转链表:输入一个链表的头结点,反转该链表并输出反转后的链表的头结点。...
  2. 自己做的几个小软件(数学工具和游戏),用C/C#制作,用到许多相关的C#技术细节,可以免费提供下载,感兴趣的,来看一下...
  3. C++字符串类型转化
  4. 给大家推荐一个优质Linux内核技术公众号-Linux阅码场
  5. 云科技网络验证源码_面向虚拟化架构和容器云的开源安全工具
  6. 判断整除(动态规划,递推)
  7. jQuery实现checkBox全选全取消
  8. React Native 开发豆瓣评分(五)屏幕适配方案
  9. mysql集群session_集群session解决方案
  10. 虚幻引擎5 C++游戏开发教程
  11. 爬取淘宝买家秀,sign值的生成
  12. Java调用阿里云对象存储OSS
  13. 麻雀虽小,五脏俱全-Sqlite
  14. linux工作区目录,Linux(以RHEL7为例)下添加工作区的方法|| The Way To Add Workspace On Linux...
  15. Gluster相关命令
  16. 基于java植物养护管理系统ssm
  17. 如何搭建一个简单的个人网站
  18. 人称代词I/my/mine/me 用法
  19. 【Premiere】入门自学 1
  20. 《盗梦空间》完全解析

热门文章

  1. 【GCC系列】深入理解Linux内核 -- __no_sanitize_address宏定义
  2. CAD文字对齐快速操作
  3. 宽屏透明html5产品展示模板
  4. 长沙理工大学计算机科学与技术专业排名,2019长沙理工大学专业排名
  5. 手机闹钟软件测试用例,手机测试用例
  6. Redis常见面试题汇总
  7. 计算机excel奖学金公式,Excel计算年龄及按条件计奖学金问题-excel技巧-电脑技巧收藏家...
  8. 如何用python画人像_如何用Python画曼德勃罗集
  9. 如何使用CANalyzer查看LIN Message ID和Signal信号
  10. kube-scheduler 调度流程