《第四章 软件总体设计精选PPT.ppt》由会员分享,可在线阅读,更多相关《第四章 软件总体设计精选PPT.ppt(112页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章 软件总体设计2023/1/211第1页,此课件共112页哦概述概述(P66)(P66)需求分析解决系统需求分析解决系统“做什么做什么”的问题,的问题,软件设计解决系统软件设计解决系统“怎么做怎么做”的问题,的问题,分为总体设计分为总体设计(概要设计概要设计)和详细设计和详细设计.软软件设计是把软件需求变换成为软件的具件设计是把软件需求变换成为软件的具体解决方案体解决方案.2023/1/212第2页,此课件共112页哦剩下的阶段剩下的阶段 总体设计总体设计 详细设计详细设计 编码编码 调试调试 维护维护2023/1/213第3页,此课件共112页哦软件设计分为两个阶段:软件设计分为两个阶
2、段:(1)(1)总体设计总体设计(概要设计概要设计)确定软件的结构以及各组成成分确定软件的结构以及各组成成分(子系统或模块子系统或模块)之间的相互关系。之间的相互关系。(2)(2)详细设计详细设计 确定模块内部的算法和数据结构,产生描述各确定模块内部的算法和数据结构,产生描述各模块程序过程的详细文档。模块程序过程的详细文档。2023/1/214第4页,此课件共112页哦总体设计的任务总体设计的任务n将系统划分成模块将系统划分成模块n决定每个模块的功能决定每个模块的功能n决定模块的调用关系决定模块的调用关系n决定模块的界面,即模块间传递的数据决定模块的界面,即模块间传递的数据2023/1/215
3、第5页,此课件共112页哦软件总体设计基础软件总体设计基础(P67P67)模块模块 模块就是程序对象的有名字的集合或者说是一模块就是程序对象的有名字的集合或者说是一系列过程的总称系列过程的总称.软件结构软件结构 软件的结构就是软件内部各模块之间的关系表软件的结构就是软件内部各模块之间的关系表示示.总体设计总体设计 总体设计是软件总体结构的设计总体设计是软件总体结构的设计.详细设计详细设计 详细设计是软件模块内部的过程设计详细设计是软件模块内部的过程设计.2023/1/216第6页,此课件共112页哦控制结构控制结构(程序结构程序结构)控制结构是软件模块间控制结构是软件模块间关系的表示关系的表示
4、2023/1/217第7页,此课件共112页哦控制结构图示控制结构图示(P68)(P68)2023/1/218第8页,此课件共112页哦控制结构的层次规则控制结构的层次规则v只有一个顶层只有一个顶层(0(0层层)模块模块v 0 0层外任一模块都会在它的邻层存在一模块与层外任一模块都会在它的邻层存在一模块与它有关它有关v同层模块间不发生联系同层模块间不发生联系2023/1/219第9页,此课件共112页哦软件结构度量术语软件结构度量术语深深度度宽度宽度扇出扇出扇入扇入(模块的模块的 层数层数)(同一层最大模块数同一层最大模块数)(一个模块一个模块 直接调用直接调用 的模块数的模块数)(调用一个给
5、定模调用一个给定模 块的模块个数块的模块个数)2023/1/2110第10页,此课件共112页哦结构图结构图(SC Structure Chart)(SC Structure Chart)结构图主要成分结构图主要成分(page 69page 69)模块模块用方框表示,方框中写有模块的名字,一个模块的名字用方框表示,方框中写有模块的名字,一个模块的名字应适当地反映这个模块的功能,这就在某种程度上反映了块应适当地反映这个模块的功能,这就在某种程度上反映了块内联系;内联系;调用调用从一个模块指向另一个模块的箭头表示前一模块中从一个模块指向另一个模块的箭头表示前一模块中含有对后一模块的调用;含有对后一
6、模块的调用;数据数据调用箭头旁边的小箭头表示调用时从一个模块传入送调用箭头旁边的小箭头表示调用时从一个模块传入送给另一个模块的数据,小箭头也指出了传送的方向。给另一个模块的数据,小箭头也指出了传送的方向。2023/1/2111第11页,此课件共112页哦结构图结构图(SC Structure Chart)(SC Structure Chart)SDSD方法在概要设计中的主要表达工具方法在概要设计中的主要表达工具约定:约定:编辑学生记录编辑学生记录读学生记录读学生记录学生数据学生数据无此学生无此学生学号学号不加区分的数据不加区分的数据数据信息数据信息控制信息控制信息2023/1/2112第12页
7、,此课件共112页哦SC中的四种模块传入模块传入模块(a)(b)AA传出模块传出模块BB变换模块变换模块(c)CD协调模块协调模块E(d)EFF2023/1/2113第13页,此课件共112页哦SC中的选择调用ACBDA根据内根据内部判断决定部判断决定是否调用是否调用B BA按另一判按另一判定结果选择调定结果选择调用用C或或D2023/1/2114第14页,此课件共112页哦SC中的循环调用ABCA根据内在的循环重根据内在的循环重复调用复调用B、C等模块等模块2023/1/2115第15页,此课件共112页哦结构图(SC)举例医院管理系统医院管理系统门诊门诊管理管理药房药房管理管理药库药库管理
8、管理病房病房管理管理财务财务管理管理处处方方挂号挂号处理处理挂挂号号费费总总计计挂挂号号单单挂挂号号费费总总计计出库出库处理处理进药进药管理管理病历病历管理管理处方处方管理管理常规常规处理处理2023/1/2116第16页,此课件共112页哦结构图的优点的优点n结构图具有很高的可读性,容易使人理解,也结构图具有很高的可读性,容易使人理解,也容易和用户讨论容易和用户讨论n结构图是自顶向下逐层扩展,能够表达总体一结构图是自顶向下逐层扩展,能够表达总体一级的软件结构级的软件结构n结构图既有严密性,又有灵活性结构图既有严密性,又有灵活性n结构图易于维护和修改结构图易于维护和修改2023/1/2117第
9、17页,此课件共112页哦模块模块n模块是具有一定功能的可以用名词调用的程序模块是具有一定功能的可以用名词调用的程序语句集合,如:语句集合,如:n独立的汇编程序独立的汇编程序nCOBOL的段和节的段和节nPascal过程过程nFORTRAN的子程序的子程序n汇编的宏汇编的宏2023/1/2118第18页,此课件共112页哦模块化模块化(Modularity)(Modularity)模块化是好的软件设计的一个基本准则模块化是好的软件设计的一个基本准则 高层模块高层模块 从整体上把握从整体上把握 问题问题,隐蔽细节隐蔽细节 复杂问题复杂问题 较小问题较小问题 分解分解 可减小解题所需的总的工作可减
10、小解题所需的总的工作分解分解2023/1/2119第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)+C(P2)E(P1+P2)E(P1)+E(P2)各个击破各个击破理论理论2023/1/2120第20页,此课件共112页哦模块度模块度成成本本或或工工作作量量模块数量模块数量软件总成本软件
11、总成本集成成本集成成本成本成本/模块模块M最小成本区域最小成本区域2023/1/2121第21页,此课件共112页哦模块的特征模块的特征(P72P72)抽象抽象 抽象是抽出事物的本质特性而暂时不考虑他抽象是抽出事物的本质特性而暂时不考虑他们的细节们的细节.信息隐蔽信息隐蔽 模块所包含的信息,不允许其它不需要这模块所包含的信息,不允许其它不需要这些信息的模块访问,独立的模块间仅仅交些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息换为完成系统功能而必须交换的信息。2023/1/2122第22页,此课件共112页哦模块独立性度量模块独立性度量(P73P73)模块独立的概念模块独立
12、的概念 模块独立是指该模块能完成一个相对独立的特模块独立是指该模块能完成一个相对独立的特定子功能定子功能,并且与其他模块之间的接口很简单并且与其他模块之间的接口很简单.模块独立是软件设计模块化、抽象和信息隐蔽模块独立是软件设计模块化、抽象和信息隐蔽的直接结果的直接结果.独立的优势独立的优势 1.具有独立模块的软件比较容易开发具有独立模块的软件比较容易开发,接口简接口简化,有利于团队合作化,有利于团队合作.2.独立的模块比较容易测试和维护独立的模块比较容易测试和维护.2023/1/2123第23页,此课件共112页哦衡量独立性标准衡量独立性标准(P73P73)聚合聚合 聚合是衡量一个模块内部各个
13、元素之间聚合是衡量一个模块内部各个元素之间的彼此结合的紧密程度的彼此结合的紧密程度.耦合耦合 耦合是衡量不同模块之间相互依赖的紧耦合是衡量不同模块之间相互依赖的紧密程度密程度.2023/1/2124第24页,此课件共112页哦独立性理想目标独立性理想目标理想目标理想目标:低耦合、高聚合低耦合、高聚合2023/1/2125第25页,此课件共112页哦块内联系块内联系(聚合聚合)n偶然聚合偶然聚合n逻辑聚合逻辑聚合n时间聚合时间聚合n通信聚合通信聚合n顺序聚合顺序聚合n功能聚合功能聚合2023/1/2126第26页,此课件共112页哦偶然聚合偶然聚合(巧合聚合巧合聚合)P PQ QS ST TMO
14、VE A TO BMOVE A TO BREAD CARD FILEREAD CARD FILEMOVE C TO DMOVE C TO D模块模块T T中的三个语句没有任何联系中的三个语句没有任何联系缺点:可理解性差,缺点:可理解性差,可修改性差可修改性差例例:2023/1/2127第27页,此课件共112页哦逻辑聚合逻辑聚合n把几种相关功能(逻辑上相似的功能)组合把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数在一模块内,每次调用由传给模块的参数确定执行哪种功能。确定执行哪种功能。2023/1/2128第28页,此课件共112页哦逻辑聚合模块逻辑聚合模块ABCEF
15、GABCEFGA1B1C1EFGEFG模块内部逻辑模块内部逻辑E E、F F、G G逻辑逻辑功能相似,组功能相似,组成新模块成新模块EFGEFG缺点缺点:增强了耦合程度增强了耦合程度(控制耦合控制耦合)不易修改,效率低不易修改,效率低公用代码段公用代码段公用代码段公用代码段2023/1/2129第29页,此课件共112页哦时间聚合时间聚合(经典聚合经典聚合)模块完成的功能必须在同一时间模块完成的功能必须在同一时间内执行,这些功能只因时间因素内执行,这些功能只因时间因素关联在一起。关联在一起。例如例如:初始化系统模块、初始化系统模块、系统结束模块、系统结束模块、紧急故障处理模块等均是时间性聚合紧
16、急故障处理模块等均是时间性聚合 模块模块.2023/1/2130第30页,此课件共112页哦通信聚合通信聚合一个模块内各个组成部分的处理动作都使一个模块内各个组成部分的处理动作都使用相同的输入数据或产生相同的输出数用相同的输入数据或产生相同的输出数据据.2023/1/2131第31页,此课件共112页哦通信通信聚合聚合模块例模块例产生工资产生工资报表报表计算平均计算平均工资工资职工工资职工工资记录记录职工工资报职工工资报表表平均工资平均工资产生职工工资报表并计算平均工资模块产生职工工资报表并计算平均工资模块2023/1/2132第32页,此课件共112页哦顺序聚合顺序聚合模块内各处理成分相关,
17、模块内各处理成分相关,且必须以特定次序执行且必须以特定次序执行2023/1/2133第33页,此课件共112页哦顺序聚合模块顺序聚合模块读入读入成绩单成绩单审查审查成绩单成绩单统计统计成绩成绩打印打印成绩成绩读入并审查成绩读入并审查成绩单单统计并打印成绩统计并打印成绩单单2023/1/2134第34页,此课件共112页哦功能功能聚合聚合n模块仅包括为完成某个功能所必须的所有模块仅包括为完成某个功能所必须的所有成分。成分。n模块所有成分共同完成一个功模块所有成分共同完成一个功 能,缺一不可能,缺一不可聚合性最强聚合性最强2023/1/2135第35页,此课件共112页哦模块间联系模块间联系(耦合
18、耦合)(P73)n非直接耦合非直接耦合n数据耦合数据耦合n特征耦合特征耦合n控制耦合控制耦合n公共耦合公共耦合n内容耦合内容耦合2023/1/2136第36页,此课件共112页哦非直接耦合非直接耦合 两个模块没有直接关系两个模块没有直接关系(模块模块1 1和模和模块块2)2),模块独立性最强。,模块独立性最强。模块模块1 1模块模块2 2模块模块3 3模块模块4 42023/1/2137第37页,此课件共112页哦数据耦合数据耦合 一模块调用另一模块时,被调用模块一模块调用另一模块时,被调用模块的输入、输出都是简单的数据的输入、输出都是简单的数据(若干参数若干参数)。属松散耦合。属松散耦合。3
19、8第38页,此课件共112页哦数据耦合举例数据耦合举例开发票开发票计算水费计算水费单价单价数量数量金额金额39第39页,此课件共112页哦特征耦合特征耦合 两个模块与同一个数据结构(包括若两个模块与同一个数据结构(包括若干个数据项)有关。干个数据项)有关。40第40页,此课件共112页哦控制耦合控制耦合 一模块向下属模块传递的信息一模块向下属模块传递的信息(开开关量、标志等控制被调用模块决策的变关量、标志等控制被调用模块决策的变量量)控制了被调用模块的内部逻辑。控制了被调用模块的内部逻辑。41第41页,此课件共112页哦控制耦合举例A A计算平均分计算平均分或最高分或最高分B B平均平均/最高
20、最高(控制信号控制信号)成绩成绩读入分数读入分数输出结果输出结果计算平均分计算平均分 计算最高计算最高分分平均平均/最高最高?B B42第42页,此课件共112页哦控制耦合增加了理解和编程的复杂性,调控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加用模块必须知道被调模块的内部逻辑,增加了相互依赖了相互依赖(1)(1)将被调用模块内的判定上移到调用模块中进将被调用模块内的判定上移到调用模块中进行行(2)(2)被调用模块分解成若干单一功能模块被调用模块分解成若干单一功能模块去除模块间控制耦合的方法去除模块间控制耦合的方法43第43页,此课件共112页哦改控制耦合为数据耦合
21、举例改控制耦合为数据耦合举例A A计算平均分计算平均分B1B1平均成绩平均成绩最高成绩最高成绩计算最高分计算最高分B2B244第44页,此课件共112页哦 公共耦合公共耦合(公共数据区耦合公共数据区耦合)一组模块引用同一个公用数据区一组模块引用同一个公用数据区(也称全局数也称全局数据区、公共数据环境据区、公共数据环境)。公共数据区公共数据区指:指:n 全局数据结构全局数据结构n 共享通讯区共享通讯区n 内存公共覆盖区等内存公共覆盖区等45第45页,此课件共112页哦公共耦合举例公共耦合举例公共数据区公共数据区C CC CB B模块模块A A、B B、C C间存在错综复杂的联系间存在错综复杂的联
22、系46第46页,此课件共112页哦(1)(1)软件可理解性降低软件可理解性降低(2)(2)诊断错误困难诊断错误困难(3)(3)软件可维护性差,软件可维护性差,(4)(4)软件可靠性差软件可靠性差(公共数据区及全程变量无保护措施公共数据区及全程变量无保护措施)慎用公共数据区和全程变量慎用公共数据区和全程变量!公共耦合存在的问题公共耦合存在的问题47第47页,此课件共112页哦内容耦合内容耦合一模块直接访问一模块直接访问另一模块的内部另一模块的内部信息信息(程序代码程序代码或数据)或数据)最不好的耦合形式最不好的耦合形式 !ABAB模块代码重模块代码重叠叠Entry1 Entry1 多入口模块多入
23、口模块48第48页,此课件共112页哦无耦合没有依赖关系无耦合没有依赖关系松散耦合有松散耦合有少量依赖关系少量依赖关系紧密耦合有紧密耦合有很多依赖关系很多依赖关系图形表示耦合关系图形表示耦合关系2023/1/2149第49页,此课件共112页哦耦合强度依赖的因素:耦合强度依赖的因素:一模块对另一模块的引用一模块对另一模块的引用一模块向另一模块传递的数据量一模块向另一模块传递的数据量一模块施加到另一模块的控制的数量一模块施加到另一模块的控制的数量模块间接口的复杂程度模块间接口的复杂程度2023/1/2150第50页,此课件共112页哦模块间耦合的类型模块间耦合的类型 低低 无直接耦合无直接耦合耦
24、耦 数据耦合数据耦合合合 标记耦合标记耦合性性 控制耦合控制耦合 外部耦合外部耦合 公共耦合公共耦合 高高 内容耦合内容耦合模模块块独独立立性性弱弱(低耦合低耦合)强强(中耦合中耦合)(较强耦合较强耦合)(强耦合强耦合)2023/1/2151第51页,此课件共112页哦耦合、聚合与模块独立性关系耦合、聚合与模块独立性关系n耦合与聚合都是模块独立性的定性标准,耦合与聚合都是模块独立性的定性标准,都反映模块独立性的良好程度。但耦合是都反映模块独立性的良好程度。但耦合是直接的主导因素,聚合则辅助耦合共同对直接的主导因素,聚合则辅助耦合共同对模块独立性进行衡量。模块独立性进行衡量。2023/1/215
25、2第52页,此课件共112页哦改进软件结构设计的指导原则改进软件结构设计的指导原则(软件结构设计的启发式规则)(1)(1)评价软件初始结构评价软件初始结构,通过模块的分解与合并减通过模块的分解与合并减少模块之间的耦合度少模块之间的耦合度,增加聚合度增加聚合度(2)(2)模块功能的完善化模块功能的完善化(3)(3)将模块的作用限制在模块的控制范围内将模块的作用限制在模块的控制范围内(4)(4)深度、宽度、扇出和扇入适中深度、宽度、扇出和扇入适中(5)(5)模块大小适中模块大小适中(6)(6)降低模块接口的复杂性降低模块接口的复杂性(7)(7)模块功能可预测模块功能可预测(8)(8)避免模块的病态
26、连接,力争单入口,单出口避免模块的病态连接,力争单入口,单出口2023/1/2153第53页,此课件共112页哦(1)模块分解、合并,消除重复功能Q1Q1C CQ2Q2C CQ1Q1Q2Q2C C改进前改进前Q1Q1、Q2Q2功功能相似能相似X XY YQQX XY YX XY Y重复部分重复部分改进方法改进方法1 1:将将Q1Q1、Q2Q2合并为合并为Q Q不可取不可取改进方法改进方法2 2:将将Q1Q1、Q2Q2的公共的公共部分分离出来部分分离出来2023/1/2154第54页,此课件共112页哦(2)(2)模块功能的完善化模块功能的完善化完整的模块应包括三部分:完整的模块应包括三部分:(
27、1)(1)执行规定功能部分执行规定功能部分(2)(2)出错处理部分出错处理部分(3)(3)需返回给调用者数据时,需返回给调用者数据时,返回是否正确结束标志。返回是否正确结束标志。2023/1/2155第55页,此课件共112页哦(3)(3)系统结构的作用范围和控制范围系统结构的作用范围和控制范围n系统中某一层上模块中的判定或者条件语句系统中某一层上模块中的判定或者条件语句(例如(例如If语句)在系统中会产生多种后果,根语句)在系统中会产生多种后果,根据该判定的结果去执行或不执行其他层的某个据该判定的结果去执行或不执行其他层的某个模块。模块。n该模块就是该模块就是“条件依赖条件依赖”于某个判定于
28、某个判定n判定的判定的“作用范围作用范围”是指包含是指包含“条件依赖条件依赖”于于该判定的处理的全部模块该判定的处理的全部模块n一个模块的一个模块的“控制范围控制范围”是指模块本身和它的是指模块本身和它的全体子模块全体子模块2023/1/2156第56页,此课件共112页哦将模块的作用限制将模块的作用限制 在模块的控制范围内在模块的控制范围内CHDEGXFAILJKB模块模块C C的控制范围的控制范围:C、D、E、F、G、H如果模块如果模块C C 作出的决作出的决策影响了模策影响了模块块L L,L L超出超出了了C C 的控制的控制范围范围2023/1/2157第57页,此课件共112页哦作用
29、范围和控制范围作用范围和控制范围n作用范围应该是这个判定所在模块的控制范作用范围应该是这个判定所在模块的控制范围的一个子集围的一个子集n但是实际上,在系统中控制范围和作用范围的但是实际上,在系统中控制范围和作用范围的关系常常并非如此。关系常常并非如此。2023/1/2158第58页,此课件共112页哦作用范围和控制范围作用范围和控制范围TopAYBB1X作用范围作用范围TopABB1B2XTopYABXAYBB1B2X判定判定图图1.作用范围在控制范围之外作用范围在控制范围之外图图2.作用范围在控制范围之内,但判定位置太高作用范围在控制范围之内,但判定位置太高图图3.作用范围在控制范围之内,正
30、确实现作用范围在控制范围之内,正确实现 图图4.理想的作用范围和控制范围理想的作用范围和控制范围第59页,此课件共112页哦(4)(4)减少高扇出争取高扇入减少高扇出争取高扇入编外编外人员人员工资工资取得取得工资工资数据数据 计时计时制工制工资额资额薪金薪金制工制工资额资额编外编外人员人员税款税款编外编外人员人员扣款扣款常规常规扣款扣款税收税收扣款扣款计算实发工资计算实发工资避免平铺结构2023/1/2160第60页,此课件共112页哦增加中间层降低扇出增加中间层降低扇出编外编外人员人员工资工资取得工取得工资数据资数据 计时计时制工制工资额资额薪金薪金制工制工资额资额编外编外人员人员税款税款编
31、外编外人员人员扣款扣款常规常规扣款扣款税收税收扣款扣款计算实发工资计算实发工资计时工人计时工人实发工资实发工资计薪工人计薪工人实发工资实发工资编外人员编外人员实发工资实发工资2023/1/2161第61页,此课件共112页哦(5)(5)模块大小适中模块大小适中模块过大:可理解程度下降模块过大:可理解程度下降模块过小:开销大于有效操作模块过小:开销大于有效操作 系统接口复杂系统接口复杂2023/1/2162第62页,此课件共112页哦(6)(6)降低模块接口的复杂性降低模块接口的复杂性n接口传递信息应简单且和模块功能一致。接口传递信息应简单且和模块功能一致。2023/1/2163第63页,此课件
32、共112页哦(7)(7)模块功能可预测模块功能可预测模块看成黑盒子,相同输入产生相同输模块看成黑盒子,相同输入产生相同输出,其功能为可预测的。出,其功能为可预测的。模块带有内部状态其功能可能是不可预测模块带有内部状态其功能可能是不可预测的。难理解、难测试、难维护。的。难理解、难测试、难维护。2023/1/2164第64页,此课件共112页哦防止模块功能过分局限防止模块功能过分局限 功能单一的模块具有高内聚。功能单一的模块具有高内聚。但如任意限制局部数据结构的但如任意限制局部数据结构的大小,过分限制控制流中可做的选大小,过分限制控制流中可做的选择或外部接口的模式,模块功能就择或外部接口的模式,模
33、块功能就过分局限,使用范围过分狭窄,缺过分局限,使用范围过分狭窄,缺乏灵活性和可扩充性。乏灵活性和可扩充性。2023/1/2165第65页,此课件共112页哦(8)(8)避免模块的病态连接,力争单入口,避免模块的病态连接,力争单入口,单出口单出口防止指向模块中间的分支或引用防止指向模块中间的分支或引用(针对内容耦合)(针对内容耦合)2023/1/2166第66页,此课件共112页哦结构化软件设计结构化软件设计2023/1/2167第67页,此课件共112页哦面向数据流的设计方法面向数据流的设计方法nSD以数据流图为基础,它定义了把数据流图以数据流图为基础,它定义了把数据流图(DFD)变换成变换
34、成软件结构软件结构的不同的不同映射映射方法方法映射映射数据流图数据流图DFD(问题结构问题结构)软件系统的结构软件系统的结构(程序结构程序结构)2023/1/2168第68页,此课件共112页哦系统结构特征可归纳为两种典型形系统结构特征可归纳为两种典型形式式因为因为数据流图可分为两种类型数据流图可分为两种类型:n变换型数据流变换型数据流n事务型数据流事务型数据流所以所以结构化软件设计分为两种类型:结构化软件设计分为两种类型:n变换型结构设计变换型结构设计(主要主要)n事务型结构设计事务型结构设计(次要次要)2023/1/2169第69页,此课件共112页哦数据流图数据流图 基本模型(基本模型(
35、DFDDFD)变换型变换型数据流数据流 结构结构事务型事务型数据流数据流 结构结构传入传入变换变换传出传出中心中心变换变换传入传入部分部分传出传出部分部分事务事务分析分析事务事务中心中心动作动作 1 1动作动作 2 2动作动作 3 3接受接受接受接受部分部分2023/1/2170第70页,此课件共112页哦变换型数据流图举例变换型数据流图举例输入输入信息信息物理物理输入输入格式格式检查检查处理处理显示显示正确正确信息信息结果结果物理物理输出输出数据数据中心变换中心变换逻辑逻辑输入输入逻辑逻辑输出输出传入部分传入部分传出部分传出部分特点:具有明确的传入、变换特点:具有明确的传入、变换(或称主加或
36、称主加 工工)和传出界面的和传出界面的DFD2023/1/2171第71页,此课件共112页哦事务型数据流图举例事务型数据流图举例IMLNOABCDFEGH2023/1/2172第72页,此课件共112页哦大型系统大型系统DFDDFD中中,变换型和事务型结构变换型和事务型结构往往共存往往共存:T T事务中心事务中心传入传入变换变换传出传出2023/1/2173第73页,此课件共112页哦中心中心变换变换输入输入输出输出变换型结构软件设计事务事务中心中心接受接受路径路径动动作作路路径径事务型 结构软件设计由输入、中心变由输入、中心变换和输出三部分换和输出三部分组成组成具有在多种事务具有在多种事务
37、中选择执行某类中选择执行某类事物的能力事物的能力结构化软件设计结构化软件设计 基本模型基本模型 特征特征第74页,此课件共112页哦面向数据流图设计方法的设计步骤面向数据流图设计方法的设计步骤(1)(1)精化精化DFDDFD(2)(2)确定确定DFDDFD类型类型(3)(3)把把DFDDFD映射到系统模块结构,设计映射到系统模块结构,设计 出模块结构的上层出模块结构的上层(4)(4)基于基于DFDDFD逐步分解高层模块,设计逐步分解高层模块,设计 出下层模块出下层模块(5)(5)根据模块独立性原理,精化模根据模块独立性原理,精化模 块结构块结构(6)(6)模块接口描述模块接口描述2023/1/
38、2175第75页,此课件共112页哦面向数据流图方法的设计过程面向数据流图方法的设计过程精化数据流图精化数据流图区分事务中心区分事务中心和数据接收路径和数据接收路径映射成变换结构映射成变换结构流类型流类型区分输入和区分输入和输出分支输出分支映射成事务结构映射成事务结构用启发式设计规则精化软件结构用启发式设计规则精化软件结构导出接口描述和全程数据结构导出接口描述和全程数据结构复查复查详细设计详细设计“事务事务”“变换变换”事务分析事务分析变换分析变换分析第76页,此课件共112页哦SDSD方法的两种映射过渡方法方法的两种映射过渡方法变换型变换型DFD事务型事务型DFD初始初始SC初始初始SC变换
39、分析变换分析事务分析事务分析2023/1/2177第77页,此课件共112页哦初始的初始的SCSC主模块主模块输入模块输入模块主加工模块主加工模块输出模块输出模块事务控制模块事务控制模块接受模块接受模块动作发送模块动作发送模块动作动作1 1模块模块动作动作2 2模块模块动作动作3 3模块模块由变换分由变换分析产生析产生由事务分由事务分析产生析产生2023/1/2178第78页,此课件共112页哦(1)(1)变换分析设计方法变换分析设计方法步骤:步骤:(1)(1)区分传入、变换中心、区分传入、变换中心、传出部分,在传出部分,在 DFD 上上 标明分界线标明分界线2023/1/2179第79页,此
40、课件共112页哦BCADEQPRWUVabcedrpuwv变换中心变换中心传入传入部分部分传出传出部分部分第80页,此课件共112页哦变换分析设计方法变换分析设计方法n步骤:(2)(2)第一级分解第一级分解(建立初始建立初始SCSC框架框架)设计顶层和第一层模块设计顶层和第一层模块2023/1/2181第81页,此课件共112页哦第一级分解的方法第一级分解的方法MCMTMAME第82页,此课件共112页哦第一级分解后的第一级分解后的SCSCMCMTMAME第一层第一层顶层顶层c,ec,eu,wu,w传入模块传入模块传出模块传出模块中心变中心变换模块换模块2023/1/2183第83页,此课件共
41、112页哦变换分析设计方法变换分析设计方法n步骤:(3)(3)第二级分解第二级分解(分解分解SCSC各分支各分支)自顶向下分解,设计出每个分支的中、下自顶向下分解,设计出每个分支的中、下层模块层模块2023/1/2184第84页,此课件共112页哦传入分支的分解传入分支的分解(1)(1)MACBAbacEDdec,e2023/1/2185第85页,此课件共112页哦传入分支的分解传入分支的分解(2)(2)MAGet C CbacRead Ddec,eB to CbcdeabGet E EGet BD to EA to BRead A2023/1/2186第86页,此课件共112页哦传出分支的分
42、解传出分支的分解MEWWrite Vuuw,uvvvPut UU to VMEUWrite Wwwuw,uV(1)(1)(2)(2)2023/1/2187第87页,此课件共112页哦中心加工分支的分解中心加工分支的分解MTPQRec,pru,wpr2023/1/2188第88页,此课件共112页哦(2)(2)事务分析设计方法事务分析设计方法任何情况下都可使用变换分析方法设任何情况下都可使用变换分析方法设计软件结构,但如数据流具有明显的事务计软件结构,但如数据流具有明显的事务特点时特点时(有一个明显的事务中心有一个明显的事务中心),),以采用以采用事务分析方法为宜。事务分析方法为宜。2023/1
43、/2189第89页,此课件共112页哦事务分析设计方法事务分析设计方法n步骤:(1)(1)在在DFDDFD上确定上确定事务中心事务中心、接收部接收部 分分和和发送部分发送部分。(2)(2)画出画出SCSC框架,把框架,把DFDDFD上的三部分上的三部分 分别映射为分别映射为事务控制模块事务控制模块、接收接收 模块模块和和动作发送模块动作发送模块。(3)(3)分解细化接收分支和发送分支,分解细化接收分支和发送分支,完成初始完成初始SCSC。2023/1/2190第90页,此课件共112页哦用户命令交互子系统用户命令交互子系统读用户读用户命令命令密码命令密码命令密码密码显示显示信息信息系统参数数系
44、统参数数据据用户用户命令命令读系统读系统数据数据配置信息配置信息显示信息显示信息和状态和状态命令命令分析处理分析处理读读密码密码命令命令类型类型开开/关关命令命令建立配建立配置文件置文件原配置原配置数据数据激活激活/非活动系统非活动系统与文件中与文件中密码比较密码比较格式化格式化配置数据配置数据配置配置命令命令检验信检验信息过程息过程重试重试信息信息四位四位数字数字检验检验信息信息检验信检验信息息A/DA/D信信息息格式化配格式化配置置数据数据格式化格式化配置数据配置数据第91页,此课件共112页哦初始的初始的SCSC主模块主模块输入模块输入模块主加工模块主加工模块输入模块输入模块事务控制模块
45、事务控制模块接受模块接受模块动作发送模块动作发送模块动作动作1 1模块模块动作动作2 2模块模块动作动作3 3模块模块由变换分由变换分析产生析产生由事务分由事务分析产生析产生2023/1/2192第92页,此课件共112页哦事务分析的映射方法事务分析的映射方法总控调度C路径B路径A路径A路径B路径C C路径路径接收接收路径路径2023/1/2193第93页,此课件共112页哦用户命令交互子系统初始的用户命令交互子系统初始的SCSC用户执行模块用户执行模块读用户命令读用户命令命令处理命令处理密码处理密码处理控制器控制器现用现用/非现用非现用系统系统系统设置系统设置控制器控制器2023/1/219
46、4第94页,此课件共112页哦用户命令交互子系统用户命令交互子系统读用户读用户命令命令密码命令密码命令密码密码显示显示信息信息系统参数系统参数数据数据用户用户命令命令读系统读系统数据数据配置信息配置信息显示信息显示信息和状态和状态命令命令分析处理分析处理读读密码密码命令类命令类型型开开/关关命令命令建立配建立配置文件置文件原配置原配置数据数据激活激活/非活动系统非活动系统与文件中与文件中密码比较密码比较格式化格式化配置数据配置数据配置配置命令命令检验信检验信息过程息过程重试信重试信息息四位四位数字数字检验检验信息信息检验检验信息信息A/DA/D信信息息格式化格式化配置配置数据数据格式化格式化配
47、置数据配置数据第95页,此课件共112页哦用户命令交互子系统的用户命令交互子系统的SC用户执行模块用户执行模块读用户命令读用户命令命令处理命令处理密码处理密码处理控制器控制器现用现用/非现用非现用系统系统系统设置系统设置控制器控制器读系统读系统数据数据建立配建立配置文件置文件显示信息显示信息与状态与状态2023/1/2196第96页,此课件共112页哦用户命令交互子系统用户命令交互子系统读用户读用户命令命令密码命令密码命令密码密码显示信显示信息息系统参数系统参数数据数据用户用户命令命令读系统读系统数据数据配置信息配置信息显示信息显示信息和状态和状态命令命令分析处理分析处理读读密码密码命令类命令
48、类型型开开/关关命令命令建立配建立配置文件置文件原配置原配置数据数据激活激活/非活动系统非活动系统与文件中与文件中密码比较密码比较格式化格式化配置数据配置数据配置配置命令命令检验信检验信息过程息过程重试信重试信息息四位数四位数字字检验信检验信息息检验检验信息信息A/DA/D信信息息格式化格式化配置配置数据数据格式化格式化配置数据配置数据第97页,此课件共112页哦用户命令交互子系统的用户命令交互子系统的SC用户执行模块用户执行模块读用户命令读用户命令命令处理命令处理密码处理密码处理控制器控制器现用现用/非现用非现用系统系统系统设置系统设置控制器控制器读系统读系统数据数据建立配建立配置文件置文件
49、显示信息显示信息与状态与状态读读密码密码用文件用文件比较密码比较密码密码输出密码输出控制器控制器产生产生无效信息无效信息2023/1/2198第98页,此课件共112页哦事务流设计举例事务流设计举例IMLNABCDFEG事务中心事务中心2023/1/2199第99页,此课件共112页哦事务流设计举例事务流设计举例 取取 A 总控总控ALMNGDBCFE(主模块)(主模块)事务加工模块事务加工模块2023/1/21100第100页,此课件共112页哦动作分支的典型结构动作分支的典型结构PT 2T 1T iA 2D 2A 1D 1A 3A jD k事务层事务层操作层操作层细节层细节层处理层处理层主
50、模块主模块事务加事务加工模块工模块操作操作模块模块细节细节模块模块2023/1/21101第101页,此课件共112页哦事务流设计举例事务流设计举例 取 A 总控总控ALMNGDBCFE动作动作1 1动作动作n n.细节模块细节模块1 1细节模块细节模块2 2.(操作模块)(操作模块)(细节模块)(细节模块)2023/1/21102第102页,此课件共112页哦事务型数据流图举例事务型数据流图举例IMLNOABCDFEGH2023/1/21103第103页,此课件共112页哦事务流设计举例事务流设计举例(另一种画法另一种画法)输入 AXX系统系统变换控制变换控制ALMAGDBCFE 输出 E、