第四章 软件总体设计优秀课件.ppt
《第四章 软件总体设计优秀课件.ppt》由会员分享,可在线阅读,更多相关《第四章 软件总体设计优秀课件.ppt(112页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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)评价软件初始结构评价软件初始结构,通过模块的分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 软件总体设计优秀课件 第四 软件 总体 设计 优秀 课件
限制150内