您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 第7章 结构化系统设计(2)
1第七章系统设计(2)7.4一体化设计基本方法重点与难点:一体化设计方法的思想,菜单树设计,事务设计,数据库模式设计。27.4一体化设计方法总体设计的基本要求是建立一个较好的系统结构,实现SRS规定的功能。结构化设计方法是实现这一要求的有效手段。这种方法运用结构化思想,把系统分解成层次的模块结构,用以控制大型系统的复杂性。系统的总体设计应包括程序结构设计和数据结构设计两个方面,但传统的结构化设计只考虑程序结构的方面,而进行数据结构方面的设计需要参考其它方法。例如,E-R图,Jackson图、Warnier图等。一体化设计方法对传统的设计化设计方法作了改进,集功能分析、过程设计、数据库设计为一体,充分利用系统需求分析的结果,完成系统功能结构的设计和数据库设计,填补两个开发阶段之间的空隙。37.4一体化设计方法一体化方法的步骤:(1)功能分析(2)菜单树设计(3)事务设计(4)事务的结构化描述(5)数据库模式设计(6)输入/输出设计(7)扩充数据字典参见P145图7.28所示。47.4一体化设计方法7.4.1基本概念(1)初等功能(ElementaryFunction)在DFD中需要再分解为子功能的(处理框)功能称为一般功能(GeneralFunction),不需要再分解的功能称为初等功能。与初等功能相联系的数据流称为初等数据流(ElementaryDataFlow)。(2)菜单树(MenuTree)在一个规模较大的系统中,需要一系列的的屏幕菜单引导用户选择需要系统完成的功能。这些菜单是按层次组织起来的,称为菜单树。从用户的角度看,菜单树就是系统的总体结构。57.4一体化设计方法7.4.1基本概念(3)事务(Transaction)从用户的角度看,事物是IS可以独立完成的一项业务或活动。在DFD中,一项事务包含由数据流链接的一些初等功能、与这些初等功能相联系的数据存储和外部实体。从设计者角度看,IS由一系列事务组成,系统的所有事务构成IS内部的总体结构。因此,IS的总体设计包括菜单树的设计和事务设计。67.4一体化设计方法7.4.2菜单树初步设计菜单树设计的目标,是建立与系统功能相对应的层次菜单。分为两个阶段进行。阶段一,从DFD导出一个初始菜单树;阶段二,在事务设计完成之后,修改和完善菜单树。设计初始菜单树步骤:(1)从顶层DFD开始,自顶向下考查所有的DFD。(2)凡是存在外部实体的DFD,都定义一个对应的菜单屏幕,图中与外部实体相联系的功能对应菜单中的一行。(3)若这个功能是初等功能,则相应的行用“T”标识。为了便于对照检查,菜单中各行标号和标题,暂时对应DFD中功能的标号和标题,在优化、完善菜单树时,在给出恰当的标号和标题。完成上述过程,便得到初始菜单树。参见P146图7.29。显然,菜单树的根对应DFD树的根,子菜单对应满足上述条件的子DFD,菜单树的层次结构对应于DFD的层次结构。77.4一体化设计方法在这个过程中,可能出现某些菜单只有一行的情况,这是一种“蜕化”的菜单,在优化菜单树时再做调整。P147-149图7.30是维修工程系统的一组分层的DFD。该系统从接受客户的维修要求开始,包括提出维修工程的方案,向厂商采购材料,与客户、供应商的结算等功能。图7.31是从图7.30导出的初始菜单。87.4一体化设计方法7.4.3事务设计一项事务由数据流链接的一些初等功能及有关的数据存储、外部实体构成。其中一个初等功能是该事务的触发者,这可以从初始菜单树中找到(标有“T”)。由此出发,沿(或逆)数据流找下一个初等功能,依此下去,直到进入数据存储或外部实体,便找到一项事物的所有成分。但应注意:这个过程有可能由一张DFD跨越到其它DFD上。初始菜单中所有标有“T”的行都完成这种过程后,便得到系统的全部事务。参见图7.32。如果设计者认为一项事务太复杂,则可以在适当的地方通过添加一个数据存贮,将该项事务一分为二。参见图7.32。97.4一体化设计方法从上述例子可以看出:一项事务可能涉及到多个外部实体,从而一项事务可能对应菜单中的多行,这与“菜单”的意义有冲突。参见P149图7.33。这个矛盾可以用两个办法解决:①若该项事务比较复杂,可在适当的地方添加数据存储,使之分解为多个事务。②若该项事务不太复杂,没有必要分解,可将菜单中对应同一事务的多行并为一行,重新标号并加以适当的标题。后一种办法可能会引起菜单的蜕化。事务设计完成之后,要对初始菜单进行必要的整理和完善。第一、消除所有蜕化菜单屏幕,若这一行前面标有“T”,则在其父菜单的相应行前标以“TQ”,表示该行是“准选择行”;第二,适当改变各行的标号、标题,使之意思更加明确。图7.34是修改图7.31的菜单树的结果。107.4一体化设计方法7.4.4事务的结构化描述经过整理后的菜单树,凡是前面标有“T”和“TQ”的每一行都表示一项事务。对这些事务需要用文字描述。对事务的描述要说明该项事务中有关的初等功能、数据存储、外部实体之间的信息传递关系。例如,修订后的菜单树中的一项事务“1.2接收采购回执”可以描述如下:BEGINTRANS“1.2”INPUTFROMUE1(票据和回执)READFROMD5(采购单)EXECFUNC1.2(接收采购回执)MOVEFROMFUNC1.2TOFUNC1.3(采购的材料)EXECFUNC1.3(修改库存);WRITETOD1(采购的材料)MOVEFROMFUNC1.2TOFUNC1.4(票据和回执)EXECFUNC1.4(记供应商帐)WRITETOD2(票据和回执)ENDTRANS“1.2”117.4一体化设计方法7.4.5数据库模式设计数据库模式设计可以分为两个阶段:信息结构分析阶段、将概念模式转换为数据库模式阶段。信息结构分析是建立基于二元关系(BinaryRelationship)模型的概念模式,用信息结构图(InfoStructureDiagram)表示。1、二元关系模型二元关系模型可以看作实体关系(E-R)模型的特例,但比后者简单。二元模型中每个客体都视为实体,它只有两个概念:实体与二元关系。实体之间的关系有1:1,1:n,m:n三种情况。一个m:n的关系,可以通过一个“插入实体”组合出一个1:n的关系,从而避免了可能产生的二义性。初等数据流的元素是实体类型OT(ObjectType)。一个实体类型可以有一个或多个实体类型名OTN(ObjectTypeName),可以通过OTN(类似E-R模型中的属性)来标识或引用该实体。另外,还应该说明实体在这个数据流中的作用(Role),及与其它实体的关系。127.4一体化设计方法作为例子,来看图7.30中DFD-2的数据流:“P2.5→D4”。其包括客户、作业、金额、日期、状态等实体。这个数据流用P151表7.1描述。该数据流包括两个关系:“客户”与“作业”(1:n)、“作业”与“金额”(m:n),后者插入实体“日期”后组合出一个1:n关系。如图7.35所示。图中,圆形表示实体,两个相邻的长方形表示实体间的关系,决定因素(将来的关键字)上方有一短线。137.4一体化设计方法2、信息结构分析与数据存储相关的初等数据流是建立概念模式的基本元素。建立概念模式之前,先要对DFD中与数据存储有关的读/写数据流进行检查,验证数据存储的I/O(W/R)平衡,即一个数据存储的输入元素列表是否与输出元素列表相等。若有不平衡处,则必须改正。P152图7.36是建立数据库模式概念模式的流程图,说明从DFD建立信息结构图(ISD)的过程。整个过程是两层循环。内循环是分析一个数据存储的各个读/写初等数据流,形成该数据存储的DS-ISD。外循环由各个DS-ISD拼成整个信息系统的ISD。P154图7.37是数据流“P2.5→D4”的ISD。圆中的括号内是实体的OTN,有下画线的OTN表示此可作为实体的标识码(主关键字)。在此基础上形成数据存储D4的DS-ISD,如图7.38所示。147.4一体化设计方法3、从信息结构图导出数据库模式下面介绍的算法检查ISD中所有的关系,根据实体间的依赖关系建立记录类型(概念模式,RDBMS中的关系框架)。由此得出的关系没有违反4NF的非函数依赖和多值依赖。算法主要步骤如下:(1)若一个实体决定其它实体(1:n依赖),则定义一个新的记录类型,决定因素成为关键字,而依赖因素成为这个记录类型的非关键码属性。(2)若这个实体决定更多的实体(在其它关系中),则这些实体成为同一记录类型的属性。(3)若一个实体与某一个实体是m:n关系,则定义一个新记录类型(插入对象),两个起决定作用实体成为这个记录类型的关键字。插入实体也可以与其它实体联系。上面(1)、(2)中提及的规则也适合这个关系的依赖类型。157.4一体化设计方法(4)若两个实体是1:1关系,则两个实体之一选作关键字,另一个成为属性。图7.38表示的ISD经此算法得出的关系概念模型如下,图中带横线的属性是关键字。客户:(ID、姓名、欠款额)客户地址:(ID、地址变更日期、地址)作业:(作业编号、客户ID、实际成本、上次催款日期、状态)付款:(作业编号、付款日期、金额)总结:一体化设计方法的思想、步骤,菜单树设计,事务设计,事务的结构化描述,数据库模式设计。
本文标题:第7章 结构化系统设计(2)
链接地址:https://www.777doc.com/doc-4372820 .html