第三章软件需求分析

上传人:新** 文档编号:585689974 上传时间:2024-09-03 格式:PPT 页数:125 大小:429.02KB
返回 下载 相关 举报
第三章软件需求分析_第1页
第1页 / 共125页
第三章软件需求分析_第2页
第2页 / 共125页
第三章软件需求分析_第3页
第3页 / 共125页
第三章软件需求分析_第4页
第4页 / 共125页
第三章软件需求分析_第5页
第5页 / 共125页
点击查看更多>>
资源描述

《第三章软件需求分析》由会员分享,可在线阅读,更多相关《第三章软件需求分析(125页珍藏版)》请在金锄头文库上搜索。

1、n n 软件需求分析的任务和过程软件需求分析的任务和过程n n 结构化分析方法结构化分析方法n n 原型化方法原型化方法n n 动态分析方法动态分析方法n n 数据及数据库需求数据及数据库需求软件需求分析的任务软件需求分析的任务n n深入描述软件的功能和性能深入描述软件的功能和性能n n确定软件设计的约束和软件同确定软件设计的约束和软件同其它系统元素的接口细节其它系统元素的接口细节n n定义软件的其它有效性需求定义软件的其它有效性需求n n需求分析研究的对象是软件项目的需求分析研究的对象是软件项目的用户要求用户要求n n准确地表达被接受的用户要求准确地表达被接受的用户要求n n确定被开发软件系

2、统的系统元素确定被开发软件系统的系统元素n n将功能和信息结构分配到这些系统将功能和信息结构分配到这些系统元素中元素中n n需求分析的任务需求分析的任务就是借助于当前系就是借助于当前系统的逻辑模型导出目标系统的逻辑统的逻辑模型导出目标系统的逻辑模型,解决目标系统的模型,解决目标系统的 “做什么做什么” 的问题。的问题。n n通常软件开发项目是要实现目标系通常软件开发项目是要实现目标系统的物理模型统的物理模型n n目标系统的具体物理模型是由它的目标系统的具体物理模型是由它的逻辑模型经实例化,即具体到某个逻辑模型经实例化,即具体到某个业务领域而得到的业务领域而得到的需求分析的过程需求分析的过程(1

3、) 问题识别问题识别n n从系统的角度来理解软件并评审软从系统的角度来理解软件并评审软件范围是否恰当件范围是否恰当n n确定对目标系统的综合要求,即软确定对目标系统的综合要求,即软件的需求件的需求n n提出这些需求实现条件,以及需求提出这些需求实现条件,以及需求应达到的标准应达到的标准软件的需求包括:软件的需求包括:n n功能需求功能需求n n性能需求性能需求n n环境需求环境需求n n可靠性需求可靠性需求n n安全保密要求安全保密要求n n用户界面需求用户界面需求n n资源使用需求资源使用需求n n成本消耗需求成本消耗需求n n开发进度需求开发进度需求n n预先估计以后预先估计以后系统可能达

4、到系统可能达到的目标的目标问问题题识识别别的的另另一一项项工工作作是是建建立立分分析析所所需需要要的的通通信信途途径径,以以保保证证能能顺顺利利地地对对问题进行分析。问题进行分析。(2) 分析与综合分析与综合n n从从信息流信息流和和信息结构信息结构出发,出发,逐步细逐步细化所有的软件功能化所有的软件功能,找出,找出系统各元系统各元素之间的联系素之间的联系、接口特性接口特性和和设计上设计上的约束的约束,分析它们是否满足功能要,分析它们是否满足功能要求,是否合理。剔除其不合理的部求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合成分,增加其需要部分。最终综合成系统的解决方案,给出系统的解

5、决方案,给出目标系统的目标系统的详细逻辑模型详细逻辑模型。常用的分析方法常用的分析方法n n面向数据流面向数据流的结构化分析方法的结构化分析方法 (SA)n n面向数据结构面向数据结构的的Jackson方法方法 (JSD)n n面向数据结构面向数据结构的结构化数据系统开的结构化数据系统开发方法发方法 (DSSD)n n面向对象面向对象的分析方法的分析方法 (OOA) 等等(3) 编制需求分析阶段的文档编制需求分析阶段的文档n n软件需求说明书软件需求说明书n n数据要求说明书数据要求说明书n n初步的用户手册初步的用户手册n n修改、完善与确定软件开发实施计修改、完善与确定软件开发实施计划划(

6、4) 需求分析评审需求分析评审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如果被开发软件只是一个大系统中如果被开发软件只是一个大系统中的一个元素,那么整个大系统也包的一个元素,那么整个大系统也包括在规格说明的描述之中括在规格说明的描

9、述之中n n规格说明必须包括系统运行环境规格说明必须包括系统运行环境n n规格说明必须是一个认识模型规格说明必须是一个认识模型n n规格说明必须是可操作的规格说明必须是可操作的n n规格说明必须容许不完备性并允许规格说明必须容许不完备性并允许扩充扩充n n规格说明必须局部化和松散耦合规格说明必须局部化和松散耦合软件需求方法软件需求方法n n需求分析方法由对软件问题的需求分析方法由对软件问题的信息信息域域和和功能域功能域的系统分析过程及其表的系统分析过程及其表示方法组成示方法组成n n大多数的需求分析方法是由大多数的需求分析方法是由信息驱信息驱动动的的n n信息域具有三种属性信息域具有三种属性:

