《第二部分 软件需求分析与建模结构化分析建模.ppt》由会员分享,可在线阅读,更多相关《第二部分 软件需求分析与建模结构化分析建模.ppt(109页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 软件工程软件工程方法与实践方法与实践(机械工业出版社)(机械工业出版社)高等院校计算机课程案例教程系列高等院校计算机课程案例教程系列窦万峰窦万峰编著编著1.1.现代软件工程现代软件工程(国家示范性软件学院系列教材国家示范性软件学院系列教材)张家浩张家浩/东南大学东南大学 机械工业出版社机械工业出版社 2009.12009.12.2.软件工程软件工程 理论与实践理论与实践 许家珆许家珆 曾翎曾翎 彭德中彭德中 编著编著 高等教育出版社高等教育出版社 2004.72004.73.3.软件工程软件工程-实践者的研究方法实践者的研究方法 (美)(美)Roger S.PressmanRoger S.P
2、ressman著著 郑人杰等译郑人杰等译 机械工业出机械工业出版社版社 2008.62008.6 4.4.Software Engineering,6th EditionSoftware Engineering,6th EditionSoftware Engineering,6th EditionSoftware Engineering,6th Edition Sommerville.I.(Sommerville.I.(影印版影印版)机械工业出版社机械工业出版社 2003.42003.4主要参考书:主要参考书:主要参考书:主要参考书:总总目目录录第第1 1章章 软件工程学概述软件工程学概述(2
3、 2学时)学时)第第2 2章章 软件过程软件过程(2 2学时)学时)第第3 3章章 软件过程模型软件过程模型(4 4学时)学时)第第4 4章章 案例研究案例研究(2 2学时)学时)第第5 5章章 软件需求分析过程软件需求分析过程(4 4学时)学时)第第6 6章章 结构化分析建模结构化分析建模(4 4学时)学时)第第7 7章章 面向对象分析面向对象分析(6 6学时)学时)第第8 8章章 软件设计软件设计(4 4学时)学时)第第9 9章章 结构化设计方法结构化设计方法(4 4学时)学时)总总目目录录第第1010章章 面向对象设计面向对象设计(4 4学时)学时)第第1111章章 软件实现软件实现(2
4、 2学时)学时)第第1212章章 软件测试软件测试(4 4学时)学时)第第1313章章 软件维护软件维护(2 2学时)学时)第第1414章章 软件项目管理软件项目管理(2 2学时)学时)第第1515章章 软件项目估算软件项目估算(1 1学时)学时)第第1616章章 软件项目计划与管理软件项目计划与管理(1 1学时)学时)第第6章章 结构化分析建模结构化分析建模6.1 分析模型概述分析模型概述 6.2 结构化需求分析结构化需求分析 6.3 面向数据的建模方法面向数据的建模方法 6.4 面向数据流的建模面向数据流的建模 6.5 案例分析案例分析6.6 实验要求及习题实验要求及习题需求分析的任务就是
5、准确地指出“软件目标产品必须做什么?”需求分析的一个重要过程就是需求建模的过程,是为最终用户所看到的系统建立一个概念模型。结构化分析方法是一种传统的系统建模技术分析模型分析模型分析模型的目的是为计算机系统提供必须的信息、功能和行为域的说明模型是对系统某个方面的抽象,抛弃了具体细节,对系统中最突出的特征作简化,可以演化6.1 6.1 分析模型概述分析模型概述学生在学校教材科购买教材的系统的例子学生在学校教材科购买教材的系统的例子一、通过对现实环境的研究,获得系统具体模型。购书购书发票发票购书单购书单书书购书购书证明证明赵赵秘秘书书购书购书申请申请钱钱会会计计孙孙出出纳纳李李保保管管学学生生学学生
6、生学生在学校教材科购买教材的系统的例子学生在学校教材科购买教材的系统的例子二、去掉具体模型的非本质因素,抽取出当前系统的逻辑模型发票领书单书有效单有效性购书单开票开领书单发书学生学生学生在学校教材科购买教材的系统的例子学生在学校教材科购买教材的系统的例子四、对目标系统进行完善和补充,写出完整的需求说明。五、对需求说明进行复审,直到确认文档齐全并符合用户的全部需求为止。发票领书单审查并开发票购书单开领书单无效书单学生学生分析模型元素:基于场景的元素:用例图基于过程的活动序列的元素:活动图基于类的元素:类图行为元素:状态图面向信息流的元素:DFD(数据流程图)、IPO基于数据的元素:ERD6.1
7、6.1 分析模型概述分析模型概述分析模式分析模式分析模式:在软件开发领域,在特定的应用领域内某些事物在所有的项目中重复发生。分析模式可以使用标准的模板来表现,模板采用模式名、目的、动机、外因和环境、解决方案、结论、设计、已知应用和相关模式的格式描述分析模式信息。例如,ERP(EnterpriseResourcePlan)软件就是一个高层分析模式,形成一套开发ERP软件的分析模式。结构化分析模式分为:数据流分析模式、数据分析模式分析模型的目标与原则分析模型的目标与原则分析模型必须实现三个主要目标:描述客户需要什么;为软件设计奠定基础;定义在软件完成后可以被确认的一组需求。分析模型的所有元素都可以
8、直接映射到设计模型创建分析模型时应遵循的原则:模型应关注在问题或业务域内可见的需求,抽象的级别相对高;分析模型的每个元素都应能增加对软件需求的整体理解,并提供对信息域、功能和系统行为的深入理解;基于基础机构和其他非功能的模型应推延到设计阶段再考虑;最小化整个系统内的关联;确认分析模型为所有共利益者都带来价值;尽可能保持模型简洁6.2结构化需求分析结构化需求分析用户需求一般用自然语言描述系统需求必须用较专业的方式来描述:建模模型是软件设计的基础,也是创建规约的基础需求分析原则:必须表示和理解问题的信息域;必须定义软件将完成的功能;必须表示软件的行为(作为外部事件的结果);必须划分描述信息、功能和
9、行为的模型,从而使得可以以层次的方式揭示细节;分析过程应该从要素信息移向细节实现。当前系统当前系统模型化模型化目标系统目标系统物理模型物理模型具体化具体化物理模型物理模型抽象化抽象化逻辑模型逻辑模型实例化实例化逻辑模型逻辑模型做什么做什么导导出出理理解解需需求求表表达达需需求求结构化需求分析步骤结构化需求分析步骤在需求工程中,分析员创建系统模型,使用精化的软件分解模型,建造软件处理的数据、功能和行为模型,为软件设计者提供可被翻译成数据、体系结构、界面和过程设计的模型,以及通过需求规格说明文档为开发者和客户提供软件质量评估的依据等。结构化分析方法结构化分析方法结构化分析(SA,Structure
10、dAnalysis)方法是20世纪70年代,由E.Yourdon等人倡导的一种适用于大型数据处理系统的、面向数据流的需求分析方法。结构化需求分析方法指导性原则:在开始建立分析模型之前先理解问题。开发模型,使用户能够了解将如何进行人机交互(使用原型技术)。记录每个需求的起源和原因,保证需求的可追踪性和可回溯性。使用多个需求分析视图,建立数据、功能和行为模型。给需求赋予优先级,优先开发重要的功能,提高开发生产效率。删除含糊性,通过复审发现问题。结构化分析模型结构化分析模型系统模型从以下不同的角度表述系统:系统模型从以下不同的角度表述系统:从外部来看,它是对系统分析上下文或系统环境建模;从外部来看,
11、它是对系统分析上下文或系统环境建模;从行为上看,它是对系统行为建模;从行为上看,它是对系统行为建模;从结构上看,它是对系统的体系结构和系统处理的数从结构上看,它是对系统的体系结构和系统处理的数据结构建模。据结构建模。结构化的需求分析模型有:结构化的需求分析模型有:系统行为模型:系统行为模型:数据流模型,用来描述系统中的数据处理过程数据流模型,用来描述系统中的数据处理过程状态转换模型,用来描述系统如何对事件做出响应状态转换模型,用来描述系统如何对事件做出响应实体实体关系模型:关系模型:关心的是寻找系统中的数据及其之关心的是寻找系统中的数据及其之间的关系,却不关心系统中包含的功能。间的关系,却不关
12、心系统中包含的功能。结构化分析模型结构结构化分析模型结构数据字典实体-关系图数据流图加工规约数据对象描述状态转换图控制规约数据字典(数据字典(DD):):包含了软件包含了软件使用或生产的所有数据对象描使用或生产的所有数据对象描述的中心库。述的中心库。数据流图(数据流图(DFD):):一是指明一是指明数据在系统中移动时如何被变数据在系统中移动时如何被变换,二是描述对数据流进行变换,二是描述对数据流进行变换的功能和子功能。换的功能和子功能。实体实体关系图(关系图(E-RD):):描述描述数据对象间的关系,用来进行数据对象间的关系,用来进行数据建模活动的记号。数据建模活动的记号。状态转换图(状态转换
13、图(STD):):指明作指明作为外部事件的结果,系统将如为外部事件的结果,系统将如何动作。何动作。在实体在实体关系图中每个数据对关系图中每个数据对象的属性可以使用数据对象来象的属性可以使用数据对象来描述。描述。在数据流图中出现的每个加工在数据流图中出现的每个加工/处理的功能描述包含在工规约处理的功能描述包含在工规约中。中。软件控制方面的附加信息包含软件控制方面的附加信息包含在控制规约中。在控制规约中。6.3面向数据的建模方法面向数据的建模方法分析建模通常开始于数据建模系统建模的一个重要方面就是要定义系统处理的逻辑结构最广泛采用的数据建模技术是实体-关系模型(ERD),是指以实体、关系、属性三个
14、基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。6.3面向数据的建模方法面向数据的建模方法实体关系模型可用ERD(Entity-RelationshipsDiagram实体关系图)来表示:实体:是指客观存在,并能相互区别的事物。只封装了数据,用矩形或圆角矩形表示,矩形框内写明实体名;比如学生张三丰、学生李寻欢都是实体。关联:描述了实体之间的联系,用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)就是指存在的三种关系(一对一,一对多,多对多)。比如老师给学生授课存在授课关系,学生选课存在选课关系。实体属性:定义实体
15、的性能,用矩形或表,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。基数:实体X出现的次数与实体Y的多少次出现相关实例分析:出卷系统实例分析:出卷系统N包含题目出卷要求依据抽取试题试卷11111试卷由一组题目组成,而题目来自试卷库中被挑选的题目。试卷根据出卷要求选择项目。这些实体的属性给出如下:试题:编号、科目、题干、题干图、答案、答案图、题型、知识点、难度、抽取时间试卷:编号、科目、出卷人、年级、性质、总分、难度、题目*出卷要求、总分、总难度、总题型、总知识点题目:编号、题干、题干图、答案、答案图、题型、知识点、难度实例分析:图书馆系统实例分析:图书馆系统1借书记录
16、预约记录借/还/续借1M1NM包含预约借书者图书书目实例分析:图书馆系统实例分析:图书馆系统实体:图书、借书者、管理员、借书目录、预约记录、书目属性给出如下:借书者:借书者编号、姓名、性别、借书数、最大借书数、罚金金额、有限期图书:图书号、书目号书目:书目号、书名、作者、出版社、丛书名、收藏数、在馆数、预约数借书记录:图书号、借书者编号、借出日期、应还日期、续借次数预约记录:书目号、借书者编号、预约日期实例分析:实例分析:POS机系统机系统1NM111包含付款描述销售支付商品描述商品实体实体有销售、支付、商有销售、支付、商品、商品描述品、商品描述关联:关联:销售包含一组商品;销售包含一组商品;
17、每个商品都有相应的每个商品都有相应的描述信息;描述信息;每个支付对应一个销每个支付对应一个销售。售。实体的属性:实体的属性:销售:编号、总价、销售:编号、总价、1商品商品*,日期,日期支付:编号、支付客户、找零、销售编号支付:编号、支付客户、找零、销售编号商品:编号、数量商品:编号、数量商品描述:名称、产地、厂家、单价商品描述:名称、产地、厂家、单价6.4面向数据流的建模面向数据流的建模面向数据流的建模是结构化需求分析方法之一采用自顶向下逐层分解,描绘满足用户要求的软件模型表示:数据流图:描述系统处理过程数据字典:模型中的数据信息集合状态转换图:描述系统对内部或外部事件响应的行为模型数据流图(
18、DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它。它是分析员与用户之间极好的通信工具,也是今后进行软件设计的很好的出发点。数据流图数据流图符号数据流图符号数据源点或终点数据变换或数据加工数据存储数据流:或或或基本符号基本符号数据流与数据加工之间的关系数据流与数据加工之间的关系处理并不一定是一个程序处理并不一定是一个程序。一个处理框可以代。一个处理框可以代表一系列程序、单个程序或者程序的一个模块;甚表一系列程
19、序、单个程序或者程序的一个模块;甚至可以代表人工处理过程。至可以代表人工处理过程。一个数据存储也并不等同于一个文件,它可以一个数据存储也并不等同于一个文件,它可以表示一个文件、文件的一部分、数据库的元素或记表示一个文件、文件的一部分、数据库的元素或记录的一部分等。录的一部分等。数据存储和数据流都是数据数据存储和数据流都是数据,仅仅所处的状态,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。处于运动中的数据。通常在数据流图中忽略出错处理,也不包括诸通常在数据流图中忽略出错处理,也不包括诸如打开或关闭文件之类的内务处理。如打开
20、或关闭文件之类的内务处理。数据流图的层次结构数据流图的层次结构为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。检查和修改数据流图的原则检查和修改数据流图的原则数据流图上所有图形符号只限于前述四种基本图形元素数据流图的主图必须包括前述四种基本元素,缺
21、一不可数据流图的主图上的数据流必须封闭在外部实体之间每个加工至少有一个输入数据流和一个输出数据流在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡图上每个元素都必须有名字数据流图中不可夹带控制流初画时可以忽略琐碎的细节,以集中精力于主要数据流顾顾客客出出版版社社验证验证订单订单汇总汇总订单订单订单订单出版社出版社订单订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确正确订单订单一批一批订单订单出版社档案文件出版社档案文件订货存根文件订货
22、存根文件画图步骤画图步骤 :1 1、确定外部实体及输入、输出数据流。、确定外部实体及输入、输出数据流。2 2、确定分解顶层的加工。、确定分解顶层的加工。3 3、确定使用的文件。、确定使用的文件。4 4、用数据流将各部分连接起来,形成数据封闭。、用数据流将各部分连接起来,形成数据封闭。注意:标注各加工框及数据流名称。注意:标注各加工框及数据流名称。例例1 1:图书预定系统(:图书预定系统(0 0层层DFDDFD图)图)画分层画分层DFDDFD图的方法图的方法 “先全局后局部先全局后局部,先整体后细节先整体后细节,先抽象后具体先抽象后具体”通常可将这种分层的通常可将这种分层的DFDDFD图图,分为
23、顶层、中间层、底层分为顶层、中间层、底层 具体步骤:具体步骤:1.1.先确定系统范围,画出顶层的先确定系统范围,画出顶层的DFDDFD图。图。2.2.逐层分解顶层逐层分解顶层DFDDFD图,获得若干中间层图,获得若干中间层DFDDFD图。图。3.3.画出底层的画出底层的DFDDFD图。图。顶顶层层图图说说明明了了系系统统的的边边界界,即即系系统统的的输输入入和和输输出出数数据据流流,顶顶层层图图只只有有一一张张。底底层层图图由由一一些些不不能能再再分分解解的的加加工工组组成成,这这些些加加工工都都已已足足够够简简单单,称称为为基基本本加加工工。在在顶顶层层和和底底层层之之间间的的是是中中间间层
24、层。中中间间层层的的数数据据流流图图描描述述了了某某个个加工的分解,而它的组成部分又要进一步分解。加工的分解,而它的组成部分又要进一步分解。画各层画各层DFDDFD图时,图时,“由外向内由外向内”。X1321.11.21.41.32.12.21.1.11.1.22.1.32.1.22.1.12.2.22.2.32.2.1顶顶层层中中 间间 层层底底 层层先全局后局部先全局后局部,先整体后细节先整体后细节,先抽象后具体先抽象后具体.0图图1图画分层画分层DFD图图2图图加工分解的原则加工分解的原则自然性:自然性:概念上合理、清晰;概念上合理、清晰;均均匀匀性性:理理想想的的分分解解是是将将一一个
25、个问问题题分分解解成成大大小小均均匀匀的的几几个部分;个部分;分分解解度度:一一般般每每一一个个加加工工每每次次分分解解最最多多不不要要超超过过个个子子加工加工,分解应分解到基本加工为止。分解应分解到基本加工为止。数据守恒与数据封闭原则数据守恒与数据封闭原则 所所谓谓数数据据守守恒恒是是指指加加工工的的输输入入输输出出数数据据流流是是否否匹匹配配,即即每每一一个个加加工工既既有有输输入入数数据据流流又又有有输输出出数数据据流流。或或者者说说一一个加工至少有一个输入数据流,一个输出数据流。个加工至少有一个输入数据流,一个输出数据流。数据封闭是对整个系统而言。数据封闭是对整个系统而言。合理使用文件
26、合理使用文件当当文文件件作作为为某某些些加加工工之之间间的的交交界界面面时时,文文件件必必须须画画出出来来,一一旦旦文文件件作作为为数数据据流流图图中中的的一一个个独独立立成成份份画画出出来来了,那么他同其他成份之间的联系也应同时表达出来。了,那么他同其他成份之间的联系也应同时表达出来。DFDDFDDFDDFD图不是流程图图不是流程图图不是流程图图不是流程图,不表示软件的控制流程。不表示软件的控制流程。不表示软件的控制流程。不表示软件的控制流程。子图与父图的子图与父图的“平衡平衡”父图中某个加工的输入输出数据流应该同相应的子父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同图的输入输
27、出相同(相对应),分层数据流图的这种特相对应),分层数据流图的这种特点称为子图与父图点称为子图与父图“平衡平衡”。数据流图举例数据流图举例设一个工厂采购部每天需要一张定货报表。定货设一个工厂采购部每天需要一张定货报表。定货的零件数据有:零件编号、名称、数量、价格、的零件数据有:零件编号、名称、数量、价格、供应者等。零件的入库、出库事务通过计算机终供应者等。零件的入库、出库事务通过计算机终端输入给定货系统。当某零件的库存数少于给定端输入给定货系统。当某零件的库存数少于给定的库存量临界值时,就应该再次定货。的库存量临界值时,就应该再次定货。数据流分析:数据流分析:数据源点:仓管员(负责入库或出库事
28、务给定数据源点:仓管员(负责入库或出库事务给定货系统);货系统);数据终点:采购员(接收每天的定货报表);数据终点:采购员(接收每天的定货报表);数据流:事务,定货;数据流:事务,定货;数据存储:定货信息,库存清单;数据存储:定货信息,库存清单;处理:处理事务,产生报表。处理:处理事务,产生报表。画基本系统模型画基本系统模型采购员事务定货报表仓管员定货系统第一步求精第一步求精定货信息库存清单定货信息库存信息采购员定货报表产生报表仓管员处理事务事务顶级数据流图顶级数据流图功能级数据流图功能级数据流图(0层层DFD)第二步求精第二步求精仓管员采购员处理入库事务入库事务出库事务定货报表处理定货定货信
29、息处理出库事务产生报表定货信息库存清单库存信息定货信息库存清单定货信息库存信息采购员定货报表产生报表仓管员处理事务事务第一步求精第一步求精数据流图中每个成分的命名是否恰当,直接影数据流图中每个成分的命名是否恰当,直接影响数据流图的可理解性。在命名时应注意的问题:响数据流图的可理解性。在命名时应注意的问题:1.为数据流为数据流(或数据存储或数据存储)命名命名(1)名字应代表整个数据流名字应代表整个数据流(或数据存储或数据存储)的内容,而的内容,而不是仅仅反映它的某些成分。不是仅仅反映它的某些成分。(2)不要使用空洞的、缺乏具体含义的名字不要使用空洞的、缺乏具体含义的名字(如如“数数据据”、“信息
30、信息”、“输入输入”之类之类)。(3)如果在为某个数据流如果在为某个数据流(或数据存储或数据存储)起名字时遇到起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。成的,应该试试重新分解,看是否能克服这个困难。DFD中的命名中的命名2.为处理命名为处理命名(1)通常先为数据流命名,然后再为与之相关联的通常先为数据流命名,然后再为与之相关联的处理命名。处理命名。(2)名字应该反映整个处理的功能,而不是它的一名字应该反映整个处理的功能,而不是它的一部分功能。部分功能。(3)名字最好由一个具体的及物动词加上一
31、个具体名字最好由一个具体的及物动词加上一个具体的宾语组成。避免使用的宾语组成。避免使用“加工加工”、“处理处理”等名字。等名字。(4)通常名字中仅包括一个动词,否则把这个处理通常名字中仅包括一个动词,否则把这个处理再分解成两个处理。再分解成两个处理。(5)如果在为某个处理命名时遇到困难,则很可能如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。是发现了分解不当的迹象,应考虑重新分解。3.数据源点数据源点/终点终点并不需要在开发目标系统的过程中并不需要在开发目标系统的过程中设计和实现,它并不属于数据流图的核心内容,只设计和实现,它并不属于数据流图的核心内容,只不过是
32、目标系统的外围环境部分不过是目标系统的外围环境部分(可能是人员、计可能是人员、计算机外部设备或传感器装置算机外部设备或传感器装置)。通常,为数据源点通常,为数据源点/终点命名时采用它们在问题终点命名时采用它们在问题域中习惯使用的名字域中习惯使用的名字(如如“采购员采购员”、“仓库管理仓库管理员员”等等)。思考题思考题1高考录取统分子系统有如下功能:(1)计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。试根据要求画出该系统的数据流程图思考题思考题2:银行取款系统的数据流图(活期储蓄)。储户储户储户储
33、户取取 款款 系系统统取款单存折取款单存折存折现金存折现金储户储户储户储户资资 格格审查审查登录登录付款付款取款单存折存 折现金取款信息付款问题D1 帐卡帐卡D2 存折存折123思考2:什么是数据流图(DFD)?答:是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。思考2:(p71)习题5思考3:自学考试报名过程中有个“记录报名单”的加工。该加工主要是根据报名表(姓名、性别、身份证号、课程名)和开考课程(课程名、开考时间)、经校核,编号、填写、输出准考证给报名者,同时记录到考生名册中(准考证号、姓名、课程)。请绘制该加工的DFD图。思考1:什么是ERD?请思考习题5(p
34、71)。答:ERD描述静态数据结构的概念模式。数据字典任何字典最主要的用途都是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。数据字典是分析模型中出现的所有名字的一个集合,并包括有关命名实体的描述.也就是对数据流图中包含的所有元素的定义的集合.数据字典有以下两个作用:它是所有名字信息管理的有效机制作为连接软件分析、设计、实现和进化阶段的开发机构的信息存储数据字典应该由四类元素的定义组成:数据流数据流分量数据存储处理数据字典中的定义就是对数据自顶向下的分解。一般说来,当分解到不需要进一步定义,每个和工程有关的人也都清楚其含义的元素时,这种分解
35、过程就完成了。由数据元素组成数据的方式只有下述三种基本类型:(1)顺序:即以确定次序连接两个或多个分量;(2)选择:即从两个或多个可能的元素中选取一个;(3)重复:即把指定的分量重复零次或多次;(4)可选:即一个分量可有可无(重复零次或一次)。定义数据的方法定义数据的方法为了清晰简洁地描述由数据元素组成数据的关系,采用下列符号:=意思是等价于(或定义为)+意思是和(连接两个分量)意思是或(从方括弧内列出的若干个分量中选择一个),通常用“|”号隔开供选择的分量意思是重复(重复花括弧内的分量)如:0字母或数字7()意思是可选(圆括弧里的分量可有可无)例:某程序设计语言规定,用户说明的标识符是长度不
36、超过8个字符的字符串,其中第一个字符必须是字母字符,随后的字符既可以是字母字符也可以是数字字符。使用上面讲过的符号,可以像下面那样定义标识符:标识符=字母字符+字母数字串字母字符=1字母1字母数字串=0字母或数字7字母或数字=字母字符|数字字符(1)数据流条目:给出某个数据流的定义,通常是列出该数据流的各组成数据项。如:报名单姓名单位名年龄性别课程名常用符号:、()等数据字典的内容数据字典的内容 符符 号号 含含 义义 举举 例例被定义为被定义为与与x=ab.,.或或.|.或或x=a,b,x=a|b.或或m.n重复重复x=a,x=3a8(.)可选可选x=(a)“.”基本数据元素基本数据元素 x
37、=“a”.连结符连结符x=1.9举例:定义数据流组成及数据项。机票=姓名+日期+航班号+起点+终点+费用姓名=字母航班号=“Y7100”.“Y8100”终点=上海|北京|西安数据流条目主要内容及举例如下:数据流名称:订单别名:无简述:顾客订货时填写的项目来源:顾客去向:加工1“检验订单”数据流量:1000份/每周组成:编号+订货日期+顾客编号+地址+电话+银行账号+货物名称+规格+数量思考:自学考试报名过程中有个“记录报名单”的加工。该加工主要是根据报名表(姓名、性别、身份证号、课程名)和开考课程(课程名、开考时间)、经校核,编号、填写、输出准考证给报名者,同时记录到考生名册中(准考证号、姓名
38、、课程)。请绘制该加工的DFD图。并写出数据词典中的数据流条目。数据流词典数据流词典 数据流条目:数据流条目:报名单报名单=姓名姓名+性别性别+身份证号身份证号+课程名课程名 开考课程开考课程=课程名课程名+开考时间开考时间 考生名册考生名册=准考证号准考证号+姓名姓名+课程课程(2)文件条目(数据存储):给出某个文件的定义,同数据流一样,文件的定义通常是列出文件记录的组成数据流。如:订单文件订单编号顾客名称产品名称订货数量交货日期如:数据存储名称:库存记录别名:无简述:存放库存所有可供货物的信息组成:货物名称+编号+生产厂家+单价+库存量组织方式:索引文件,以货物编号为关键字查询要求:要求能
39、立即查询数据字典的内容数据字典的内容(3)数据项条目:数据项条目应该包括数据的信息有一般信息(名字、别名、描述等)、定义(数据类型、长度、结构等)、使用特点(值的范围、使用频率、使用条件、使用方式、条件值等)、控制信息(用户、使用特点、改变数、使用权等)、分组信息(文档结构、从属结构、物理位置等),数据项是不可再分解的数据单位。例:数据项名称:货物编号别名:G-No,G-num,Goods-No简述:本公司的所有货物的编号类型:字符串长度:10取值范围及含义:第一位:进口/国产第2-4位:类别第5-7位:规格第8-10位:品名编号例:某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,
40、第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,如果是本市电话再接着拨8位电话号码(第1位不是0),如果是外地电话则先拨区码(35位数字),再拨当地电话号码(7或8位数字,第1位不是0)。请定义上述的电话号码。非零数字1234567|89电话号码校内号码校外号码 校内号码非零数字3位数字 校外号码本市号码外地号码本市号码数字零非零数字7位数字外地号码数字零区码当地号码数字零 3位数字3数字3 7位数字7数字7 区码3数字5当地号码非零数字6数字7 数字0123456789(4)加工条目(数据处理):加工类条目就是“加工小说明”,一般应该单独列出。加工条目是用来说明D
41、FD中基本加工的处理逻辑的,由于上层的加工是由下层的基本加工分解而来,只要有了基本加工的说明,就可理解其他加工。对数据处理的定义用其他工具(如结构化语言、判定树、判定表、IPO图或PDL)描述更方便。(1)数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,将消除许多可能的误解。(2)对数据的严密一致的定义有助于改进在不同的开发人员或不同的开发小组之间的通信。能避免许多麻烦的接口问题。(3)数据字典中包含的每个数据元素的控制信息是很有价值的,它很容易估计改变一个数据将产生的影响。(4)数据字典是开发数据库的第一步数据字典的用途数据字
42、典的用途目前,数据字典几乎总是作为CASE“结构化分析与设计工具”的一部分实现的。在开发大型软件系统的过程中,数据字典的规模和复杂程度迅速增加,人工维护数据字典几乎是不可能的。如果在开发小型软件系统时暂时没有数据字典处理程序,建议采用卡片形式书写数据字典,每张卡片上保存描述一个数据的信息。这样做更新和修改起来比较方便,而且能单独处理描述每个数据的信息。每张卡片上主要应该包含下述这样一些信息:名字、别名、描述、定义、位置。数据字典的实现数据字典的实现数据字典数据字典卡片方式示例卡片方式示例名字:定货报表别名:定货信息描述:每天一次需要定货的零件表定义:定货报表=零件编号+零件名称 +定货数量+价
43、格+1供应者3位置:输出到打印机名字:零件编号别名:描述:惟一标识一个特定零件的关键组成定义:零件编号=8位字符位置:定货报表、定货信息库存清单名字:定货数量别名:描述:某个零件一次定货的数目定义:定货数量=1|2|3|4|5位置:定货报表定货信息名字:价格别名:价格范围描述:某个零件目前参考价格或者上下限定义:价格=1零件单价2位置:定货报表定货信息库存清单思考题:“决定比赛名单”这个加工,根据“运动员名单”和“比赛项目”产生“项目参加者”,如下图所示,运动员名单要包括所在队名,运动员编号号,运动员姓名,及参加的所有项目。请写出这三个数据流条目。答:运动员名单队名运动员号姓名项目项目项目名项
44、目参加者项目名运动员号对数据流图中每一个不能再分解的基本加工都必须有一个小说明给出这个加工的精确描述。小说明中应精确地描述加工的激发条件、加工逻辑、优先级、执行频率和出错处理等。加工逻辑是其中最基本的部分,是指用户对这个加工的逻辑要求。对基本加工说明有四种描述方式:(1)结构化语言(过程描述语言PDL)(2)判定表(3)判定树(4)IPO表加工说明(加工逻辑的描述)结构化语言是介于自然语言和形式语言之间的一种半形式语言,结构化语言是介于自然语言和形式语言之间的一种半形式语言。结构化语言是在自然语言基础上加了一些限定,使用有限的词汇和有限的语句来描述加工逻辑,它的结构可分成外层和内层两层:一般分
45、为两层结构:外层语法较具体,为控制结构(顺序、选择、循环),内层较灵活,表达“做什么”。(1)(1)结构化语言结构化语言例如:外层可为以下结构:顺序结构SEQ-END选择结构SELECT-OR-ENDIFTHEN-ELSE;CASE-OF-ENDCASE;循环结构ITER-UNTIL-WHILEWHILE-DO;REPEAT-UNTIL结构化语言特点:简单易学,少二义性;难处理组合条件。例例1统计文件中空格总数统计文件中空格总数统计空格seq打开文件读入字符串Totalsum=0程序体iteruntil文件结束程序体end印总数seq印出空格总数印总数end关闭文件停止统计空格end例例2 2
46、:一图书销售系统,其中一加工为一图书销售系统,其中一加工为“优惠处理优惠处理”,条件,条件是:顾客的营业额大于是:顾客的营业额大于10001000元,同时必须信誉好,或者虽然元,同时必须信誉好,或者虽然信誉不好,但是信誉不好,但是2020年以上的老主顾。年以上的老主顾。用结构化语言来描述:用结构化语言来描述:IF营业额大于营业额大于10001000元元 THENTHEN IF IF 如果信誉好如果信誉好 THENTHEN 优惠处理。优惠处理。ELSEELSE 正常处理。正常处理。ELSEELSE 信誉不好信誉不好 但是但是2020年以上的老主顾,则优惠处理。年以上的老主顾,则优惠处理。ELSE
47、ELSE 营业额小于、等于营业额小于、等于10001000元元 则则 正常处理。正常处理。显然,用结构化语言来描述组合条件不清晰。显然,用结构化语言来描述组合条件不清晰。商店业务处理系统中商店业务处理系统中“检查发货单检查发货单”IF IF IF IF 发货单金额超过发货单金额超过发货单金额超过发货单金额超过$500 THEN$500 THEN$500 THEN$500 THEN IF IF IF IF 欠款超过了欠款超过了欠款超过了欠款超过了60606060天天天天 THENTHENTHENTHEN 在偿还欠款前不予批准在偿还欠款前不予批准在偿还欠款前不予批准在偿还欠款前不予批准 ELSE
48、ELSE ELSE ELSE(欠款未超期)(欠款未超期)(欠款未超期)(欠款未超期)发批准书,发货单发批准书,发货单发批准书,发货单发批准书,发货单 ENDIFENDIFENDIFENDIFELSE ELSE ELSE ELSE (发货单金额未超过(发货单金额未超过(发货单金额未超过(发货单金额未超过$500$500$500$500)IF IF IF IF 欠款超过欠款超过欠款超过欠款超过60606060天天天天 THENTHENTHENTHEN 发批准书,发货单及赊欠报告发批准书,发货单及赊欠报告发批准书,发货单及赊欠报告发批准书,发货单及赊欠报告 ELSE ELSE ELSE ELSE(欠
49、款未超期)(欠款未超期)(欠款未超期)(欠款未超期)发批准书,发货单发批准书,发货单发批准书,发货单发批准书,发货单 ENDIFENDIFENDIFENDIFENDIFENDIFENDIFENDIF 判定表是一种二维表格,用于较复杂的组合条件。判定表是一种二维表格,用于较复杂的组合条件。条件框条件框 条件条目条件条目 操作框操作框 操作条目操作条目(2 2 2 2)判定表)判定表)判定表)判定表 特点:可处理较复杂的组合条件,但不能描述循环的处理特点:可处理较复杂的组合条件,但不能描述循环的处理特征;不易理解,不易输入计算机。特征;不易理解,不易输入计算机。通常由四部分组成:通常由四部分组成:
50、条件框条件框条件定义。条件定义。操作框操作框操作的定义。操作的定义。条件条目条件条目 各条件的取值及组合。各条件的取值及组合。操作条目操作条目 在各条件取值组合下所执行的操作。在各条件取值组合下所执行的操作。例如例如:对商店每天的营业额所收税率对商店每天的营业额所收税率营业额营业额X X()1000X50001000X50005000 X100005000 X 10001000元元 Y Y Y Y N Y Y N 信誉好信誉好 Y N N -Y N N -20 20 年年 -Y N -Y N -优优 惠惠 X X X X 正正 常常 X X X X 化化简简后后 1 2 3 4 5 6 7 8