需求工程ppt课件.ppt_第1页
需求工程ppt课件.ppt_第2页
需求工程ppt课件.ppt_第3页
需求工程ppt课件.ppt_第4页
需求工程ppt课件.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程,第3章需求工程,1,需求:成功的软件开发的前提,软件质量=系统所实现的需求/客户所期望的需求,软件项目投标及签订合同的基础软件系统实现的基础系统确认移交的基础,2/63,需求的定义,IEEEStandardGlossaryofSoftwareEngineeringTerminology用户解决一个问题或达到一个目标所需要的一种状况或能力系统为了满足一种约定、标准、规格说明或其它正式文件而必须满足或拥有的一种状况或能力以上两种状态或能力的文档化表示,主观需求,客观需求,需求文档,3/63,功能性需求和非功能性需求,功能性需求系统需要提供的服务或功能:如图书检索系统对特定输入的处理方式:如对非法输入的提示系统在特定环境下的行为:如长时间无操作时的屏保非功能性需求对系统功能或服务附加的质量约束,例如响应时间、容错性、安全性等客户所关心的(外部质量)从系统开发和维护角度出发的质量属性,例如可理解性、可扩展性、可配置性等软件开发或维护者所关心的(内部质量、软件所特有),4/63,内容摘要,需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理,5/63,内容摘要,需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理,6/63,AlanDavis把需求工程定义为“直到(但不包括)把软件分解为实际架构构件之前的所有活动”(强调做什么)HerbKrasner定义了需求工程的五阶段生命周期:需求定义和分析、需求决策、形成需求规格、需求实现与验证、需求演进管理MatthiasJarke和KlausPohl提出了三阶段周期的说法:获取、表示和验证,7/63,需求获取:资料收集需求分析与协商:理解分析整理系统建模:用模型描述(写下来)需求规约:完善需求文档并定稿需求验证:验证确认需求管理:整体规划及变更管理,需求工程的六个阶段,8/63,需求获取,系统分析人员通过与用户的交流,了解业务现状以及对待开发系统的期望确定系统或产品范围的限制性描述与系统或产品有关的人员及特征列表系统的技术环境的描述系统功能的列表及应用于每个需求的领域限制一组描述不同运行条件下的应用场景以及为更好地定义需求而开发的系统原型需求获取收集的“原始材料”为进行需求分析提供了基础,9/63,需求分析与协商,对需求进行分类组织,分析需求之间的关系检查需求的一致性、重叠和遗漏的情况根据用户的需要对需求进行排序。在需求获取阶段,经常出现以下问题:提出的要求超出软件系统可以实现的范围或实现能力不同的用户提出了相互冲突的需求,10/63,系统建模,建模工具的使用在用户和系统分析人员之间建立了统一的语言和理解的桥梁系统分析人员借助建模技术对获取的需求信息进行分析和表达,排除错误和弥补不足,确保需求文档正确反映用户真实意图常用的分析和建模方法有面向数据流方法、面向数据结构方法和面向对象的方法,11/63,需求规约(Specification),通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求软件需求规约是分析任务的最终产物需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用,12/63,需求验证,需求开发阶段工作的复查手段对功能的正确性、完整性和清晰性,以及其它需求给予评价为保证软件需求定义的质量,评审应以专门指定的人员负责(应该是需求分析人员之外的其他人员),并按规程严格进行,13/63,需求确认与需求分析,二者密切相关都需要对系统需求中的遗漏和冲突进行识别和分析区别需求分析处理的是未整理的原始需求,此时发现的问题是客户的问题需求确认的对象是经分析后形成的需求规格说明,此时发现的问题是需求分析人员的问题,此外还需要考虑需求文档是否满足相应的质量标准,14/63,15/63,在实际的开发过程中,获取、分析、建模、编写规约和验证这些需求开发活动不会是线性地、顺序地完成。实际上,这些活动是交叉的、递增的和反复的。,16/63,需求管理,一种获取、组织并记录系统需求的系统化方案:对所有需求工程相关活动的规划和总体控制需求变更管理:一个使用户与项目团队对不断变更的系统需求达成并保持一致的过程(变更的记录、分析、变更过程管理、追踪等),17/63,回顾:需求的各种形式,从高度抽象的系统服务或系统目标到对某一系统功能的精确约束原始需求客户对软件系统及新的工作方式的期望目标客户单位已经存在的日常工作方式和业务规则系统所属领域固有的法规、标准或惯例等一般目标:更快、更好、更安全需求文档自然语言描述UML图等图形表示业务规则表格,18/63,内容摘要,需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理,19/63,需求获取,缺少用户参与是项目失败的主要原因之一良好的开端是成功的一半需求获取:通过客户调研等手段对需求进行收集、分析、细化、核实和组织两种项目(相对)的需求获取过程:产品项目:一般是根据公司战略和市场需求研发,旨在进行批量出售或推广的项目工程项目:一般是根据与用户签定的合同研发,旨在满足特定用户需求的项目,20/63,需求获取方法与策略,建立顺畅的通信途径深入客户方进行访谈与调查观察用户操作流程组成各方联合小组使用基于用况(UseCase)的方法,21/63,建立顺畅的通信途径,建立分析所需要的通信途径,以保证能顺利地对问题进行分析,22/63,访谈与调查,访谈/调查计划:从初步的需求了解出发,制订需要了解或讨论的问题的顺序和范围等有利于保证访谈的效率和全面性,但灵活性不足在具体的实践中,通常采用折衷的方法,即适当地计划好面谈,但不要过于详细,允许有一定的灵活性,23/63,访谈与调查的原则,所提问的问题应该循序渐进,从整体的方面开始提问,接下来的问题应有助于对前面的问题更好的理解和细化不要限制用户对问题的回答,这有可能会引出原先没有注意的问题提问和回答在汇总后应能够反映用户需求的全貌不断汇总-反馈-汇总,24/63,访谈与调查的具体形式-1,会议讨论法适用于需求调研早期特点:需求获取的信息量大,但有时全面性和深入性不足做好调研计划,同时掌握好计划与灵活性的平衡一般由客户方的基本情况介绍开始随着情况了解的深入,分析人员逐渐成为主导:要求分析人员有较强的理解和交流能力、思维敏锐,能够有效地引导并把握讨论的议题和方向,25/63,访谈与调查的具体形式-2,调查问卷由分析人员拟定问卷(选择、判断居多)请客户方代表回答适用于需求调研的中后期,往往用于对前期发现的一些不明确或不一致的地方进行确认特点:信息量较小,但能够引导客户对某些关键问题进行思考,给出明确、严谨的回答和判断需要分析人员在前期需求调研基础上敏锐地发现需进一步确认的不明确或不一致需求,例如:客户要求高安全性,而开发组反馈推荐解决方案是使用USBKey这样的硬件证书进行身份验证和加密传输,但可能会到来额外的运营开销,需要客户确认是否能够接受,26/63,访谈与调查的具体形式-3,原型系统由开发小组快速开发一个近似的功能原型(往往以操作界面为主),分析人员与客户围绕着原型系统的演示进行需求讨论适用于客户仅有一些宏观的设想而自身需求还不明确的情况下特点:能够帮助客户将自己的设想落实为具体需求,能够有效激发客户的思维,但需要额外的原型开发开销要求分析人员自身对需要有较强的认识,基本能够把握客户的潜在想法或者开发方有类似的成品软件,27/63,需求调研例学生选课系统-1,第一阶段:了解基本情况请教务处老师介绍背景,如学生总数、课程数量、选课相关的基本制度等第二阶段:制订访谈计划,深入讨论相关需求除了学生还有哪些相关用户?选课规则(学分、课程人数限制等)、退课规则了解客户对系统的期望:准确、访问速度快,28/63,需求调研例学生选课系统-2,第三阶段:基本了解需求后就一些关键细节通过问卷进行明确在已经了解总体选课人数之后,需要进一步了解通常情况下的选课持续时间、是否按院系逐步开放选科、选课人数的一般分布等与性能设计密切相关推荐关键管理人员使用USBKey设备,经济上是否可以接受原型:如该企业有类似成熟系统可结合系统演示进行需求调研,29/63,观察用户操作流程,客户与用户的区别如:选课系统的客户可能是学校教务处,但用户包括学生、教务员、管理人员、教务领导等到用户的实际工作环境中对用户的工作流程进行观察,了解用户实际的操作环境、操作过程和操作要求,对照用户提交的问题陈述,对用户需求可以有更全面、更细致的认识,30/63,组成联合小组,突出客户在需求分析乃至项目开发中的作用FacilitatedApplicationSpecificationTechniques(FAST)打破用户和开发者的界限,共同组成一个联合小组发挥各自的长处,共同负责项目的推进有助于发挥各自优势并增进解和协调,31/63,FAST基本原则,在中立的地点举行由开发者和用户出席的会议;建立准备和参与会议的规则;建议一个足够正式的议程以便可以进行自由的交流;一个“协调者”(他可以是用户、开发者或其他外人)来控制会议;使用一种“定义机制”(它可以是工作表、图表、墙上胶黏纸或墙板);目标是标识问题、提出解决方案的要素、商议不同的方法、以及在有利于完成目标的氛围中刻画出初步的需求。,32/63,用况(UseCase),分析员可以根据所获取的需求创建一组标识一串待建造系统的使用场景创建用况模型的主要步骤如下:确定谁会直接使用该系统,即参与者(Actor)选取其中一个参与者定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程描述该用况的基本过程,33/63,用况的描述方法,摘要方式:简洁的一段式概要,通常用于主成功场景,例如处理销售快速了解主题和范围非正式方式:以非正式的段落方式覆盖用例中的不同场景,例如处理退货进一步细化用户需求并与用户进行确认详述方式:在需求分析阶段还将进一步细化,34/63,内容摘要,需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理,35/63,需求分析原则,必须能够表示和理解问题的信息域(数据)必须能够定义软件将完成的功能必须能够表示软件的行为(作为外部事件的结果)必须划分描述数据、功能和行为的模型(分离描述),从而可以分层次地揭示细节分析过程应该在基本信息基础上不断细化,36/63,信息域,信息域:包括信息内容、信息流、以及信息结构信息内容表示了单个数据和控制对象,目标软件所有处理的信息集合由它们构成例如,数据对象“工资”是一组重要数据体的组合:领款人的姓名、净付款数、付款总额、扣除额等等,37/63,信息流表示了数据和控制在系统中流动时的变化方式,输入对象被变换为中间信息(数据和/或控制),然后进一步被变换为输出例如用数据流图表示的数据加工处理的全过程信息结构表示了各种数据和控制项的内部组织(数据之间的关系)数据或控制项将被组织为n维表还是树形结构?在结构的语境内,什么信息是和其他信息相关的?信息包含在单个结构中,还是使用不同的结构?在某信息结构中的信息如何和在另一个结构中的信息相关?,38/63,抽象、分解与多视点分析,问题抽象分析方法:要求分析人员在分析过程中捕捉用户描述或问题本身固有的一般-特殊关系首先关注一般问题的解决途径,进而指导特殊问题的解决方法过程抽象:例如超市收银的总体过程包括启动销售、依次输入商品ID/数量、汇总/付款、票据打印商品ID输入:扫描或手动输入;支付:信用卡或现金数据抽象:收银单包括客户ID、商品明细、总金额超市活动期间有折扣优惠,收银条上可能需要折扣情况,39/63,问题分解分析方法:以层次化的方式对问题进行分解和不断细化较大规模或较为复杂的问题可以被分解为若干子问题进行理解和分析分解可以逐级进行,直至子问题被分解为一个容易分析理解的部分典型例子:分层数据流图例如,40/63,多视点分析:尽量全面地考虑系统中不同干系人的需求和期望例如围绕着超市收银系统顾客希望计价过程透明、快捷收银员希望手工输入少,减少失误经理希望得到全面的统计分析支持系统管理员希望提供日志功能、保障安全最终的软件系统是相关方的综合体,各种期望可能存在冲突,需要进一步分析权衡,41/63,需求协商,协商的过程就是讨论需求冲突,找出每个人都满意的折衷方案协商不是简单的逻辑或技术上的争论要注意组织和行政方面的因素不一致的目标责任的丧失或转移组织文化组织管理态度和士气部门差异,42/63,通常会议是解决冲突最快的方式参加者应该包括发现冲突、遗漏或重叠的分析员,以及可以解决发现的问题的项目相关人员会议应该讨论那些非正式讨论不能解决的问题通常会议分为三个阶段:叙述阶段讨论阶段决策阶段,43/63,需求建模,在软件需求分析阶段,所创建的模型,要着重于描述系统要做什么,而不是如何去做目标软件的模型不应涉及软件实现细节常用的分析方法:面向数据流的结构化分析方法(SA)面向数据结构的分析方法面向对象的分析方法(OOA),44/63,详细用况说明的结构,45/63,POS系统收银用况详细说明-1,46/63,POS系统收银用况详细说明-2,47/63,POS系统收银用况详细说明-3,48/63,内容摘要,需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理,49/63,需求规约的原则-1,从现实中分离功能,即描述要“做什么”而不是“怎样实现”规约必须是一个认识模型,而不是设计或实现的模型使用面向处理的规约语言(或称系统定义语言),讨论来自环境的各种刺激可能导致系统做出什么样的功能性反应,来定义一个行为模型,从而得到“做什么”的规约,50/63,需求规约的原则-2,系统工程:如果被开发软件只是一个基于计算机的系统中的一个元素,那么整个大系统也包括在规格说明的描述之中规约必须包括系统运行环境规约必须是可操作的,以便能够利用它决定对于任意给定的测试用例,已提出的解决方案是否都能满足规约,51/63,需求规约的原则-3,规约必须允许不完备性并允许扩充规约必须局部化和松散耦合它所包括的信息必须局部化,这样当信息被修改时,只要修改某个单个的段落(理想情况)规约应被松散地构造(即松耦合),以便能够很容易地加入和删去一些段落,52/63,需求规约,53/63,引言:陈述软件目标,在基于计算机的系统语境内进行描述。信息描述:给出软件必须解决问题的详细描述,记录信息内容和关系、流和结构。功能描述:描述解决问题所需的每个功能。其中包括,为每个功能说明一个处理过程;叙述设计约束;叙述性能特征;用一个或多个图形来形象地表示软件的整体结构和软件功能与其他系统元素间的相互影响。行为描述:描述作为外部事件和内部产生的控制特征的软件操作。检验标准:描述检验系统成功的标志。即对系统进行什么样的测试,得到什么样的结果,就表示系统已经成功实现了。它是“确认测试”的基础。参考书目:包含了对所有和该软件相关的文档的引用,其中包括其他的软件工程文档、技术参考文献、厂商文献以及标准。附录:包含了规约的补充信息,表格数据、算法的详细描述、图表以及其他材料。,54/63,需求验证,需求验证目的是要检验需求是否能够反映用户的意愿评审人员评审时往往需要检查以下内容:系统定义的目标是否与用户的要求一致;系统需求分析阶段提供的文档资料是否齐全;文档中的描述是否完整、清晰、准确地反映了用户要求;被开发项目的数据流与数据结构是否确定且充足;主要功能是否已包括在规定的软件范围之内,是否都已充分说明;设计的约束条件或限制条件是否符合实际;开发的技术风险是什么;是否详细制定了检验标准,它们能否对系统定义是否成功进行确认。,55/63,内容摘要,需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理,56/63,需求管理,需求管理是一组用于帮助项目组在项目进展中的任何时候去标识、控制和跟踪需求的活动需求跟踪有两种方式,正向跟踪与逆向跟踪正向跟踪:以用户需求为切入点,检查需求规约中的每个需求是否都能在后继工作产品中找到对应点逆向跟踪:检查设计文档、代码、测试用况等工作产品是否都能在需求规约中找到出处,5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论