软件工程-第5章--总体设计2课件_第1页
软件工程-第5章--总体设计2课件_第2页
软件工程-第5章--总体设计2课件_第3页
软件工程-第5章--总体设计2课件_第4页
软件工程-第5章--总体设计2课件_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、结构化设计方法(SD- Structured Design,结构化设计就是采用最佳的可能方法设计系统各组成 部分以及各成分之间的相互联系的技术,也可以说,结构 化设计是这样一个过程,它决定用哪些方法把哪些部分联 系起来,才能解决好某个具有清楚定义的问题. 结构化设计方法是基于模块化、自顶向下细化、结构 化程序设计等程序设计技术基础发展起来的。 它所提供的方法和原则,主要是用来指导软件的概要 设计。它还提供了一种 “结构图” 的描述工具,是专门用 来描述软件的总体结构的,软件工程-第5章-总体设计2,软件工程-第5章-总体设计2,结构化设计属于面向数据流 的设计方法。 在软件的需求分析阶段,数据

2、流是软件开发人员考虑问题的出 发点和基础。数据流从系统的输入端向输出端,则要经历一系列的 变换或处理。用来表现这个过程的数据流(DFD),实际上就是软件 系统的逻辑模型。 面向数据流的设计要解决的任务,就是在上述需求分析的基础 上,将DFD图 映射(Mapping)- 软件系统的结构。 换句话说,这类设计方法,允许把用 DFD图表示的系统逻辑模 型,很方便地转换成对于软件结构的初始设计描述。 结构化设计方法中,软件的结构一律用 SC 图来描述,软件工程-第5章-总体设计2,目标系统的DFD,SC 图 - Structured Chart,该图常用来表示系统的软件结构。利用它可以清楚地表达软件结

3、构中模块间的层次调用关系和模块之间的联系,SD,目标系统的SC,软件工程-第5章-总体设计2,1、在系统结构图中的模块,一、典型的系统结构形式,原子模块: 在系统结构图中通常是指不能再分割的 底层模块,完全因子分解系统,如果一个软件系统,它的全部实际加工 (即数据计算或处理)都是由底层的原子模块来 完成,而其它所有非原子模块仅仅执行控制或 协调功能,软件工程-第5章-总体设计2,从下属模块取得数据,进行某些处理,再将其结果 传给上级模块。在此,将它传送的数据流称为逻辑输入 数据流,在系统结构图中有四种类型的模块,逻辑输 入数据流,软件工程-第5章-总体设计2,从上级模块获得数据,进行某些处理,

4、再将其结果 传给下属模块。在此,将它传送的数据流称为逻辑输出 数据流,逻辑输 出数据流,软件工程-第5章-总体设计2,也叫加工模块。它是从上级模块获得数据,进行 特定的处理,将其转换为其他形式,再传回上级模块 它所加工的数据流叫做变换数据流,C,B,变换 数据流,软件工程-第5章-总体设计2,对所有下属模块进行协调和管理的模块。在一个 好的系统结构图中,协调模块应在较高层出现,Y,X,Y,X,软件工程-第5章-总体设计2,1变换流 根据基本系统模型,信息通常以“外部世界”的形式进入软件系统,经过处理后再以“外部世界”的形式离开系统。信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统

5、的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特征时,这种信息流就叫做变换流,5.5.1 基本概念,目标:是给出设计软件结构的一个系统化的途径,5.5 面向数据流的设计方法,软件工程-第5章-总体设计2,1、变换型数据流图,软件工程-第5章-总体设计2,2事务流 当数据流图“以事务为中心”,也就是说,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类系统的特征,是具有在多种事务中选择执行某种事务的能力。事务型结构由至少一条接受路径、一个事务中心和若干条动作路径组成。这类数据流应该划为一类特殊的数据流,称为

6、事务流,软件工程-第5章-总体设计2,2、事务型数据流图,软件工程-第5章-总体设计2,3.变换型系统结构图,变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。 相应于取得数据、变换数据、给出数据,变换型系统结构图由输入、中心变换和输出等三部分组成,i,a,e,变换 数据,传入部分,变换中心,传出部分,具有变换型数据流图,软件工程-第5章-总体设计2,主模块,C变换成D,取得C,给出D,取得B,B变换成C,D变换成E,给出E,取得A,A变换成B,A,A,B,B,B,C,C,D,C,D,E,D,协调模块,变换模块,传出模块,具有变换型系统结构图,传入模块,软件工程-第5章

7、-总体设计2,事务,4.事务型系统结构图,由它接受一项事务,根据事务处理的特点和性质 选择分配一个适当的处理单元,然后给出结果,软件工程-第5章-总体设计2,输入,事务型 数据流图,1,A,B,C,3,D,E,F,G,H,2,4,5,6,7,中心变换,输出,上图所示的是最典型的事务型的DFD图,当外部信息沿接受路径进入系统后,经过事务中心的识别和分析获得某一特定值,就可以根据这个特定的值来启动与该特定值相应的动作路径。这类结构的特征,是具有能在多种事务中选择执行某一事务的能力。像在现代软件中常见的菜单选择,就是事务型结构的一个典型的实例,软件工程-第5章-总体设计2,输入,事务型 数据流图,1

8、,A,B,C,3,D,E,F,G,H,2,4,5,6,7,中心变换,输出,逻辑 输入,物理 输入,逻辑 输出,物理 输出,中心变换部分是系统的中心加工部分。从输入设备获得的物理输入一般要经过编辑、数制转换、格式变换以及合法性检查等一系列的预处理操作,最后才变成逻辑输入传送给事务中心。同样,从事务中心中又产生的是逻辑输出,它要经过格式转换、组成物理块等一系列处理后,才成为物理输出。所谓逻辑输入,是指离物理输入端最远,但仍可以被看作系统的输入的那些数据流。逻辑输出则是离系统的物理输出端最远,但仍可视为系统的输出的数据流,软件工程-第5章-总体设计2,在事务型系统结构图中,事务中心模块按所接受的事务

9、的类型,选择某一个事务处理模块执行。 各个事务处理模块是并列的,依赖于一定的选择条件,分别完成不同的事务处理工作。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。 由于不同的事务处理模块可能有共同的操作,所以某些事务处理模块可能共享一些操作模块。同样不同的操作模块可以有相同的细节,所以某些操作模块又可以共享一些细节模块。 对于事务型系统的结构图可以有多种不同的形式。例如,有多层操作层或没有操作层,软件工程-第5章-总体设计2,软件工程-第5章-总体设计2,简化的事务型系统结构图,简化了的事务型系统结构图是把分析作业和调度都归入事务中心模块,软件工程-第5章-总体设

10、计2,SD方法方法实施的要点是:(1)首先研究、分析和审查数据流图,从软件的需求规格说明中弄清数据流加工的过程。(2)然后根据数据流图决定问题的类型,即确定是变换型还是事务型。针对两种不同的类型分别进行分析处理。(3)由数据流图推导出系统的初始结构图。(4)利用一些试探性原则来改进系统的初始结构图,直到得到符合要求的结构图为止。(5)修改和补充数据词典。 (6)制定测试计划,二、SD方法概述,软件工程-第5章-总体设计2,错误,面向数据流方法的设计过程,软件工程-第5章-总体设计2,变换 分析,5.5.2 变换分析,将具有变换型的DFD图导出SC图,软件工程-第5章-总体设计2,1)在 DFD

