如何进行软件需求分析

如题所述

何进行软件需求分析,简而言之不是几句话可以描述清楚的,这里给你一些方法功能参考。

首先,在进行软件需求分析之前,得有一份软件说明书或者软件需求规格说明书,因为这个是我们进行需求分析的对象。但是这个需求规格书写的质量怎么样,实际上是决定了软件项目的进度、成本甚至成败的?为什么这么说呢?因为当前软件开发这个行业最大的问题是需求质量低下,这个导致了项目成本至少增加了30%以上,这也是为什么软件这个行业有钱的公司不多的主要原因。或者说能做出一份有质量的需求规格说明书将体现这个企业的挣钱能力,但现实是绝大多数企业都像人月神话中描述的一样:一步一步踏入了泥潭。。。由于这个工作产品如此重要,因此通过过个步骤来保证它的质量:需求策划、获取、分析、确认以及后期需求管理,尤其是变更管理。如果想了解具体的每个步骤的详细内容可以联系我。
其次,如果需求规格说明书有了,我们怎么分析呢?在具体说明分析方法之前,首先我们要明确一个问题:需求分析到底是在分析什么?其目的是什么?其实我们绝大多数的需求工程师都不太清楚或者不能明确的回答这些问题,从而导致他们花费了大量的时间来写用例(user case),写了很多关系复杂甚至连需求人员都看不明白或者越看越糊涂的东西,因为他们认为这样后续的开发、测试人员就能开明白了,事实上是这样的吗?根本不是,如果是的话,我们的软件行业中的绝大多数企业活的普遍不那么悲惨了。。。回到软件开发,我们来想一下,我们开发这个东西给谁用?是自己吗???如果是自己事情就简单了,因为需求都在自己脑子里面了,就算不完整起码也不会缺多少,但问题正好相反,99.999999%的情况下我们是为别人或者说我们的用户开发的,也就是说需求其实是在客户的脑子了,而不是我们的脑子里!!!我们的首要目的应该是如何通过一套完整的套路把需求从客户的脑子里面传输到我们的脑子里面,然后按照规格化(这个是另外一个重点)的方式把它按照说明书一样描述出来让后续人员能够看得清清楚楚、明明白白,这个步骤是最关键的一环,因为我们的绝大多数客户都不会写需求规格说明书,所以这个任务落在我们的身上。那么我们到底都问什么不会丢需求呢?这个是有一套方法和模板来指导需求人员和UI工程师(调研时就需要画原型,可以稍微想一下这么做的好处)来获取完整的需求。只有这样,才能获取有质量的需求。
那么说了这么多,分析到底是干什么的呢?分析就是需求人员首先自己要系统的检查一下需求来保障需求的质量,记住不是保证,是保障,它就像软件开发中的评审或测试一样,是保障产品的质量进行的检查活动,它们不能保证质量,只是保障作用。就像我们考试一样,你认真的答完题了,还是需要认真的检查一遍,因为这个是人的天性之一。那么问题来了,怎么进行检查或者从哪些方面进行检查呢?我推荐的策略是先外后内、先系统后模块、先功能后非功能、先业务后属性,通过整套方法下来可以帮我们查到不少之前遗漏、写错、或者矛盾的地方,当然也包括可能不是客户需要的needs,只是expectation。这个工作比获取要简单一些,但是是一个繁杂的活,要逐项逐项的检查每一个需求的内容以保障需求的质量。到底检查哪些内容呢?这个太多了,就不罗列了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-06-10

需求分析就是对客户提出的“要求”或者“需求”进行深入细致地调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么,为系统设计、系统完善和系统维护提供依据。

需求分析是项目计划阶段非常重要的环节,该环节决定了需要“实现什么”,为下一步如何去“实现”提供了明确的方向。

进行需求分析需要做到以下几点:

(一)需求获取:在准备阶段,我们首先要确定需求获取的目标及范围,根据你的目标来选择对应的方式获取需求。

(二)需求分类:一般情况下,我们会根据对象的不同,将需求分为业务需求、用户需求、功能需求等。

(三)需求筛选:有些需求是伪需求,有些需求则不具备实现价值,我们可以通过真实性、价值性、可行性三个维度来筛选需求,过滤掉虚假的、不可行的、没有价值、价值不大或投入产出比不理想的需求。

(四)需求提炼:对剩下的需求进行提炼,目的在于从获取的表面需求中提炼出客户的本质需求。找出“为什么要做”比“做什么”更重要。

(五)需求优先级排序:挖掘到客户的真实目的后,我们需要根据不同维度的需求归类方法,如KANO模型分析法、投入产出比ROI等,对其进行归纳整理并排出优先级,帮助产品有条理地安排开发秩序,避免盲目排序。

(六)产出需求文档:通过以上的分析,我们需要将收集到的需求进行分析、汇总、归类,输出产出需求文档,为接下来的工作做好铺垫。

以上是对需求分析的一些理解和思路,做好需求分析工作之后,就可以对可实现的需求进行落地方案的跟进。