10、 信息流信息流、信信息内容息内容和和信息结构信息结构。结构化分析方法结构化分析方法 n n面向数据流进行需求分析的方法面向数据流进行需求分析的方法n n结构化分析方法适合于数据处理类结构化分析方法适合于数据处理类型软件的需求分析型软件的需求分析n n具体来说,结构化分析方法就是用具体来说,结构化分析方法就是用抽象模型抽象模型的概念,按照软件内部的概念,按照软件内部数数据传递据传递、变换变换的关系,的关系,自顶向下逐自顶向下逐层分解层分解,直到找到满足功能要求的,直到找到满足功能要求的所有可实现的软件为止所有可实现的软件为止n n结构化分析方法使用工具:结构化分析方法使用工具:uu 数据流图数据

11、流图uu 数据词典数据词典uu 结构化英语结构化英语uu 判定表与判定树判定表与判定树数据流图数据流图n n数据流图中的主要图形元素数据流图中的主要图形元素数据加工数据加工 (数据变换数据变换)数据源点或终点数据源点或终点 (外部实体外部实体)数据流数据流数据存储文件数据存储文件描述银行取款过程的数据流图描述银行取款过程的数据流图数据流与数据加工之间的关系数据流与数据加工之间的关系数据流图的层次结构数据流图的层次结构n n为了表达数据处理过程的数据加工为了表达数据处理过程的数据加工情况,需要采用情况,需要采用层次结构层次结构的数据流的数据流图。按照系统的层次结构进行图。按照系统的层次结构进行逐

12、步逐步分解分解,并以分层的数据流图反映这,并以分层的数据流图反映这种结构关系,能清楚地表达和容易种结构关系,能清楚地表达和容易理解整个系统理解整个系统分层的数据流图分层的数据流图n n在多层数据流图中,在多层数据流图中,顶层流图顶层流图仅包仅包含含一个加工一个加工,它代表被开发系统。,它代表被开发系统。它的输入流是该系统的输入数据,它的输入流是该系统的输入数据,输出流是系统所输出数据输出流是系统所输出数据n n底层流图底层流图是指其是指其加工不需再做分解加工不需再做分解的数据流图,它处在最底层的数据流图,它处在最底层n n中间层流图中间层流图则表示则表示对其上层父图的对其上层父图的细化细化。它

13、的每一加工可能继续细化,。它的每一加工可能继续细化,形成子图。形成子图。结构化分析方法步骤示例结构化分析方法步骤示例 商店业务处理系统商店业务处理系统n n这个数据流图只是一个高层的系统逻这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的辑模型,它反映了目标系统要实现的功能功能n n数据流图绘制步骤数据流图绘制步骤uu 首先确定系统的输入和输出首先确定系统的输入和输出uu 根据商店业务,画出顶层数据流根据商店业务,画出顶层数据流图,以反映最主要业务处理流程图,以反映最主要业务处理流程uu 经过分析,商店业务处理的经过分析,商店业务处理的主要主要功能功能应当有应当有销售销售、采购采

14、购、会计会计三三大项。大项。主要数据流输入的源点主要数据流输入的源点和和输出终点输出终点是是顾客顾客和和供应商供应商。uu 然后从输入端开始,根据商店业然后从输入端开始,根据商店业务工作流程,画出数据流流经的务工作流程,画出数据流流经的各加工框,逐步画到输出端,得各加工框,逐步画到输出端,得到第一层数据流图到第一层数据流图第一层数据流图第一层数据流图加细每一个加工框加细每一个加工框 销售细化销售细化采购细化采购细化检查和修改数据流图的原则检查和修改数据流图的原则n n数据流图上所有图形符号数据流图上所有图形符号只限于只限于前前述四种基本图形元素述四种基本图形元素n n数据流图的数据流图的主图必

15、须包括前述四种主图必须包括前述四种基本元素基本元素,缺一不可,缺一不可n n数据流图的主图上的数据流必须封数据流图的主图上的数据流必须封闭在外部实体之间闭在外部实体之间n n每个加工每个加工至少有一个输入数据流和至少有一个输入数据流和一个输出数据流一个输出数据流n n在数据流图中,需在数据流图中,需按层给加工框编按层给加工框编号号。编号表明该加工所处层次及上。编号表明该加工所处层次及上下层的亲子关系下层的亲子关系n n规定任何一个数据流子图必须与它规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。入数据流和输出数据流必须一致

16、。此即此即父图与子图的平衡父图与子图的平衡n n可以在数据流图中加入物质流,帮可以在数据流图中加入物质流,帮助用户理解数据流图助用户理解数据流图n n图上每个元素都必须有名字图上每个元素都必须有名字n n数据流图中不可夹带控制流数据流图中不可夹带控制流n n初画时可以忽略琐碎的细节,以集中初画时可以忽略琐碎的细节,以集中精力于主要数据流精力于主要数据流数据词典数据词典n n数据词典与数据流图配合,能清楚地数据词典与数据流图配合,能清楚地表达数据处理的要求表达数据处理的要求n n词条描述词条描述 对于在数据流图中每对于在数据流图中每一个被命名的图形元素,均加以定义,一个被命名的图形元素,均加以定

17、义,其内容有其内容有: 名字名字,别名或编号别名或编号,分分类类,描述描述,定义定义,位置位置,其它其它,等等(1)数据流词条描述)数据流词条描述n n数据流名:数据流名:n n说明:简要介绍作用即它产生的原因说明:简要介绍作用即它产生的原因和结果和结果n n数据流来源:来自何方数据流来源:来自何方n n数据流去向:去向何处数据流去向:去向何处n n数据流组成:数据结构数据流组成:数据结构n n数据量流通量:数据量,流通量数据量流通量:数据量,流通量(2)数据元素词条描述)数据元素词条描述n n数据元素名:数据元素名:n n类型:数字(离散值,连续值),类型:数字(离散值,连续值),文字(编码

18、类型)文字(编码类型)n n长度:长度:n n取值范围:取值范围:n n相关的数据元素及数据结构:相关的数据元素及数据结构:(3)数据文件词条描述)数据文件词条描述n n数据文件名:数据文件名:n n简述:存放的是什么数据简述:存放的是什么数据n n输入数据:输入数据:n n输出数据:输出数据:n n数据文件组成:数据结构数据文件组成:数据结构n n存储方式:顺序,直接,关键码存储方式:顺序,直接,关键码n n存取频率:存取频率:(4)加工逻辑词条描述)加工逻辑词条描述n n加工名:加工名:n n加工编号:反映该加工的层次加工编号:反映该加工的层次n n简要描述:加工逻辑及功能简述简要描述:加

