结构化软件设计精选PPT.ppt
《结构化软件设计精选PPT.ppt》由会员分享,可在线阅读,更多相关《结构化软件设计精选PPT.ppt(98页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、结构化软件设计 2009 BUPT TSEG第1页,此课件共98页哦2 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心本章内容本章内容u7.1 系统功能结构图u7.2 变换映射u7.3 事务映射u7.4 变换-事务混合型的系统结构图u7.5 改进系统功能结构图的启发式原则u7.6 数据设计和文档设计的原则u7.7 设计的后处理u7.8 详细设计u7.9 界面设计u7.10 HIPO设计工具u7.11 Jackson系统开发方法简介第2页,此课件共98页哦3 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心引言引言
2、u结构化设计方法依据需求分析的结果“数据流图”推导出软件的系统功能结构图。其要点是:建立数据流的类型。指明数据流的边界。将数据流图映射到程序结构。用“因子化”方法定义控制的层次结构。用设计测量和一些启发式规则对结构进行细化。第3页,此课件共98页哦4 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.1 系统功能结构图系统功能结构图u7.1.1 系统结构图中的模块u7.1.2 变换型数据流与变换型系统结构u7.1.3 事务型数据流与事务型系统结构图第4页,此课件共98页哦5 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软
3、件工程中心7.1.1 系统结构图中的模块系统结构图中的模块u一般有四种基本类型的模块:传入模块传入模块:从下属模块取得数据,经过某些处理,再将其传送给上级模块。传出模块传出模块:从上级模块获得数据,进行某些处理,再将其传送给下属模块。变换模块变换模块:即加工模块。它从上级模块取得数据,进行处理,转换成其它形式,再传送回上级模块。协调模块协调模块:对所有下属模块进行协调和管理的模块。第5页,此课件共98页哦6 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.1.1 系统结构图中的模块系统结构图中的模块u在系统结构图中不能再分解的底层模块为原子模块。u因
4、子分解系统:所有系统的加工处理都由原子模块完成;其它非原子模块仅仅进行控制和协调的功能。u系统结构图是完全因子分解的系统是最好的系统。u通常,系统功能结构图根据数据流图中加工特性分为以下两种结构:变换处理型事务处理型第6页,此课件共98页哦7 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.1.2变换型数据流与变换型系变换型数据流与变换型系统结构统结构u变换型数据处理问题的工作过程大致分为三步,取得数据变换数据给出数据 第7页,此课件共98页哦8 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.1.3事务型
5、数据流与事务型事务型数据流与事务型系统结构图系统结构图u事务型数据处理问题的工作机理是接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。u可以引发一个或多个处理作业数据流,就叫做事务。事务是最小的工作单元,不论成功与否都作为一个整体进行工作。u事务型系统结构图中由以下模块:事务处理中心:负责任务的分派;事务处理加工:完成具体的处理;第8页,此课件共98页哦9 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心事务的特点事务的特点u原子性:标识事务是否完全地完成。如果事务完成,则组成事务的所有任务都完成,一旦有一个任务失败,事
6、务就失败,系统反回事务开始前的状态。u一致性:保证系统的任何事务最后都处于有效状态。u隔离性:在隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。u持久性:持久性意味着一旦事务执行成功,在系统中产生的所有变化将是永久的。第9页,此课件共98页哦10 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心事务型系统结构图事务型系统结构图 事务中心模块按所接受的事务的类型,选择某一个事务处理模块执行。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。不同的事务处理模块可以共享一些操作模块。不同的操作模块又可以共享一些细节模块
7、。第10页,此课件共98页哦11 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.2 变换映射变换映射u变换映射是一组设计步骤,将具有变换流特征的数据流图映射为一个预定义的程序结构模版。u运用变换映射方法建立初始的系统结构图,然后进行多次改进,得到系统的最终结构图。(1)复审并评估分析模型;(2)复审并重画数据流图;(3)确定数据流图中的变换和事务特征;(4)区分输入流、输出流和中心变换部分,即标明数据流的边界;(5)进行一级“因子化”分解,设计顶层和第一层模块;(6)进行二级“因子化”分解,设计中、下层模块;(7)利用一些启发式原则来改进系统的初始
8、结构图,直到得到符合要求的结构图为止。第11页,此课件共98页哦12 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心重画数据流图重画数据流图u其出发点是描述系统中的数据是如何流动的。u可以从顶层加工框开始,逐层向下检查各变换型加工是否具有高内聚的特性(即加工具有执行单一、独立的功能)以及每个加工是否具有足够多的细节信息,不需要再进一步细化。u并根据需要将局部层次的数据流图合并为一层,便于理解和设计;第12页,此课件共98页哦13 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心确定数据流边界确定数据流边界u中心变
9、换:多股数据流汇集的地方往往是系统的中心变换部分。u逻辑输入:可以从数据流图上的物理输入开始,一步一步向系统中间移动,一直到数据流不再被看作是系统的输入为止,则其前一个数据流就是系统的逻辑输入。可以认为逻辑输入就是离物理输入端最远的,且仍被看作是系统输入的数据流。u逻辑输出:从物理输出端开始,一步一步地向系统中间移动,就可以找到离物理输出端最远,且仍被看作是系统输出的数据流。第13页,此课件共98页哦14 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心一级因子化分解一级因子化分解u其主要任务就是设计顶层和第一层模块。顶层模块:主要起到控制和协调的作用;
10、用程序名字命名,将它画在与中心变换相对应的位置上;它调用下层模块,完成系统所要做的各项工作。中层模块(第一层):既完成一部分控制,又完成适当的变换工作;为每一个逻辑输入设计一个输入模块,为主模块提供数据;为每一个逻辑输出设计一个输出模块,它将主模块提供的数据输出;为中心变换设计一个变换模块,它将逻辑输入转换成逻辑输出;第一层模块与主模块之间传送的数据应与数据流图相对应。第14页,此课件共98页哦15 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心二级因子化分解二级因子化分解u其主要任务是设计中下层模块将数据流图中的每一个变换型加工映射为程序结构中的模块
11、输入模块输出模块变换模块从变换中心的边界开始,沿输入路径和输出路径向外,将变换依次映射到低层的软件结构中去。最终给出初步的系统功能结构图第15页,此课件共98页哦16 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心输入输入/输出输出/中心变换模块中心变换模块u输入模块:要向调用它的上级模块提供数据,由以下模块组成:接收数据模块;变换模块:把这些数据变换成它的上级模块所需的数据。u输出模块:从调用它的上级模块接收数据,用以输出,由以下模块组成:将上级模块提供的数据变换成输出的形式;将它们输出。u中心变换模块的下层模块没有通用的设计方法,一般应参照数据流图
12、的中心变换部分和功能分解的原则来考虑如何对中心变换模块进行分解。第16页,此课件共98页哦17 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的处理说明模块的处理说明u模块输入和输出的信息,即接口描述。u模块需要处理的信息,局部数据结构中存储的数据。u过程描述,指明该功能模块主要的逻辑规则和任务。u功能模块的有关限制条件和特殊性的要求I/O、与硬件相关的特征、时间要求等第17页,此课件共98页哦18 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心数据流图推导出的数据流图推导出的系统初始结构图系统初始结构图
13、第18页,此课件共98页哦19 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.3 事务映射事务映射u事务映射也从分析数据流图开始,自顶向下,逐步分解,建立事务型系统结构图。1.复审系统分析模型复审系统分析模型2.重画数据流图重画数据流图3.确定是否具有事务流特征确定是否具有事务流特征4.确定事务中心及流特征确定事务中心及流特征5.进行事务映射进行事务映射6.因子化分解和细化因子化分解和细化7.优化系统结构优化系统结构第19页,此课件共98页哦20 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心识别事务中心识
14、别事务中心u事务中心通常位于几条操作路径的起始点上,可以从数据流图上直接找出来。事务源:一个带有请求性质的数据流;事务中心:处理事务源的加工,且后继的多个加工必须是并列的在事务中心的控制下完成不同功能处理。第20页,此课件共98页哦21 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心事务映射事务映射u事务流应映射到包含一个输入分支和一个分类事务处理分支的程序结构上。输入分支结构的开发与变换流的方法类似 分类事务处理分支结构包含一个调度模块,它调度和控制下属的事务处理模块。建立一个主模块用以代表整个加工,P层然后考虑被称为事务层的第二层模块,T层第二层模
15、块只能是三类:取得事务、处理事务和给出结果。处理事务模块的下层为操作模块,A层操作模块之下为细节模块,D层第21页,此课件共98页哦22 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心事务型系统结构图事务型系统结构图第22页,此课件共98页哦23 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.4 变换变换-事务混合型的系统结构图事务混合型的系统结构图u一般来讲,一个大型的软件系统不可能是单一的数据变换型,也不可能是单一的事务型,通常是变换型结构和事务型结构的混合体。u在具体的应用中一般以变换型为主,事务型为
16、辅的方式进行软件结构设计。第23页,此课件共98页哦24 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.4 变换变换-事务混合型的系统结构图事务混合型的系统结构图第24页,此课件共98页哦25 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心课堂作业课堂作业u在医院就诊系统中,挂号子系统的数据流图如下图所示:u请画出该子系统的系统结构图。分析挂号请求挂号请求科室信息查询科室排队信息确定挂号科室医生确定挂号费用科室排队信息挂号的科室医生信息查询病例信息病例号打印挂号信息收挂号费用收挂号费用挂号的科室医生信息病例
17、信息挂号费用缴费请求收费成功挂号费用挂号凭据收费失败输出挂号失败信息失败信息第25页,此课件共98页哦26 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5 改进系统功能结构图的启发改进系统功能结构图的启发式原则式原则u7.5.1 模块功能的完善化 u7.5.2消除重复功能,改善软件结构 u7.5.3模块的作用范围应在控制范围之内u7.5.4尽可能减少高扇出结构 u7.5.5避免或减少使用病态联接 u7.5.6模块的大小要适中 u7.5.7设计功能可预测的模块,避免过分受限制的模块 u7.5.8软件包应满足设计约束和可移植性 第26页,此课件共98
18、页哦27 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.1 模块功能的完善化模块功能的完善化u一个完整的功能模块,不仅应能完成指定的功能,而且还应当能够告诉使用者完成任务的状态,以及不能完成的原因。规定的功能部分。出错处理部分。当模块不能完成规定的功能时,必须返回出错信息和标志,向它的调用者报告出现这种例外情况的原因。给调用者返回一个该模块执行是否正确结束的“标志”。第27页,此课件共98页哦28 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.2消除重复功能,改善软件结构消除重复功能,改善软件结
19、构u在得到初始的功能结构图之后,如果发现有几个模块有相似之处,可加以改进。完全相似:在结构上完全相似,可能只是在数据类型上不一致。局部相似:需要考虑功能之间的耦合及内聚性 第28页,此课件共98页哦29 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.3模块的作用范围应在控制范模块的作用范围应在控制范围之内围之内u模块的控制范围包括它本身及其所有的从属模块;u模块的作用范围是指模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。u如果一个判定的作用范围包含在这个判定所在模块的控制范围之内,则这种结构是简单的,否则,它的
20、结构是复杂的。模块模块A的控制范围为:的控制范围为:ABCDEFG。模块模块C的控制范围为:的控制范围为:CFG。第29页,此课件共98页哦30 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的作用范围与控制范围模块的作用范围与控制范围第30页,此课件共98页哦31 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的作用范围与控制范围模块的作用范围与控制范围u在一个设计得很好的系统模块结构图中,所有受一个判定影响的模块应该都从属于该判定所在的模块,最好局限于做出判定的那个模块及其直接下属模块。u在设计过程
21、中,当遇到作用范围不在控制范围之内,可应用如下办法把作用范围移到控制范围之内:将判定所在模块合并到父模块中,使判定处于较高的层次;将受到判定影响的模块下移到控制范围内;将判定上移到层次中较高的位置 第31页,此课件共98页哦32 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.4尽可能减少高扇出结构尽可能减少高扇出结构u模块的扇出指模块调用子模块的个数。u模块的扇出过大,将使得系统的模块结构图的宽度变大,宽度越大结构图越复杂。比较适当的模块扇出数目为25,最多不要超过9。u模块的扇出过小也不好,这样将使得系统的功能结构图的深度大大增加,不但增加了
22、模块接口的复杂度,而且增加了调用和返回的时间开销,降低系统的工作效率。第32页,此课件共98页哦33 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心扇入扇出结构的调整扇入扇出结构的调整u如果模块的扇出过大,就表明模块过分复杂,需要协调和控制过多的下属模块。u一个模块的扇入数目很大,说明共享该模块的上级模块数目增多。但如果一个模块的扇入太大,比如超过7或8,而且它又不是公用模块,说明该模块可能具有多个功能。为此应当对其进一步分析并将其功能分解。第33页,此课件共98页哦34 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件
23、工程中心7.5.5 避免或减少使用病态联接避免或减少使用病态联接 u应限制使用如下三种病态联接:直接病态联接:即模块A直接从模块B内部取出某些数据,或者把某些数据直接送到模块B内部 公共数据域病态联接:模块A和模块B通过公共数据域直接传送或接受数据,而不是通过它们的上级模块。通信模块联接:即模块A和模块B通过通信模块TABLEIT传送数据。通信未经过上级模块。第34页,此课件共98页哦35 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.6 模块的大小要适中模块的大小要适中u模块的大小是指模块内部结构的多少。u限制模块的大小是减少复杂性的手段之一
24、,因而要求把模块的大小限制在一定的范围之内。通常规定其语句行数在50100左右,最多不超过500行。体积过大的模块往往是由于分解不充分,且具有多个功能,因此需要对功能进一步分解,生成一些下级模块或同层模块。反之,模块体积较小时也可以考虑是否可能与调用它的上级模块合并。第35页,此课件共98页哦36 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心7.5.7 设计功能可预测的模块设计功能可预测的模块 u一个功能可预测的模块不论内部处理细节如何,但对相同的输入数据,总能产生同样的结果。u如果模块内部有一些特殊的鲜为人知的功能时,这个模块就可能是不可预测的。第
25、36页,此课件共98页哦37 2009 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心避免过分受限制的模块避免过分受限制的模块 u一个仅处理单一功能的模块,由于具有高度的内聚性,而受到了设计人员的重视。u如果限制死了模块的局部数据结构的大小、控制流的选择或者接口模式,则很难适应用户新的要求或环境的变更,给将来的软件维护造成了很大的困难。u为了能够适应将来的变更,软件模块中局部数据结构的大小应当是可控制的,调用者可以通过模块接口上的参数表或一些预定义外部参数来规定或改变局部数据结构的大小。第37页,此课件共98页哦38 2009 BUPT TSEG 北京邮电大学北
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 软件设计 精选 PPT
限制150内