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