19、工逻辑及功能简述n n输入数据流:输入数据流:n n输出数据流:输出数据流:n n加工逻辑:简述加工程序,加工顺加工逻辑:简述加工程序,加工顺序序(5)源点及汇)源点及汇(终终)点词条描述点词条描述n n名称:外部实体名名称:外部实体名n n简要描述:什么外部实体简要描述:什么外部实体n n有关数据流:有关数据流:n n数目:数目:数据结构的描述数据结构的描述 符符 号号 含含 义义 举举 例例 被定义为被定义为 与与 x = ab.,. 或或 .|. 或或 x = a , b,x = a | b . 或或 m.n 重复重复 x = a, x = 3a8(.) 可选可选 x = (a)“.”

20、基本数据元素基本数据元素 x = “a” . 连结符连结符 x = 1.9存折格式存折格式存折户名所号帐号开户日性质存折户名所号帐号开户日性质(印密印密)1存取行存取行50户名户名2字母字母24所号所号“001”.“999” 帐号帐号“00000001”.“99999999”开户日年月日开户日年月日性质性质“1”.“6” 注:注:“1”表示普表示普通户,通户,“5”表示工资户等表示工资户等印密印密“0” 注:印密在存折上不显示注:印密在存折上不显示存取行日期(摘要)支出存入存取行日期(摘要)支出存入余额操作复核余额操作复核 n n对数据流图的每一个基本加工,必对数据流图的每一个基本加工,必须有

21、一个基本加工逻辑说明须有一个基本加工逻辑说明n n基本加工逻辑说明必须描述基本加基本加工逻辑说明必须描述基本加工工如何把输入数据流变换为输出数如何把输入数据流变换为输出数据流的加工规则据流的加工规则n n加工逻辑说明必须描述实现加工的加工逻辑说明必须描述实现加工的策略而不是实现加工的细节策略而不是实现加工的细节n n加工逻辑说明中包含的信息应是充加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的足的,完备的,有用的,无冗余的基本加工逻辑说明基本加工逻辑说明用于写加工逻辑说明的工具用于写加工逻辑说明的工具uu 结构化英语结构化英语uu 判定表判定表uu 判定树判定树(1)结构化英语)结

22、构化英语n n结构化英语的词汇表由结构化英语的词汇表由uu 英语命令动词英语命令动词uu 数据词典中定义的名字数据词典中定义的名字uu 有限的自定义词有限的自定义词uu 逻辑关系词逻辑关系词 IF_THEN_ELSE、 CASE_OF 、 WHILE_DO、 REPEAT_UNTIL等组成。等组成。n n是一种介于自然语言和形式化语言是一种介于自然语言和形式化语言之间的语言之间的语言n n语言的语言的正文用基本控制结构进行分正文用基本控制结构进行分割割,加工中的,加工中的操作用自然语言短语操作用自然语言短语来表示来表示n n其基本控制结构有三种:其基本控制结构有三种:uu简单陈述句结构简单陈述

23、句结构:避免复合语句;:避免复合语句;uu重复结构重复结构:while_do 或或 repeat_until 结构。结构。uu判定结构判定结构:if_then_else 或或 case_of 结构;结构;商店业务处理系统中商店业务处理系统中“检查发货单检查发货单”if 发货单金额超过发货单金额超过$500 then if 欠款超过了欠款超过了60天天 then 在偿还欠款前不予批准在偿还欠款前不予批准 else (欠款未超期)欠款未超期) 发批准书,发货单发批准书,发货单 else (发货单金额未超过发货单金额未超过$500) if 欠款超过欠款超过60天天 then 发批准书,发货单及赊欠报

24、告发批准书,发货单及赊欠报告 else (欠款未超期)欠款未超期) 发批准书,发货单发批准书,发货单 (2)判定表)判定表n n如果数据流图的加工需要依赖于如果数据流图的加工需要依赖于多多个逻辑条件的取值个逻辑条件的取值,使用判定表来,使用判定表来描述比较合适描述比较合适以以“检查发货单检查发货单”为为例例(3)判定树)判定树n n判定树也是用来表达加工逻辑的一判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。种工具。有时侯它比判定表更直观。检检查查发发货货单单金额金额$500金额金额 $500 欠款欠款60天天不发出批准书不发出批准书 欠款欠款 60天天发货单发货单发出批准书、发

25、出批准书、 欠款欠款60天天发出批准书、发出批准书、发货单及赊欠报告发货单及赊欠报告 欠款欠款 60天天发出批准书、发出批准书、发货单发货单原型化方法原型化方法n n在开发初期,要想得到一个完整准在开发初期,要想得到一个完整准确的规格说明不是一件容易的事。确的规格说明不是一件容易的事。特别是对一些大型的软件项目。特别是对一些大型的软件项目。n n用户往往对系统只有一个模糊的想用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的法,很难完全准确地表达对系统的全面要求。全面要求。n n软件开发者对于所要解决的应用问软件开发者对于所要解决的应用问题认识更是模糊不清题认识更是模糊不清n n随着

