第八讲结构化设计方案课件

上传人:91274****mpsvz 文档编号:243138615 上传时间:2024-09-16 格式:PPT 页数:72 大小:436KB
返回 下载 相关 举报
第八讲结构化设计方案课件_第1页
第1页 / 共72页
第八讲结构化设计方案课件_第2页
第2页 / 共72页
第八讲结构化设计方案课件_第3页
第3页 / 共72页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第八讲,结构化设计方法,基于,DFD,的结构化设计的基本概念,Yourdon,等,Structured Design,目标:使程序结构适应问题结构。结构化设计方法(,SD,),映射关系:,DFD,HIPO or SC,,即从数据流图映射到软件结构图,其中数据流(信息流)的类型决定了映射的方法。,两种类型的信息流(,P95,),变换流,事务流,结构化设计方法,首先研究、分析和审查数据流图。 从软件的需求规格说明中弄清数据流加工的过程,对于发现的问题及时解决。,然后根据数据流图决定问题的类型。数据处理问题典型的类型有两种:,变换型,和,事务型,。针对两种不同的类型分别进行分析处理。,由数据流图推导出系统的初始结构图。,利用一些启发式原则来改进系统的初始结构图,直到得到符合要求的结构图为止。,修改和补充数据词典。,制定测试计划。,在系统结构图中的模块,传入模块, 从下属模块取得数据,经过某些处理,再将其传送给上级模块。它传送的数据流叫做逻辑输入数据流。,传出模块, 从上级模块获得数据,进行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输出数据流。,变换模块, 它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。它加工的数据流叫做变换数据流。,协调模块, 对所有下属模块进行协调和管理的模块。,变换型系统结构图,变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。,相应于取得数据、变换数据、给出数据,变换型系统结构图由输入、中心变换和输出等三部分组成。,变换流结构,三个组成部分: (参见,P95,图,5.8),传入路径,(afferent path),变换中心,(transform center),传出路径,(efferent path),分别对应的三种数据流,传入流,变换流,传出流,事务型系统结构图,它接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。,在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务处理模块执行。各事务处理模块并列。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。,事务流结构,三个组成部分:(参见,P95,图,5.9),至少一条接受路径,(reception path),一个事务中心,T(transaction center),多条动作路径,(action path),事务中心的三个任务,接受输入数据(事务);,分析每个事务以确定它的类型;,选取一条动作路径(活动通路)。,变换分析,变换分析方法由以下四步组成:,重画数据流图;,区分有效(逻辑)输入、有效(逻辑)输出和中心变换部分;,进行一级分解,设计上层模块;,进行二级分解,设计输入、输出和中心变换部分的中、下层模块。,变换分析过程,复审基本系统模型,复审并精化,DFD,确定,DFD,的类型,确定输入流和输出流,从而孤立出变换中心,完成,“,第一级分解,”,完成,“,第二级分解,”,对软件结构进一步精化,B,C,A,D,P,Q,R,W,U,V,E,打印,显示,键盘输入,传感器,确定类型;,确定边界,即确定逻辑输入(离物理输入端最远,但仍然可以被看作系统输入的那些数据流)和逻辑输出(离物理输出端最远,但仍然可以被看作系统输出的那些数据流)。,第一级分解,确定顶层和第一层,M,C,M,A,M,T,M,E,Q,P,R,Get C,Get E,Get B,Read A,B to C,Read D,D to E,A to B,Put U,Write W,U to V,WriteV,从边界沿输出通路向外移动,将每个处理映射成,Me,的子模块;在输入、输出路径上数据的内容和形式也可能发生变化,但应区别于中心加工),第,二,级分解:从边界沿输入通路向外移动,将每个处理映射成,Ma,的子模块;,将变换中心内的处理映射成,Mt,的子模块,在选择模块设计的,次序,时,必须对一个模块的,全部直接下,属模块,都设,计完成之后,,才能转向另,一个模块的,下层模块的,设计。,在设计下层模块时,应考虑模块的,耦合,和,内聚,问题,以提高初始结构图的质量。,使用,“,黑箱,”,技术,:,在设计当前模块时,,先把这个模块的所有下层模块定义成,“,黑箱,”,,在设计中利用它们时,暂时不考虑其内部结构和实现。在这一步定义好的,“,黑箱,”,,在下一步就可以对它们进行设计和加工。这样,又会导致更多的,“,黑箱,”,。最后,全部,“,黑箱,”,的内容和结构应完全被确定。,在模块划分时,一个模块的直接下属模块一般在,5,个,左右。如果直接下属模块超过,10,个,可设立中间层次。,如果出现了以下情况,就停止模块的功能分解:,当模块不能再细分为明显的子任务时;,当分解成用户提供的模块或程序库的子程序时;,当模块的界面是输入输出设备传送的信息时;,当模块不宜再分解得过小时。,实例分析,P96,例一:某企业销售管理系统的功能为:,(,1,)接受顾客的订单,检验订单,若库存有货,进行供货处理,即修改库存,给仓库开备货单,并将订单留底;若库存不足,将缺货订单登入缺货记录。,(,2,)根据缺货记录进行缺货统计,将缺货通知单发给采购部门,以便采购。,(,3,)根据采购部门发来的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货订单进行供货处理。,(,4,)根据留底的订单进行销售统计,打印统计表给销售经理。,分析以上功能要求,画出分层的数据流图,并将其转换成对应的软件结构。,销售管理系统,顾客,采购部门,仓库,经理,缺货通知单,进货通知单,订单,备货单,统计表,进货通知单,销售统计,5,订单记录,统计表,原缺货现可供,货订单,供货处理,2,处理进货单,4,缺货统计,3,订单,可供货单,缺货记录,库存登记,备货单,缺货通知单,处理订单,1,0.,销售管理系统,1,.,处理订单,2,.,供货处理,3,.,缺货统计,4,.,处理进货单,5,.,销售统计,1.1,检验订单,1.2,查阅库存,1.3,确定能否供货,2,.,1,修改库存,2,.,2,开备货单,3,.,1,处理缺货订单,3,.,2,修改缺货记录,4,.,1,打印缺货通知单,5,.,1,按日期统计,5,.,2,按货物统计,5,.,3,按顾客统计,例二:图书馆的预定图书系统有如下功能:,(,1,)由供书部门提供书目给订购组;,(,2,)订购组从各单位取得要订的书目;,(,3,)根据供书目录和订书书目产生订书文档留底;,(,4,)将订书信息(包括数目、数量等)反馈给供书单位;,(,5,)将未订书目通知订书者;,(,6,)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。,试根据要求画出该问题的数据流程图,并把其转换为软件结构图。,订书,系统,0,订书组,供书单位,要订书目,订书结果,订书清单,供应书目,选择,检查,1,整理,归类,2,登陆,3,订书组,要订书目,订书结果,供书单位,订书清单,预定书目,供书单位,供应书目,订单记录,已订书目,归类书目,订单记录,新订书目,0.,订 书 系 统,1,.,生成预定书目,2,.,整理归类,3,.,处理归类书目,4,.,输出订,书清单,1,.,1,取得,供书,目录,1,.,2,取得,要订,书目,1,.,3,取得,已订,书目,1,.,4,选择,检查,3,.,1,归类,登陆,3.2,更新,留底,清单,1,.,4,.,1,输出订,书结果,事务分析,在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能。这种数据流就叫做事务。,与变换分析一样,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统到结构图。,事务分析过程,识别事务源利用数据流图和数据词典,从问题定义和需求分析的结果中,找出各种需要处理的事务。通常,事务来自物理输入装置。有时,设计人员还必须区别系统的输入、中心加工和输出中产生的事务。,规定适当的事务型结构在确定了该数据流图具有事务型特征之后,根据模块划分理论,建立适当的事务型结构。,识别各种事务和它们定义的操作从问题定义和需求分析中找出的事务及其操作所必需的全部信息,对于系统内部产生的事务,必须仔细地定义它们的操作。,注意利用公用模块在事务分析的过程中,如果不同事务的一些中间模块可由具有类似的语法和语义的若干个低层模块组成,则可以把这些低层模块构造成公用模块。,对每一事务,或对联系密切的一组事务,建立一个事务处理模块;如果发现在系统中有类似的事务,可以把它们组成一个事务处理模块。,对事务处理模块规定它们全部的下层操作模块,对操作模块规定它们的全部细节模块,变换分析是软件系统结构设计的主要方法。,一般,一个大型的软件系统是变换型结构和事务型结构的混合结构。所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。,软件模块结构的改进,模块功能的完善化,一个完整的模块应当有以下几部分:,执行规定的功能的部分;,出错处理的部分。当模块不能完成规定的功能时,必须回送出错标志,出现例外情况的原因。,如果需要返回一系列数据给它的调用者,在完成数据加工或结束时, 应当给它的调用者返回一个结束状态标志。,消除重复功能,改善软件结构,完全相似,:在结构上完全相似,可能只是在数据类型上不一致。此时可以采取完全合并的方法。, 局部相似,:找出其相同部分,分离出去,重新定义成一个独立的下一层模块。还可以与它的上级模块合并。,模块的作用范围应在控制范围之内,模块的,控制范围,包括它本身及其所有的从属模块。,模块的,作用范围,是指模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。,如果一个判定的作用范围包含在这个判定所在模块的控制范围之内,则这种结构是简单的,否则,它的结构是不简单的。,尽可能减少高扇出结构,随着深度增大扇入,。,如果一个模块的扇出数过大,就意味着该模块过分复杂,需要协调和控制过多的下属模块。应当适当增加中间层次的控制模块。,避免或减少使用病态联接,应限制使用如下三种病态联接:,直接病态联接,即模块,A,直接从模块,B,内部取出某些数据,或者把某些数据直接送到模块,B,内部。,公共数据域病态联接,模块,A,和模块,B,通过公共数据域,直接传送或接受数据,而不是通过它们的上级模块。这种方式将使得模块间的耦合程度剧增。它不仅影响模块和模块,而且影响与公共数据域有关联的所有模块。,通信模块联接,即模块,A,和模块,B,通过通信模块,TABLEIT,传送数据。从表面看,这不是病态联接,因为模块和模块,B,都未涉及通信模块,TABLEIT,的内部。然而,它们之间的通信(即数据传送)没有通过它们的上级模块。从这个意义上讲,这种联接是病态的。,模块的大小要适中,模块的大小,可以用模块中所含语句的数量的多少来衡量。把模块的大小限制在一定的范围之内。通常规定其语句行数在,50,100,左右,保持在一页纸之内,最多不超过,500,行。,设计功能可预测的模块,但要避免过分受限制的模块,一个功能可预测的模块,不论内部处理细节如何,但对,相同的输入数据,,总能产生,同样的结果,。但是,如果模块内部蕴藏有一些特殊的鲜为人知的功能时,这个模块就可能是不可预测的。对于这种模块,如果调用者不小心使用,其结果将不可预测。,如果一个模块的局部数据结构的大小、控制流的选择或者与外界,(,人、硬软件,),的接口模式被限制死了,则很难适应用户新的要求或环境的变更。,为了能够适应将来的变更,软件模块中局部数据结构的大小应当是可控制的,控制流的选择对于调用者来说,应当是可预测的。而与外界的接口应当是灵活的。,软件包应满足设计约束和可移植性,为了使得软件包可以在某些特定的环境下能够安装和运行,对软件包提出了一些设计约束和可移植的要求。例如,设计约束有时要求一个程序段在存储器中覆盖自身。当这种情况出现时,设计出来的软件程序结构不得不根据重复程度、访问频率、调用间隔等等特性,重新加以组织。,设计的后处理,为每一个模块写一份处理说明,为每一个模块提供一份接口说明,确定全局数据结构和局部数据结构,指出所有的设计约束和限制,进行概要设计的评审,进行设计的优化,(,如果需要和可能的话,),数据设计及文件设计,数据设计的原则,文件设计,数据设计的原则,R.S.Pressman,数据设计的过程,为在需求分析阶段所确定的数据对象选择逻辑表示,需要对不同结构进行算法分析,以便选择一个最有效的结构;设计对于这种逻辑数据结构的一组操作,以实现各种所期望的运算。,确定对逻辑数据结构所必需的那些操作的程序模块,(,软件包,),,以便限制或确定各个数据设计决策的影响范围。,Pressman,提出了一组原则,用来定义和设计数据。实际上,在进行需求分析时往往就开始了数据设计。,1.,用于软件的系统化方法也适用于数据,。,在导出、评审和定义软件的需求和软件系统结构时,必须定义和评审其中所用到的数据流、数据对象及数据结构的表示。应当考虑几种不同的数据组织方案,还应当分析数据设计给软件设计带来的影响。,2.,确定所有的数据结构和在每种数据结构上施加的操作,。,设计有效的数据结构,必须考虑到要对该数据结构进行的各种操作。,3.,应当建立一个数据词典并用它来定义数据和软件的设计,。,数据词典清楚地说明了各个数据之间的关系和对数据结构内各个数据元素的约束。,4.,低层数据设计的决策应推迟到设计过程的后期进行,。,在进行需求分析时确定的总体数据组织,应在概要设计阶段加以细化,在详细设计阶段才规定具体的细节。,5.,数据结构的表示只限于那些必须直接使用该数据结构内数据的模块才能知道,。,此原则就是信息隐蔽和与此相关的耦合性原则。,6.,应当建立一个存放有效数据结构及相关操作的库,。,数据结构应当设计成为可复用的。建立一个存有各种可复用的数据结构模型的部件库。,7.,软件设计和程序设计语言应当支持抽象数据类型的定义和实现,。,以上原则适用于软件工程的定义阶段和开发阶段。,“,清晰的信息定义是软件开发成功的关键,”,。,文件设计,文件设计的过程,主要分两个阶段。第一个阶段是文件的逻辑设计,主要在概要设计阶段实施。,(1),整理必须的数据元素,:,在软件设计中所使用的数据,有长期的,有短期的,还有临时的。它们都可以存放在文件中,在需要时对它们进行访问。因此首先必须整理应存储的数据元素,给它们一个易于理解的名字,指明其类型和位数,以及其内容涵义。,(2),分析数据间的关系,:,分析在业务处理中哪些数据元素是同时使用的。把同时使用次数多的数据元素归纳成一个文件进行管理。分析数据元素的内容,研究数据元素与数据元素之间的逻辑关系,根据分析,弄清数据元素的含义及其属性。,(3),确定文件的逻辑设计,:,根据数据关联性分析,明确哪些数据元素应当归于一组进行管理,把应当归于一组的数据元素进行统一布局,产生文件的逻辑设计。应用关系模型设计文件的逻辑结构时,必须使其达到第三范式,(3NF),,以减少数据的冗余,提高存取的效率。,顾客文件 商品文件,X :,英文字母数字,; K :,汉字,; N :,数字,第二个阶段是文件的物理设计,主要在软件的详细设计阶段实施,(4),理解文件的特性,:,对于文件的逻辑规格说明,研究从业务处理的观点来看所要求的一些特性,包括文件的使用率、追加率和删除率,以及保护和保密等。考虑需要采用什么文件组织形式。,(5),确定文件的组织方式,;,一般要根据文件的特性,来确定文件的组织方式。,顺序文件,:,连续文件,串联文件。,直接存取文件,:,无关键字直接存取文件,带关键字直接存取文件,桶式直接存取文件。,索引顺序文件,:,其基本数据记录按顺序文件组织,记录排列顺序必须按关键字值升序或降序安排,且具有索引部分,也按同一关键字进行索引。,分区文件,:,这类文件主要用于存放程序。它由若干称为成员的顺序组织的记录组和索引组成。,虚拟存储文件,:,这是基于操作系统的请求页式存储管理功能而建立的索引顺序文件。,倒排文件,:,按候选属性建立索引表。,(6),确定文件的存储介质,;,(7),确定文件的记录格式,;,确定文件记录中各数据项以及它们在记录中的物理安排。,记录的长度,:设计记录的长度要确保能满足需要,还要考虑使用设备的制约和效率,尽可能与读写单位匹配,并尽可能减少处理过程中内外存的交换次数。,数据项的顺序:,对于可变长记录,应在记录的开头记入长度信息;对于关键字项,应尽量按级别高低,顺序配置;联系较密切的数据项,应归纳在一起进行配置。,数据项的属性:,属性相同的数据项,应尽量归纳在一起配置;数据项应按双字长,全字长,半字长和字节的属性,顺序配置。,预留空间:,考虑到将来可能的变更或扩充,应当预先留一些空闲空间。不必统一地预留,可在有可能变更或扩充的项旁边,在相邻接处预留。,(8),估算存取时间和存储容量,。,人有了知识,就会具备各种分析能力,,明辨是非的能力。,所以我们要勤恳读书,广泛阅读,,古人说“书中自有黄金屋。,”通过阅读科技书籍,我们能丰富知识,,培养逻辑思维能力;,通过阅读文学作品,我们能提高文学鉴赏水平,,培养文学情趣;,通过阅读报刊,我们能增长见识,扩大自己的知识面。,有许多书籍还能培养我们的道德情操,,给我们巨大的精神力量,,鼓舞我们前进,。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!