11、 图上标出逻辑输入、逻辑输出和变换中心的分界,变换中心,c,e 逻 辑输入,w,u 逻 辑输出,具有变换型数据流图,软件工程-第5章-总体设计2,DFD的分析和划分,对于较复杂的DFD,不同的设计人员可能得出不同的划分结果。以下是几种可能遇到的情况及其处理方法: 有些系统没有变换中心,逻辑输入和逻辑输出是完全相同的数据流,此时应如实划分为传入和传出两部分 变换中心甚至传出部分也可能从系统外接收某些输入数据流,称为二次输入数据,分析时应照实情把二次输入数据看成变换中心或输出部分的一个成分; 有些DFD可能缺少应有的细节,设计人员可对用做分析的DFD进行补充,必要时甚至重画,软件工程-第5章-总体

12、设计2,2) 完成第一级分解,Cm,CA,CT,CE,C,e,C,e,U,w,U,w,变换中心,顶层 用于控制的主模块,第一层,第一级分解后的 SC 图,输入信息处理控制模块,协调对所有输入数据的接收,输出信息处理控制模块,协调输出信息的产生过程,变换中心控制模块,管理对内部形式的数据的所有操作,软件工程-第5章-总体设计2,上图是SC的另一种画法,在第一层不是每一分支只画一个模块,而是按实际情况确定模块的数量。逻辑输入和逻辑输出都具有两个数据流,而中心加工含有三个加工,故可画出(2+3+2)共7个模块,对一个大型系统中的复杂数据流可以用两个或多个模块完成上述一个模块的控制功能; 在能够完成控

