如何做好需求分析?
需求分析对分析人员提出更高要求,它不仅需要分析人员具有丰富的需求分析经验和良好的专业素质,还要求分析人员具有良好的学习能力、公关能力、语言能力和组织能力。在实际工作中分析人员要面对不同单位、不同部门的不同人员,他们可能有着不同文化、不同关系和不同的管理水平等,面对如此纷繁复杂的环境,如何做好需求分析工作呢?这里从需求开发和需求管理两个方面介绍一些相关的方法。
首先,需求开发可采用的方法很多,不同的开发方式有着不同的分析方法:
- 绘制关联图:绘制系统关联图是用于定义系统与系统外部实体间的界限和接口的简单模型。
- 可行性分析:在允许的成本、性能要求下,分析每项需求实施的可行性,提出需求实现相关风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。
- 需求优先级:确定使用实例、产品特性或单项需求实现的优先级别。以优先级为基础确定产品版本将包括哪些特性或哪类需求。
- 系统原型:当用户自身对有的需求不十分清楚时,我们可以建立一个系统原型,用户通过评价原型更好地理解所要解决的问题。
- 图形分析模型:绘制图形分析模型是编制软件需求规格说明的重要手段。它能帮助分析人员理清数据、业务模式、工作流程,以及它们之间的关系,找出遗漏、冗余和不一致的需求。这样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图等。
需求管理的目的则是控制和维持需求,保证项目开发过程的一致性。需求管理的方法主要包括:
- 确定需求变更控制过程。制定一个选择、分析和决策需求变更的过程,所有的需求变更都需遵循此过程。
- 进行需求变更影响分析。评估每项需求变更,以确定它对项目计划安排和其它需求的影响,明确与变更相关的任务并评估完成这些任务需要的工作量。通过这些分析将有助于需求变更控制部门更好地做出决策。
- 建立需求基准版本和需求控制版本文档。确定需求基准,这是项目各方对需求达成的一致认识,之后的需求变更遵循变更控制过程即可。每个版本的需求规格说明都必须是独立说明,以避免将底稿和基准或新旧版本相混淆。
- 维护需求变更的历史记录。将需求变更情况写成文档,记录变更日期、原因、负责人、版本号等内容,及时通知到项目开发所涉及的人员。
- 跟踪每项需求的状态。可以把每一项需求的状态属性(如已推荐的、已通过的、已实施的或已验证的)保存在数据库中,这样可以在任何时候得到每个状态类的需求数量。
需求分析:统一技术与业务语言
需求分析工作离不开这样两个人群:业务人员和技术人员。而他们两者说话的语言是不一样的:一个谈业务,一个说技术。需求分析的目标就是使两者在软件项目上说一种语言,将两者“捆绑”得最贴合,项目成功的可能性就越大。