“我们应当怎样做需求分析”阅读笔记

需求分析既是一项体力活儿,也是一项技术活儿,它既是人际交往的艺术,又是逻辑分析与严密思考的产物。正是我们在需求分析过程存在的巨大隐患,最终导致了那么多项目的失败。

三个故事各有各的不幸,各自都在不同的开发环节出现了问题。但经过深入的分析,各自的问题最终都归结为需求分析出现了问题。为了使我们今后的软件项目不会重蹈覆辙,似乎真的有必要讨论一下我们应该怎样做需求分析。

一、我们应当怎样做需求调研

1、 初识

我们对客户提出的需求进行深入理解以后,运用我们专业知识,提出比客户的原始需求更加合理、可操作的解决方案,让客户感觉你说的正是他们想要的。如果能够这样,客户不仅能够欣然接受你提出的方案,而且会感觉你非常专业 ,你在客户心目中的形象也会无形中提高、使你有更多的机会提出有利于开发的可行方案,降低开发的风险。这毫无疑问会形成一个良性循环,但要做到这一点并不容易,毫无疑问,在与客户接触的初期的表现起到了极其关键的作用。

在软件项目中,特别是管理型项目中,客户都代表的是一个群体,而不是个人。他们代表的可能是一个单位、一个集团,甚至是一系列组织结构。在这样一个群体中,他们按照职能被划分成了不同的角色。拿一个单位来说,横向可能划分成不同的部门,财务部、销售部、采购部、生产部……不同的部门,由于业务的不同,对软件的需求自然是不同的,因此我们在需求调研的时候,什么部门的需求就应当跟什么部门谈。

2、 拜访

需求调研不是一蹴而就的事情,是一件持续数月甚至数年的工作(假如项目还有后期维护)。在这漫长的时间里,我们需要依靠客户这个群体的帮助,一步一步掌握真实可靠的业务需求。不仅如此,技术这东西总有不如意甚至实现不了的地方,我们需要客户的理解与包容,这都需要有良好的客户关系。按照现在的软件运作理念,软件项目已经不是一锤子的买卖,而是长期的、持续不断的提供服务。按照这样的理念,软件供应商与客户建立的是长期共赢的战略协作关系,这更需要我们与客户建立长期友好的关系。

3、 研讨会

业务研讨会是最重要的,但同时又是灵活的,没有一个定式,甚至有时都不能称之为会议。项目经理需要根据实际情况,合理地与客户组织研讨会。但不论怎样组织,必须注意两点:有效抑制个性化差异、分模块组织专项研讨会。

4、 需求研讨

需求分析人员在进行需求研讨时,首先跟客户探讨的不是软件功能,而是客户现有的业务知识,用专业的话叫“业务领域分析”。我们做需求分析,眼界不能仅仅停留在软件本身,应当更开阔一些,应当扩展到跟这个业务有关的领域知识中。

5、 迭代

需求分析是一个反复循环的过程:需求捕获->需求整理->需求验证->再需求捕获……

6、 需求捕获

从客户嘴中说出来的需求,只是整个软件需求中的冰山一角,还有两类需求需要我们自己去挖掘:客户嘴中没有说出来的需求,和客户压根儿就没有想到的需求。

二、我们应当怎样做需求分析

1、 功能角色分析及用例图

绘制用例图要学会拆分,由粗到细地一个一个绘制。先整体的绘制,再划分成各个模块一个一个详细绘制,再进一步细化。功能角色分析是对系统宏观的、整体的需求分析,它用简短的图形绘制出了一个系统的整体轮廓。但仅仅进行功能角色分析是远远不够的,我们还需要在它的基础上做更加详尽的分析。

2、 业务流程分析

清除低效环节、简化业务瓶颈、整合可用资源,以及将繁琐任务自动化。

3、 查询报表分析

报表作用体现的是报表对于不同用户的真实意图;输出列体现的是对各个数据项及其数据来源的说明;假设与约束罗列的是报表中各个数据项的运算公式、数据规则与约束;还有使用频率、数据链接、非功能需求,以及最后的界面原型,等等。只要我们把这些都分析到了,我们的查询报表就分析到位了。

4、 子用例与扩展用例

在基本流程中,可能有些步骤是多个用例都共有的,可以相互共享的流程。将这部分流程提取出来形成的就是子用例。扩展流和异常流中的流程如果相对独立、可以为其它流程所共享,则可以提取出来,形成一个单独的用例,叫扩展用例。

5、 行动图和状态图

6、 业务领域分析

需求分析人员就应该通过客户中的领域专家去学习这些知识、掌握这些要点,并最终体现在我们的需求分析中。业务领域分析不仅出现在需求分析阶段,还应当贯穿与设计阶段、开发阶段、测试阶段,甚至延续到后期的维护与升级。

7、 原文分析法

对用例说明中的名称,动词进行分析,确立领域模型。

8、 领域驱动设计

有效建模思想,用业务人员理解的去表达。

9、 非功能需求

可用性(Usability)、可靠性(Reliability)、性能(Performance)、可支持性(Supportability)以及其它(+)

三、我们应当怎样做需求分析

1、 需求列表

需求列表不掺杂我们对业务需求的任何分析与设计,对业务需求的简明扼要的描述,需求列表中应当剔除那些客户对系统设计的内容。最后,需求列表也不是一步到位的,而是经过由粗到细逐渐整理形成的。

2、 一个需求列表的实例

3、 快速原型法

4、 需求规格说明书

5、 评审与签字确认会

思维导图:

原文地址:https://www.cnblogs.com/-2016/p/8525731.html