《第四章 软件总体设计优秀课件.ppt》由会员分享,可在线阅读,更多相关《第四章 软件总体设计优秀课件.ppt(112页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章 软件总体设计2022/11/281第1页,本讲稿共112页概述概述(P66)(P66)需求分析解决系统需求分析解决系统“做什么做什么”的问题,的问题,软件设计解决系统软件设计解决系统“怎么做怎么做”的问题,的问题,分为总体设计分为总体设计(概要设计概要设计)和详细设计和详细设计.软件设计是把软件需求变换成为软软件设计是把软件需求变换成为软件的具体解决方案件的具体解决方案.2022/11/282第2页,本讲稿共112页剩下的阶段剩下的阶段 总体设计总体设计 详细设计详细设计 编码编码 调试调试 维护维护2022/11/283第3页,本讲稿共112页软件设计分为两个阶段:软件设计分为两个阶
2、段:(1)(1)总体设计总体设计(概要设计概要设计)确定软件的结构以及各组成成分确定软件的结构以及各组成成分(子系统或模块子系统或模块)之间的相互关系。之间的相互关系。(2)(2)详细设计详细设计 确定模块内部的算法和数据结构,产生描述确定模块内部的算法和数据结构,产生描述各模块程序过程的详细文档。各模块程序过程的详细文档。2022/11/284第4页,本讲稿共112页总体设计的任务总体设计的任务n将系统划分成模块将系统划分成模块n决定每个模块的功能决定每个模块的功能n决定模块的调用关系决定模块的调用关系n决定模块的界面,即模块间传递的数据决定模块的界面,即模块间传递的数据2022/11/28
3、5第5页,本讲稿共112页软件总体设计基础软件总体设计基础(P67P67)模块模块 模块就是程序对象的有名字的集合或者说是一模块就是程序对象的有名字的集合或者说是一系列过程的总称系列过程的总称.软件结构软件结构 软件的结构就是软件内部各模块之间的关系表软件的结构就是软件内部各模块之间的关系表示示.总体设计总体设计 总体设计是软件总体结构的设计总体设计是软件总体结构的设计.详细设计详细设计 详细设计是软件模块内部的过程设计详细设计是软件模块内部的过程设计.2022/11/286第6页,本讲稿共112页控制结构控制结构(程序结构程序结构)控制结构是软件模块间控制结构是软件模块间关系的表示关系的表示
4、2022/11/287第7页,本讲稿共112页控制结构图示控制结构图示(P68)(P68)2022/11/288第8页,本讲稿共112页控制结构的层次规则控制结构的层次规则v只有一个顶层只有一个顶层(0(0层层)模块模块v 0 0层外任一模块都会在它的邻层存在一模块与层外任一模块都会在它的邻层存在一模块与它有关它有关v同层模块间不发生联系同层模块间不发生联系2022/11/289第9页,本讲稿共112页软件结构度量术语软件结构度量术语深度宽度扇出扇入(模块的 层数)(同一层最大模块数)(一个模块 直接调用 的模块数)(调用一个给定模 块的模块个数)2022/11/2810第10页,本讲稿共11
5、2页结构图结构图(SC Structure Chart)(SC Structure Chart)结构图主要成分结构图主要成分(page 69page 69)模块模块用方框表示,方框中写有模块的名字,一个模块的名字应用方框表示,方框中写有模块的名字,一个模块的名字应适当地反映这个模块的功能,这就在某种程度上反映了块内联系;适当地反映这个模块的功能,这就在某种程度上反映了块内联系;调用调用从一个模块指向另一个模块的箭头表示前一模块中含有从一个模块指向另一个模块的箭头表示前一模块中含有对后一模块的调用;对后一模块的调用;数据数据调用箭头旁边的小箭头表示调用时从一个模块传入送调用箭头旁边的小箭头表示调
6、用时从一个模块传入送给另一个模块的数据,小箭头也指出了传送的方向。给另一个模块的数据,小箭头也指出了传送的方向。2022/11/2811第11页,本讲稿共112页结构图结构图(SC Structure Chart)(SC Structure Chart)SDSD方法在概要设计中的主要表达工具方法在概要设计中的主要表达工具约定:约定:编辑学生记录读学生记录学生数据无此学生学号不加区分的数据数据信息控制信息2022/11/2812第12页,本讲稿共112页SC中的四种模块传入模块(a)(b)AA传出模块BB变换模块(c)CD协调模块E(d)EFF2022/11/2813第13页,本讲稿共112页S
7、C中的选择调用ACBDA根据内部判断决定是否调用BA按另一判定结果选择调用C或D2022/11/2814第14页,本讲稿共112页SC中的循环调用ABCA根据内在的循环重复调用B、C等模块2022/11/2815第15页,本讲稿共112页结构图(SC)举例医院管理系统门诊管理药房管理药库管理病房管理财务管理处方挂号处理挂号费总计挂号单挂号费总计出库处理进药管理病历管理处方管理常规处理2022/11/2816第16页,本讲稿共112页结构图的优点的优点n结构图具有很高的可读性,容易使人理解,也结构图具有很高的可读性,容易使人理解,也容易和用户讨论容易和用户讨论n结构图是自顶向下逐层扩展,能够表达
8、总体一结构图是自顶向下逐层扩展,能够表达总体一级的软件结构级的软件结构n结构图既有严密性,又有灵活性结构图既有严密性,又有灵活性n结构图易于维护和修改结构图易于维护和修改2022/11/2817第17页,本讲稿共112页模块模块n模块是具有一定功能的可以用名词调用的程序模块是具有一定功能的可以用名词调用的程序语句集合,如:语句集合,如:n独立的汇编程序独立的汇编程序nCOBOL的段和节的段和节nPascal过程过程nFORTRAN的子程序的子程序n汇编的宏汇编的宏2022/11/2818第18页,本讲稿共112页模块化模块化(Modularity)(Modularity)模块化是好的软件设计的
9、一个基本准则模块化是好的软件设计的一个基本准则 高层模块高层模块 从整体上把握从整体上把握 问题问题,隐蔽细节隐蔽细节 复杂问题复杂问题 较小问题较小问题 分解分解 可减小解题所需的总的工作可减小解题所需的总的工作分解2022/11/2819第19页,本讲稿共112页例例:将问题将问题(P1+P2)(P1+P2)分解为分解为P1,P2P1,P2设函数设函数C(x)定义问题定义问题 x 的复杂程度的复杂程度函数函数E(x)确定解决问题确定解决问题 x 需要的工作量需要的工作量对问题对问题P1和和P2,如如:C(P1)C(P2)显然显然:E(P1)E(P2)有规律有规律:C(P1+P2)C(P1)
10、+C(P2)E(P1+P2)E(P1)+E(P2)各个击破各个击破理论理论2022/11/2820第20页,本讲稿共112页模块度模块度成本或工作量模块数量软件总成本集成成本成本/模块M最小成本区域2022/11/2821第21页,本讲稿共112页模块的特征模块的特征(P72P72)抽象抽象 抽象是抽出事物的本质特性而暂时不考虑抽象是抽出事物的本质特性而暂时不考虑他们的细节他们的细节.信息隐蔽信息隐蔽 模块所包含的信息,不允许其它不需要这模块所包含的信息,不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息为完成系统功能而
11、必须交换的信息。2022/11/2822第22页,本讲稿共112页模块独立性度量模块独立性度量(P73P73)模块独立的概念模块独立的概念 模块独立是指该模块能完成一个相对独立的特模块独立是指该模块能完成一个相对独立的特定子功能定子功能,并且与其他模块之间的接口很简单并且与其他模块之间的接口很简单.模块独立是软件设计模块化、抽象和信息隐蔽模块独立是软件设计模块化、抽象和信息隐蔽的直接结果的直接结果.独立的优势独立的优势 1.具有独立模块的软件比较容易开发具有独立模块的软件比较容易开发,接口简接口简化,有利于团队合作化,有利于团队合作.2.独立的模块比较容易测试和维护独立的模块比较容易测试和维护
12、.2022/11/2823第23页,本讲稿共112页衡量独立性标准衡量独立性标准(P73P73)聚合聚合 聚合是衡量一个模块内部各个元素之间的聚合是衡量一个模块内部各个元素之间的彼此结合的紧密程度彼此结合的紧密程度.耦合耦合 耦合是衡量不同模块之间相互依赖的紧耦合是衡量不同模块之间相互依赖的紧密程度密程度.2022/11/2824第24页,本讲稿共112页独立性理想目标独立性理想目标理想目标理想目标:低耦合、高聚合低耦合、高聚合2022/11/2825第25页,本讲稿共112页块内联系块内联系(聚合聚合)n偶然聚合偶然聚合n逻辑聚合逻辑聚合n时间聚合时间聚合n通信聚合通信聚合n顺序聚合顺序聚合
13、n功能聚合功能聚合2022/11/2826第26页,本讲稿共112页偶然聚合偶然聚合(巧合聚合巧合聚合)PQSTMOVE A TO BREAD CARD FILEMOVE C TO D模块T中的三个语句没有任何联系缺点:可理解性差,可修改性差例:2022/11/2827第27页,本讲稿共112页逻辑聚合逻辑聚合n把几种相关功能(逻辑上相似的功能)组合把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确在一模块内,每次调用由传给模块的参数确定执行哪种功能。定执行哪种功能。2022/11/2828第28页,本讲稿共112页逻辑聚合模块逻辑聚合模块ABCEFGABCEFGA1
14、B1C1EFG模块内部逻辑E、F、G逻辑功能相似,组成新模块EFG缺点:增强了耦合程度(控制耦合)不易修改,效率低公用代码段公用代码段2022/11/2829第29页,本讲稿共112页时间聚合时间聚合(经典聚合经典聚合)模块完成的功能必须在同一时间模块完成的功能必须在同一时间内执行,这些功能只因时间因素内执行,这些功能只因时间因素关联在一起。关联在一起。例如例如:初始化系统模块、初始化系统模块、系统结束模块、系统结束模块、紧急故障处理模块等均是时间性聚合紧急故障处理模块等均是时间性聚合 模块模块.2022/11/2830第30页,本讲稿共112页通信聚合通信聚合一个模块内各个组成部分的处理动作
15、都一个模块内各个组成部分的处理动作都使用相同的输入数据或产生相同的输使用相同的输入数据或产生相同的输出数据出数据.2022/11/2831第31页,本讲稿共112页通信通信聚合聚合模块例模块例产生工资报表计算平均工资职工工资记录职工工资报表平均工资产生职工工资报表并计算平均工资模块2022/11/2832第32页,本讲稿共112页顺序聚合顺序聚合模块内各处理成分相关,模块内各处理成分相关,且必须以特定次序执行且必须以特定次序执行2022/11/2833第33页,本讲稿共112页顺序聚合模块顺序聚合模块读入成绩单审查成绩单统计成绩打印成绩读入并审查成绩单统计并打印成绩单2022/11/2834第
16、34页,本讲稿共112页功能功能聚合聚合n模块仅包括为完成某个功能所必须的所有模块仅包括为完成某个功能所必须的所有成分。成分。n模块所有成分共同完成一个功模块所有成分共同完成一个功 能,缺一不可能,缺一不可聚合性最强聚合性最强2022/11/2835第35页,本讲稿共112页模块间联系模块间联系(耦合耦合)(P73)n非直接耦合非直接耦合n数据耦合数据耦合n特征耦合特征耦合n控制耦合控制耦合n公共耦合公共耦合n内容耦合内容耦合2022/11/2836第36页,本讲稿共112页非直接耦合非直接耦合 两个模块没有直接关系两个模块没有直接关系(模块模块1 1和模块和模块2)2),模块独立性最强。,模
17、块独立性最强。模块1模块2模块3模块42022/11/2837第37页,本讲稿共112页数据耦合数据耦合 一模块调用另一模块时,被调用模块的一模块调用另一模块时,被调用模块的输入、输出都是简单的数据输入、输出都是简单的数据(若干参数若干参数)。属松散耦合。属松散耦合。38第38页,本讲稿共112页数据耦合举例数据耦合举例开发票计算水费单价数量金额39第39页,本讲稿共112页特征耦合特征耦合 两个模块与同一个数据结构(包括若干两个模块与同一个数据结构(包括若干个数据项)有关。个数据项)有关。40第40页,本讲稿共112页控制耦合控制耦合 一模块向下属模块传递的信息一模块向下属模块传递的信息(开
18、开关量、标志等控制被调用模块决策的变关量、标志等控制被调用模块决策的变量量)控制了被调用模块的内部逻辑。控制了被调用模块的内部逻辑。41第41页,本讲稿共112页控制耦合举例A计算平均分或最高分B平均/最高(控制信号)成绩读入分数输出结果计算平均分 计算最高分平均/最高?B42第42页,本讲稿共112页控制耦合增加了理解和编程的复杂性,调控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加用模块必须知道被调模块的内部逻辑,增加了相互依赖了相互依赖(1)(1)将被调用模块内的判定上移到调用模块中进将被调用模块内的判定上移到调用模块中进行行(2)(2)被调用模块分解成若干单一
19、功能模块被调用模块分解成若干单一功能模块去除模块间控制耦合的方法去除模块间控制耦合的方法43第43页,本讲稿共112页改控制耦合为数据耦合举例改控制耦合为数据耦合举例A计算平均分B1平均成绩最高成绩计算最高分B244第44页,本讲稿共112页 公共耦合公共耦合(公共数据区耦合公共数据区耦合)一组模块引用同一个公用数据区一组模块引用同一个公用数据区(也称全局数也称全局数据区、公共数据环境据区、公共数据环境)。公共数据区公共数据区指:指:n 全局数据结构全局数据结构n 共享通讯区共享通讯区n 内存公共覆盖区等内存公共覆盖区等45第45页,本讲稿共112页公共耦合举例公共耦合举例公共数据区CCB模块
20、A、B、C间存在错综复杂的联系46第46页,本讲稿共112页(1)(1)软件可理解性降低软件可理解性降低(2)(2)诊断错误困难诊断错误困难(3)(3)软件可维护性差,软件可维护性差,(4)(4)软件可靠性差软件可靠性差(公共数据区及全程变量无保护措施公共数据区及全程变量无保护措施)慎用公共数据区和全程变量慎用公共数据区和全程变量!公共耦合存在的问题公共耦合存在的问题47第47页,本讲稿共112页内容耦合内容耦合一模块直接访问另一模块的内部信息(程序代码或数据)最不好的耦合形式!ABAB模块代码重叠Entry1 Entry1 多入口模块48第48页,本讲稿共112页无耦合没有依赖关系松散耦合有
21、少量依赖关系紧密耦合有很多依赖关系图形表示耦合关系图形表示耦合关系2022/11/2849第49页,本讲稿共112页耦合强度依赖的因素:耦合强度依赖的因素:一模块对另一模块的引用一模块对另一模块的引用一模块向另一模块传递的数据量一模块向另一模块传递的数据量一模块施加到另一模块的控制的数量一模块施加到另一模块的控制的数量模块间接口的复杂程度模块间接口的复杂程度2022/11/2850第50页,本讲稿共112页模块间耦合的类型模块间耦合的类型 低低 无直接耦合无直接耦合耦耦 数据耦合数据耦合合合 标记耦合标记耦合性性 控制耦合控制耦合 外部耦合外部耦合 公共耦合公共耦合 高高 内容耦合内容耦合模块
22、独立性弱(低耦合)强(中耦合)(较强耦合)(强耦合)2022/11/2851第51页,本讲稿共112页耦合、聚合与模块独立性关系耦合、聚合与模块独立性关系n耦合与聚合都是模块独立性的定性标准,都耦合与聚合都是模块独立性的定性标准,都反映模块独立性的良好程度。但耦合是直接反映模块独立性的良好程度。但耦合是直接的主导因素,聚合则辅助耦合共同对模块独的主导因素,聚合则辅助耦合共同对模块独立性进行衡量。立性进行衡量。2022/11/2852第52页,本讲稿共112页改进软件结构设计的指导原则改进软件结构设计的指导原则(软件结构设计的启发式规则)(1)(1)评价软件初始结构评价软件初始结构,通过模块的分
23、解与合并减通过模块的分解与合并减少模块之间的耦合度少模块之间的耦合度,增加聚合度增加聚合度(2)(2)模块功能的完善化模块功能的完善化(3)(3)将模块的作用限制在模块的控制范围内将模块的作用限制在模块的控制范围内(4)(4)深度、宽度、扇出和扇入适中深度、宽度、扇出和扇入适中(5)(5)模块大小适中模块大小适中(6)(6)降低模块接口的复杂性降低模块接口的复杂性(7)(7)模块功能可预测模块功能可预测(8)(8)避免模块的病态连接,力争单入口,单出口避免模块的病态连接,力争单入口,单出口2022/11/2853第53页,本讲稿共112页(1)模块分解、合并,消除重复功能Q1CQ2CQ1Q2C
24、改进前Q1、Q2功能相似XYQQXYXY重复部分改进方法改进方法1 1:将将Q1Q1、Q2Q2合并为合并为Q Q不可取不可取改进方法2:将Q1、Q2的公共部分分离出来2022/11/2854第54页,本讲稿共112页(2)(2)模块功能的完善化模块功能的完善化完整的模块应包括三部分:完整的模块应包括三部分:(1)(1)执行规定功能部分执行规定功能部分(2)(2)出错处理部分出错处理部分(3)(3)需返回给调用者数据时,需返回给调用者数据时,返回是否正确结束标志。返回是否正确结束标志。2022/11/2855第55页,本讲稿共112页(3)(3)系统结构的作用范围和控制范围系统结构的作用范围和控
25、制范围n系统中某一层上模块中的判定或者条件语句系统中某一层上模块中的判定或者条件语句(例如(例如If语句)在系统中会产生多种后果,根语句)在系统中会产生多种后果,根据该判定的结果去执行或不执行其他层的某个据该判定的结果去执行或不执行其他层的某个模块。模块。n该模块就是该模块就是“条件依赖条件依赖”于某个判定于某个判定n判定的判定的“作用范围作用范围”是指包含是指包含“条件依赖条件依赖”于于该判定的处理的全部模块该判定的处理的全部模块n一个模块的一个模块的“控制范围控制范围”是指模块本身和它的是指模块本身和它的全体子模块全体子模块2022/11/2856第56页,本讲稿共112页将模块的作用限制
26、将模块的作用限制 在模块的控制范围内在模块的控制范围内CHDEGXFAILJKB模块C的控制范围:C、D、E、F、G、H如果模块C 作出的决策影响了模块L,L超出了C 的控制范围2022/11/2857第57页,本讲稿共112页作用范围和控制范围作用范围和控制范围n作用范围应该是这个判定所在模块的控制范作用范围应该是这个判定所在模块的控制范围的一个子集围的一个子集n但是实际上,在系统中控制范围和作用范围的但是实际上,在系统中控制范围和作用范围的关系常常并非如此。关系常常并非如此。2022/11/2858第58页,本讲稿共112页作用范围和控制范围作用范围和控制范围TopAYBB1X作用范围To
27、pABB1B2XTopYABXAYBB1B2X判定图1.作用范围在控制范围之外图2.作用范围在控制范围之内,但判定位置太高图3.作用范围在控制范围之内,正确实现 图4.理想的作用范围和控制范围第59页,本讲稿共112页(4)(4)减少高扇出争取高扇入减少高扇出争取高扇入编外人员工资取得工资数据 计时制工资额薪金制工资额编外人员税款编外人员扣款常规扣款税收扣款计算实发工资避免平铺结构2022/11/2860第60页,本讲稿共112页增加中间层降低扇出增加中间层降低扇出编外人员工资取得工资数据 计时制工资额薪金制工资额编外人员税款编外人员扣款常规扣款税收扣款计算实发工资计时工人实发工资计薪工人实发
28、工资编外人员实发工资2022/11/2861第61页,本讲稿共112页(5)(5)模块大小适中模块大小适中模块过大:可理解程度下降模块过大:可理解程度下降模块过小:开销大于有效操作模块过小:开销大于有效操作 系统接口复杂系统接口复杂2022/11/2862第62页,本讲稿共112页(6)(6)降低模块接口的复杂性降低模块接口的复杂性n接口传递信息应简单且和模块功能一致。接口传递信息应简单且和模块功能一致。2022/11/2863第63页,本讲稿共112页(7)(7)模块功能可预测模块功能可预测模块看成黑盒子,相同输入产生相同输出,模块看成黑盒子,相同输入产生相同输出,其功能为可预测的。其功能为
29、可预测的。模块带有内部状态其功能可能是不可预测模块带有内部状态其功能可能是不可预测的。难理解、难测试、难维护。的。难理解、难测试、难维护。2022/11/2864第64页,本讲稿共112页防止模块功能过分局限防止模块功能过分局限 功能单一的模块具有高内聚。功能单一的模块具有高内聚。但如任意限制局部数据结构的但如任意限制局部数据结构的大小,过分限制控制流中可做的选大小,过分限制控制流中可做的选择或外部接口的模式,模块功能就择或外部接口的模式,模块功能就过分局限,使用范围过分狭窄,缺过分局限,使用范围过分狭窄,缺乏灵活性和可扩充性。乏灵活性和可扩充性。2022/11/2865第65页,本讲稿共11
30、2页(8)(8)避免模块的病态连接,力争单避免模块的病态连接,力争单入口,单出口入口,单出口防止指向模块中间的分支或引用防止指向模块中间的分支或引用(针对内容耦合)(针对内容耦合)2022/11/2866第66页,本讲稿共112页结构化软件设计结构化软件设计2022/11/2867第67页,本讲稿共112页面向数据流的设计方法面向数据流的设计方法nSD以数据流图为基础,它定义了把数据流以数据流图为基础,它定义了把数据流图(图(DFD)变换成变换成软件结构软件结构的不同的不同映射映射方法方法映射数据流图DFD(问题结构)软件系统的结构(程序结构)2022/11/2868第68页,本讲稿共112页
31、系统结构特征可归纳为两种典型形系统结构特征可归纳为两种典型形式式因为因为数据流图可分为两种类型数据流图可分为两种类型:n变换型数据流变换型数据流n事务型数据流事务型数据流所以所以结构化软件设计分为两种类型:结构化软件设计分为两种类型:n变换型结构设计变换型结构设计(主要主要)n事务型结构设计事务型结构设计(次要次要)2022/11/2869第69页,本讲稿共112页数据流图数据流图 基本模型(基本模型(DFDDFD)变换型变换型数据流数据流 结构结构事务型数据流 结构传入变换传出中心变换传入部分传出部分事务分析事务中心动作 1动作 2动作 3接受接受部分2022/11/2870第70页,本讲稿
32、共112页变换型数据流图举例变换型数据流图举例输入信息物理输入格式检查处理显示正确信息结果物理输出数据中心变换逻辑输入逻辑输出传入部分传出部分特点:具有明确的传入、变换(或称主加 工)和传出界面的DFD2022/11/2871第71页,本讲稿共112页事务型数据流图举例事务型数据流图举例IMLNOABCDFEGH2022/11/2872第72页,本讲稿共112页大型系统大型系统DFDDFD中中,变换型和事务型结变换型和事务型结构往往共存构往往共存:T事务中心传入变换传出2022/11/2873第73页,本讲稿共112页中心变换输入输出变换型结构软件设计事务中心接受路径动作路径事务型 结构软件设
33、计由输入、中心变换和输出三部分组成具有在多种事务中选择执行某类事物的能力结构化软件设计结构化软件设计 基本模型基本模型 特征特征第74页,本讲稿共112页面向数据流图设计方法的设计步骤面向数据流图设计方法的设计步骤(1)(1)精化精化DFDDFD(2)(2)确定确定DFDDFD类型类型(3)(3)把把DFDDFD映射到系统模块结构,设计映射到系统模块结构,设计 出模块结构的上层出模块结构的上层(4)(4)基于基于DFDDFD逐步分解高层模块,设计逐步分解高层模块,设计 出下层模块出下层模块(5)(5)根据模块独立性原理,精化模根据模块独立性原理,精化模 块结构块结构(6)(6)模块接口描述模块
34、接口描述2022/11/2875第75页,本讲稿共112页面向数据流图方法的设计过程面向数据流图方法的设计过程精化数据流图区分事务中心和数据接收路径映射成变换结构流类型区分输入和输出分支映射成事务结构用启发式设计规则精化软件结构导出接口描述和全程数据结构复查详细设计“事务事务”“变换变换”事务分析变换分析第76页,本讲稿共112页SDSD方法的两种映射过渡方法方法的两种映射过渡方法变换型DFD事务型DFD初始SC初始SC变换分析事务分析2022/11/2877第77页,本讲稿共112页初始的初始的SCSC主模块输入模块主加工模块输出模块事务控制模块接受模块动作发送模块动作1模块动作2模块动作3
35、模块由变换分析产生由事务分析产生2022/11/2878第78页,本讲稿共112页(1)(1)变换分析设计方法变换分析设计方法步骤:步骤:(1)(1)区分传入、变换中心、区分传入、变换中心、传出部分,在传出部分,在 DFD 上上 标明分界线标明分界线2022/11/2879第79页,本讲稿共112页BCADEQPRWUVabcedrpuwv变换中心传入部分传出部分第80页,本讲稿共112页变换分析设计方法变换分析设计方法n步骤:(2)(2)第一级分解第一级分解(建立初始建立初始SCSC框架框架)设计顶层和第一层模块设计顶层和第一层模块2022/11/2881第81页,本讲稿共112页第一级分解
36、的方法MCMTMAME第82页,本讲稿共112页第一级分解后的第一级分解后的SCSCMCMTMAME第一层顶层c,ec,eu,wu,w传入模块传出模块中心变换模块2022/11/2883第83页,本讲稿共112页变换分析设计方法变换分析设计方法n步骤:(3)(3)第二级分解第二级分解(分解分解SCSC各分支各分支)自顶向下分解,设计出每个分支的中、下自顶向下分解,设计出每个分支的中、下层模块层模块2022/11/2884第84页,本讲稿共112页传入分支的分解传入分支的分解(1)(1)MACBAbacEDdec,e2022/11/2885第85页,本讲稿共112页传入分支的分解传入分支的分解(
37、2)(2)MAGet CbacRead Ddec,eB to CbcdeabGet EGet BD to EA to BRead A2022/11/2886第86页,本讲稿共112页传出分支的分解传出分支的分解MEWWrite Vuuw,uvvvPut UU to VMEUWrite Wwwuw,uV(1)(2)2022/11/2887第87页,本讲稿共112页中心加工分支的分解中心加工分支的分解MTPQRec,pru,wpr2022/11/2888第88页,本讲稿共112页(2)(2)事务分析设计方法事务分析设计方法任何情况下都可使用变换分析方法设计软任何情况下都可使用变换分析方法设计软件结
38、构,但如数据流具有明显的事务特点时件结构,但如数据流具有明显的事务特点时 (有一个明显的事务中心有一个明显的事务中心),),以采用事务分析方以采用事务分析方法为宜。法为宜。2022/11/2889第89页,本讲稿共112页事务分析设计方法事务分析设计方法n步骤:(1)(1)在在DFDDFD上确定上确定事务中心事务中心、接收部接收部 分分和和发送部分发送部分。(2)(2)画出画出SCSC框架,把框架,把DFDDFD上的三部分上的三部分 分别映射为分别映射为事务控制模块事务控制模块、接收接收 模块模块和和动作发送模块动作发送模块。(3)(3)分解细化接收分支和发送分支,分解细化接收分支和发送分支,
39、完成初始完成初始SCSC。2022/11/2890第90页,本讲稿共112页用户命令交互子系统用户命令交互子系统读用户命令密码命令密码显示信息系统参数数据用户命令读系统数据配置信息显示信息和状态命令分析处理读密码命令类型开/关命令建立配置文件原配置数据激活/非活动系统与文件中密码比较格式化配置数据配置命令检验信息过程重试信息四位数字检验信息检验信息A/D信息格式化配置数据格式化配置数据第91页,本讲稿共112页初始的初始的SCSC主模块输入模块主加工模块输入模块事务控制模块接受模块动作发送模块动作1模块动作2模块动作3模块由变换分析产生由事务分析产生2022/11/2892第92页,本讲稿共1
40、12页事务分析的映射方法事务分析的映射方法总控调度C路径B路径A路径A路径B路径C路径接收路径2022/11/2893第93页,本讲稿共112页用户命令交互子系统初始的用户命令交互子系统初始的SCSC用户执行模块读用户命令命令处理密码处理控制器现用/非现用系统系统设置控制器2022/11/2894第94页,本讲稿共112页用户命令交互子系统用户命令交互子系统读用户命令密码命令密码显示信息系统参数数据用户命令读系统数据配置信息显示信息和状态命令分析处理读密码命令类型开/关命令建立配置文件原配置数据激活/非活动系统与文件中密码比较格式化配置数据配置命令检验信息过程重试信息四位数字检验信息检验信息A
41、/D信息格式化配置数据格式化配置数据第95页,本讲稿共112页用户命令交互子系统的用户命令交互子系统的SC用户执行模块读用户命令命令处理密码处理控制器现用/非现用系统系统设置控制器读系统数据建立配置文件显示信息与状态2022/11/2896第96页,本讲稿共112页用户命令交互子系统用户命令交互子系统读用户命令密码命令密码显示信息系统参数数据用户命令读系统数据配置信息显示信息和状态命令分析处理读密码命令类型开/关命令建立配置文件原配置数据激活/非活动系统与文件中密码比较格式化配置数据配置命令检验信息过程重试信息四位数字检验信息检验信息A/D信息格式化配置数据格式化配置数据第97页,本讲稿共11
42、2页用户命令交互子系统的用户命令交互子系统的SC用户执行模块读用户命令命令处理密码处理控制器现用/非现用系统系统设置控制器读系统数据建立配置文件显示信息与状态读密码用文件比较密码密码输出控制器产生无效信息2022/11/2898第98页,本讲稿共112页事务流设计举例事务流设计举例IMLNABCDFEG事务中心2022/11/2899第99页,本讲稿共112页事务流设计举例事务流设计举例 取 A 总控ALMNGDBCFE(主模块)事务加工模块2022/11/28100第100页,本讲稿共112页动作分支的典型结构动作分支的典型结构PT 2T 1T iA 2D 2A 1D 1A 3A jD k事
43、务层操作层细节层处理层主模块事务加工模块操作模块细节模块2022/11/28101第101页,本讲稿共112页事务流设计举例事务流设计举例 取 A 总控ALMNGDBCFE动作1动作n.细节模块1细节模块2.(操作模块)(细节模块)2022/11/28102第102页,本讲稿共112页事务型数据流图举例事务型数据流图举例IMLNOABCDFEGH2022/11/28103第103页,本讲稿共112页事务流设计举例事务流设计举例(另一种画法另一种画法)输入 AXX系统变换控制ALMAGDBCFE 输出 E、F、GE、F、GE、F、G输出HOE、F、GHHN2022/11/28104第104页,本
44、讲稿共112页(3)混合流设计举例混合流设计举例3412675810911变换中心传入传出事务型2022/11/28105第105页,本讲稿共112页混合流设计举例混合流设计举例T事务中心传入变换传出接收部分发送部分2022/11/28106第106页,本讲稿共112页混合流设计举例混合流设计举例ABT1变换中心传入传出T2T3abb1b2b3c1c2c3degfjm事务流子系统BCCDDEEHHKFJKLLMhk2022/11/28107第107页,本讲稿共112页混合流设计举例混合流设计举例输入DXX系统变换控制输出K输入Cdc输出LCDDEFJEHHKKLcddkkkLL输出MLMmmL
45、事务子系统2022/11/28108第108页,本讲稿共112页体系结构设计优化体系结构设计优化2022/11/28109第109页,本讲稿共112页体系结构设计优化体系结构设计优化将初始将初始SC根据模块独立性原则进行精根据模块独立性原则进行精化化,对模块进行合并、分解修改、调整,对模块进行合并、分解修改、调整,得到高内聚、低耦合模块,得到易于实现、得到高内聚、低耦合模块,得到易于实现、易于测试和易于维护的软件结构,产生设易于测试和易于维护的软件结构,产生设计文档的最终计文档的最终SC。2022/11/28110第110页,本讲稿共112页小结:结构化设计小结:结构化设计2022/11/28111第111页,本讲稿共112页本章结束本章结束软件设计2022/11/28112第112页,本讲稿共112页