第02章 需求工程.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第02章 需求工程.ppt》由会员分享,可在线阅读,更多相关《第02章 需求工程.ppt(100页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件需求工程软件需求工程2 2第二第二 章章内容内容2 22.1 2.1 软件需求分析的基本概念软件需求分析的基本概念2.2 2.2 结构化分析方法结构化分析方法2.32.3 原型化方法原型化方法(维护报告)开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(测试报告)(程序)(设计文档)(需求说明书)瀑布模型瀑布模型瀑布模型瀑布模型软软件件需需求求分分析析是是软软件件生生命命期期中中重重要要的的一一步步,也也是是决定性的一步。决定性的一步。2.1 2.1 2.1 软件需求分析的基本概念软件需求分析的基本概念软件需求分析的基本概念 对对系系统统应应该该提提供供的的服服务务和和所所受
2、受到到的的约约束束进进行行理理解解、分分析、建立文档、检验的过程析、建立文档、检验的过程需求工程需求工程1.1.什么是软件需求工程?什么是软件需求工程?2.2.软件需求分析的任务是什么?软件需求分析的任务是什么?3.3.需求工程过程需求工程过程4.4.软件需求分析方法软件需求分析方法 2.1.1 软件需求分析的任务需求分析阶段的任务:需求分析阶段的任务:在在可可行行性性分分析析的的基基础础上上,进进一一步步了了解解确确定定用用户户需需求求。准准确确地地回回答答 “系统必须做什么?系统必须做什么?”的问题。获得需求规格说明书。的问题。获得需求规格说明书。Boehm对软件需求的定义:对软件需求的定
3、义:研研究究一一种种无无二二义义性性的的表表达达工工具具,它它能能为为用用户户和和软软件件人人员员双双方方都都接接受受并能够把并能够把“需求需求”严格地、形式地表达出来。严格地、形式地表达出来。由于需求分析方法不同,描述形式不同。其实现步骤如下图所示:由于需求分析方法不同,描述形式不同。其实现步骤如下图所示:当前系统当前系统模型化模型化目标系统目标系统物理模型物理模型具体化具体化物理模型物理模型抽象化抽象化逻辑模型逻辑模型实例化实例化逻辑模型逻辑模型做做什么什么导导出出理理解解需需求求 表表达达需需求求软软 件需件需 求求用用 户需户需 求求系系 统需统需 求求功能功能需求需求非功能非功能需求
4、需求领域领域需求需求需求的类型需求的类型 业务需求业务需求(business requirement)客户对系统的高层次的目标要求。在项目视图与范围文档中予以说明用户需求用户需求(user requirement)用户使用产品必须要完成的任务功能需求功能需求(functional requirement)开发人员必须实现的软件功能,使得用户能完成他们的任务,满足业务需求非功能需求非功能需求(non-functional requirement)对系统提供的服务或者功能提出的约束,包括时间、开发过程、软件质量、标准等约束一个例子一个例子从不同的角度来看,需求具有不同的层次,即业务需求、用户需求、
5、功能需求和非功能需求等例子例子:字处理程序字处理程序 之之“拼写检查器拼写检查器”业务需求业务需求:“用户能有效地纠正文档中的拼写错误用户能有效地纠正文档中的拼写错误”用户需求用户需求:“找出文档中的拼写错误并通过一个提供的替找出文档中的拼写错误并通过一个提供的替换项列表来供选择替换拼错的词换项列表来供选择替换拼错的词”功能需求功能需求:“找到并高亮度提示错词的操作找到并高亮度提示错词的操作”;“显示提显示提供替换词的对话框供替换词的对话框”;“实现整个文档范围的替换实现整个文档范围的替换”非功能需求非功能需求:“替换操作执行速度快替换操作执行速度快”;“异常出现概率异常出现概率小小”需求工程
6、过程需求工程过程 问题识别问题识别分析与综合分析与综合编写文档编写文档分析评审分析评审可行性研究可行性研究需求导出需求导出和分析和分析需求描述需求描述需求有效性需求有效性验证验证可行性报告可行性报告系统模型系统模型用户需求和用户需求和系统需求系统需求需求文挡需求文挡需求获取 系统分析人员通过与用户的交流、对现有系统的观察及对任务进行分析,确定:系统或产品范围的限制性描述与系统或产品有关的人员及特征列表系统的技术环境的描述系统功能的列表及应用于每个需求的领域限制一组描述不同运行条件下系统或产品使用状况的应用场景为更好地定义需求而开发的任意原型。需求获取的工作产品为进行需求分析提供了基础 需求获取
7、方法与策略 建立顺畅的通信途径 访谈与调查 观察用户操作流程 组成联合小组 用况(Use Case)建立顺畅的通信途径 建立分析所需要的通信途径,以保证能顺利地对问题进行分析。访谈与调查 在具体的实践中,通常采用折衷的方法,即适当地计划好面谈,但不要过于详细,允许有一定的灵活性。一般按照如下原则进行准备:所提问的问题应该循序渐进,从整体的方面开始提问,接下来的问题应有助于对前面的问题更好的理解和细化;不要限制用户对问题的回答,这有可能会引出原先没有注意的问题;提问和回答在汇总后应能够反映用户需求的全貌。例子:“赛艇比赛成绩计算系统”的第一次面谈的准备计划 初次与Dartchurch航行俱乐部的
8、航行秘书(DR)接触,面谈有关事宜。(在电话交谈时,了解到他们希望得到的是一个“价廉”的,基于PC的系统,以用于计算赛艇比赛成绩)时间:2005-6-5地点:对方场地主要问题确定基本问题。确定DR的角色还涉及其它人员吗?调查财物方面事宜。系统(大致上)是如何运作的?当前存在的问题是什么?他们都希望做些什么?观察用户操作流程 到用户的实际工作环境中对用户的工作流程进行观察,了解用户实际的操作环境、操作过程和操作要求,对照用户提交的问题陈述,对用户需求可以有更全面、更细致的认识。组成联合小组 便利的应用规约技术便利的应用规约技术(Facilitated Application Specificat
9、ion Techniques,FAST):打破用户(需方)和开发者(供方)的界限,共同组成一个联合小组,发挥各自的长处,共同负责项目的推进,这样有助于发挥各自优势并增进解和协调 FAST基本原则 在中立的地点举行由开发者和用户出席的会议;建立准备和参与会议的规则;建议一个足够正式的议程以便可以进行自由的交流;一个“协调者”(可以是用户、开发者或其他外人)来控制会议;使用一种“定义机制”(它可以是工作表、图表、墙上胶黏纸或墙板);目标是标识问题、提出解决方案的要素、商议不同的方法、以及在有利于完成目标的氛围中刻画出初步的需求。需求分析与协商需求分析与协商 需求获取结束后,分析活动需要:对需求进行
10、分类组织分析每个需求与其它需求的关系,检查需求的一致性、重叠和遗漏的情况根据用户的需要对需求进行排序在需求获取阶段,经常出现以下问题:用户提出的要求超出软件系统可以实现的范围或实现能力;不同的用户提出了相互冲突的需求 需求协商 协商的过程就是讨论需求冲突,找出每个人都满意的折衷方案 协商不是简单的逻辑或技术上的争论 要注意组织和行政方面的因素 不一致的目标 责任的丧失或转移 组织文化 组织管理态度和士气 部门差异 通常会议是解决冲突最快的方式 参加者应该包括发现冲突、遗漏或重叠的分析员,以及可以解决发现的问题的项目相关人员 会议应该讨论那些非正式讨论不能解决的问题 通常会议分为三个阶段:叙述阶
11、段讨论阶段决策阶段 系统建模系统建模 建模工具的使用在用户和系统分析人员之间建立了统一的语言和理解的桥梁,同时系统分析人员借助建模技术对获取的需求信息进行分析,排除错误和弥补不足,确保需求文档正确反映用户的真实意图在软件需求分析阶段,所创建的模型,要着重于描述系统要“做什么做什么”,而不是“如何去做如何去做”常用的分析和建模方法面向数据流方法面向数据结构方法面向对象的方法需求规约 软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥
12、重要作用。需求的描述需求的描述不宜使用自然语言描述系统需求不宜使用自然语言描述系统需求原因:理解的二义性,随意性大,难以模块原因:理解的二义性,随意性大,难以模块化化书写需求的一些原则书写需求的一些原则设计一个标准的格式,保证需求定义按格式书写使用一致的语言突出显示关键性需求尽量避免使用计算机专业术语需求描述方法需求描述方法结构化语言描述结构化语言描述依赖于定义标准格式或模板来表达需求描述依赖于定义标准格式或模板来表达需求描述 程序描述语言(程序描述语言(PDL)使用一种类似于程序设计语言的语言,但是具有更多使用一种类似于程序设计语言的语言,但是具有更多抽象特征,通过定义系统的操作模型来定义需
13、求抽象特征,通过定义系统的操作模型来定义需求 图形化符号图形化符号图形语言辅之以文本注释来定义系统的功能需求图形语言辅之以文本注释来定义系统的功能需求 数学描述数学描述基于数学概念的符号基于数学概念的符号(如有限状态机、集合等如有限状态机、集合等)结构化语言描述结构化语言描述模块标识:模块标识:Eclipse/Workstation/Tools/DE/FS/3.5.1Eclipse/Workstation/Tools/DE/FS/3.5.1功能功能添加节点添加节点描述描述添加一个节点到一个已经存在的设计中。添加一个节点到一个已经存在的设计中。输入输入节点类型,节点位置和设计标识符节点类型,节点
14、位置和设计标识符来源来源节点类型和节点位置由用户输入,设计标识符来节点类型和节点位置由用户输入,设计标识符来自数据库自数据库输出输出设计标识符设计标识符前条件前条件设计处于打开状态设计处于打开状态后条件后条件在相应位置添加一个节点,其余无改变在相应位置添加一个节点,其余无改变副作用副作用无无异常异常无设计标识符无设计标识符程序描述语言(程序描述语言(PDL)好处:可以用软件工具进行语法和语义检查可检查需求遗漏和不一致便于描述比较复杂的操作,如循环、选择等可定义接口便于实现需求到设计的过渡缺点:表达功能的能力不够充分需要具有程序语言知识的人容易提前进入设计阶段,偏离需求分析的目标图形化符号描述图
15、形化符号描述结构化分析用例分析需求规约.引言 A.系统参考文献B.整体描述C.软件项目约束.信息描述 A.信息内容表示B.信息流表示:数据流 控制流.功能描述 A.功能划分 B.功能描述:处理说明 限制局限 性能需求 设计约束 支撑图 C.控制描述 控制规约 设计约束.行为描述 A.系统状态 B.事件和响应.检验标准 A.性能范围B.测试种类C.期望的软件响应D.特殊的考虑.参考书目.附录其它需求分析阶段的文档其它需求分析阶段的文档初步的用户手册:着重反映目标软件的用户功能界面和用户使用的具体要求。测试计划修改和完善软件开发计划需求说明的质量特性需求说明的质量特性正确性正确性完整性完整性一致性
16、一致性无二义性无二义性可修改性可修改性可跟踪性可跟踪性可验证性可验证性需求验证 需求验证目的是要检验需求是否能够反映用户的意愿 评审人员评审时往往需要检查以下内容:评审人员评审时往往需要检查以下内容:1.系统定义的目标是否与用户的要求系统定义的目标是否与用户的要求一致一致;2.系统需求分析阶段提供的系统需求分析阶段提供的文档资料文档资料是否齐全;文档是否齐全;文档中的描述是否完整、清晰、准确地反映了用户要求;中的描述是否完整、清晰、准确地反映了用户要求;3.被开发项目的被开发项目的数据流与数据结构数据流与数据结构是否确定且充足;是否确定且充足;4.主要功能主要功能是否已包括在规定的软件范围之内
17、,是否是否已包括在规定的软件范围之内,是否都已充分说明;都已充分说明;5.设计的设计的约束条件或限制条件约束条件或限制条件是否符合实际;是否符合实际;6.开发的开发的技术风险技术风险是什么;是什么;7.是否详细制定了是否详细制定了检验标准检验标准,它们能否对系统定义是,它们能否对系统定义是否成功进行确认。否成功进行确认。需求验证方法需求验证方法需求评审需求评审原型建立原型建立测试用例生成测试用例生成自动的一致性分析自动的一致性分析编写用户手册编写用户手册在实际的开发过程中,获取、分析、建模、编写规约和验证这些需求开发活动不会是线性地、顺序地完成。实际上,这些活动是交叉的、递增的和反复的。需求管
18、理需求管理是一种获取获取、组织组织并记录记录系统需求的系统化方案,是一组用于帮助项目组在项目进展中的任何时候去标识、控制和跟踪需求的活动 为什么需要为什么需要 需求管理需求管理软件开发所基于的需求往往软件开发所基于的需求往往不完整不完整不准确不准确模棱两可模棱两可需求定义没有生成文档,或文档未及时更新需求定义没有生成文档,或文档未及时更新即使已采用一个个孤立的文档来管理需求即使已采用一个个孤立的文档来管理需求文档散布各处,没人知道哪个是最新版本文档散布各处,没人知道哪个是最新版本文档对信息分析、优先级别划分和跟踪效率不文档对信息分析、优先级别划分和跟踪效率不高高很难从需求文档中提取与项目有关的
19、状态信息很难从需求文档中提取与项目有关的状态信息对需求没有达成共识对需求没有达成共识随着情况的改变需求产生变更,但无法有效随着情况的改变需求产生变更,但无法有效的管理和跟踪的管理和跟踪需求管理的内容需求管理的内容需求变更管理需求变更管理问题分析和问题分析和变更描述变更描述变更分析和变更分析和成本计算成本计算识别出的问题修正后的需求变更实现变更实现需求变更管理的要求仔细评估已建议的变更制定合适的变更处理变更及时通知所有涉及的人员需求文档的版本控制需求文档的版本控制统一统一确定版本变更必须文档化文档化,及时通知有关人员指定专人更新需求文档应包括版本修正历史版本修正历史需求管理工具的数据库存储需求使
20、用专门的版本管理工具及数据库需求跟踪的方式需求跟踪的方式正向跟踪:正向跟踪:以用户需求为切入点,检查以用户需求为切入点,检查需求规约需求规约中的每中的每个需求是否都能在后继工作产品中找到对应点个需求是否都能在后继工作产品中找到对应点逆向跟踪:逆向跟踪:检查设计文档、代码、测试用况等工作产品是否检查设计文档、代码、测试用况等工作产品是否都能在都能在需求规约需求规约中找到出处中找到出处需求跟踪能力矩阵需求跟踪能力矩阵例子:大量的需求跟踪信息可以使用特定的工具进行管理 需求错误的原因需求错误的原因 需求的沟通与理解需求的沟通与理解缺乏足够的用户参与添加不必要的特性忽略了用户分类需求的变化与控制需求的
21、变化与控制用户需求不断增加需求说明的明确与完整需求说明的明确与完整需求模棱两可需求说明过于简单用户积极参与,各方和谐合作有效管理与评审准确、无二义性的高质量需求文档需求分析方法面向对象的分析方法面向对象的分析方法 面面向向对对象象的的分分析析方方法法(OOA)的的关关键键是是识识别别问问题题域域内内的的对对象象,分分析析它它们之间的关系,并建立起三类模型。们之间的关系,并建立起三类模型。结构化分析方法结构化分析方法 是是一一种种以以数数据据、数数据据的的封封闭闭性性为为基基础础,从从问问题题空空间间到到某某种种表表示示的的映映射方法,由数据流图(射方法,由数据流图(DFD图)表示。图)表示。结
22、构化开发方法结构化开发方法结构化开发方法结构化开发方法(Structured Developing MethodStructured Developing Method)结结构构化化方方法法总总的的指指导导思思想想:自自顶顶向向下下、逐逐步步求求精精。它它的的基基本原则是功能的分解与抽象。本原则是功能的分解与抽象。2.2 2.2 结构化分析方法结构化分析方法结构化开发方法的组成结构化开发方法的组成 7070年代初年代初 结构化程序设计方法结构化程序设计方法 SP法(法(Structured Program)7070年代中年代中 结构化设计方法结构化设计方法 SD法(法(Structured D
23、esign)7070年代末年代末 结构化分析方法结构化分析方法 SA法(法(Structured Analysis)SA,SD,SP 法法相相互互衔衔接接,形形成成了了一一整整套套开开发发方方法法。若若将将SA,SD 法法结结合合起起来来,又又称称为为结结构构化化分分析析与与设设计计技技术术(SADT 技术)。技术)。分分解解:对对于于一一个个复复杂杂的的系系统统,为为了了将将复复杂杂性性降降低低到到可可以以掌掌握握的的程程度度,可可以以把把大大问问题题分分解解成成若若干干小问题,然后分别解决。小问题,然后分别解决。一、一、一、一、SASA法的基本思想法的基本思想法的基本思想法的基本思想 结构
24、化分析方法的基本思想是结构化分析方法的基本思想是“分解分解”和和“抽象抽象”。抽抽象象:分分解解可可以以分分层层进进行行,即即先先考考虑虑问问题题最最本本质质的的属属性性,暂暂把把细细节节略略去去,以以后后再再逐逐层层添添加加细细节节,直直至至涉涉及及到到最最详详细细的的内内容容,这这种种用用最最本本质质的的属属性性表表示示一一个个系系统统的的方方法法就就是是“抽抽象象”。1.11.21.3x2132.12.22.31.11.31 1、建立当前系统的、建立当前系统的“具体模型具体模型”。基本思想与步骤基本思想与步骤三、三、三、三、SASASASA法的描述方法法的描述方法法的描述方法法的描述方法
25、1 1、分层的数据流图、分层的数据流图2 2、数据词典、数据词典3 3、描述加工逻辑的结构化语言、判定表及判定树、描述加工逻辑的结构化语言、判定表及判定树二、二、二、二、SASASASA法的步骤法的步骤法的步骤法的步骤4 4、为为了了对对目目标标系系统统做做完完整整的的描描述述,还还需需要要考考虑虑人人机机界界面面和和其他一些问题。其他一些问题。3 3、建立目标系统的逻辑模型。、建立目标系统的逻辑模型。2 2、抽象出当前系统的逻辑模型。、抽象出当前系统的逻辑模型。结构化分析模型的描述数据字典:是模型的核心,它包含了软件使用和产生所有数据的描述数据流图:用于功能建模,描述系统的输入数据流如何经过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第02章 需求工程 02 需求 工程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内