您好,欢迎访问三七文档
第五章面向数据流的分析方法o数据流图与数据字典(重点)o实体-关系图(ER图)o基于数据流的分析方法(重点)授课教师:蒋建民电子邮件:jjmxam@yahoo.com.cn1、结构化分析方法结构化分析方法是一种建模技术基于计算机的系统是数据流和一系列的转换构成的在模型的核心是数据词典,它描述了所有的在目标系统中使用的和生成的数据对象。围绕着这个核心的有三种图:ERD、DFD、STD2、分析模型的组成ü数据建模和对象描述ü功能建模和数据流图ü基本加工逻辑说明ü行为建模ü数据词典§5.1面向数据流的分析方法概述实体—关系图状态—迁移图数据流图数据对象描述加工规格说明数据字典控制规格说明•ERD用于数据建模•DFD用于功能建模•STD用于行为建模结构化分析的分析模型数据流图(DFD)描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能);实体—关系图(ERD)描述数据对象及数据对象之间的关系;状态—迁移图(STD)描述系统对外部事件如何响应,如何动作。§5.2数据建模及ER图•1、数据建模:数据模型包括三种互相关联的信息数据对象,描述对象的属性,描述对象间相互连接的关系。2、数据对象:是需被目标系统所理解的复合信息的表示。它具有若干不同特征或属性的信息。数据对象可以是外部实体,事物,角色,行为或事件,组织单位,地点或结构。数据对象只封装了数据,没有包含作用于这些数据上的操作。3、属性:定义了数据对象的特征。它可用来:•为数据对象的实例命名;•描述这个实例;•建立对另一个数据对象的另一个实例的引用•主码:为了唯一地标识数据对象的某一个实例,定义数据对象中的一个属性或几个属性为关键码(key),书写为_id,例如在“学生”数据对象中用“学号”做关键码,它可唯一地标识一个“学生”数据对象中的实例4、关系:各个数据对象的实例之间有关联。如一个学生“张鹏”选修两门课程“软件工程”与“计算机网络”,学生与课程的实例通过“选修”关联起来。§5.2数据建模及ER图实例的关联有三种:一对一(1:1);一对多(1:m);多对多(n:m)。这种实例的关联称为“基数”。基数表明了“重复性”。如1位教师带学生班的30位同学,就是1:m的关系。但也有1位教师带0位同学的情形,所以实例关联有是“可选”还是“必须”之分。用“O”表示关系是可选的,用“│”表示关系必须出现1次。这表明了关系的“参与性”。教师学生管带基数:一位教师基数:多位学生参与度:必须参与度:可选E-R图:段描述数据对象和它们之间的关系图E-R图中表示实体关联的符号如下4、E-R图(Entity-RelationshipDiagram)XY一个X与一个Y相关联一个X与一个或多个Y相关联XY一个X与零个或一个Y相关联XY一个X与零个,一个或多个Y相关联XY一个X与一个Y或Z相关联XYZ一个X与一个Y与Z相关联XYZ•在E-R图中,每个方框表示数据对象或属性,方框之间的连线表示数据对象之间,或对象与属性之间的关联。出现在连线上的短竖线可以看成是“1”,而圆圈隐含表示“0”。举例教学管理系统教师-学生-课程ER图一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。涉及的对象(实体型)有学生、教师和课程。学生教师课程学生与课程:多对多教师与课程:0/1对多•由于“多对多”的关联在计算机表达时有困难,引入“选课”对象作为关联对象,可将“多对多”的关联改为两个“一对多”的关联。学生课程选课学号姓名性别出生年月籍贯……数据对象表•确定属性:为每一个数据对象建立数据对象表,描述其属性,如此可得“教学”数据模型。学生:学号、姓名、性别、出生年月、专业课程:课程号、课程名、学分、学时数等属性;教师:职工号、姓名、年龄、职称等属性。教学数据模型学号姓名专业性别……学生职工号姓名专业职称年龄教师课程号课程名学分学时……课程学号课程号成绩选课1、功能建模:用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。2、数据流图:根据DeMarco的论述,功能模型使用了数据流图来表达系统内数据的运动情况,而数据流的变换则用结构化英语、判定表与判定树来描述。3、数据流图中的主要图形元素数据加工(数据处理、数据变换、转换)数据源点或终点(外部实体)数据流数据存储文件§5.3功能建模和数据流图DFD描述银行取款过程的数据流图5、数据流与数据加工之间的关系•为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统•在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据•底层流图是指其加工不需再做分解的数据流图,它处在最底层•中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。6、数据流图的层次结构分层的数据流图7、结构化分析方法功能建模的步骤商店业务处理系统•这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能•数据流图绘制步骤首先确定系统的输入和输出(系统的边界)根据商店业务,画出顶层数据流图,以反映最主要业务处理流程(封闭)经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商。然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图(从左到右)商店业务处理系统第一层数据流图加细每一个加工框(不封闭)销售细化加细每一个加工框采购细化8、数据流程图的注意点üDFD上所有图形符号只限于前述四种基本元素üDFD主图必须包括前述四种基本元素,缺一不可üDFD的主图上的数据流必须封闭在外部实体之间ü每个加工至少有一个输入数据流和一个输出数据流ü在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系ü规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡ü可以在数据流图中加入物质流,帮助用户理解ü图上每个元素都必须有名字,编号ü数据流图中不可夹带控制流ü初画时可以忽略琐碎细节,以集中精力于主要数据流ü一个处理逻辑,在下一层分解时不宜超过9个处理逻辑ü不要表现分支条件和循环9、基本加工逻辑说明ü对数据流图的每一个基本加工,必须有一个基本加工逻辑说明ü基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则ü加工逻辑说明必须描述实现加工的策略而不是实现加工的细节ü加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的用于写加工逻辑说明的工具ü结构化英语ü判定表ü判定树•结构化英语•结构化英语的词汇表由ü英语命令动词ü数据词典中定义的名字ü有限的自定义词ü逻辑关系词IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成。•是一种介于自然语言和形式化语言之间的语言•语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示•其基本控制结构有三种:ü简单陈述句结构:避免复合语句;ü重复结构:while_do或repeat_until结构。ü判定结构:if_then_else或case_of结构;商店业务处理系统中“检查发货单”if发货单金额超过$500thenif欠款超过了60天then在偿还欠款前不予批准else(欠款未超期)发批准书,发货单else(发货单金额未超过$500)if欠款超过60天then发批准书,发货单及赊欠报告else(欠款未超期)发批准书,发货单•判定表•如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适•以“检查发货单”为例•判定树•判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。检查发货单金额$500金额$500欠款60天不发出批准书欠款60天发货单发出批准书、欠款60天发出批准书、发货单及赊欠报告欠款60天发出批准书、发货单1、行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供这种建模的符号状态迁移图时序图Petri网数据流图扩充(自学)2、状态迁移图:描述系统的状态如何相应外部的信号进行推移的一种图形表示。ü圆圈“○”表示可得到的系统状态ü箭头“→”表示从一种状态向另一种状态的迁移(写上导致迁移的信号或事件的名称)。§5.4行为建模例操作系统根据调度要求设置进程状态。当有多个申请占用CPU运行的进程时,CPU分配的进程的状态迁移可得到的状态=就绪,运行,等待生成的事件=t1,t2,t3,t4t1─中断事件t2─中断已处理t3─分配CPUt4─用完CPU时间•状态迁移图的优点(因为一个系统的状态是有限的)ü状态之间的关系能够直观地捕捉到ü由于状态迁移图的单纯性,能够机械地分析许多情况,可很容易地建立分析工具3、时序图•在系统分析中,用时序图于对比在系统中处理事件的时序和相应的处理时间。在右图中,对于事件e,功能1~功能3的处理时间总计为(T1+T2+T3)其中功能间,切换时间0。•采用扩充时序图可表示进程间的通信流,用于分析几个事件的交错现象。C1与C2,R1与R2是交错的,因此,可以做如下分析:“必须设计成HOST1在等待C1的回答R1期间要能接收从HOST2发出的命令C2。”4、Petri网Petri网已广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。•Petri网简称PNG(PetriNetGraph),它有两种结点:位置(place):符号为“○”,它用来表示系统的状态。转移(transition):符号为“—或|”,它用来表示系统中的事件。符号“”表示事件发生的前提,即对转移(事件)的输入符号“”表示事件的结果,即由转移(事件)的输出图中的有向边“”表示对转移的输入,或由转移的输出•标记:圆圈中的黑点,或称令牌(token),是表明系统当前处于什么状态的标志•图中关系:与,P3和P5两个基本点状态均有处理要求时,T3转移(事件)才能发生•例:环形铁路,A站和B站间是单轨,其他是双轨处理两个进程的同步问题多任务系统中有两个基本点进程PR1和PR2,使用一个公共资源RLOCK:对资源加锁UNLOCK:对资源解锁§5.5数据词典与面向数据流的分析1、数据词典与数据流图配合,能清楚地表达数据处理的要求2、词条描述——对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它等•数据流词条描述ü数据流名:ü说明:简要介绍作用即它产生的原因和结果ü数据流来源:来自何方ü数据流去向:去向何处ü数据流组成:数据结构ü数据量流通量:数据量,流通量•数据元素词条描述ü数据元素名:ü类型:数字(离散值,连续值),文字(编码类型)ü长度:ü取值范围:ü相关的数据元素及数据结构:•数据文件词条描述ü数据文件名:ü简述:存放的是什么数据ü输入数据:ü输出数据:ü数据文件组成:数据结构ü存储方式:顺序,直接,关键码ü存取频率:•加工逻辑词条描述ü加工名:ü加工编号:反映该加工的层次ü简要描述:加工逻辑及功能简述ü输入数据流:ü输出数据流:ü加工逻辑:简述加工程序,加工顺序•源点及汇(终)点词条描述ü名称:外部实体名ü简要描述:什么外部实体ü有关数据流:ü数目:3、可执行规格说明可执行规格说明是用于需求规格说明的一种自动化技术。使用这种方法,人们可以直接观察他们用语言规定的任何系统性行为。包括代数规格说明、有限状态模型、可执行的数据流图•代数规格说明:使用集合、定义于这些集合上的函数和定义于这些函数上的方程来描述对象。例:定义一个无界的栈及其操作NEW_STACK:→StackPUSH:Stack,Element→StackPOP:Stack→(Elem
本文标题:数据流图画法
链接地址:https://www.777doc.com/doc-3981450 .html