结构化设计方法.ppt





《结构化设计方法.ppt》由会员分享,可在线阅读,更多相关《结构化设计方法.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、结构化设计方法 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望将分析模型转换为软件设计将分析模型转换为软件设计将分析模型转换为软件设计将分析模型转换为软件设计数据数据字典字典数据数据流图流图E-RE-R图图状态变迁图状态变迁图加加加加工工工工说说说说明明明明控制说明控制说明控制说明控制说明数数据据对对说说 明明 象象数数 据据 设设 计计体系结构设计体系结构设计接口设计接口设计过程设计过程设计分析模型分析模型设计模型设计模型4.2.1 4.2.1 软件设计的概念和
2、原理软件设计的概念和原理 1.1.软件结构软件结构 2.2.软件过程软件过程 3.3.模块化模块化 4.4.抽象抽象 5.5.信息隐蔽信息隐蔽 6.6.信息局部化信息局部化4.2.6 4.2.6 模块的独立性模块的独立性模块独立的含义:模块独立的含义:模块完成独立的功能模块完成独立的功能符合信息隐蔽和信息局部化原则符合信息隐蔽和信息局部化原则模块间关连和依赖程度尽量小模块间关连和依赖程度尽量小模块独立性的度量模块独立性的度量 模块独立性取决于模块的内部和模块独立性取决于模块的内部和外部特征。外部特征。SDSD方法提出的定性的度量标准:方法提出的定性的度量标准:模块之间的模块之间的耦合性耦合性
3、模块自身的模块自身的内聚性内聚性模块间耦合的类型:模块间耦合的类型:低低 无无直接耦合直接耦合耦耦 数据耦合数据耦合合合 标记耦合标记耦合性性 控制耦合控制耦合 外部耦合外部耦合 公共耦合公共耦合 高高 内容耦合内容耦合模模块块独独立立性性弱弱(低耦合低耦合)强强(中耦合中耦合)(较强耦合较强耦合)(强耦合强耦合)(1)(1)无无直接耦合直接耦合 两个模块没有直接关系两个模块没有直接关系(模块模块1 1和和模块模块2)2),模块独立性最强。,模块独立性最强。模块模块1 1模块模块2 2模块模块3 3模块模块4 4(2)(2)数据耦合数据耦合 一模块调用另一模块一模块调用另一模块时,被调用模块的
4、输入、时,被调用模块的输入、输出都是简单的数据输出都是简单的数据(若干若干参数参数)。属松散耦合。属松散耦合。数据耦合举例数据耦合举例开发票开发票计算水费计算水费单价单价数量数量金额金额(3)3)标记耦合标记耦合(特征耦合特征耦合)如两个模块通过传递如两个模块通过传递数据结构数据结构(不是简单数据不是简单数据,而是记录、数组而是记录、数组等等)加以联系加以联系,或都与一个或都与一个数据数据结构结构有关系有关系,则称这两个模块则称这两个模块间存在标记偶合间存在标记偶合。标记耦合举例标记耦合举例计算水电费计算水电费计算水费计算水费计算电费计算电费住户情况住户情况水费水费电费电费住户情况住户情况“住
5、户情况住户情况”是一个是一个数据结构数据结构,图中模块都图中模块都与此数据结构有关与此数据结构有关.“计算水费计算水费”和和“计算电费计算电费”本无关本无关,由于由于引用了此数据结构产生依赖关系引用了此数据结构产生依赖关系,它们之间它们之间也是标记偶合也是标记偶合.将标记耦合修改为将标记耦合修改为数据耦合举例数据耦合举例计算水电费计算水电费计算水费计算水费计算电费计算电费本月本月用水量用水量本月本月用电量用电量水费水费电费电费(4)(4)控制耦合控制耦合 一模块一模块向下属模块传递的信向下属模块传递的信息息 (开关量、标志等控制开关量、标志等控制被被调用模块决策的变量调用模块决策的变量)控制控
6、制了被调用了被调用模块的模块的内部逻辑内部逻辑。控制耦合举例A A计算平均分计算平均分或最高分或最高分B B平均平均/最高最高(控制信号控制信号)成绩成绩读入分数读入分数输出结果输出结果计算平均分计算平均分计算最高分计算最高分平均平均/最高最高?B B控制耦合增加了理解和编程的复控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖块的内部逻辑,增加了相互依赖去除模块间控制耦合的方法:去除模块间控制耦合的方法:(1)(1)将被调用模块内的判定上移到调将被调用模块内的判定上移到调 用模块中进行用模块中进行(2)(2)被调用模块分解成若干单
7、一功被调用模块分解成若干单一功 能模块能模块改控制耦合为数据耦合举例改控制耦合为数据耦合举例A A计算平均分计算平均分B1B1平均成绩最高成绩计算最高分计算最高分B2B2(5)(5)外部耦合外部耦合一组模块均与同一外部环境关联一组模块均与同一外部环境关联(例如例如,I/O,I/O模块与特定的设备、模块与特定的设备、格式和通信协议相关联格式和通信协议相关联),),它们之它们之间便存在外部耦合间便存在外部耦合。外部偶合必不可少外部偶合必不可少,但这种模块但这种模块数目应尽量少数目应尽量少。(6)(6)公共耦合公共耦合(公共数据区耦合公共数据区耦合)一组模块引用同一个公用数据区一组模块引用同一个公用
8、数据区(也称全局数据区、公共数据环境也称全局数据区、公共数据环境)。公共数据区公共数据区指:指:F 全局数据结构全局数据结构F 共享通讯区共享通讯区F 内存公共覆盖区等内存公共覆盖区等公共耦合举例公共耦合举例公共数据区公共数据区C CB B模块模块模块模块A AA A、B BB B、C CC C间存在错综复杂的联系间存在错综复杂的联系间存在错综复杂的联系间存在错综复杂的联系(1)(1)软件可理解性降低软件可理解性降低(2)(2)诊断错误困难诊断错误困难(3)(3)软件可维护性差软件可维护性差,(4)(4)软件可靠性差软件可靠性差(公共数据区及全程变量无保护措施公共数据区及全程变量无保护措施)慎
9、用公共数据区和全程变量慎用公共数据区和全程变量!公共耦合存在的问题:公共耦合存在的问题:(7)(7)内容耦合内容耦合一模块直接访问一模块直接访问一模块直接访问一模块直接访问另一模块的内部另一模块的内部另一模块的内部另一模块的内部信息信息信息信息(程序代码程序代码程序代码程序代码或数据)或数据)或数据)或数据)最不好的耦合形式最不好的耦合形式最不好的耦合形式最不好的耦合形式 !AABBAABB模块代码重叠模块代码重叠模块代码重叠模块代码重叠Entry1Entry1 Entry1Entry1 多入口模块多入口模块多入口模块多入口模块模块化设计的原则和目标模块化设计的原则和目标 耦合是影响软件复杂程
10、度和设耦合是影响软件复杂程度和设计质量的重要因素计质量的重要因素目标目标:建立模块间耦合度尽可能:建立模块间耦合度尽可能松散的系统松散的系统如何降低模块间耦合度如何降低模块间耦合度:(1)(1)尽量使用数据耦合尽量使用数据耦合少用控制耦合少用控制耦合限制公共耦合的范围限制公共耦合的范围坚决避免使用内容耦合坚决避免使用内容耦合(2)(2)降低接口的复杂性降低接口的复杂性2.2.模块独立性的度量之二:内聚性模块独立性的度量之二:内聚性 一个模块内部元素在功能上相互一个模块内部元素在功能上相互关联的强度关联的强度 设计目标:高内聚设计目标:高内聚 (模块模块在软件过程中在软件过程中 完成单一的任务完
11、成单一的任务)模块的内聚性类型:模块的内聚性类型:低低 偶然偶然内聚内聚 内内 逻辑内聚逻辑内聚 聚聚 时间内聚时间内聚 性性 过程内聚过程内聚 通信内聚通信内聚 信息内聚信息内聚 高高 功能内聚功能内聚模模块块独独立立性性弱弱(功能分散功能分散)强强(功能单一功能单一)低低内聚内聚模块模块举例举例 为工程分析包执行错误处理的为工程分析包执行错误处理的模块模块,当计算,当计算的数据超出预定义的边界时调用该模块,它完成的数据超出预定义的边界时调用该模块,它完成下列任务:下列任务:(1 1)根据)根据初始初始计算的数据计算补充数据;计算的数据计算补充数据;(2 2)在用户的工作站上生成错误报告;)
12、在用户的工作站上生成错误报告;(3 3)执行用户要求的跟踪计算;)执行用户要求的跟踪计算;(4 4)更新数据库;)更新数据库;(5 5)使选择后续处理的菜单有效。)使选择后续处理的菜单有效。虽然上述任务是松散相关的,但每一项虽然上述任务是松散相关的,但每一项都是独立的功能实体,最好作为独立的都是独立的功能实体,最好作为独立的模模块块完成完成。(1)(1)偶然内聚偶然内聚(巧合内聚巧合内聚)模块内各部分间无联系模块内各部分间无联系ABCMMOVE O TO RREAD FILE FMOVE S TO T模块模块M中的三个语句没有任何联系中的三个语句没有任何联系缺点:缺点:可理解性差可理解性差,可
13、修改性差可修改性差例例:(2)(2)逻辑内聚逻辑内聚 把几种相关功能把几种相关功能(逻辑上相似逻辑上相似 的功能的功能)组合在一模块内组合在一模块内,每每次调用由传给模块的参数确定次调用由传给模块的参数确定执行哪种功能。执行哪种功能。逻辑内聚模块ABCEFGABCEFGA1B1C1EFGEFG模块内部逻辑模块内部逻辑E E、F F、G G逻辑逻辑功能相似,组功能相似,组成新模块成新模块EFGEFG缺点缺点缺点缺点:增强了耦合程度增强了耦合程度增强了耦合程度增强了耦合程度(控制耦合控制耦合控制耦合控制耦合)不易修改,效率低不易修改,效率低不易修改,效率低不易修改,效率低公用代码段公用代码段公用代
14、码段公用代码段(3)(3)时间内聚时间内聚(经典内聚经典内聚)模块完成的功能必须在同一时间模块完成的功能必须在同一时间内执行,这些功能只因时间因素内执行,这些功能只因时间因素关联在一起。关联在一起。例如例如:初始化系统模块、初始化系统模块、系统结束模块、系统结束模块、紧急故障处理模块等均是时间性聚合紧急故障处理模块等均是时间性聚合 模块模块.(4)过程内聚(顺序性组合)模块内各处理成分相关,模块内各处理成分相关,且必须以特定次序执行且必须以特定次序执行过程内聚模块读入读入成绩单成绩单审查审查成绩单成绩单统计统计成绩成绩打印打印成绩成绩读入并审查读入并审查读入并审查读入并审查成绩单成绩单成绩单成
15、绩单统计并打印统计并打印统计并打印统计并打印成绩单成绩单成绩单成绩单(5)通信内聚 模块内各部分使用相同的输模块内各部分使用相同的输入数据,或产生相同的输出入数据,或产生相同的输出结果结果通信内聚模块例产生工产生工资报表资报表计算平计算平均工资均工资职工工职工工资记录资记录职工工职工工资报表资报表平均平均平均平均工资工资工资工资产生职工工资报表并计算平均工资模块产生职工工资报表并计算平均工资模块产生职工工资报表并计算平均工资模块产生职工工资报表并计算平均工资模块(6)(6)信息内聚信息内聚模块完成多个功能,各功能模块完成多个功能,各功能都在同一数据结构上操作,都在同一数据结构上操作,每一功能有
16、唯一入口。每一功能有唯一入口。信息内聚模块符符 号号 表表查找查找 登录登录 删除删除修改修改几个加工同时引用一个共同的数据几个加工同时引用一个共同的数据(7)(7)功能内聚功能内聚 模块仅包括为完成某个功能所必模块仅包括为完成某个功能所必须的所有成分。须的所有成分。(模块所有成分共同完成一个功模块所有成分共同完成一个功 能,缺一不可能,缺一不可)内聚性最强内聚性最强 内聚与耦合密切相关,同其内聚与耦合密切相关,同其它模块强耦合的模块意味者弱内它模块强耦合的模块意味者弱内聚,强内聚模块意味着与其它模聚,强内聚模块意味着与其它模块间松散耦合块间松散耦合.设计目标:设计目标:力争强内聚、弱耦合力争
17、强内聚、弱耦合3.3.耦合、内聚与模块独立性关系耦合、内聚与模块独立性关系 耦合与内聚都是模块独立性的耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良定性标准,都反映模块独立性的良好程度。但耦合是直接的主导因素,好程度。但耦合是直接的主导因素,内聚则辅助耦合共同对模块独立性内聚则辅助耦合共同对模块独立性进行衡量。进行衡量。4.2.7 4.2.7 概要概要设计设计(总体总体设计设计)确定:软件系统的结构软件系统的结构各模块功能及模块间联系各模块功能及模块间联系(接口接口)表示软件表示软件结构的图形工具结构的图形工具结构图结构图层次图层次图和和HIPO图图面向数据流的设计方法面向数据流的设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 设计 方法

限制150内