13、制功能并且保持好的耦合和内聚特性的前提下,尽量使第一级控制中模块数目取最小值,软件工程-第5章-总体设计2,3) 完成第二级分解,变换中心,把数据流图中的每个处理映射成软件结构中一个适当的模块: 从变换中心的边界开始沿输入路径向外动,把输入通路中每个处理映射成软件结构中Ca控制下的一个低层模块; 沿输出通路向外移动,把输出通路中每个处理映射成直接或间接受模块Ce控制的一个低层模块; 把变换中心内的每个处理映射成受Ct控制的一个模块,软件工程-第5章-总体设计2,3) 完成第二级分解,Ca,变换中心,对逻辑输入的分解,C,E,B,A,D,逻辑输入模块的调用与执行过程,软件工程-第5章-总体设计2

14、,输入分支的第二种分解图,为显式的表示数据流在输入过程中经历的变换,在图中增加3个变换模块,并在模块中加上Read、Get等字样,使结构更加清晰明了,软件工程-第5章-总体设计2,CE,变换中心,对输出的分解,W,U,V,CT,Q,P,R,e,C,p,r,U,w,对变换中心加工的分解,p,r,w,u,软件工程-第5章-总体设计2,从变换分析导出的初始 SC 图,4) 获得完整的 SC 图,软件工程-第5章-总体设计2,数据流图,系统结构图,软件工程-第5章-总体设计2,请将上列给出的具有变换型的DFD图导出它的SC图,练习,软件工程-第5章-总体设计2,运用变换分析方法建立系统的SC时需注意以

15、下几点,模块设计的次序,应遵循对一个模块 的全部直接下属模块都设计完成后,再转向 另一个模块的下层模块的设计,在设计下层模块时,应考虑模块的耦合 和内聚问题,以提高设计初始SC图的质量,注意“黑盒”技术的使用。在设计当前模 块时,先把所有下层模块定义成“黑盒”,并 在系统设计中利用它们,暂时不考虑它们的 内部结构和实现方法,软件工程-第5章-总体设计2,主模块,A,B,C,A1,A2,A3,A11,A12,A13,软件工程-第5章-总体设计2,低,高,强,弱,内聚性,模块独立性,低,高,弱,强,耦合性,模块独立性,具有高内聚低耦合的模块 才是模块独立性比较强的模块,软件工程-第5章-总体设计2

