《软件工程第3章软件需求分析课件.ppt》由会员分享,可在线阅读,更多相关《软件工程第3章软件需求分析课件.ppt(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、需求分析的任务需求分析的任务需求分析过程需求分析过程结构化分析方法结构化分析方法原型化方法原型化方法需求分析的任务需求分析的任务n n确定软件设计的约束和软件确定软件设计的约束和软件同其它系统元素的接口细节同其它系统元素的接口细节n n定义软件的其它有效性需求定义软件的其它有效性需求n n深入描述软件的功能和性能深入描述软件的功能和性能n n需求分析研究的对象是软件需求分析研究的对象是软件项目的用户要求项目的用户要求n n准确地表达被接受的用户要准确地表达被接受的用户要求求n n确定被开发软件系统的系统确定被开发软件系统的系统元素元素n n将功能和信息结构分配到这将功能和信息结构分配到这些系统
2、元素中些系统元素中n n需求分析的任务就是借助于当前系统的逻需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目辑模型导出目标系统的逻辑模型,解决目标系统的标系统的“做什么做什么”的问题。的问题。需求分析的过程需求分析的过程(1)(1)问题识别问题识别 从系统的角度来理解软件并评审软件从系统的角度来理解软件并评审软件范围是否恰当范围是否恰当 确定对目标系统的综合要求,即软件确定对目标系统的综合要求,即软件的需求的需求 提出这些需求实现条件以及需求应达提出这些需求实现条件以及需求应达到的标准到的标准软件的需求包括:软件的需求包括:n n功能需求功能需求n n性能需求性能需求n
3、 n环境需求环境需求n n可靠性需求可靠性需求n n安全保密要求安全保密要求n n用户界面需求用户界面需求n n资源使用需求资源使用需求n n成本消耗需求成本消耗需求n n开发进度需求开发进度需求n n预先估计以后预先估计以后系统可能达到系统可能达到的目标的目标 问问题题识识别别的的另另一一项项工工作作是是建建立立分分析析所所需需要要的的通通信信途途径径,以以保保证证能能顺顺利利地对问题进行分析。地对问题进行分析。(2)(2)分析与综合分析与综合 从数据流和数据结构出发,逐步细从数据流和数据结构出发,逐步细化所有的软件功能,找出系统各元化所有的软件功能,找出系统各元素之间的联系、接口特性和设计
4、上素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要的约束,分析它们是否满足功能要求,是否合理。剔除其不合理的部求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合成分,增加其需要部分。最终综合成系统的解决方案,给出目标系统的系统的解决方案,给出目标系统的详细逻辑模型。详细逻辑模型。(3)(3)编制需求分析阶段的文档编制需求分析阶段的文档 软件需求说明书软件需求说明书 数据要求说明书数据要求说明书 初步的用户手册初步的用户手册 修改、完善与确定软件开发实施修改、完善与确定软件开发实施计划计划(4)(4)需求分析评审需求分析评审n n系统定义的目标是否与用户的要求系统定义的目标是
5、否与用户的要求一致一致;n n系统需求分析阶段提供的文档资料系统需求分析阶段提供的文档资料是否齐全是否齐全;n n文档中的所有描述是否完整、清晰、文档中的所有描述是否完整、清晰、准确反映用户要求准确反映用户要求;n n与所有其它系统成分的重要接口是与所有其它系统成分的重要接口是否都已经描述否都已经描述;n n被开发项目的数据流与数据结构被开发项目的数据流与数据结构是否足够、确定是否足够、确定;n n所有图表是否清楚,在不补充说所有图表是否清楚,在不补充说明时能否理解明时能否理解;n n主要功能是否已包括在规定的软主要功能是否已包括在规定的软件范围之内,是否都已充分说明件范围之内,是否都已充分说
6、明;n n设计的约束条件或限制条件是否设计的约束条件或限制条件是否符合实际符合实际;n n开发的技术风险是什么开发的技术风险是什么;n n是否考虑过软件需求的其它方案是否考虑过软件需求的其它方案;n n是否考虑过将来可能会提出的软是否考虑过将来可能会提出的软件需求件需求;n n是否详细制定了检验标准,它们是否详细制定了检验标准,它们能否对系统定义是否成功进行确能否对系统定义是否成功进行确认。认。需求分析流程需求分析流程软件需求分析的原则软件需求分析的原则n n需要能够表达和理解问题的数需要能够表达和理解问题的数据域和功能域据域和功能域n n要能以层次化的方式对问题进要能以层次化的方式对问题进行
7、分解和不断细化行分解和不断细化n n要给出系统的逻辑视图和物理要给出系统的逻辑视图和物理视图视图软件需求规格说明软件需求规格说明的原则的原则n n从现实中分离功能,即描述要从现实中分离功能,即描述要“做什做什么么”而不是而不是“怎样实现怎样实现”n n要求使用面向处理的规格说明语言要求使用面向处理的规格说明语言(或称系统定义语言)(或称系统定义语言)n n如果被开发软件只是一个大系统中的如果被开发软件只是一个大系统中的一个元素,那么整个大系统也包括在一个元素,那么整个大系统也包括在规格说明的描述之中规格说明的描述之中n n规格说明必须包括系统运行环境规格说明必须包括系统运行环境n n规格说明必
8、须是一个认识模型规格说明必须是一个认识模型n n规格说明必须是可操作的规格说明必须是可操作的n n规格说明必须容许不完备性并允许扩规格说明必须容许不完备性并允许扩充充n n规格说明必须局部化和松散耦合规格说明必须局部化和松散耦合软件需求分析方法软件需求分析方法n n需求分析方法由对软件问题的数据需求分析方法由对软件问题的数据域和功能域的系统分析过程及其表域和功能域的系统分析过程及其表示方法组成示方法组成n n大多数的需求分析方法是由数据驱大多数的需求分析方法是由数据驱动的动的n n数据域具有三种属性数据域具有三种属性:数据流、数数据流、数据内容和数据结构。据内容和数据结构。结构化分析方法结构化
9、分析方法 n n面向数据流进行需求分析的面向数据流进行需求分析的方法方法n n结构化分析方法适合于数据结构化分析方法适合于数据处理类型软件的需求分析处理类型软件的需求分析n n具体来说,结构化分析方法就是具体来说,结构化分析方法就是用抽象模型的概念,按照软件内用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功向下逐层分解,直到找到满足功能要求的所有可实现的软件为止能要求的所有可实现的软件为止n n结构化分析方法使用工具:数据结构化分析方法使用工具:数据流图,数据词典,结构化英语,流图,数据词典,结构化英语,判定表与判定树判定表与判定
10、树数据流图数据流图n n数据流图中的主要图形元素数据流图中的主要图形元素描述银行取款过程的数据流图描述银行取款过程的数据流图数据流与数据加工之间的关系数据流与数据加工之间的关系数据流图的层次结构数据流图的层次结构n n为了表达数据处理过程的数据加工为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易种结构关系,能清楚地表达和容易理解整个系统理解整个系统n n在多层数据流图中,顶层流图仅包含在多层数据流图中,顶
11、层流图仅包含一个加工,它代表被开发系统。它的一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流输入流是该系统的输入数据,输出流是系统所输出数据是系统所输出数据n n底层流图是指其加工不需再做分解的底层流图是指其加工不需再做分解的数据流图,它处在最底层数据流图,它处在最底层n n中间层流图则表示对其上层父图的细中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形化。它的每一加工可能继续细化,形成子图。成子图。结构化分析方法步骤示例结构化分析方法步骤示例商店业务处理系统商店业务处理系统n n这个数据流图只是一个高层的系统逻辑这个数据流图只是一个高层的系统逻辑模型,它反映了
12、目标系统要实现的功能模型,它反映了目标系统要实现的功能n n数据流图绘制步骤数据流图绘制步骤 首先确定系统的首先确定系统的首先确定系统的首先确定系统的输入和输出输入和输出输入和输出输入和输出 根据商店业务,画出根据商店业务,画出根据商店业务,画出根据商店业务,画出顶层数据流图顶层数据流图顶层数据流图顶层数据流图,以反映最主,以反映最主,以反映最主,以反映最主要业务处理流程要业务处理流程要业务处理流程要业务处理流程 经过分析,商店业务处理的经过分析,商店业务处理的经过分析,商店业务处理的经过分析,商店业务处理的主要功能主要功能主要功能主要功能应当有销售、应当有销售、应当有销售、应当有销售、采购、
13、会计三大项。采购、会计三大项。采购、会计三大项。采购、会计三大项。然后从输入端开始,根据商店业务工作流程,画然后从输入端开始,根据商店业务工作流程,画然后从输入端开始,根据商店业务工作流程,画然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得出数据流流经的各加工框,逐步画到输出端,得出数据流流经的各加工框,逐步画到输出端,得出数据流流经的各加工框,逐步画到输出端,得到到到到第一层数据流图第一层数据流图第一层数据流图第一层数据流图。细化细化细化细化各功能。各功能。各功能。各功能。第一层数据流图第一层数据流图细化每一功能细化每一功能 销售细化销售细化细化每一功能细
14、化每一功能 采购采购细化细化检查和修改数据流图的原则检查和修改数据流图的原则n n数据流图上所有图形符号只限于前述四种基数据流图上所有图形符号只限于前述四种基本图形元素本图形元素n n数据流图的主图必须包括前述四种基本元素,数据流图的主图必须包括前述四种基本元素,缺一不可缺一不可n n数据流图的主图上的数据流必须封闭在外部数据流图的主图上的数据流必须封闭在外部实体之间实体之间n n每个加工至少有一个输入数据流和一个输出每个加工至少有一个输入数据流和一个输出数据流数据流n n在数据流图中,需按层给加工框编号。编号在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系表明该加工
15、所处层次及上下层的亲子关系n n规定任何一个数据流子图必须与它上一规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子和输出数据流必须一致。此即父图与子图的平衡图的平衡n n可以在数据流图中加入物质流,帮助用可以在数据流图中加入物质流,帮助用户理解数据流图户理解数据流图n n图上每个元素都必须有名字图上每个元素都必须有名字n n数据流图中不可夹带控制流数据流图中不可夹带控制流n n初画时可以忽略琐碎的细节,以集中精初画时可以忽略琐碎的细节,以集中精力于主要数据流力于主要数据流数据词典数据词典 数据词典与数据流图
16、配合,能清楚数据词典与数据流图配合,能清楚地表达数据处理的要求地表达数据处理的要求词条描述词条描述 对于在数据流图中每一个被命名的对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有图形元素,均加以定义,其内容有:名名字,别名或编号,分类,描述,定义,字,别名或编号,分类,描述,定义,位置,其它等位置,其它等(1 1)数据流词条描述)数据流词条描述n n数据流名:数据流名:n n说明:简要介绍作用即它产生的原因说明:简要介绍作用即它产生的原因和结果和结果n n数据流来源:来自何方数据流来源:来自何方n n数据流去向:去向何处数据流去向:去向何处n n数据流组成:数据结构数据流组成:数据
17、结构n n数据量流通量:数据量,流通量数据量流通量:数据量,流通量(2 2)数据元素词条描述)数据元素词条描述n n数据元素名:数据元素名:n n类型:数字(离散值,连续值),类型:数字(离散值,连续值),文字(编码类型)文字(编码类型)n n长度:长度:n n取值范围:取值范围:n n相关的数据元素及数据结构:相关的数据元素及数据结构:(3 3)数据文件词条描述)数据文件词条描述n n数据文件名:数据文件名:n n简述:存放的是什么数据简述:存放的是什么数据n n输入数据:输入数据:n n输出数据:输出数据:n n数据文件组成:数据结构数据文件组成:数据结构n n存储方式:顺序,直接,关键码
18、存储方式:顺序,直接,关键码n n存取频率:存取频率:(4 4)加工逻辑词条描述)加工逻辑词条描述n n加工名:加工名:n n加工编号:反映该加工的层次加工编号:反映该加工的层次n n简要描述:加工逻辑及功能简述简要描述:加工逻辑及功能简述n n输入数据流:输入数据流:n n输出数据流:输出数据流:n n加工逻辑:简述加工程序,加工顺序加工逻辑:简述加工程序,加工顺序(5 5)源点及汇)源点及汇(终终)点词条描述点词条描述n n名称:外部实体名名称:外部实体名n n简要描述:什么外部实体简要描述:什么外部实体n n有关数据流:有关数据流:n n数目:数目:数据结构的描述数据结构的描述 符符 号
19、号 含含 义义 举举 例例 被定义为被定义为 与与 x=ab.,.或或.|.或或 x=a,b,x=a|b.或或 m.n 重复重复 x=a,x=3a8(.)可选可选 x=(a)“.”基本数据元素基本数据元素 x=“a”.连结符连结符 x=1.9存折格式存折格式n n存折户名所号帐号开户日性质存折户名所号帐号开户日性质(印密)(印密)11存取行存取行5050n n户名户名22字母字母2424n n所号所号“001”.“999”“001”.“999”n n帐号帐号“00000001”.“99999999”“00000001”.“99999999”n n开户日年月日开户日年月日n n性质性质“1”.“
20、6”“1”.“6”注:注:“1”“1”表示普通表示普通户,户,“5”“5”表示工资户等表示工资户等n n印密印密“0”“0”注:印密在存折上不显示注:印密在存折上不显示n n存取行日期(摘要)支出存入余存取行日期(摘要)支出存入余额操作复核额操作复核n n对数据流图的每一个基本加工,必须对数据流图的每一个基本加工,必须有一个基本加工逻辑说明有一个基本加工逻辑说明n n基本加工逻辑说明必须描述基本加工基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流如何把输入数据流变换为输出数据流的加工规则的加工规则n n加工逻辑说明必须描述实现加工的策加工逻辑说明必须描述实现加工的策略而不是实现
21、加工的细节略而不是实现加工的细节n n加工逻辑说明中包含的信息应是充足加工逻辑说明中包含的信息应是充足的,完备的,有用的,没有重复的多的,完备的,有用的,没有重复的多余信息余信息基本加工逻辑说明基本加工逻辑说明用于写加工逻辑说明的工具用于写加工逻辑说明的工具 结构化英语结构化英语 判定表判定表 判定树判定树(1 1)结构化英语)结构化英语n n结构化英语的词汇表由结构化英语的词汇表由uu 英语命令动词英语命令动词uu 数据词典中定义的名字数据词典中定义的名字uu 有限的自定义词有限的自定义词uu 逻辑关系词逻辑关系词 IF_THEN_ELSE IF_THEN_ELSE、CASE_OF CASE
22、_OF、WHILE_DO WHILE_DO、REPEAT_UNTIL REPEAT_UNTIL等组成。等组成。n n是一种介于自然语言和形式化语言之间是一种介于自然语言和形式化语言之间的语言的语言n n语言的正文用基本控制结构进行分割,语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示加工中的操作用自然语言短语来表示n n其基本控制结构有三种:其基本控制结构有三种:uu简单陈述句结构:避免复合语句;简单陈述句结构:避免复合语句;uu重复结构:重复结构:WHILE_DOWHILE_DO 或或REPEAT_UNTILREPEAT_UNTIL结构。结构。uu判定结构:判定结构:IF_
23、THEN_ELSEIF_THEN_ELSE 或或CASE_OFCASE_OF结构;结构;商店业务处理系统中商店业务处理系统中“检查发货单检查发货单”IF IF IF IF 发货单金额超过发货单金额超过发货单金额超过发货单金额超过$500 THEN$500 THEN$500 THEN$500 THEN IF IF IF IF 欠款超过了欠款超过了欠款超过了欠款超过了60606060天天天天 THEN THEN THEN THEN 在偿还欠款前不予批准在偿还欠款前不予批准在偿还欠款前不予批准在偿还欠款前不予批准 ELSE ELSE ELSE ELSE(欠款未超期)(欠款未超期)(欠款未超期)(欠款
24、未超期)发批准书,发货单发批准书,发货单发批准书,发货单发批准书,发货单 ENDIF ENDIF ENDIF ENDIFELSE ELSE ELSE ELSE (发货单金额未超过(发货单金额未超过(发货单金额未超过(发货单金额未超过$500$500$500$500)IF IF IF IF 欠款超过欠款超过欠款超过欠款超过60606060天天天天 THEN THEN THEN THEN 发批准书,发货单及赊欠报告发批准书,发货单及赊欠报告发批准书,发货单及赊欠报告发批准书,发货单及赊欠报告 ELSE ELSE ELSE ELSE(欠款未超期)(欠款未超期)(欠款未超期)(欠款未超期)发批准书,发
25、货单发批准书,发货单发批准书,发货单发批准书,发货单 ENDIF ENDIF ENDIF ENDIFENDIFENDIFENDIFENDIF(2 2)判定表)判定表n n如果数据流图的加工需如果数据流图的加工需要依赖于多个逻辑条件要依赖于多个逻辑条件的取值,使用判定表来的取值,使用判定表来描述比较合适描述比较合适以以“检查发货单检查发货单”为例为例(3 3)判定树)判定树n n判定树也是用来表达加工逻辑的一种判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。工具。有时侯它比判定表更直观。原型化方法原型化方法n n在开发初期,要想得到一个完整准确在开发初期,要想得到一个完整准确的规格
26、说明不是一件容易的事。特别的规格说明不是一件容易的事。特别是对一些大型的软件项目。是对一些大型的软件项目。n n用户往往对系统只有一个模糊的想法,用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要很难完全准确地表达对系统的全面要求。求。n n软件开发者对于所要解决的应用问题软件开发者对于所要解决的应用问题认识更是模糊不清认识更是模糊不清n n随着开发工作向前推进,用户可能会随着开发工作向前推进,用户可能会产生新的要求,或因环境变化,要求产生新的要求,或因环境变化,要求系统也能随之变化;开发者又可能在系统也能随之变化;开发者又可能在设计与实现的过程中遇到些没有预料设计与实现的过程
27、中遇到些没有预料到的实际困难,需要以改变需求来解到的实际困难,需要以改变需求来解脱困境。脱困境。n n因此规格说明难以完善、需求的变更、因此规格说明难以完善、需求的变更、以及通信中的模糊和误解,都会成为以及通信中的模糊和误解,都会成为软件开发顺利推进的障碍。软件开发顺利推进的障碍。n n为了解决这些问题,逐渐形成了软件为了解决这些问题,逐渐形成了软件系统的快速原型的概念。系统的快速原型的概念。软件原型的分类软件原型的分类n n在软件开发中,原型是软件在软件开发中,原型是软件的一个早期可运行的版本,的一个早期可运行的版本,它反映最终系统的部分重要它反映最终系统的部分重要特性。特性。uu 探索型探
28、索型:目的是要弄清对:目的是要弄清对目标系统的要求,确定所目标系统的要求,确定所希望的特性,并探讨多种希望的特性,并探讨多种方案的可行性。方案的可行性。u 实验型实验型:这种原型用于大:这种原型用于大规模开发和实现之前,考核规模开发和实现之前,考核方案是否合适,规格说明是方案是否合适,规格说明是否可靠。否可靠。u 进化型进化型:这种原型的目的:这种原型的目的不在于改进规格说明,而是不在于改进规格说明,而是将系统建造得易于变化,在将系统建造得易于变化,在改进原型的过程中,逐步将改进原型的过程中,逐步将原型进化成最终系统。原型进化成最终系统。原型使用策略原型使用策略u 废弃策略废弃策略u 追加策略
29、追加策略 建建立立快快速速原原型型,进进行行系系统统的的分分析析和构造的好处:和构造的好处:uu 增进软件人员和用户对系统服增进软件人员和用户对系统服务需求的理解,使比较含糊的具务需求的理解,使比较含糊的具有不确定性的软件需求(主要是有不确定性的软件需求(主要是功能)明确化。功能)明确化。uu 软件原型化方法提供了一种有软件原型化方法提供了一种有力的学习手段。力的学习手段。uu 使用原型化方法,可以容易使用原型化方法,可以容易地确定系统的性能,确认各项地确定系统的性能,确认各项主要系统服务的可应用性,确主要系统服务的可应用性,确认系统设计的可行性,确认系认系统设计的可行性,确认系统作为产品的结果。统作为产品的结果。uu 软件原型的最终版本,有的软件原型的最终版本,有的可以原封不动地成为产品,有可以原封不动地成为产品,有的略加修改就可以成为最终系的略加修改就可以成为最终系统的一个组成部分,这样有利统的一个组成部分,这样有利于建成最终系统。于建成最终系统。