26、开发工作向前推进,用户可能随着开发工作向前推进,用户可能会产生新的要求,或因环境变化,会产生新的要求,或因环境变化,要求系统也能随之变化;开发者又要求系统也能随之变化;开发者又可能在设计与实现的过程中遇到些可能在设计与实现的过程中遇到些没有预料到的实际困难,需要以改没有预料到的实际困难,需要以改变需求来解脱困境。变需求来解脱困境。n n因此规格说明难以完善、需求的变因此规格说明难以完善、需求的变更、以及通信中的模糊和误解,都更、以及通信中的模糊和误解,都会成为软件开发顺利推进的障碍。会成为软件开发顺利推进的障碍。n n为解决这些问题,逐渐形成了软件为解决这些问题,逐渐形成了软件系统的快速原型的

27、概念。系统的快速原型的概念。软件原型的分类软件原型的分类n n在软件开发中,原型是软件的一个在软件开发中,原型是软件的一个早期可运行的版本,它反映最终系早期可运行的版本,它反映最终系统的部分重要特性。统的部分重要特性。uu 探索型:探索型:目的是要弄清对目标目的是要弄清对目标系统的要求,确定所希望的特性,系统的要求,确定所希望的特性,并探讨多种方案的可行性。并探讨多种方案的可行性。uu 实验型:实验型:这种原型用于大规模这种原型用于大规模开发和实现之前,考核方案是否开发和实现之前,考核方案是否合适,规格说明是否可靠。合适,规格说明是否可靠。uu 进化型:进化型:这种原型的目的不在这种原型的目的

28、不在于改进规格说明,而是将系统建于改进规格说明,而是将系统建造得易于变化,在改进原型的过造得易于变化,在改进原型的过程中,逐步将原型进化成最终系程中,逐步将原型进化成最终系统。统。原型使用策略原型使用策略uu 废弃策略废弃策略uu 追加策略追加策略 建建立立快快速速原原型型,进进行行系系统统的的分分析析和构造的好处:和构造的好处:uu 增进软件者和用户对系统服务需增进软件者和用户对系统服务需求的理解,使比较含糊的具有不确求的理解,使比较含糊的具有不确定性的软件需求(主要是功能)明定性的软件需求(主要是功能)明确化。确化。uu 软件原型化方法提供了一种有力软件原型化方法提供了一种有力的学习手段的

29、学习手段。uu 使用原型化方法,可以容易地确使用原型化方法,可以容易地确定系统的性能,确认各项主要系定系统的性能,确认各项主要系统服务的可应用性,确认系统设统服务的可应用性,确认系统设计的可行性,确认系统作为产品计的可行性,确认系统作为产品的结果。的结果。uu 软件原型的最终版本,有的可以软件原型的最终版本,有的可以原封不动地成为产品,有的略加原封不动地成为产品,有的略加修改就可以成为最终系统的一个修改就可以成为最终系统的一个组成部分,这样有利于建成最终组成部分,这样有利于建成最终系统。系统。 原型开发技术原型开发技术n n可执行规格说明可执行规格说明n n基于脚本基于脚本(scenario)

30、的设计的设计n n自动程序设计自动程序设计n n专用语言专用语言n n可复用可复用(reusable)的软件的软件n n简化假设简化假设可执行规格说明可执行规格说明n n可执行规格说明是用于需求规格说可执行规格说明是用于需求规格说明的一种自动化技术。使用这种方明的一种自动化技术。使用这种方法,人们可以直接观察他们用语言法,人们可以直接观察他们用语言规定的任何系统性行为。包括规定的任何系统性行为。包括FF 代数规格说明代数规格说明FF 有限状态模型有限状态模型FF 可执行的数据流图可执行的数据流图(1)代数规格说明代数规格说明n n代数规格说明使用集合、定义于这代数规格说明使用集合、定义于这些集

31、合上的函数和定义于这些函数些集合上的函数和定义于这些函数上的方程来描述对象。规格说明的上的方程来描述对象。规格说明的操作语义用这些方程表示。操作语义用这些方程表示。 NEW_STACK: StackPUSH:Stack,Element StackPOP: Stack (Element | Undefined)POP (NEW_STACK ( ) ) UndefinedPOP (PUSH ( stk,elem ) ) elem其中,前三行定义了操作的语法,后其中,前三行定义了操作的语法,后两行把它们的语义定义为一些方程。两行把它们的语义定义为一些方程。举例:定义一个无界的栈及其操作举例:定义一个

32、无界的栈及其操作(2)有限状态模型有限状态模型n nparnas提出的使用最广泛的一种提出的使用最广泛的一种可执行规格说明形式。从一个初可执行规格说明形式。从一个初始状态开始始状态开始接收输入接收输入,到,到产生输产生输出出,状态状态在在推移变化推移变化。施加在状。施加在状态元素上的约束确定了有效状态态元素上的约束确定了有效状态的推移。的推移。举例:建立用户程序对话举例:建立用户程序对话(3)可执行的数据流图可执行的数据流图n n数据流图是基于结构化开发方法的数据流图是基于结构化开发方法的结构化规格说明结构化规格说明n n用一种可执行的语言程序代替定义用一种可执行的语言程序代替定义处理逻辑的结

33、构化英语,数据流图处理逻辑的结构化英语,数据流图就成为由可执行语言程序模块组成就成为由可执行语言程序模块组成的网络,在一定环境或工具的支持的网络,在一定环境或工具的支持下就可成为一个可以执行的原型系下就可成为一个可以执行的原型系统。统。基于脚本的设计基于脚本的设计n n脚本是指用户界面的原型。一个脚脚本是指用户界面的原型。一个脚本用以模拟在系统运行期间用户经本用以模拟在系统运行期间用户经历的事件。它提供了输入历的事件。它提供了输入处理处理输出的屏幕格式和有关对话的模型。输出的屏幕格式和有关对话的模型。因此,软件开发者能够给用户显示因此,软件开发者能够给用户显示系统的逼真的视图,使用户得以判系统

