您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 第4章_需求分析XXXX0308无建筑效果版
11软件工程SoftwareEngineering2011新春版2第四章需求分析Outlines需求分析概述软件需求重要性软件定义软件需求任务需求工程过程结构化方法3软件需求问题(1)•软件开发现状:复杂的软件系统开发,总令人不满意美国2500亿美元/年,175,000个软件项目其中,16%按时、按预算、满足要求地交付30%左右在完成前被取消52.7%项目成本是预算成本的189%•项目失败原因缺乏用户参与:13%不完整的需求规格说明:12%不断改变的需求和规格说明:21%4软件需求问题(2)•各阶段缺陷对交付软件产品的影响•需求缺陷约占全部提交缺陷的1/3不同阶段潜在缺陷排除的比率提交的缺陷需求1.0077﹪0.23设计1.2585﹪0.19编码1.7595﹪0.09建文档0.6080﹪0.12不恰当修复0.4070﹪0.12合计5.0085﹪0.755需求错误的代价0.1-0.20.512520阶段需求设计编码单元测试验收测试维护修复的相对成本56什么是软件需求•需求的定义(IEEE,1997)(1)用户解决问题或达到目标所需的条件或能力。(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。(3)一种反映上面(1)或(2)所描述的条件或能力的文档说明。•需求就是以一种清晰、简洁、一致且无二义性的方式,对一个待开发系统中各个有意义方面的陈述的一个集合。7软件需求的层次•业务需求(businessrequirement)反映了组织机构或客户对系统或产品高层次的目标要求,它们在项目视图与范围文档中予以说明。•用户需求(userrequirement)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。功能需求(functionalrequirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。非功能需求(non-functionalrequirement)是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。8软件需求的层次(续)例:银行ATM系统业务需求系统为用户提供自助存取款服务用户需求用户可以随时安全、快捷地进行存款和取款功能需求允许用户从银行帐户中取款允许用户向银行帐户中存款允许用户查询从银行帐户中的余额使用8位数字密码检验用户存取的合法性9软件需求的层次(续)例:银行ATM系统(2)非功能需求系统在20秒内响应所有请求除了每天30分钟维护外,系统每周7天、每天24小时都可以用需求来源客户或用户(如银行职员、管理人员、用户)行业标准、政策法规当前手工处理系统的文档咨询银行领域专家10•需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。需求分析的任务…………抽象实现改进老系统模型新模型新系统11需求分析的过程(1)需求管理需求获取需求分析规格说明需求评审需求分析的过程是开发人员与用户共同协商,明确系统的全部功能、性能以及运行规格,并且使用软件开发人员和用户都能理解的语言准确地表达出来,即完成需求规格说明的过程。说白了,就是要明确“做什么?”整个过程分为以下四个阶段:问题识别(需求获取)、需求分析(分析与综合)、编写规格说明文档、需求评审。会议记录JAD结果分析模型需求规格说明被认可的需求规格说明工作产品活动121.问题识别/需求获取:双方确定问题的综合需求,识别系统相关者的需求,使其达到共识。☻功能需求:系统必须做什么?☻性能需求:做得怎样?例:responsetime,memory,back-upmemory,……☻环境需求:运行环境、软硬件配置等。☻用户界面需求☻可靠性、安全性、保密性、可移植性和可维护性等方面的需求。☻将来可能提出的要求需求分析的过程(2)132.分析与综合:分析和整理所收集的需求,形成完整的分析模型。需求分析的过程(3)3.编写文档:以一致的、完备和无二义性的形式表达需求。☻编写需求说明书☻编写初步用户使用手册☻编写确认测试计划☻修改完善项目开发计划14需求分析的过程(4)•验证需求的一致性•验证需求的完整性•验证需求的现实性•验证需求的有效性方法:人工审查开发原型系统-探索型使用软件工具—完整性、一致性4.需求评审:确保需求说明准确、完整地表达必要的质量特点。5.需求管理:在整个软件开发过程中进行需求跟踪、变更控制、版本控制等。15常用的分析、设计方法•面向数据流的(结构化)法(SA)•面向数据结构的Jackson方法(JSD)•结构化数据系统开发方法(DSSD)•面向对象的方法(OOA)等16需求分析的方法结构化分析方法:由数据流和数据字典构成,适于数据处理领域问题。该方法的一个难点是确定数据流之间的变换,而且数据字典的规模也是一个问题,对数据结构的强调很少。面向对象的分析:采用了实体、关系和属性等信息模型分析中的概念,同时采用了封闭、类结构和继承性等面向对象程序设计语言中的概念。17注意事项在需求分析时要注意用户对软件开发的了解程度,避免造成两种极端认识。需求的变动或新增是一个极为普遍的问题,既然普遍,所以软件开发人员不仅应该在心理上接受这种变动,还应该在需求分析时积极的发掘需求。需求人员与用户广泛交流,从深度和广度挖掘可能的需求,并应形成规范的需求文档,经用户确认。如果为写文档而写文档,不进行及时更新,甚至准备在软件开发完成后再补文档,这是绝对错误的观点。18可能的错误没有足够用户参与(类型、数量)开发方与用户沟通可能处于劣势不要锦上添花,画蛇添足不要写的过于简练,过于模糊计划做需求的时间少了,导致需求不完整需求在签约前要与决策者沟通好到竞争对手那儿找不足不要被过细的不成熟的细节影响记下不明确的需求,约定期限明确,否则易遗漏19需求获取(1)•真正理解项目中描述的客户需求问题解决方案用户不知道自己需要什么,或知道但不知如何表达将用户当作领域专家来认识和激励,尝试其他交流和启发技术直到开发人员将用户描述的东西交给他们,用户才认为他们知道自己要什么尽早提供可选择的启发技术:应用用例、角色扮演、开发原型等方法分析员认为自己比用户更了解用户的需求把分析员放在用户的位置上,试着角色扮演一小时或一天1920需求获取(2)•聆听用户的需求-与各种层次的客户进行充分的交流和沟通,包括决策领导、使用部门的领导、具体使用人员、系统维护人员等•分析和整理所获取的信息-借助一些工具和方法,从用户一般性的陈述里面提取用户的真正需求,并由此确定软件的功能、性能、接口关系、约束条件等•形成文档化的描述2021需求获取(3)•需求的获取技术-向系统相关者进行问卷调查-主持与用户的面谈和讨论-需求专题讨论会-复查现有的报表、表格和过程描述-观察商业过程和工作流-应用用例-建立原型21需求规格说明:参见相应的模板22需求文档用户需求报告需求规格说明书对外的,验收依据对内的,设计依据是合同的产物是立项建议书的产物由用户需求报告可产生需求规格说明书当前系统,目标系统目标系统(数据字典,算法分析)23第四章需求分析Outlines需求分析概述结构化方法模型及其作用结构化分析功能模型(数据流图数据与数据字典)数据模型(实体关系图)行为模型(状态转换图)24模型(Model)软件开发建模的重要性软件系统建模的作用:(1)便于开发人员展现系统,在建模过程中了解信息;(2)通过抽象降低复杂度,“分而治之”的方法;(3)有助于回忆所有细节、有助于与其他开发小组交流、有助于和用户交流;(4)为维护和升级提供文档;…建模的实质:对现实的简化。25软件模型•系统:复杂;多个模型涵盖细节信息;•模型种类:数学模型:描述系统技术方面的一系列公式。描述模型:对系统某一方面的描述性备忘录、报表或列表;图形模型:图表或系统某些方面的示意性表示。26信息系统模型•分析模型(逻辑模型)-详细定义了系统需求而没有局限于具体技术。(数据流图、实体关系图、数据字典、用例图、时序图、协作图、状态转换图…)•设计模型(物理模型)-显示如何使用具体技术来实现系统的某些方面。(系统结构图、界面布局、程序流程图、网络图、分布图、数据库模式、…)27结构化方法•面向数据流/结构化进行需求分析的方法(60-70年代初,美国Yourdon公司提出)•结构化分析方法适合于数据处理类型软件的需求分析•结构化分析帮助开发人员定义系统需要什么,系统需要存储和使用哪些数据,系统需要什么样的输入和输出以及如何把这些功能结合在一起完成任务•结构化分析方法按照软件内部数据传递、变换的关系,使用自顶向下逐层分解的系统分析方法来定义需求。在结构化基础上,完成系统规格说明,建立一个系统自顶向下的逻辑模型。28结构化方法(续1)结构化分析方法的核心是数据流图。数据流图:一种表示信息流程和信息变换过程的图解方法。数据词典:定义数据流图中的数据和加工。描述加工逻辑的工具:结构化语言、判定表、判定树等工具(详细描述数据流图中不能被再分解的每一个基本加工的处理逻辑)。结构化分析方法的实质是采用一组分层数据流图及相应的数据字典作为系统的逻辑模型,是一种依赖于数据流图的自顶向下的建模方法。29结构化方法(续2)•结构化分析方法基本步骤:(1)自顶向下逐层功能分解分层DFD(2)由后向前,定义数据和加工数据字典,基本加工描述说明(3)根据需要,分析复杂数据和动态模型:E-R图,控制流图(CFD),控制说明(CSPEC),状态图(STD)(4)编写软件需求规格说明书(SRS)30复习•软件需求就是以一种清晰、简洁、一致且无二义性的方式,对一个待开发的软件系统中各个有意义方面所的陈述的一个集合。•需求的层次:业务需求、用户需求、功能需求、非功能需求。•需求分析的过程:需求获取、需求分析加工、编写文档、需求评审、需求管理。•常用需求分析方法:结构化分析、面向对象分析。•结构化分析:数据流图+数据字典31第四章需求分析Outlines需求分析概述结构化方法模型及其作用结构化分析功能模型(数据流图数据与数据字典)数据模型(实体关系图)行为模型(状态转换图)32数据流图(DFD,DataFlowDiagram)概念:一种描述信息系统逻辑模型的图形化工具,表示信息系统的主要需求,能综合反映出信息在系统中流动、处理和存储的情况。大型软件系统:分层数据流图(Why)分层数据流图可实现信息抽象高层数据流图是低层数据流图的抽象表示,低层数据流图表现了高层数据流图中有关数据的处理细节。实现信息隐藏高层次数据流图不体现低层次数据流图的细节,掩盖了低层数据处理的功能关系33分层数据流图•顶层DFD仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据•中间层DFD则表示对其上层父图的细化。它的每一加工可以继续细化,形成子图。•底层DFD是指其加工不需再做分解的数据流图系统输入1输入n输出1输出nSF1F2F1F2基本系统模型顶层数据流图一层数据流图二层数据流图P1.1P1.2P2.1P2.2P2.1P3.1P3.2P3.3P3.3F2F1F1F2系统S的总图P1P2P3F1F2F1F2P1.1P1.2F1P2.1P2.2P2.1F2P3.1P3.2P3.3P3.3F1F234数据流图基本元素(1)外部实体(ExternalEntity)/数据源点、终点-代表系统之外的人、物或组织-它发出或接收系统的数据,其作用是提供系统和外界环境之间关系的注释性说明数据流(DataFlow)-表示DFD中过程、数据存储和外部实体之间的数据移动。-数据流不代表控制流,数据流反映处理的对象,控制流则是一种选择或用来影响过程的性质过程/加工/处理(Process)-对数据执行某种操作或变化,是把输入数据交换成输出数据的一种变换。或编号加工名外部实体外部实体或35数据流图基本元素(2)数据存储(DataStorage)-数据存储不一定等同于一个文件,可以表示文件、文件的一部分、数据库元素或记录的一部分等。-数据可以存储在磁盘、存储器
本文标题:第4章_需求分析XXXX0308无建筑效果版
链接地址:https://www.777doc.com/doc-203239 .html