目录

如何做需求分析?

需求分析是软件开发过程中的重要环节之一。需求分析的方法和工具有很多,但是一般的需求分析流程包括:收集需求、整理需求、分析需求、确认需求、编写需求文档等步骤。下面将详细为大家介绍需求分析的常规步骤、需求分析的方法和工具、需求分析的输出和评估。

需求分析是软件工程中的一个重要环节,它是指对用户和项目的功能、性能、可靠性等具体要求进行深入细致的调研和分析,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。需求分析的好坏直接影响到软件项目的质量、成本和进度,因此,作为产品经理或需求分析师,如何系统地做需求分析是一项必备的技能。

一、需求分析的常规步骤

根据产品经理比较常见的方法,需求分析可以分为以下几个常规步骤:

  • 明确建设目的:了解客户建设IT系统或功能的目的是什么,明确了目的才能明确方向和范围。
  • 识别功能模块:划分功能大块,明确客户要通过系统做哪几件事,对应的将需求划分为几个大功能模块;业务场景分析,分析每个功能模块都有哪些业务场景。
  • 需求识别:将客户提出的需求点进行评估和分拣,分类纳入功能模块、业务场景中。包括需求评估、需求分拣两个任务。需求评估是评估哪些需求能做,哪些不能做。不能做的需求主要有这几种情形:无用需求、逻辑不符、技术上无法实现、超出范围或边界。需求分拣是按功能模块分拣、归类功能性需求;将非功能性需求单独列出,如性能要求、可靠性要求、安全要求等。
  • 功能模块分析:将需求点归类到功能模块、业务场景后,每个模块、场景就有了基本的需求要素和轮廓。此时需要先识别功能模块的类型——是一个子系统、APP,还是一个业务流程、统计报表?功能类型不同,采用的分析方法不同。常用的分析方法有:功能分解法、快速原型法、建模分析法等。通过选用以上方法对功能模块逐一分析,要进一步剔除客户不合理需求,发现并补充调研阶段未想到的需求。
  • 需求组织:将每个模块或场景分析后的需求进行梳理、简化、整合等处理,组织成有机整体,最后综合成系统的解决方案。

二、需求分析的方法和工具

需求分析的方法可以分为两大类:结构化方法和面向对象方法。结构化方法是一种自顶向下、逐层分解的方式,它关注数据的流动和加工,用数据流图、数据字典等工具来描述系统。面向对象方法是一种自底向上、逐步抽象的方式,它关注对象的属性和行为,用UML等工具来描述系统。

需求分析的工具是指辅助需求分析师进行需求分析的软件或硬件设备,它们可以提高需求分析的效率和质量,也可以方便需求分析师与其他相关人员进行沟通和协作。需求分析的工具有很多种,常用的有以下几种:

  • 调研问卷:是一种收集用户需求和反馈的工具,可以通过线上或线下的方式向用户发放问卷,了解用户的基本情况、使用场景、期望功能、满意度等信息。
  • 快速原型:是一种验证用户需求和设计方案的工具,可以通过简单的界面或交互模拟系统的功能和效果,让用户体验并提出意见。
  • 建模工具:是一种表达和分析需求的工具,可以通过图形或文字的方式描述系统的结构、功能、行为等方面,如数据流图、UML图、用例图等。
  • 需求管理工具:是一种组织和管理需求的工具,可以通过数据库或文档的方式存储、分类、跟踪、变更、审批等需求相关的信息,如Rational RequisitePro等。

三、需求分析的输出和评估

需求分析是软件开发过程中的重要环节,它涉及到对用户和项目的需求进行深入理解、明确、定义和文档化的过程。需求分析的好坏直接影响到软件系统的质量、成本和进度。那么,需求分析的输出是什么?如何评估需求分析的效果呢?

需求分析的输出

需求分析的输出主要有以下几种:

  • 需求规格说明书:这是需求分析的主要文档,它详细描述了软件系统的功能、性能、界面、数据、安全等方面的需求,以及需求的优先级、依赖关系和验收标准等。需求规格说明书应该清晰、完整、一致、可验证和可追踪的。
  • 需求模型:这是需求分析的辅助工具,它用图形或符号的方式表示需求的结构、行为和关系,以便于理解和沟通。常用的需求模型有用例图、数据流图、状态图、类图等。
  • 原型:这是需求分析的另一种辅助工具,它用软件或硬件的形式模拟软件系统的部分或全部功能,以便于用户体验和反馈。原型可以是低保真度的(如草图或纸质模型),也可以是高保真度的(如可交互的软件界面)。
  • 需求跟踪矩阵:这是需求分析的管理工具,它记录了每个需求与其他需求、源头、设计、测试等的关联关系,以便于跟踪和控制需求的变更和实现情况。

需求分析的评估

需求分析的评估主要有以下几种方法:

  • 需求评审:这是一种正式的评估方法,它通过组织专家或利益相关者对需求文档或模型进行检查和讨论,以发现和消除需求中的错误、遗漏或不一致等问题。需求评审应该在需求分析过程中定期进行,以及在需求分析结束时进行总结性评审。
  • 需求测试:这是一种实验性的评估方法,它通过使用原型或测试用例对需求进行验证,以检验需求是否符合用户和项目的期望。需求测试应该在原型开发或测试设计阶段进行,以及在软件测试阶段进行回归测试。
  • 需求度量:这是一种定量的评估方法,它通过使用一些指标或标准对需求进行度量,以评价需求的质量、复杂度或可行性等。常用的需求度量指标有功能点数、用例点数、故事点数等。

总结

需求分析是软件开发过程中不可或缺的环节,它需要输出清晰、完整、一致、可验证和可追踪的需求文档或模型,并通过评审、测试和度量等方法对其进行评估和改进。只有做好了需求分析,才能保证软件系统能够满足用户和项目的

延伸阅读:主流需求管理工具盘点

1.PingCode

2021年曾获得36氪企服点评-国内研发管理工具榜单的前二。在需求管理方面具备:需求工单收集、需求池建立、需求评审、建立需求优先级评定机制、产品功能路线图规划、迭代规划、版本规划等等功能。适用于十几人到千人规模的的团队。知名客户包括宁德时代、小红书、商汤科技等;支持私有部署、麒麟鲲鹏等国产系统。【官方地址:https://sc.pingcode.com/t/T3B

2.Worktile

国内市场占有率较高的项目管理软件。Worktile 虽然是一个项目管理工具,但却有非常多的中小型团队用其满足了需求管理的需求,比如需求收集、需求关联缺陷、跟踪进度等等。因为它是一个工具集合,所以除了需求管理之外,中小型团队的绝大部分需求都能在这一工具得到满足。这既能为创业型的公司节省一大笔钱,又能满足安全等方面的需求。【官方地址: https://sc.pingcode.com/0pke1 

3.Jama Software

海外知名需求管理工具。Jama Software 是一家面向复杂产品和关键任务软件系统的公司的产品开发平台,能够帮助团队缩短周期,提高质量,减少返工并最大程度地减少证明合规性的工作。该平台的强大功能加上易于采用的界面将人员、流程和工具集中在一个地方,以提供对端到端产品、系统和软件开发流程的可见性和可操作的洞察力。【官方地址:https://www.jamasoftware.com/】

4.Jira

JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、任务跟踪、项目跟踪和敏捷管理等工作领域。在国内有较高知名度,比较遗憾的是2021年左右宣布停售Serve版,使得购买成本陡增,动不动就近百万,不太适合中小团队使用。【官方地址:https://www.atlassian.com/software/jira】