软件工程结构化系统设计.ppt

上传人:李司机 文档编号:4096132 上传时间:2023-04-04 格式:PPT 页数:67 大小:836.50KB
返回 下载 相关 举报
软件工程结构化系统设计.ppt_第1页
第1页 / 共67页
软件工程结构化系统设计.ppt_第2页
第2页 / 共67页
软件工程结构化系统设计.ppt_第3页
第3页 / 共67页
软件工程结构化系统设计.ppt_第4页
第4页 / 共67页
软件工程结构化系统设计.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《软件工程结构化系统设计.ppt》由会员分享,可在线阅读,更多相关《软件工程结构化系统设计.ppt(67页珍藏版)》请在三一办公上搜索。

1、第五章 结构化系统设计,首先研究、分析和审查数据流图。从软件的需求规格说明中弄清数据流加工的过程,对于发现的问题及时解决。然后根据数据流图决定问题的类型。数据处理问题典型的类型有两种:变换型和事务型。针对两种不同的类型分别进行分析处理。,由数据流图推导出系统的初始结构图。利用一些启发式原则来改进系统的初始结构图,直到得到符合要求的结构图为止。修改和补充数据词典。制定测试计划。,目的:DFDSC,1复审DFD图,必要时可再次进行修改或细化2鉴别DFD图所表示的软件系统的结构特征,确定它所代表的软件结构是属于变换型还是事务型3按照SD方法规定的一组规则,把DFD图映射为初始的SC图4按照设计改进原

2、则优化和改进初始的SC图,获得最终SC图。,SD步骤,系统结构特征:变换型事务型,变换型结构模型,系统由三个部份组成:传人路径,变换中心,传出路径。流经这三个部分的数据流,分别称为传人流、变换流和传出流。,变换型结构模型,变换型系统结构图,变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。相应于取得数据、变换数据、给出数据,变换型系统结构图由输入、中心变换和输出等三部分组成。,事务型结构模型,由至少一条接受路径,个事务中心与若干条动作路径组成。当外部信息沿着接受路径进入系统后,经过事务机处理获得某个特定值,就能据此启动某条动作路径的操作。,事务型结构模型,事务型变换型,

3、建立初始结构图,SC图符号,SC图:显示软件的组成模块及调用关系,传入模块 从下属模块取得数据,经过某些处理,再将其传送给上级模块。它传送的数据流叫做逻辑输入数据流。传出模块 从上级模块获得数据,进行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输出数据流。,变换模块 它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。它加工的数据流叫做变换数据流。协调(控制)模块 对所有下属模块进行协调和管理的模块。,简单调用,选择调用与循环调用,变换分析,变换分析,变换型DFD,初始SC图,事务分析,变换分析,事务型DFD,初始SC图,变换分析例,1.区分传入,传出,娈换中心,

4、变换分析例,2.第一级分解,SC图:项层:控制第一层:传入,传出,中心变换,传入,传出,变换,2.第一级分解,变换分析例,3.第二级分解,变换分析例,3.第二级分解,变换分析例,3.第二级分解,c,e,u,w,初始的SC图,c,e,作业,P76 1,4,变换分析方法由以下四步组成:重画数据流图;区分有效(逻辑)输入、有效(逻辑)输出和中心变换部分;进行一级分解,设计上层模块;进行二级分解,设计输入、输出和中心变换部分的中、下层模块。,变换分析小结,在选择模块设计的次序时,必须对一个模块的全部直接下属模块都设计完成之后,才能转向另一个模块的下层模块的设计。,在设计下层模块时,应考虑模块的耦合和内

5、聚问题,以提高初始结构图的质量。使用“黑箱”技术:在设计当前模块时,先把这个模块的所有下层模块定义成“黑箱”,在设计中利用它们时,暂时不考虑其内部结构和实现。在这一步定义好的“黑箱”,在下一步就可以对它们进行设计和加工。这样,又会导致更多的“黑箱”。最后,全部“黑箱”的内容和结构应完全被确定。,在模块划分时,一个模块的直接下属模块一般在5个左右。如果直接下属模块超过10个,可设立中间层次。如果出现了以下情况,就停止模块的功能分解:当模块不能再细分为明显的子任务时;当分解成用户提供的模块或程序库的子程序时;当模块的界面是输入输出设备传送的信息时;当模块不宜再分解得过小时。,事务型系统结构图,它接