16、,具有高内聚低耦合的模块 才是模块独立性比较强的模块,模块A,模块D,模块C,模块B,非直接 耦合,通过参数表 传递数据 (数据耦合,通过参数表 传递数据结构 (数据耦合,具有松散型 的耦合类型,软件工程-第5章-总体设计2,假设仪表板的功能如下: (1)通过模/数(A/D)转换实现传感器和微处理机接口; (2)在发光二极管(LCD)面板上显示数据; (3)指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等; (4)指示加速或减速; (5)超速警告:如果车速超过55英里小时,则发出超速警告铃声。 在软件需求分析阶段,应该对上述每项性能和其它要求进行全面的分析,并建立起相

17、应的文档资料,得出数据流图。具体的设计步骤如下,例子:一个汽车数字仪表板的设计,软件工程-第5章-总体设计2,1、复查基本 系统模型,2、复查并精化 数据流图,软件工程-第5章-总体设计2,3、确定数据流图的类型,这一步的任务是确定数据流图是变换型数据流图还是事务型数据流图。 先根据流图中占优势的属性,确定数据流的全局特性;把具有和全局特性不同的特点的局部区域孤立出来,以后按照这些子数据流的特点精化根据全局特性得出的软件结构. 从上图中可以看出,数据沿着两条输入通路(旋转信号和燃料流量传感器信号)进入系统,然后沿着五条通路(4个显示,一个警告铃声)离开,没有明显的事务中心。因此,可以认为这个数

18、据流图的类型是变换型数据流图,软件工程-第5章-总体设计2,4、确定输入流和输出流的边界,从而孤立出变换中心,软件工程-第5章-总体设计2,5、进行“第一级分解,第一级分解的方法,软件工程-第5章-总体设计2,第一级分解的结果,软件工程-第5章-总体设计2,6、进行“第二级分解,第二级分解的方法,软件工程-第5章-总体设计2,第二级分解的结果,未经精化的输入结构 未经精化的变换结构,软件工程-第5章-总体设计2,未经精化的输出结构,软件工程-第5章-总体设计2,7、使用设计度量和设计准则对第一次分割得到的软件结构进一步精化,对于从前面的设计步骤得到的软件结构,还可以进行许多修改: (1)输入结

19、构中的模块“转换成rpm”和“收集sps”可以合并; (2)模块“确定加速减速”可以放在模块“计算mph”下面,以减少耦合; (3)模块“加速减速显示”可以相应地放在模块“显示mph”的下面,软件工程-第5章-总体设计2,精化的数字仪表板系统的软件结构,软件工程-第5章-总体设计2,从变换分析导出的初始 SC 图,软件工程-第5章-总体设计2,是将具有事务型的DFD图导出SC图,事务中心,事务源,5.5.3 事务分析,在上述的DFD图中,数据流A是一个带有 “请求”性质的信息即事务源。而加工I 则具有 “事务中心”的功能,它后继的三个加工L,M,N 是并列的,在加工I的选择控制下完成不同功能的

20、处理。最后经过加工 O 将某一加工处理的结果整理输出,软件工程-第5章-总体设计2,事务分析的映射方法,接收分支:映射方法和变换分析类似 发送分支:包含一调度模块,控制下层的所有活动模块,每个活动流通路映射成与它的流特征相对应的结构,软件工程-第5章-总体设计2,主模块,给出H,取得A,L,M,N,A,G,H,B,E,C,F,D,软件工程-第5章-总体设计2,请将下列给出的采购子系统 DFD 图转换成SC图,练习,加工名称: 2.1 按书号汇总缺书 2.2 按出版社汇总缺书 2.3 修改教材库存和待 购量,文件名称: F1 教材存量表 F2 缺书登记表 F5 待购教材表 F6 教材一览表 F7

21、 进书登记表,软件工程-第5章-总体设计2,采 购,按书号 汇总,缺书 登记表,统计缺书,登记进书,按出版社 汇总,打印 缺书单,修改 教材存量表,修改 教材待购量,统计 命令,登记 命令,待购 教材表,暂缺 书单,暂缺 书单,进书 通知,进书 通知,采购子系统的 SC 图,软件工程-第5章-总体设计2,混合结构,变换分析是软件系统结构设计的主要方法。一般一个大型的软件系统是变换型结构和事务型结构的混合结构。所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。 下面是一个混合结构的例子,软件工程-第5章-总体设计2,数据流图,系统结构图,软件工程-第5章-总体设计2,5.5.

22、4 软件模块结构的改进,一、 模块功能的完善化,当模块不能完成规定的功能时,必须回送出错标志,向它的调用者报告出现这种例外情况的原因,软件工程-第5章-总体设计2,二、 消除重复功能,改善软件结构,完全相似,局部相似,在结构上完全相似,可能只是在数据类型上不一致。此时可以采取完全合并的方法,只需在数据类型的描述上和变量定义上加以改进,当两个模块具有一部分相同的功能时,把这部分相同的功能分离为一个单独的模块,可以免除对这一部分内容的重复编码和测试,节约软件的开发费用,软件工程-第5章-总体设计2,X,Y,R1,R2,X,Y,R,R,相似模块的各种合并方案的示意图,分析R1, R2,找出其相同部分

23、,从R1和R2中分离出去,重新定义成一个独立的下层模块,R1 和R2剩余的部分据情况还可与它的上级模块合并,以减少像控制的传递、全局数据的引用和接口等复杂性,软件工程-第5章-总体设计2,三、 模块的作用范围应在控制范围之内,作用范围:是一个与条件判定 相关联的所有模块,控制范围:包括模块本身及其 所有的从属模块(即供它调用 的模块,软件工程-第5章-总体设计2,一个模块的作用范围,是指受这个模块中的 判定影响的所有模块,关于模块的作用范围/控制范围的关系示意图,G,D,B,C,控制 耦合,当模块G作出一个判定之后,若需要C工作,则必须把信号送回给D,然后,再由D把信号送给B,才能送到C模块C

24、超出了G的控制域,从而也增加了数据的传送量和模块间的耦合,使模块间出现了控制耦合,软件工程-第5章-总体设计2,Top,C,D,E,B2,B,D,G,C,符合作用范围/控制范围的理想判定位置,D,C,G,B,A,对于一个理想SC图 中的模块设计, 所有受到 一个判定影响的模块应该 都从属该判定所在的模块 ,最好位于作出判定的那 个模块本身及它的直接下 属模块,软件工程-第5章-总体设计2,计算 实发工资,取得 工资数据,计时工人 实发工资,计薪工人 实发工资,编外人员 实发工资,计时制 工资额,税收 扣款,薪金制 工资额,常规 扣款,编外人员 工资,编外人员 税款,编外人员 扣款,如:为了确定

25、需计算工资工人属于哪一类,若在“取得工资数据” 模块中加入判定工资类型的语句,此时判定的作用范围将超出的控制范围(只包含它本身),违反了两个关系的原则,其不良后果是,在 “取得工资数据” 和 “计算实发工资”两个模块中,将对 “工资类型”进行重复的判定,修正方法是,在“计算实发工资”模块内设一判定语句,判断包含在“工资数据”中的“工资类别”。这样,哪一类的 “实发工资模块” 执行将直接依赖于判定的结果。我们把这个 “实发工资”的模块称为这一判定的作用范围,软件工程-第5章-总体设计2,四、 尽可能地减少高扇出结构,随着深度增大扇入,软件工程-第5章-总体设计2,P,Q,一个模块的扇入越大,则共

26、享该模块的上级模块数目也就越多。但如果一个模块的扇入太大,例如超过8,而它又不是公用模块,则说明该模块可能具有多个功能。在这种情况下应当对它 进一步分析并将其功能分解,通过分析得知它是3功能的模块。对它进行分解,增加三个中间模块Q1,Q2,Q3,而把公用部分提取出来留在Q中,作为这三个中间模块的公用模块,使各模块的功能单一化,从而改善模块结构,经验证明,一个设计得好的软件模块结构,通常上层扇出比较高,中间层扇出较少,底层扇入到有高扇入的公用模块中,软件工程-第5章-总体设计2,五、 模块的大小要适中,50-100,软件工程-第5章-总体设计2,六、应限制使用如下三种病态联接,公共数据域病态联接 模块A和 B通过公共数据域直接传送或 接受数据,而非通过上级模块,直接病态联接 即模块A直接从 模块B内部取出某些数据,或 把某些数据直接送到B内部,通信模块病态联接 即模块A和 B通过通信模块传送数据,软件工程-第5章-总体设计2,这种方式将使得模块间的耦合程度剧增。它不仅影响

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论