业务需求分析师.docx
《业务需求分析师.docx》由会员分享,可在线阅读,更多相关《业务需求分析师.docx(76页珍藏版)》请在三一办公上搜索。
1、业务需求分析师目 录目 录2第1章.软件需求现状与常见问题71.1.软件需求现状分析71.2.需求常见问题分析8第2章.软件需求与需求工程112.1.软件需求112.2.软件需求定义112.2.1.需求的层次112.2.2.软件需求的类型132.2.3.软件需求的重要性152.2.4.优秀需求的标准162.3.软件需求工程17第3章.需求开发193.1.需求开发管理193.1.1.需求获取193.1.2.需求分析223.1.3.需求评审52第4章.需求管理554.1.需求基线管理554.2.需求变更管理554.2.1.需求变更控制活动574.2.2.需求变更控制委员会594.2.3.需求变更波
2、及分析624.2.4.需求稳定性评估654.3.需求跟踪664.3.1.需求跟踪目的664.3.2.需求跟踪能力矩阵674.3.3.需求跟踪能力工具714.3.4.需求跟踪能力过程714.4.需求后评估724.4.1.成本评估734.4.2.效益评估73第1章. 软件需求现状与常见问题1.1. 软件需求现状分析在信息化高速发展与行业竞争日趋激烈的今天,构建符合中国电信企业战略的信息化系统是我们IT专业人员要解决好地关键课题。然而在软件项目实施过程中,进度超期、经费超预算、变更频繁的现象层出不穷,许多项目无法达到预期目标,归根结底,软件需求质量是问题的主要根源之一。软件需求是软件项目关键的一个输
3、入,和传统的生产企业相比较,软件的需求具有模糊性、不确定性、变化性和主观性的特点。它不像硬件的需求,是有形的、客观的、可描述的、可检测的。软件需求是软件项目最难把握的问题,同时又是关系项目成败的关键因素。既然软件需求如此重要,那么需求相关的哪些因素是导致项目失败的根源?美国的第三方机构Standish Group 每隔几年都会对软件项目现状进行分析与统计,其分析报告“CHAOS REPORT”的研究结果显示:高达31.1%的项目彻底失败,高达52.7%的项目进度超期或成本超支,被认为成功的项目仅有16.2%。为了帮助软件开发组织找到明确的改进方向,Standish Group还总结出了十大成功
4、保证和十大败因,如表1-1所示。在表1-1中可以看出,十大成功因素中有三个直接与需求相关(已加粗显示),累计权重达37.1%;而十大失败因素中有五个直接与需求相关,累计权重达51.6%,可见需求对项目影响程度之高。表1-1 项目成败因素分析成功因素权重失败因素权重用户参与15.9%不完整的需求13.1%决策层支持13.9%缺乏用户的参与12.4%清晰的需求描述13.0%资源不足10.6%合适的规划9.6%不且实际的用户期望9.9%现实的客户期望8.2%缺乏决策层的支持9.3%较小的里程碑7.7%需求变更频繁8.7%有才能的员工7.2%规划不足8.1%主权5.3%提供了不需要的功能7.5%清晰的
5、远景和目标2.9%缺乏IT管理6.2%努力工作和稳定的员工2.4%技术能力缺乏4.3%其他13.9%其他9.9%1.2. 需求常见问题分析下面简要地对需求相关的这些失败因素做初步的分析,更多的内容将随着本书的进程继续深入。1. 不完整的需求在日常工作中,该问题经常困扰着我们“什么样的需求是完整的呢?”如果没有一个有效的“需求完整性评价标准”,那么这个问题将是无解。要破解这个问题。首先应回答一个铺垫性的问题“谁更有可能可以对需求的完整性进行评价?”。答案应该是“业务专家或业务代表要比it人员更适合对完整性进行评价”。要想让业务专家能够更好地参与到完整性评价中,应该做到以下两点: 采用“业务导向”
6、的树型层次结构展现需求文档。假若“需求规格说明书”中充斥着诸如数据字典、报表子系统、新增客户等以技术动词为主的字眼与结构,很有可能业务人员望而却步。而采用业务导向的结构,是用业务人员熟悉的场景为索引,加之树型层析结构可以将宏观信息与微观信息进行有效剥离。 按“组织层次”划分来完成需求的验证。日常工作中常见的场景是用业务代表的签字确认来代替需求验证。 需求验证是重要的需求质量环节,目的是暴露出更多的错误,而确认则代表了职责。可一个企业中少有人能上通战略下解具体操作,为了让业务人员有效的验证需求,需求文档的树型结构应面对不同的层面:决策层、管理层、操作层,将需求分成不同部分,让合适的人验证适当的部
7、分。2. 缺乏用户参与在很多项目中,使用者都不能有效地参与到项目中来,诸如“你们先做,做出来我们试试,有问题再改”之类的话也是常常听到。主要应对措施是充分研究业务代表的关注点、利益点,通过业务利益争取使用者参与到需求活动中。3. 不切实际的用户期望很多情况下,业务人员都会提出大量的需求,有些是技术上根本无法实现的,有的则是项目费用、项目时间等预算内无法实现的。究其原因,主要在于软件的无形和软件成本的不透明。要解决这样的问题,在当前国内的软件实施环境下,能做的是it人员主动地帮助使用者更好的理解软件成本,说明清楚为什么做不到,取得理解,达成一致才是关键。4. 需求变更频繁导致需求变更的原因很多,
8、常见的因素包括:l 开发人员对待需求开发的态度不认真l 用户参与不够l 模棱两可的需求。l 用户和需求开发人员在理解上的差异。l 过于简单的规格说明。l 不准确的计划等。有效控制变更应该注意采取合理的需求管理方法:l 需求分析阶段尽可能采用原型或者用例方法明确用户需求。l 采用严格的需求变更管理流程。l 采用良好的体系结构。l 采用面向对象思想。详细的方法请参见第3章节内容。5. 提供了不需要的功能很多项目中都或多或少的含了些很少使用或无人使用的功能,这种情况如何在事前预防呢?在需求阶段有效地划分优先级是个办法。这里所说的优先级划分不是“拍脑袋”的产物,而是真正基于业务领域知识来衡量需求的必要
9、性和充分性,在此基础上做出划分。第2章节有关于“合理划分优先级的方法”的详细说明。上述分析是需求工作中常见问题的解决建议,分析比较粗浅。若要有效的解决问题,就需要反思问题背后的本质原因,掌握需求理论与工作方法,针对性的找到适用的需求方法,构思、尝试出真正在本组织内有效的缓解手段。第2章. 软件需求与需求工程1.2.1.2.2.1. 软件需求2.2. 软件需求定义什么是软件需求,这个看似简单的问题并不好回答。也许有很多人简单地认为软件需求就是用户需要实现的功能加上一些非功能方面的要求。但这样的理解并不完整,本章将对一些与需求相关的关键概念进行阐述。软件需求是指用户对软件的功能和性能的要求,就是用
10、户希望软件能做什么事情,完成什么样的功能,达到什么样的性能。软件人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转化到相应形式的需求规格说明的过程。对于软件项目的需求,首先要明确用户的要求,澄清模糊的需求,与用户达成共识。2.2.1. 需求的层次有时也可以将软件需求按照层次来说明,包括业务需求、用户需求、软件需求、软件需求规格等层次,它们的关系如下图1-1所示。图表 21软件需求按照层次1. 业务需求业务需求反映了组织机构或客户对系统、产品高层次的目标要求,由管理人员或市场分析人员确定。因为业务需求的提出人通常是企业的管理人员,它完全是从业
11、务角度描述的,是指导软件开发的高层需求。实际上在项目立项阶段就整理完成了。2. 用户需求用户需求是指软件使用者的要求和软件应满足的用户特性,一般是用户协助提供。通常是在业务需求定义的基础上进行用户访谈、调查,对用户使用的场景进行整理,从而建立用户角度的需求。用户需求是需求调研的产物,它具有以下特点: 零散:用户会提出不同角度、不同层面、不同粒度的需求,而且通常是以一句话的形式提出的。 存在矛盾:由于用户处于企业组织的不同层面、地域等,难免出现盲人摸象的现象,从而导致需求的片面性,甚至在不同用户之间会有不同的观点。正因为如此,我们还需要对用户需求(也叫原始需求)进行分析整理,从而整理出更加精确的
12、需求说明。3. 软件需求软件需求定义了开发人员必须实现的软件功能,使得用户通过使用此软件能完成它们的任务,从而满足业务需求。它是分析人员在对用户需求进行分析、提炼、整理,从而生成指导开发的、更精确的软件需求。它是需求分析与建模的产物,即形成软件需求规格。软件需求规格充分描述了软件系统应具有的外部行为,它描述了系统展现给用户的行为和执行的操作等。它包括:产品必须遵从的标准、规范和合约;外部界面的具体细节;非功能性需求(例如性能要求等);设计或实现的约束条件及质量属性。所谓约束是指对开发人员在软件产品设计和构造上的限制。质量属性是通过多种角度对产品的特性进行描述,从而反映产品功能。多角度描述产品对
13、用户和开发人员都极为重要。软件需求规格在开发、测试、质量保证、项目管理以及相关项目功能中都起到了重要的作用。2.2.2. 软件需求的类型软件需求可以分为功能需求、非功能需求和设计约束三种类型。1. 功能需求对于功能需求而言,最为关键的地方是如何对其进行组织,否则一句话、一句话的描述就会显得十分零散,很难保证开发人员逐一满足这些需求。在传统的方法论中,会以系统-子系统-模块-子模块的层次结构来组织,但它更多的是按照程序的结构来梳理,会割裂用户的使用场景。为了解决这个问题,现代需求理论更加强调需求分析人员从用户的角度,将系统理解为一个黑盒子,从横向的使用视角来整理需求。不管是RUP的用例方法还是X
14、P的用户故事,以及特征驱动开发的Feature,都是从这个角度进行梳理的。本教材推荐使用用例的方法。2. 非功能性需求非功能需求是一些限制性要求,是对实际使用环境所做的要求,例如性能要求、可靠性要求、安全性要求等。非功能需求比功能需求要求更严格,更不易满足,因为如果不能满足非功能需求,系统将无法运行。非功能需求方面常见的问题有两个:一是信息传递的无效性;二是忽略了非功能需求的局部性。 信息传递的无效性:很多需求规格说明书中,会通过一个小章节来说明非功能需求,列出诸如高可靠性、高可用性、高扩展性等要求。但很多开发人员根本不看它,因为这样的定性描述是没有标准的,因此信息的有效性不大。本书的后续章节
15、将说明解决方法。 忽略了非功能需求的局部性:我们经常会看到“所有查询响应时间都应该小于5秒”的描述,但是当查询稍长周期的数据量时这样的要求可能无法实现。因此开发人员会认为这项原则是可以破坏的。更科学的做法就是抓住具体的场景来描述。3. 设计约束设计约束看似简单,但如果不了解而导致收集需求时出现遗漏的现象。 非技术因素决定的选型对软件开发而言,技术选型会基于企业内部的相关规定。例如,必须采用J2EE技术;中间件必须采用WEBSPHERE等。 使用的软硬件条件与环境在决定架构、选择实现技术时会受到软硬件设备的影响,如果忽略了此种因素会造成不必要的麻烦。例如,当前导购人员使用的平台电脑的操作系统不支
16、持FLASH插件、乡村支局点的电脑配置较低等。用户的环境也会对软件开发造成影响,需求人员应该搜集此类信息。2.2.3. 软件需求的重要性开发软件项目就像和用户一起从河的两边开始修建桥梁,如果没有很好的理解和管理用户的需求,开发出来的软件不是用户希望的,那么这座桥就永远不可能对接成功。没有一个合理的需求管理,将很难达到用户的真正要求。即使设计和实现的再正确可靠,也不是用户真正想要的东西。所以,需求分析很重要,项目需求是制定项目计划、开发项目产品和从事项目活动的依据。项目的计划、项目的开发活动及开发的产品应与项目需求保持一致,随需求的变化而调整。因此,必须采用有效的方法对项目需求的变化进行管理和控
17、制。项目需求管理过程主要包括对用户提出的出示需求的确认过程和对用户提出需求变更的控制过程。软件需求研究的对象是软件项目的用户要求。需要注意的是,必须全面理解用户的各项要求,但又不能全盘接受用户所有的要求,因为用户提出的要求并非都是合理的。对于其中模糊的要求,还需要向用户澄清,然后才能决定是否可以采纳。对于那些无法实现的要求,应向用户做充分的解释,以求得用户的谅解。2.2.4. 优秀需求的标准通用的优秀需求的标准分为7个:完整性、正确性、无歧义性、必要性、有先后次序、可行性、可验证性。下文将其分为四组,逐一介绍。1. 完整性完整性即需求没有遗漏。这点在实际需求活动中很难做到或衡量。第1章中我们提
18、到过完整性的实现要点。1) 必须从业务角度来组织各种需求项。2) 必须按人员分层来验证需求。2. 不失真需求的正确性和无歧义性是一组相关的要求,指的是确保需求在信息传递的过程中不失真。达到这两个方面的标准需要从两个角度实现:1) 正确性:要使需求正确应找到正确的人来参与。一方面是在调研阶段找多方面的人来获取需求。避免片面性;另一方面是应该找到直接相关的人员进行验证。2) 无歧义性:歧义主要是不同背景的人在传递时加入不同理解而导致的,因此仅靠文档来传递需求是不充分的,文档无法代替沟通,还需要配合一些验证活动才能够尽可能的缓解歧义问题。3. 有优先级“事有轻重缓急”,一句话概括了区分优先级的重要性
19、。要想更好地对项目进行管理,就需要有效的区分出优先级。很多时候需求会被冠以“高优先级”,实际上是担心IT不去实现。相对科学的划分优先级有充分性和必要性两个维度。用“实现后的收益”(充分性)与“不实现的影响”(必要性)两个量化值相乘,就可得到一个更有参考价值的权重,从而更适合做优先级评价。如下表示例。需求项评价项评价结果提供键盘快捷方式触发菜单页面方式实现后的收益非常显著比较显著显著一般不实现的影响非常显著比较显著显著一般总评价2分 X 1分=2分4. 有技术早期介入需求文档的读者是IT开发、测试团队,那么与开发、测试团队交流,探讨文档有哪些不足、缺少什么信息,是改进需求文档的有效方法优秀需求评
20、价标准中的可行性就需要开发团队尽早介入。可验证性则是说明需求提供了验证所需的信息,也能够指导测试活动。2.3. 软件需求工程软件工程活动包括需求、系统分析与设计、编码、测试、配置管理等一系列活动。但唯独只有需求被称为工程。需求工程形成于20世纪80年代中期,是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。如图表 22需求工程图所示,需求工程包括需求开发和需求管理两大范畴。需求开发是收集、分析、整理、编写、验证需求的全过程,重点在于开发出高质量的规格说明。需求管理则是对需求的实现、变化进行追踪的全过程,重点在于开发的软件满足这
21、些需求。图表 22需求工程图设计5编码10测试20-50运行与维护200实行有效的需求工程管理的组织能获得多方面的好处。最大的好处就是在开发后期和整个维护阶段的返工的工作量可以大大减少。研究表明:如果在需求阶段只需花费一个单位时间就能改正的错误拖到设计阶段改正就需要五倍时间,到了编码阶段将是十倍时间,后续阶段耗费时间将更多。图表 23需求工程工作量分布图示第3章. 需求开发3.3.1. 需求开发管理需求开发工作要点包括需求获取、需求分析、需求规格编写、需求评审四个具体的活动。这些活动工是多次迭代的,每次过程如图表 31:需求开发工作。图表 31:需求开发工作一般在整个软件开发过程中要至少需要迭
22、代三次。3.1.1. 需求获取需求获取是需求开发的第一个活动,需求获取是通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求。如何提高需求获取的有效性一直以来是困扰大家的问题。需求获取的要点在于计划性和科学性。计划性体现在对调研对象、问题、实践的计划;科学性则表现在如何有效地选择合适的方法。需求获取执行的活动与主要方法:需求获取有许多方法,每种各有缺点,使用的时机与具体执行的活动也不相同,因此需求分析人员需要了解方法的使用要点。1. 用户访谈用户访谈是最常见、也是最基本的需求获取技术。访谈者是否善于访谈,将直接影响最终的结果。 用户访谈的优缺点用户访谈的优点是直接
23、有效,形势灵活、交流深入。缺点是占用时间长,信息可能存在片面性。用户访谈是需求获取的主体技术,只要有可能,就应该尽可能多地进行访谈。 用户访谈的类型需要了解客户方的所有用户类型以及潜在的类型。然后,根据他们的要求来确定系统的整体目标和系统的工作范围。一般将访谈者分成不同类型,一般分为高层管理者、中层管理者、操作层。在不同阶段访谈不同类型的人,访谈的话题与目的也有所不同。 访谈的沟通技巧访谈过程是一个对沟通技巧要求较高的活动,要求访谈者善于倾听、善于表达。交流的方式可以是会议、电话、电子邮件、小组讨论、模拟演示等不同形式。需要注意的是,每一次交流一定要求记录,对于交流的结果还可以进行分类,便于后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 业务 需求 分析

链接地址:https://www.31ppt.com/p-1975734.html