34、的逼真的视图,使用户得以判断是否符合他的意图。断是否符合他的意图。n n可在任一脚本中使用一套可复用的可在任一脚本中使用一套可复用的软件模块,以表达某一方面的要求。软件模块,以表达某一方面的要求。n n可使用一种原型语言来描述原型系可使用一种原型语言来描述原型系统。原型开发过程中用这种语言来统。原型开发过程中用这种语言来定义屏幕、数据项、及其相关的操定义屏幕、数据项、及其相关的操作。从系统的外部描述开始,开发作。从系统的外部描述开始,开发与数据库的接口、错误处理和恢复与数据库的接口、错误处理和恢复过程等系统的与外部视图一致的细过程等系统的与外部视图一致的细节。节。uu程序变换手段:程序变换手段

35、:将一程序转换成另一功能等价将一程序转换成另一功能等价的程序,并保持其正确性不变。的程序,并保持其正确性不变。uu实例推广手段:实例推广手段:从实例特征出发,将它推广为从实例特征出发,将它推广为待编程序的特征,最后得到程待编程序的特征,最后得到程序。序。uu 过程化手段:过程化手段:研究甚高级语言的编译和知识研究甚高级语言的编译和知识的过程化。的过程化。专用语言专用语言n n专用语言是应用领域的模型化语专用语言是应用领域的模型化语言。在原型开发中使用专用语言,言。在原型开发中使用专用语言,可方便用户和软件开发者在计划可方便用户和软件开发者在计划中的系统特性方面的交流。中的系统特性方面的交流。软

36、件复用技术软件复用技术n n利用可复用的模块,做出适当的组利用可复用的模块,做出适当的组合,就可得到快速构造的原型系统。合,就可得到快速构造的原型系统。n n为了快速地构造原型,这些模块首为了快速地构造原型,这些模块首先必须有简单而清晰的界面;其次先必须有简单而清晰的界面;其次它们应当尽量不依赖其它的模块或它们应当尽量不依赖其它的模块或数据结构;第三,它们应具有一些数据结构;第三,它们应具有一些通用的功能。通用的功能。简化假设简化假设n n简化假设是在开发过程中使设计者简化假设是在开发过程中使设计者迅速得到一个简化的系统所做的假迅速得到一个简化的系统所做的假设。尽管这些假设可能实际上并不设。尽

37、管这些假设可能实际上并不能成立,但它们在原型开发过程中能成立,但它们在原型开发过程中可以使开发者的注意力集中在一些可以使开发者的注意力集中在一些主要的方面。主要的方面。n n在修改一个文件时,可以假设这个在修改一个文件时,可以假设这个文件确实存在文件确实存在n n在存取文件时,待存取的记录总是在存取文件时,待存取的记录总是存在存在n n一旦计划中的系统满足用户所有的一旦计划中的系统满足用户所有的要求,就可以撤消这些假设,并追要求,就可以撤消这些假设,并追加一些细节。加一些细节。系统动态分析系统动态分析n n系统的需求规格说明通常是用自然系统的需求规格说明通常是用自然语言来叙述的,但是用自然语言

38、描语言来叙述的,但是用自然语言描述往往会出现歧义性。述往往会出现歧义性。n n为了直观地分析系统的动作,从特为了直观地分析系统的动作,从特定的视点出发描述系统的行为,需定的视点出发描述系统的行为,需要采用动态分析的方法。要采用动态分析的方法。最常用的动态分析方法最常用的动态分析方法n n状态迁移图状态迁移图n n时序图时序图n nPetri网网状态迁移图状态迁移图n n状态迁移图是描述系统的状态如何状态迁移图是描述系统的状态如何相应外部的信号进行推移的一种图相应外部的信号进行推移的一种图形表示。形表示。uu 圆圈圆圈“”表示可得到的系统表示可得到的系统状态状态uu 箭头箭头“”表示从一种状态向

39、表示从一种状态向另一种状态的另一种状态的迁移迁移。例如例如, 当有多个申请占用当有多个申请占用CPU运行的运行的进程时进程时, 有关有关CPU分配的进程的状分配的进程的状态迁移。态迁移。n n可得到的状态就绪,运行,等待可得到的状态就绪,运行,等待n n生成的事件生成的事件t1,t2, t3, t4 t1 中断事件中断事件 t2 中断已处理中断已处理 t3 分配分配CPU t4 用完用完CPU时间时间状态迁移图的优点状态迁移图的优点n n状态之间的关系能够直观地捕捉到状态之间的关系能够直观地捕捉到n n由于状态迁移图的单纯性,能够机由于状态迁移图的单纯性,能够机械地分析许多情况,可很容易地建械

40、地分析许多情况,可很容易地建立分析工具立分析工具n n在系统分析中,用在系统分析中,用时序图时序图于对比在于对比在系统中处理事件的时序和相应的处系统中处理事件的时序和相应的处理时间。在右图中理时间。在右图中, 对对于于事件事件e, 功功能能1功能功能3 的处理时间的处理时间 总计为总计为 (T1 T2T3) 其中功能间其中功能间 切换时间切换时间0。时序图时序图n n采用扩充时序图可采用扩充时序图可表示进程间的通信表示进程间的通信流流, 用于分析几用于分析几个个 事件的交错现事件的交错现象。,象。,C1与与C2,R1与与R2是交错的。是交错的。因此,可以做如下因此,可以做如下分析:分析:“必须

