【教学课件】第四章需求工程.ppt
《【教学课件】第四章需求工程.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章需求工程.ppt(93页珍藏版)》请在三一办公上搜索。
1、第四章 需求工程,需求工程包括:需求开发和需求管理。需求开发:需求的获取、分析、说明和验证。需求管理:需求开发结果的控制、跟踪和管理。需求工程的任务:确定软件项目的目标和范围。调查使用者的要求,分析软件必须做什么,编写需求规格说明书等它相关文档,并进行必要的需求审查。除此之外,还包括需求变更控制,需求风险控制,需求版本控制等对需求的管理工作。,4.1 需求工程的概念,1.需求分类,分类:业务需求、用户需求、功能需求和非功能需求,业务需求,反映组织机构或客户对软件高层次的目标要求。这项需求是用户高层领导机构决定的,它确定了系统的目标、规模和范围。业务需求一般在进行需求分析之前就应该确定,需求分析
2、阶段要以此为参照制定需求调研计划、确定用户核心需求和软件功能需求。业务需求通常比较简洁,大约三至五页纸就可以描述清楚,也可以将它直接作为需求规格说明书中的一章。,用户需求,用户使用该软件要完成的任务。这部分需求应该充分调研具体的业务部门,详细了解最终用户的工作过程、所涉及的信息、当前系统的工作情况、与其它系统的接口等等。用户需求是最重要的需求,也是出现问题最多的。,功能需求,定义了软件开发人员必须实现的软件功能。用户从他们完成任务的角度对软件提出了用户需求,这些需求通常是凌乱的、非系统化的、有冗余的,开发人员不能以此编写程序。软件分析人员要充分理解用户需求,将用户需求整理成软件功能需求。开发人
3、员根据功能需求进行软件设计和编码,非功能需求,是对功能需求的补充。可以分为两类:一类是对用户来说可能很重要的属性,包括:有效性、高效性、灵活性、完整性、互操作性、可靠性、健壮性、可用性。另一类是对开发者来说很重要的质量属性,包括:可维护性、可移植性、可重用性、可测试性。,需求分类的例子:一个字词拼写检查程序,业务需求是:能够有效地检查和纠正文档中的字词拼写错误。用户需求是:找出文档中的拼写错误,并且对每个错误提供一个更正建议表,更正建议表中列出可以替换的字词。功能需求是:软件提供一个打开文档对话框,对打开的文档进行字词检查,发现拼写错误以高亮度提示出错的字词,对错误字词显示更正建议对话框,其中
4、列出可选的字词,以及替换范围选择。,4.2需求工程主要活动,获得需求分析需求编写需求规格说明书审查需求需求变更控制需求版本控制需求跟踪需求状态跟踪控制,4.3高质量需求的特征,完整性:首先是不能遗漏任何必要的需求。丢失需求经常发生,并且危害极大,而且所丢失的需求通常不容易被发现。为了避免丢失需求,建议特别关注需求获取的方法,分析员应该注重用户的需求而不是系统的功能,这也是我们将需求分为用户需求和功能需求的原因之一。需求完整性的第二层含义是每一项需求所要完成的任务必须要描述清楚、完整。,正确性,每项需求都必须准确地反映用户要完成的任务。判断需求正确性有两种途径:由用户来判断。在进行需求调研时系统
5、分析员记录了每项需求的来源和相关的详细信息,系统分析人员根据调研的结果使用自然语言和流程图或用例图等多种方式描述需求。在需求评审时用户和开发人员从不同角度,检查需求的正确性。系统分析人员应该检查每项需求是否超出了业务需求所定义的软件范围。,可行性,每一个成功的软件系统其解决方案都是可行的。技术可行经济可行性操作可行性,必要性,每项需求都应该是客户所需要,开发人员不要自作主张添加需求。检查需求必要性的方法是将每项需求回溯至用户的某项需求上。,划分优先级,为每一项需求按照重要程度分配一个优先级,这有助于项目管理者解决冲突、安排阶段性交付,在必要时做出功能取舍,以最少的费用获得软件产品的最大功能。在
6、开发产品时,可以先实现优先级高的核心需求,将低优先级的需求放在今后的版本中。,无二义性,不同的人员对需求的理解应该是一致的。一般情况下,描述需求都是用自然语言,因此很容易引起需求理解的二义性,如果需求使用简洁明了的语言描述对大家理解需求是有益的。使用多种不同的方式从多个角度描述同一需求对于发现需求二义性也是有帮助的。避免二义性的另一个有效方法是对需求文档的正规检查,包括编写测试用例,开发原型。,可验证性,每项需求都是应该可验证的。系统分析员在需求分析时就要考虑每项需求的可验证性问题,为需求设计测试用例或其它的验证方法,如果需求不可验证,则要认真检查需求的有效性和真实性,一份前后矛盾、有二义性的
7、需求是无法验证的。,4.4影响需求质量的因素,用户需求不断增加在实际项目中最让开发人员头痛的问题就是用户需求不断增加。开发过程中需求不断变化,会使软件的整体结构越来越混乱,补丁代码也使得整个程序难以理解和维护。为了减少用户需求变更,需要从两个方面入手:从一开始就对项目的范围、目标、规模、接口、成功标准给予明确的定义。在项目管理上要制定需求变更控制规范,一旦用户需求发生变更,严格按照规范的流程进行一系列的分析和审查。,模棱两可的需求,不同的开发人员看了同一条需求后,产生了不同的理解,这就是需求二义性问题。早期发现模棱两可的需求非常重要。在技术上可以用多种不同的方法描述需求,在审查时从不同角度审查
8、需求。在审查需求时,一个人主讲需求,其它人聆听并对描述不清的地方及时提问常常会发现需求二义性的问题。在审查需求时,最好请两名非本项目组的工程师,他们以旁观者的角度往往提出大家比较容易忽视的问题。,用户不配合,实际工作中,用户的热情参与是项目成功的重要因素。,过于精简的需求说明,这是开发中最经常犯的错误。尽管开发人员和用户都认为应该花大精力进行需求分析,但在实际项目中仍然难抵御编程的诱惑。,忽略了用户的分类,一个软件中每个功能的使用频率、使用方式和使用人员水平都可能不同,如果在项目的早期没有将需求按主要用户进行分类的话,最终的软件产品可能会使有些主要用户产生抱怨。,不准确的计划,用户在项目的初期
9、,常常问开发人员“系统什么时候能够完成?”,而在需求不深入的时候这个问题是很难回答的。随着需求的深入,计划才能比较准确。通常,开发人员总是比较乐观,而实际上,在项目进行过程中总会遇到许多问题导致不能按计划实施。这些问题主要是:变更需求、遗漏需求、与用户交流不够、对开发环境不熟悉、开发人员经验不足等。,不必要的特性,有时开发人员会心血来潮,自作主张添加一些额外的功能。这看上去似乎不错,但是对于规范化开发来讲是不允许的。这些锦上添花的功能会使系统变得比较庞大,另外,开发人员的这类行为会造成管理上的麻烦。首先添加的内容必须要有相应的文档说明、程序代码、测试用例、操作帮助,这些都给项目添加了许多工作量
10、。更多的麻烦还在漫长的维护阶段,当系统需要修改时,要考虑对这些添加的功能的影响。因此,软件工程不提倡开发人员擅自添加软件功能。,4.5确定系统目标和范围,业务需求代表了需求链中最高层的抽象,它为软件系统定义目标和范围。主要内容包括:项目背景、要达到的目标、市场前景、软件的适用范围和局限性、经济效益和社会效益、主要风险和策略。,目标和范围模板,4.6 需求获取方法,为了获得需求,项目经理必须先仔细阅读系统目标和范围说明书,对软件涉及的范围有所了解,然后制定调研计划。调研计划包括:调研的部门、调研前的培训内容、调研的时间和地点、设计调研访谈表、调研结果分析、调研报告的格式和内容。,1.培训,在调研
11、之前,最好安排一次用户培训,请有经验的系统分析人员讲解需求的重要性,以及用户如何配合开发人员的调研 对内部开发人员的培训,对调研的格式和内容作统一部署。,2.两点注意,发现问题及时与开发人员沟通:时间就是金钱、就是生命。软件中的问题较早发现可降低成本。用户必须坚持需求审查,3.必须向用户交代的两个重要问题,第一,软件开发与其它产品的开发过程一样是分阶段的,每个阶段都有阶段产品。第二,分阶段审查产品时,产品的合格标准是什么?-首先检查所提交文档的目录,看内容是否全面,这点上如果有困难可以参考计算机软件工程规范国家国标汇编(简称“软件工程国标”),其中对每个文档的内容要求都写的很明确。需要注意的是
12、,“软件工程国标”是针对所有软件项目编写的,它含盖了可能出现的各种情况,因此,在实际使用时应该对其进行适当的裁减。,4.提交的阶段产品及其主要内容提交时间,软件范围和目标说明书:在实际项目中这个文档通常是以用户为主确定。当用户认为有困难时,可以委托行业咨询公司协助完成。这个文档是规划项目的范围、确定规模和软件要达到的目标,是战略性的,因此,建议用户一定要自己把关。该文档的提交时间是在项目正式启动之前。,软件调研报告:这个文档由开发方提供。主要内容是开发方对用户现有系统的客观描述。现有系统是指目前使用的计算机系统或人工处理过程或其它自动化处理系统。它反映当前用户业务的工作流程、设备情况、原始数据
13、内容、输出数据格式和内容,同时还要记录用户对新系统的期望和建议,最后还要附上与所调研的业务相关的原始资料,例如:各种单据、报表、操作规范、工作流程描述和岗位职责等等。这个报告强调的是客观实际,不需要软件分析人员的主观臆想。该文档提交的时间是调研结束之后、分析需求之前。,软件开发计划书:由开发方提供。在项目调研之后,基本上已经能够确定待开发软件的规模和工作量了。这时,开发方应该提交一份比较详细的开发计划,以便于用户配合工作。计划的内容包括:每个阶段的时间安排、负责人、参加者、需要的其它资源;每个阶段提交的产品(文档)形式和内容说明;每个阶段的审查时间、参加的人员;阶段审查的合格标准。这个文档的提
14、交时间是在需求分析阶段的后期,一般是同需求分析规格说明书同时提交。,软件需求分析规格说明书:由开发方提供。这份文档是软件开发的重要阶段产品,用户必须给予高度重视。软件需求分析规格说明书的主要内容是使用自然语言和一些图形符号描述用户需求和软件要实现的功能,详细描述数据关系和数据存储。开发人员经过分析整理出的软件处理流程、与外部系统(角色)的接口,以及软件安全性、可靠性、可扩充性、可移植性等非功能性需求描述。该文档的提交时间是需求分析阶段结束之前。,软件设计规格说明书:由开发方提供。软件设计包括总体设计和详细设计,总体设计是反映软件的结构框架,不涉及具体的内部控制流程;详细设计是反映具体的实现步骤
15、和内部控制流程。它主要是约束开发人员的,用户了解一些内部结构有助于今后的维护工作。这份文档的提交时间是在设计阶段结束之前,软件模块开发卷宗:由开发方提供。这个文档主要包含源程序清单,以及单元测试记录。如果用户自己不进行软件维护,这份文档对用户来讲意义不大。但是如果用户要接手这个软件产品,并且还要进行维护,这份文档是需要的。这份文档的提交时间有一些讲究,如果用户对程序完全陌生,建议在整个系统验收测试结束后要求开发方提交。因为在软件验收交付之前,开发者可能不断地修改源程序,这样用户拿到的文档与最终产品不符。如果用户比较精通程序设计方面的知识,可以在验收测试之前拿到这份文档,以便对照该文档补充验收测
16、试的测试用例。特别是对控制流程复杂的模块补充一些测试用例。,软件测试计划书:验收测试计划由用户提供,集成测试计划由开发方提供。测试计划包括测试时间、测试需要的环境、计划测试的条目、测试用例和正确结果,以便于测试时比较。这份文档应该测试之前提交。,软件测试报告:验收测试报告用户提供,集成测试报告由开发方提供。该文档包括测试的时间、地点、环境、约束条件、测试条目,测试用例、预期结果、实际结果、评价。软件测试报告在测试之后提交。,软件用户手册:由开发方提供。包括软件范围和目标、应用环境、主要功能、约束条件、操作方法、注意事项等。初步的用户手册应该在需求分析阶段结束时与用户见面,最终的用户手册在验收测
17、试前提交。用户验收测试包括对文档的验收。,软件开发月报:为了使用户了解软件开发的情况,开发方有义务向用户提交软件开发月报。用户可以及时发现软件开发中的问题,随时与开发方沟通。,4.7 制定调研计划,调研计划在调研工作开始之前由项目经理和用户负责人共同协商确定。首先,根据项目的规模和范围确定要调研的部门,然后根据项目的总体计划安排调研的访谈时间。为了保证调研的质量,在调研开始前,要安排对用户的软件工程培训,使用户了解软件开发的各个阶段,以及每个阶段用户的职责。对开发人员要进行用户业务培训,使开发人员了解用户业务的专业术语和基本业务流程。最后,确定调研报告的内容和格式,调研计划的模板,XXX项目调
18、研计划1项目的目标和范围注意:项目目标和范围几乎在项目的每份文档中都需要,在制作文档时不要直接将项目范围和目标的内容拷贝到这里,应该使用文档链接方法链接到唯一的内容上。这样可以避免出现冗余和文档内容不一致。,2调研的部门及部门主要职责,3设计访谈问题和调研表格,4培训计划培训内容、讲授人、时间、地点、参加者,5调研时间安排表 部门、负责人、接待人、业务介绍人、时间、地点、调研负责人、参加人,注意:安排调研时间要根据所调研部门的规模,通常安排一次访谈后,要留一段时间,以便于开发人员消化调研结果,分析整理出问题,然后,再安排下一次的调研时间,一般的部门最少需要访谈三次。,6调研结果分析当项目涉及多
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第四 需求 工程

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