6、受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务处理模块执行。各事务处理模块并列。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。,事务分析,在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能。这种数据流就叫做事务。与变换分析一样,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统到结构图。,事务分析过程,识别事务源利用数据流图和数据词典,从问题定义和需求分析的结果中,找出各种需要处理的事务。通常,事务来自物理

7、输入装置。有时,设计人员还必须区别系统的输入、中心加工和输出中产生的事务。,规定适当的事务型结构在确定了该数据流图具有事务型特征之后,根据模块划分理论,建立适当的事务型结构。识别各种事务和它们定义的操作从问题定义和需求分析中找出的事务及其操作所必需的全部信息,对于系统内部产生的事务,必须仔细地定义它们的操作。,注意利用公用模块在事务分析的过程中,如果不同事务的一些中间模块可由具有类似的语法和语义的若干个低层模块组成,则可以把这些低层模块构造成公用模块。对每一事务,或对联系密切的一组事务,建立一个事务处理模块;如果发现在系统中有类似的事务,可以把它们组成一个事务处理模块。,对事务处理模块规定它们

8、全部的下层操作模块 对操作模块规定它们的全部细节模块变换分析是软件系统结构设计的主要方法。一般,一个大型的软件系统是变换型结构和事务型结构的混合结构。所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。,P60,软件模块结构的改进,模块功能的完善化一个完整的模块应当有以下几部分:执行规定的功能的部分;出错处理的部分。当模块不能完成规定的功能时,必须回送出错标志,出现例外情况的原因。如果需要返回一系列数据给它的调用者,在完成数据加工或结束时,应当给它的调用者返回一个结束状态标志。,模块的大小,程序语句:10-100条 模块的独立性,是划分模块的最高准则,扇入和扇出,扇入:模块的

9、上级模块数扇出:模块调用下属模块的数目设计目标:高扇入,非高扇出,尽可能减少高扇出结构,随着深度增大扇入。如果一个模块的扇出数过大,就意味着该模块过分复杂,需要协调和控制过多的下属模块。应当适当增加中间层次的控制模块。,例:高扇出模块结构改进,续,续,续,完全相似:在结构上完全相似,可能只是在数据类型上不一致。此时可以采取完全合并的方法。局部相似:找出其相同部分,分离出去,重新定义成一个独立的下一层模块。还可以与它的上级模块合并。,重复结构,模块的控制范围包括它本身及其所有的从属模块。模块的作用范围是指模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。,模块的作用

10、范围应在控制范围之内,作用范围/控制范围原则:一个判定的作用范围包含在这个判定所在模块的控制范围之内,避免或减少使用病态联接应限制使用如下三种病态联接:直接病态联接 即模块A直接从模块B内部取出某些数据,或者把某些数据直接送到模块B内部。,公共数据域病态联接 模块A和模块B通过公共数据域,直接传送或接受数据,而不是通过它们的上级模块。这种方式将使得模块间的耦合程度剧增。它不仅影响模块和模块,而且影响与公共数据域有关联的所有模块。,通信模块联接 即模块A和模块B通过通信模块TABLEIT传送数据。从表面看,这不是病态联接,因为模块和模块B都未涉及通信模块TABLEIT 的内部。然而,它们之间的通

11、信(即数据传送)没有通过它们的上级模块。从这个意义上讲,这种联接是病态的。,模块的大小要适中模块的大小,可以用模块中所含语句的数量的多少来衡量。把模块的大小限制在一定的范围之内。通常规定其语句行数在50100左右,保持在一页纸之内,最多不超过500行。,设计功能可预测的模块,但要避免过分受限制的模块 一个功能可预测的模块,不论内部处理细节如何,但对相同的输入数据,总能产生同样的结果。但是,如果模块内部蕴藏有一些特殊的鲜为人知的功能时,这个模块就可能是不可预测的。对于这种模块,如果调用者不小心使用,其结果将不可预测。,如果一个模块的局部数据结构的大小、控制流的选择或者与外界(人、硬软件)的接口模式被限制死了,则很难适应用户新的要求或环境的变更。为了能够适应将来的变更,软件模块中局部数据结构的大小应当是可控制的,控制流的选择对于调用者来说,应当是可预测的。而与外界的接口应当是灵活的。,软件包应满足设计约束和可移植性为了使得软件包可以在某些特定的环境下能够安装和运行,对软件包提出了一些设计约束和可移植的要求。例如,设计约束有时要求一个程序段在存储器中覆盖自身。当这种情况出现时,设计出来的软件程序结构不得不根据重复程度、访问频率、调用间隔等等特性,重新加以组织。,例,例,例,例,例,例,例,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号