41、设计必须设计成成HOST1 在等待在等待C1的回答的回答R1期间要能接期间要能接收从收从HOST2发出的命令发出的命令C2。”Petri网网 n nPetri网已广泛地应用于硬件与软件网已广泛地应用于硬件与软件系统的开发中,它适用于描述与分系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,析相互独立、协同操作的处理系统,也就是并发执行的处理系统。也就是并发执行的处理系统。n nPetri网简称网简称PNG (Petri Net Graph),它有两种结点:它有两种结点:位置位置(place):符号为符号为“”,它用来表示系统的它用来表示系统的状态状态。转移转移(transition

42、):符号为符号为 “”, 它用来表示系统中的它用来表示系统中的事事件件。 图中的有向边表示图中的有向边表示对转移的输入对转移的输入,或或由转移的输出由转移的输出n n标记标记,或称,或称令牌令牌(token),是表明系统是表明系统当前处于什么状态的标志当前处于什么状态的标志 处理两个进程的同步问题处理两个进程的同步问题数据及数据库需求数据及数据库需求n n在数据词典中,强调对数据存储结在数据词典中,强调对数据存储结构的逻辑设计,并用数据结构表达构的逻辑设计,并用数据结构表达数据项之间的逻辑关系。数据项之间的逻辑关系。n n但任何一个软件系统都可能有成千但任何一个软件系统都可能有成千上万个数据项

43、,仅仅描述这些数据上万个数据项,仅仅描述这些数据项是不够的,更重要的是如何把它项是不够的,更重要的是如何把它们以最优的方式组织起来,以满足们以最优的方式组织起来,以满足系统对数据的要求。系统对数据的要求。有关数据库的基本概念有关数据库的基本概念n n在软件系统中需要处理的数据是现在软件系统中需要处理的数据是现实世界中存在的事物及其联系的反实世界中存在的事物及其联系的反映。映。n n人们通常将与数据处理有关的的领人们通常将与数据处理有关的的领域分为三个世界:域分为三个世界:uu 现实世界现实世界uu 信息世界信息世界uu 数据世界数据世界n n现实世界现实世界是存在于人们头脑之外的是存在于人们头

44、脑之外的客观世界,现实世界中的事物可分客观世界,现实世界中的事物可分成成对象对象和和性质性质两大类。两大类。n n对象对象可以是人、是物,还可以是实可以是人、是物,还可以是实际的东西或概念的东西,例如,大际的东西或概念的东西,例如,大学、城市等。对象还可以指事物与学、城市等。对象还可以指事物与事物间的联系。事物间的联系。n n性质性质则是指事物的性质或特征。则是指事物的性质或特征。n n信息世界信息世界也叫做观念世界,是现实也叫做观念世界,是现实世界在人们头脑中的反映。世界在人们头脑中的反映。n n客观世界中的事物在信息世界中叫客观世界中的事物在信息世界中叫做做实体实体,反映事物之间联系的叫做

45、反映事物之间联系的叫做实体模型实体模型。n n实体是由若干属性的属性值组成实体是由若干属性的属性值组成。属性属性是实体某一方面的特征,相应是实体某一方面的特征,相应于事物的性质。例如,一个学生实于事物的性质。例如,一个学生实体是如下的一个体是如下的一个5元组:元组:( 951149, 袁秋慧袁秋慧, 女女, 19, 软件软件)n n5元组中每一元素是学生的某一属性元组中每一元素是学生的某一属性的属性值。他们对应的属性集合是:的属性值。他们对应的属性集合是:n n这些属性集合表征了这些属性集合表征了“学生学生”实体实体的类型,叫做的类型,叫做实体型实体型。同一类型的。同一类型的实体的集合叫做实体

46、的集合叫做实体集实体集。n n数据世界数据世界则是信息世界中信息的数则是信息世界中信息的数据化,现实世界中的事物及其联系据化,现实世界中的事物及其联系在数据世界中用数据模型描述。在数据世界中用数据模型描述。(学号学号, 姓名姓名, 性别性别, 年龄年龄, 专业专业)n n描述每一实体的数据称为描述每一实体的数据称为记录记录,描描述属性的数据叫做述属性的数据叫做数据项数据项或或字段字段。n n与实体集相对应的称为与实体集相对应的称为文件文件。n n例如,学生文件就由多个记录组成,例如,学生文件就由多个记录组成,这些记录放在一起构成一个二维表。这些记录放在一起构成一个二维表。表中每一横排叫做一个记

47、录或元组,表中每一横排叫做一个记录或元组,每一纵列叫做一个属性。每一纵列叫做一个属性。 n n记录由记录由数据项数据项组成组成,正如实体由若,正如实体由若干属性的属性值组成一样。干属性的属性值组成一样。n n一般数据项沿用属性名。用做属性一般数据项沿用属性名。用做属性名时表示观念信息,用做数据项名名时表示观念信息,用做数据项名时表示数据信息。每个数据项包括时表示数据信息。每个数据项包括两个特征:即两个特征:即数据类型数据类型和和数据长度数据长度。n n若干同类型的记录构成若干同类型的记录构成文件文件。n n为了对文件中的记录有效组织和存为了对文件中的记录有效组织和存取,通常指定一个数据项进行区

48、别,取,通常指定一个数据项进行区别,这个数据项叫做关键字。这个数据项叫做关键字。E- -R方法方法 ( Entity- -Relationship Approach) 和实体模型和实体模型n n在需求分析阶段进行数据库逻辑设在需求分析阶段进行数据库逻辑设计过程中,计过程中,使用使用E- -R图,可定义一图,可定义一 个实体模型个实体模型。n n实体模型是现实世界的纯表示实体模型是现实世界的纯表示,它,它不涉及数据世界的数据结构、存取不涉及数据世界的数据结构、存取路径、存取效率等问题。因此,它路径、存取效率等问题。因此,它可以转换成数据库中的数据模型可以转换成数据库中的数据模型。n n数据可以按

49、相应数据模型进行组织。数据可以按相应数据模型进行组织。n nE- -R图中表示实体联系的符号如下:图中表示实体联系的符号如下:n n在在E- -R图中,每个图中,每个方框方框表示表示实体型实体型或或属性属性,方框之间的,方框之间的连线连线表示表示实体实体之间之间,或,或实体与属性之间的联系实体与属性之间的联系。出现在连线上的短竖线可以看成是出现在连线上的短竖线可以看成是“1”,而圆圈隐含表示,而圆圈隐含表示“0”。n n例如,在教学管理中,一个教师可例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,位学生也需要学习几门课程

50、。因此,教学管理中涉及的对象(实体型)教学管理中涉及的对象(实体型)有有学生学生、教师教师和和课程课程。n n用用E- -R图描述它们之间的联系,得图描述它们之间的联系,得下图。其中,学生与课程是多对多下图。其中,学生与课程是多对多的联系,而教师与课程的联系是零、的联系,而教师与课程的联系是零、一对多。一对多。n n进一步,要确定属性。例如,进一步,要确定属性。例如,n n学生具有学生具有学号学号、姓名姓名、性别性别、年龄年龄、专业专业(其它略)等属性;(其它略)等属性;n n课程具有课程具有课程号课程号、课程名课程名、学分学分、学时数学时数等属性;等属性;n n教师具有教师具有职工号职工号、

51、姓名姓名、年龄年龄、职职称称等属性。等属性。n n此外,学生通过学号、分数与课程此外,学生通过学号、分数与课程发生联系。如此可得教学实体模型。发生联系。如此可得教学实体模型。教学实体模型教学实体模型数据结构的规范化数据结构的规范化n n信息域分析需要确定信息域分析需要确定数据的内容数据的内容,每个数据项要用表格列出,最后组每个数据项要用表格列出,最后组织成文件的逻辑结构,即面向应用织成文件的逻辑结构,即面向应用而不是面向存储的结构。而不是面向存储的结构。n n为了便于数据库的设计,常常要对为了便于数据库的设计,常常要对这种结构做一些简化,其中最常见这种结构做一些简化,其中最常见的一种方法就是规

52、范化技术。的一种方法就是规范化技术。n n“规范化规范化”将将数据的逻辑结构数据的逻辑结构归结归结为满足一定条件的为满足一定条件的二维表二维表(关系)。(关系)。 表格中每个信息项必须是一个不可表格中每个信息项必须是一个不可分割的数据项,不可是组项。分割的数据项,不可是组项。 表格中每一列表格中每一列 (列表示属性列表示属性)中所中所有信息项必须是同一类型,各列的有信息项必须是同一类型,各列的名字名字 (属性名属性名) 互异,列的次序任意。互异,列的次序任意。 表格中各行表格中各行 (行表示元组行表示元组) 互不相互不相同,行的次序任意。同,行的次序任意。n n不满足上述要求的二维表或关系,不

53、满足上述要求的二维表或关系,叫做非规范化关系。对于非规范化叫做非规范化关系。对于非规范化的关系,必须将它规范化,即利用的关系,必须将它规范化,即利用更单纯、更规则的关系来代替原来更单纯、更规则的关系来代替原来的关系。的关系。n n规范化的目的是:规范化的目的是:uu 消除数据冗余消除数据冗余,即消除表格中,即消除表格中数据的重复;数据的重复;uu 消除多义性消除多义性,使关系中的属性,使关系中的属性含义清楚、单一;含义清楚、单一;n n使关系的使关系的“概念概念”单一化单一化,让每个,让每个数据项只是一个简单的数或字符串,数据项只是一个简单的数或字符串,而不是一个组项或重复组;而不是一个组项或

54、重复组;n n方便操作方便操作。使数据的插入、删除与。使数据的插入、删除与修改操作可行并方便;修改操作可行并方便;n n使关系模式更灵活使关系模式更灵活,易于实现接近,易于实现接近自然语言的查询方式。自然语言的查询方式。用教学管理例说明如何规范化用教学管理例说明如何规范化n n有三个实体型,即有三个实体型,即课程课程、学生学生和和教教师师,用三个关系保存它们的信息:,用三个关系保存它们的信息: 学生学生( (学号学号,姓名,性别,年龄,姓名,性别,年龄,专业,籍贯专业,籍贯) ) 教师教师( (职工号职工号,姓名,年龄,职,姓名,年龄,职称,工资级别,工资称,工资级别,工资) ) 课程课程(

55、(课程号课程号,课程名,学分,课程名,学分,学时,课程类型学时,课程类型) )n n为表示实体型之间的联系,又建立为表示实体型之间的联系,又建立两个关系:两个关系: 选课选课 (学号,课程号学号,课程号,听课出勤,听课出勤率,作业完成率,分数率,作业完成率,分数) 教课教课 (职工号,课程号职工号,课程号)n n这五个关系,组成了这五个关系,组成了数据库的模型数据库的模型。n n在每个关系中,属性名下加下划线)在每个关系中,属性名下加下划线)指明指明关键字关键字。并规定关键字能唯一。并规定关键字能唯一地标识一个元组。地标识一个元组。n n关系规范化的程度,通常按属性间关系规范化的程度,通常按属

56、性间的依赖程度来区分,并以范式的依赖程度来区分,并以范式 NF (Normal Form) 来表达。常用的范来表达。常用的范式分为第一范式(式分为第一范式(1NF)、)、第二范第二范式(式(2NF)和第三范式(和第三范式(3NF)。)。n n设设是是一个关系一个关系,和和是是中的中的两个属性两个属性。若对于的任一个值,。若对于的任一个值,仅有一个值与之对应,则称的仅有一个值与之对应,则称的属性函数依赖于属性。属性函数依赖于属性。例如,例如,教师教师 (职工号职工号, 姓名姓名, 年龄年龄, )n n其中,属性其中,属性“姓名姓名”,“年龄年龄”等等都函数依赖于属性都函数依赖于属性“职工号职工号

57、”。属。属性可以是复合属性,如:性可以是复合属性,如:选课选课 (学号学号, 课程号课程号, 听课出勤率听课出勤率, )n n如果如果属性函数依赖于复合属性属性函数依赖于复合属性,而而不与的任何真子集函数依赖不与的任何真子集函数依赖,则称则称属性完全函数依赖于复合属属性完全函数依赖于复合属性性。n n例如在例如在“选课选课”关系中,属性关系中,属性“听听课出勤率课出勤率”、“作业完成率作业完成率”和和“分数分数”等表示某个学生学习某门课等表示某个学生学习某门课程时的学习情况。只有同时指定程时的学习情况。只有同时指定“学号学号”和和“课程号课程号”,才能准确地,才能准确地说明是哪位学生学习哪门课

58、程时的说明是哪位学生学习哪门课程时的学习情况。学习情况。n n因此,因此,“分数分数”等属性完全函数依等属性完全函数依赖于赖于“学号学号,课程号课程号”。n n判断规范化程度的条件是:判断规范化程度的条件是: 关系中所有属性都是关系中所有属性都是“单纯域单纯域”,即不出现即不出现“表中有表表中有表” 非主属性完全函数依赖于关键字非主属性完全函数依赖于关键字 非主属性相互独立,即任何非主属非主属性相互独立,即任何非主属性间不存在函数依赖。性间不存在函数依赖。n n如果一个关系连如果一个关系连条件条件 都不满足,都不满足,则这个关系是非规范化的。则这个关系是非规范化的。n n如果一个关系仅满足如果

59、一个关系仅满足条件条件 ,则这,则这个关系满足个关系满足第一范式第一范式 (1NF)。n n如果一个关系满足如果一个关系满足条件条件 、,但,但不满足不满足 ,则这个关系满足,则这个关系满足第二范第二范式式 (2NF)。n n如果一个关系同时满足如果一个关系同时满足条件条件 、和和 ,则这个关系表满足,则这个关系表满足第三范式第三范式(3NF)。n n当数据模型达到当数据模型达到 3NF,一般情况下一般情况下就能满足数据库应用的需要。就能满足数据库应用的需要。数据库分析的过程数据库分析的过程在需求分析阶段进行数据库分析的流程在需求分析阶段进行数据库分析的流程n n为开发一个系统所使用的数据库,

60、为开发一个系统所使用的数据库,在开始分析数据库的需求前,分析在开始分析数据库的需求前,分析员必须员必须了解该系统的总目标和范围了解该系统的总目标和范围。然后然后建立一个完整并高度细化的信建立一个完整并高度细化的信息模型息模型。n n此信息模型应包括一个此信息模型应包括一个综合的数据综合的数据词典词典,定义所有在开发数据库时用,定义所有在开发数据库时用到的数据项。到的数据项。n n接着数据库分析定义数据库的接着数据库分析定义数据库的逻辑逻辑特性特性和和物理特性物理特性。n n以信息模型和系统规格说明为指导,以信息模型和系统规格说明为指导,定义数据库的定义数据库的逻辑数据结构逻辑数据结构。n n这

61、种逻辑结构必须适应这种逻辑结构必须适应数据存取数据存取、修改修改、关联性关联性及其它相关需求。及其它相关需求。n n一旦逻辑数据结构建立起来,就可一旦逻辑数据结构建立起来,就可以研制数据库的以研制数据库的物理结构物理结构。n n物理数据库结构定义物理数据库结构定义文件结构文件结构、记记录格式录格式、与硬件相关的处理方式与硬件相关的处理方式以以及及数据库管理系统的特性数据库管理系统的特性。n n最后,要最后,要对模式和物理特性进行完对模式和物理特性进行完全的评审全的评审。n n在数据库分析过程中所考虑的在数据库分析过程中所考虑的因素因素间存在着复杂的相互联系间存在着复杂的相互联系。改变其改变其中

62、的任何一个因素都会(潜在地)中的任何一个因素都会(潜在地)影响其它的因素影响其它的因素。所以必须在各个。所以必须在各个因素之间进行折衷。因素之间进行折衷。n n这种折衷包括这种折衷包括专用性专用性和和通用性通用性的折的折衷,衷,信息关联程度信息关联程度、扩充潜力扩充潜力及及操操作特性作特性等方面的折衷。等方面的折衷。n n考虑考虑信息关联程度信息关联程度和和扩充潜力扩充潜力(包(包括括信息规模信息规模和和信息内容信息内容两方面)主两方面)主要要基于需求分析和设计阶段分派给基于需求分析和设计阶段分派给数据库的专用性程度数据库的专用性程度。n n专用的数据库要为系统特定的信息专用的数据库要为系统特定的信息需求服务需求服务,因此信息结构要设计得,因此信息结构要设计得能适应要求的关联性和预计的扩充。能适应要求的关联性和预计的扩充。n n通用的数据库可以适应更为广泛的通用的数据库可以适应更为广泛的各种信息需求各种信息需求,但是为了获得通用,但是为了获得通用性要付出代价。性要付出代价。n n操作特性根据折衷的结果而定。数据操作特性根据折衷的结果而定。数据库的结构、规模和逻辑设计都会对它库的结构、规模和逻辑设计都会对它的物理组织、硬件、存取方式以及性的物理组织、硬件、存取方式以及性能产生重要的影响。能产生重要的影响。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号