《第5章 总体设计精选文档.ppt》由会员分享,可在线阅读,更多相关《第5章 总体设计精选文档.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章 总体设计本讲稿第一页,共五十四页总体设计的任务总体设计的任务 总体设计的任务和目的就是回答总体设计的任务和目的就是回答总体设计的任务和目的就是回答总体设计的任务和目的就是回答“概括地说,系统概括地说,系统概括地说,系统概括地说,系统应该如何实现应该如何实现应该如何实现应该如何实现”这个问题。因此,总体设计还只是系统这个问题。因此,总体设计还只是系统这个问题。因此,总体设计还只是系统这个问题。因此,总体设计还只是系统设计的初步阶段,它的每个元素的描述仍然是黑盒子级。设计的初步阶段,它的每个元素的描述仍然是黑盒子级。设计的初步阶段,它的每个元素的描述仍然是黑盒子级。设计的初步阶段,它的每个
2、元素的描述仍然是黑盒子级。本讲稿第二页,共五十四页 1.1.开发阶段占软件开发总成本开发阶段占软件开发总成本75%75%以上;以上;2.2.软件设计是开发阶段最重要的步骤,是将需求准确地转化为最软件设计是开发阶段最重要的步骤,是将需求准确地转化为最终软件产品唯一途径。终软件产品唯一途径。3.3.软件设计作出的决策,最终影响软件实现的成败;软件设计作出的决策,最终影响软件实现的成败;总体设计的任务总体设计的任务总体设计的任务总体设计的任务本讲稿第三页,共五十四页总体设计的过程总体设计的过程总体设计的过程总体设计的过程 从需求阶段得到数据流图。从需求阶段得到数据流图。从需求阶段得到数据流图。从需求
3、阶段得到数据流图。分析员从供选择的方案中选取若干个合理的方案,为每个分析员从供选择的方案中选取若干个合理的方案,为每个分析员从供选择的方案中选取若干个合理的方案,为每个分析员从供选择的方案中选取若干个合理的方案,为每个 合理的方案都准备一份系统流程图,列出组成系统的所有合理的方案都准备一份系统流程图,列出组成系统的所有合理的方案都准备一份系统流程图,列出组成系统的所有合理的方案都准备一份系统流程图,列出组成系统的所有 物理元素,进行成本物理元素,进行成本物理元素,进行成本物理元素,进行成本/效益分析,并且制定实现这个方案的效益分析,并且制定实现这个方案的效益分析,并且制定实现这个方案的效益分析
4、,并且制定实现这个方案的 进度计划。进度计划。进度计划。进度计划。分析员应该推荐一份最佳方案,并进一步为这个最佳方案分析员应该推荐一份最佳方案,并进一步为这个最佳方案分析员应该推荐一份最佳方案,并进一步为这个最佳方案分析员应该推荐一份最佳方案,并进一步为这个最佳方案 设计软件结构。设计软件结构。设计软件结构。设计软件结构。本讲稿第四页,共五十四页总体设计过程总体设计过程总体设计过程总体设计过程 概要设计概要设计概要设计概要设计 *工程管理工程管理工程管理工程管理 详细设计详细设计详细设计详细设计 数据设计数据设计数据设计数据设计 *技术观点技术观点技术观点技术观点 系统结构设计系统结构设计系统
5、结构设计系统结构设计 过程设计过程设计过程设计过程设计 界面设计界面设计界面设计界面设计 本讲稿第五页,共五十四页 组装并已确认的软件组装并已确认的软件 设计设计 编码编码 测试测试程序程序模块模块信息域需求信息域需求功能性能功能性能需求需求数据设计数据设计过程过程设计设计总总体体结结构构设设计计 开发阶段信息流开发阶段信息流本讲稿第六页,共五十四页总体设计的过程总体设计的过程总体设计的过程总体设计的过程两阶段组成:两阶段组成:两阶段组成:两阶段组成:系统设计,确定系统的具体实现方案系统设计,确定系统的具体实现方案系统设计,确定系统的具体实现方案系统设计,确定系统的具体实现方案 结构设计,确定
6、软件结构。结构设计,确定软件结构。结构设计,确定软件结构。结构设计,确定软件结构。本讲稿第七页,共五十四页总体设计典型过程(一)总体设计典型过程(一)总体设计典型过程(一)总体设计典型过程(一)设想供选择的方案设想供选择的方案设想供选择的方案设想供选择的方案 选取合理的方案选取合理的方案选取合理的方案选取合理的方案 需要配备的四份资料:需要配备的四份资料:需要配备的四份资料:需要配备的四份资料:系统流程图系统流程图系统流程图系统流程图 组成系统的物理元素清单组成系统的物理元素清单组成系统的物理元素清单组成系统的物理元素清单 成本成本成本成本/效益分析效益分析效益分析效益分析 实现这个系统的进度
7、计划实现这个系统的进度计划实现这个系统的进度计划实现这个系统的进度计划 推荐最佳方案推荐最佳方案推荐最佳方案推荐最佳方案 功能分解功能分解功能分解功能分解 分成两阶段:结构设计和过程设计分成两阶段:结构设计和过程设计分成两阶段:结构设计和过程设计分成两阶段:结构设计和过程设计 设计软件结构设计软件结构设计软件结构设计软件结构本讲稿第八页,共五十四页总体设计典型过程(二)总体设计典型过程(二)总体设计典型过程(二)总体设计典型过程(二)数据库设计数据库设计数据库设计数据库设计 包括四个步骤:包括四个步骤:包括四个步骤:包括四个步骤:模式设计模式设计模式设计模式设计 子模式设计子模式设计子模式设计
8、子模式设计 完整形和安全性设计完整形和安全性设计完整形和安全性设计完整形和安全性设计 优化优化优化优化 制定测试计划制定测试计划制定测试计划制定测试计划 书写文档书写文档书写文档书写文档 系统说明系统说明系统说明系统说明 用户手册用户手册用户手册用户手册 测试计划测试计划测试计划测试计划 详细的实现计划详细的实现计划详细的实现计划详细的实现计划 数据库设计结果数据库设计结果数据库设计结果数据库设计结果 审查和复查审查和复查审查和复查审查和复查本讲稿第九页,共五十四页软件设计的概念和原理软件设计的概念和原理软件设计的概念和原理软件设计的概念和原理 模块化:就是把程序化分成若干个模块,每个模块模块
9、化:就是把程序化分成若干个模块,每个模块模块化:就是把程序化分成若干个模块,每个模块模块化:就是把程序化分成若干个模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,完成一个子功能,把这些模块集中起来组成一个整体,完成一个子功能,把这些模块集中起来组成一个整体,完成一个子功能,把这些模块集中起来组成一个整体,可以完成制定的功能满足问题的要求。可以完成制定的功能满足问题的要求。可以完成制定的功能满足问题的要求。可以完成制定的功能满足问题的要求。本讲稿第十页,共五十四页模块化和软件成本模块化和软件成本最小成本区最小成本区接口成本接口成本成本成本/模块模块软件总成本软件总成本模块数目模块数
10、目成成本本本讲稿第十一页,共五十四页软件设计的概念和原理软件设计的概念和原理抽象抽象 对于复杂系统唯一有效的方法使用一些高级的抽象概念对于复杂系统唯一有效的方法使用一些高级的抽象概念构造和理解,这些高级概念可以用一些较低级的概念构造和构造和理解,这些高级概念可以用一些较低级的概念构造和理解。同时,解决问题时集中考虑与问题有关的方面,而忽理解。同时,解决问题时集中考虑与问题有关的方面,而忽略和问题无关的方面略和问题无关的方面(抽出事物的本质特性而暂不考虑细节抽出事物的本质特性而暂不考虑细节)。本讲稿第十二页,共五十四页软件设计的概念和原理软件设计的概念和原理软件设计中的抽象:软件设计中的抽象:软
11、件工程中每一步都是对下一步的抽象软件工程中每一步都是对下一步的抽象。软件过程每一步都是对较高以级抽象的解做较软件过程每一步都是对较高以级抽象的解做较 具体化描述具体化描述,都是对软件解法的抽象层次的一,都是对软件解法的抽象层次的一 次精化。次精化。本讲稿第十三页,共五十四页软件设计的概念和原理软件设计的概念和原理软件分解软件分解 信息隐藏:应该这样设计和确定模块,使得一个模块内信息隐藏:应该这样设计和确定模块,使得一个模块内 包含的信息(过程和数据)对于不需要这些包含的信息(过程和数据)对于不需要这些 信息的模块来说,是不能访问的。信息的模块来说,是不能访问的。局部化:局部化:是把一些关系密切
12、的软件元素物理地放得彼是把一些关系密切的软件元素物理地放得彼 此靠近。此靠近。本讲稿第十四页,共五十四页软件设计的概念和原理软件设计的概念和原理模块独立性模块独立性 模块独立性越强,软件的实现相对就容易。模块独立性越强,软件的实现相对就容易。独立的模块比较容易测试和维护。独立的模块比较容易测试和维护。软件的升级或软件复用程度高。软件的升级或软件复用程度高。本讲稿第十五页,共五十四页软件设计的概念和原理软件设计的概念和原理模块独立性标准模块独立性标准耦合:是对一个软件结构内不同模块之间互连程度的度量。耦合:是对一个软件结构内不同模块之间互连程度的度量。内聚:标识一个模块内各个元素彼此结合的紧密程
13、度。内聚:标识一个模块内各个元素彼此结合的紧密程度。本讲稿第十六页,共五十四页模块独立性模块独立性耦合包括:耦合包括:数据耦合数据耦合 控制耦合控制耦合 公共环境耦合公共环境耦合 内容耦合内容耦合本讲稿第十七页,共五十四页模块独立性模块独立性(1)(1)(1)(1)数据耦合:数据耦合:数据耦合:数据耦合:一个模块传送给另一个模块的参数是一个单个的数据项或一个模块传送给另一个模块的参数是一个单个的数据项或一个模块传送给另一个模块的参数是一个单个的数据项或一个模块传送给另一个模块的参数是一个单个的数据项或者单个数据项组成的数组。者单个数据项组成的数组。者单个数据项组成的数组。者单个数据项组成的数组
14、。计算水电费计算水电费计算水费计算水费计算电费计算电费用水量用水量用电量用电量水水费费电电费费本讲稿第十八页,共五十四页模块独立性模块独立性(2)(2)(2)(2)控制耦合:控制耦合:控制耦合:控制耦合:一个模块传递给另一模块的信息,该信心一个模块传递给另一模块的信息,该信心一个模块传递给另一模块的信息,该信心一个模块传递给另一模块的信息,该信心是用于控制该模块内部逻辑的控制信号。是用于控制该模块内部逻辑的控制信号。是用于控制该模块内部逻辑的控制信号。是用于控制该模块内部逻辑的控制信号。A A A A以不同方式打开文件以不同方式打开文件以不同方式打开文件以不同方式打开文件B B B B文件名称
15、,文件名称,文件名称,文件名称,R/WR/WR/WR/W本讲稿第十九页,共五十四页(3)(3)(3)(3)公共环境耦合:公共环境耦合:公共环境耦合:公共环境耦合:是指一组模块访问一个公共的数据环境。是指一组模块访问一个公共的数据环境。是指一组模块访问一个公共的数据环境。是指一组模块访问一个公共的数据环境。公共数据环境包括:公共数据环境包括:公共数据环境包括:公共数据环境包括:全局数据结构全局数据结构全局数据结构全局数据结构 共享通讯区共享通讯区共享通讯区共享通讯区 内存公共覆盖区等内存公共覆盖区等内存公共覆盖区等内存公共覆盖区等A公共数据区公共数据区公共数据区公共数据区松散的松散的松散的松散的
16、公共耦合公共耦合公共耦合公共耦合B公共数据区公共数据区公共数据区公共数据区紧密的紧密的紧密的紧密的公共耦合公共耦合公共耦合公共耦合公共环境耦合存在的问题:公共环境耦合存在的问题:公共环境耦合存在的问题:公共环境耦合存在的问题:(1)(1)(1)(1)软件可理解性降低软件可理解性降低软件可理解性降低软件可理解性降低(模块间存在错综复杂的连系模块间存在错综复杂的连系模块间存在错综复杂的连系模块间存在错综复杂的连系);(2)(2)(2)(2)软件可维护性差软件可维护性差软件可维护性差软件可维护性差(修改变量名或属性困难修改变量名或属性困难修改变量名或属性困难修改变量名或属性困难);(3)(3)(3)
17、(3)软件可靠性差软件可靠性差软件可靠性差软件可靠性差(公共数据区及全程变量无保护措施公共数据区及全程变量无保护措施公共数据区及全程变量无保护措施公共数据区及全程变量无保护措施);AB模块独立性模块独立性本讲稿第二十页,共五十四页模块独立性模块独立性发生内容耦合的情形主要包括:发生内容耦合的情形主要包括:发生内容耦合的情形主要包括:发生内容耦合的情形主要包括:(1)(1)(1)(1)一模块直接访问另一模块的内部数据;一模块直接访问另一模块的内部数据;一模块直接访问另一模块的内部数据;一模块直接访问另一模块的内部数据;(2)(2)(2)(2)一模块不通过正常入口转到另一模块内;一模块不通过正常入
18、口转到另一模块内;一模块不通过正常入口转到另一模块内;一模块不通过正常入口转到另一模块内;(3)(3)(3)(3)两模块有一部分代码重叠;两模块有一部分代码重叠;两模块有一部分代码重叠;两模块有一部分代码重叠;(4)(4)(4)(4)一模块有多个入口;一模块有多个入口;一模块有多个入口;一模块有多个入口;(4)(4)(4)(4)内容耦合:内容耦合:内容耦合:内容耦合:一模块直接访问另一模块的内部信息一模块直接访问另一模块的内部信息一模块直接访问另一模块的内部信息一模块直接访问另一模块的内部信息(程序代码或数据程序代码或数据程序代码或数据程序代码或数据)。本讲稿第二十一页,共五十四页耦合类型与关
19、系耦合类型与关系 耦合性耦合性 模块独立性模块独立性弱弱强强低低高高 低耦合低耦合 中等耦合中等耦合 高耦合高耦合公共环境耦合内容耦合控制耦合数据耦合本讲稿第二十二页,共五十四页模块独立性模块独立性耦合设计原则耦合设计原则尽量使用数据耦合,尽量使用数据耦合,少用控制耦合,少用控制耦合,限制公共环境耦合的范围,限制公共环境耦合的范围,完全不用内容耦合。完全不用内容耦合。本讲稿第二十三页,共五十四页模块独立性模块独立性内聚与耦合的关系内聚与耦合的关系 内聚和耦合是密切相关的,模块内的高内聚往往意味着内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。内聚和耦合都是进行模块化设计的有力工
20、模块间的松耦合。内聚和耦合都是进行模块化设计的有力工具,但是实践表明内聚更重要,应该把更多注意力集中到提具,但是实践表明内聚更重要,应该把更多注意力集中到提高模块的内聚程度上。高模块的内聚程度上。本讲稿第二十四页,共五十四页内聚类型与关系内聚类型与关系 顺顺序序内内聚聚 通通信信内内聚聚 过过程程内内聚聚 时时间间内内聚聚 逻逻辑辑内内聚聚 偶偶然然内内聚聚 功功能能内内聚聚 模块独立性模块独立性弱弱强强 内聚性内聚性低低高高 低内聚低内聚中等内聚中等内聚 高内聚高内聚本讲稿第二十五页,共五十四页(1)(1)(1)(1)偶然内聚:偶然内聚:偶然内聚:偶然内聚:模块内各部分间由于节约空间等偶然因
21、素组合在模块内各部分间由于节约空间等偶然因素组合在模块内各部分间由于节约空间等偶然因素组合在模块内各部分间由于节约空间等偶然因素组合在一起。一起。一起。一起。缺点:可理解性差,缺点:可理解性差,缺点:可理解性差,缺点:可理解性差,可修改性差。这说明模块功能性不强。可修改性差。这说明模块功能性不强。可修改性差。这说明模块功能性不强。可修改性差。这说明模块功能性不强。(2)(2)(2)(2)逻辑内聚:逻辑内聚:逻辑内聚:逻辑内聚:将几个逻辑上相似的功能放在一个模块中,调用时由调用将几个逻辑上相似的功能放在一个模块中,调用时由调用将几个逻辑上相似的功能放在一个模块中,调用时由调用将几个逻辑上相似的功
22、能放在一个模块中,调用时由调用模块所传递的参数确定执行的功能。模块所传递的参数确定执行的功能。模块所传递的参数确定执行的功能。模块所传递的参数确定执行的功能。内聚类型与关系内聚类型与关系本讲稿第二十六页,共五十四页A AB BC CE EF FGGA AB BC CEFGEFGE E E E、F F F F、G G G G逻辑功能逻辑功能逻辑功能逻辑功能相似,组成新模相似,组成新模相似,组成新模相似,组成新模块块块块EFGEFGEFGEFG缺点缺点缺点缺点:增强了耦合程度:增强了耦合程度:增强了耦合程度:增强了耦合程度(控制耦合控制耦合控制耦合控制耦合)不易修改,效率低不易修改,效率低不易修改
23、,效率低不易修改,效率低逻辑内聚模块逻辑内聚模块逻辑内聚模块逻辑内聚模块A1A1B1B1C1C1EFGEFGEFGEFG模块内部逻辑模块内部逻辑模块内部逻辑模块内部逻辑共用代码段共用代码段共用代码段共用代码段内聚类型与关系内聚类型与关系本讲稿第二十七页,共五十四页内聚类型与关系内聚类型与关系(3)(3)(3)(3)时间内聚:时间内聚:时间内聚:时间内聚:将需要同时执行的成分放在一个模块中,因为模块中将需要同时执行的成分放在一个模块中,因为模块中将需要同时执行的成分放在一个模块中,因为模块中将需要同时执行的成分放在一个模块中,因为模块中的个功能与时间有关。的个功能与时间有关。的个功能与时间有关。
24、的个功能与时间有关。例如例如例如例如:初始化系统模块、初始化系统模块、初始化系统模块、初始化系统模块、系统结束模块、系统结束模块、系统结束模块、系统结束模块、紧急故障处理模块等均是时间性聚合模块紧急故障处理模块等均是时间性聚合模块紧急故障处理模块等均是时间性聚合模块紧急故障处理模块等均是时间性聚合模块.(4)(4)过程内聚:过程内聚:过程内聚:过程内聚:如果一个内的处理元素是相关的,而且必需以特定如果一个内的处理元素是相关的,而且必需以特定如果一个内的处理元素是相关的,而且必需以特定如果一个内的处理元素是相关的,而且必需以特定次序执行,则称为过程内聚。次序执行,则称为过程内聚。次序执行,则称为
25、过程内聚。次序执行,则称为过程内聚。本讲稿第二十八页,共五十四页内聚类型与关系内聚类型与关系产生工资产生工资产生工资产生工资报表报表报表报表计算平均计算平均计算平均计算平均工资工资工资工资职工工职工工职工工职工工资记录资记录资记录资记录职工工职工工职工工职工工资报表资报表资报表资报表平均平均平均平均工资工资工资工资产生职工工资报表并计产生职工工资报表并计产生职工工资报表并计产生职工工资报表并计算平均工资模块算平均工资模块算平均工资模块算平均工资模块(5)(5)(5)(5)通信内聚:通信内聚:通信内聚:通信内聚:模块中的成分引用共同的输入数据,或者产生相同模块中的成分引用共同的输入数据,或者产生
26、相同模块中的成分引用共同的输入数据,或者产生相同模块中的成分引用共同的输入数据,或者产生相同的输出数据,则称为是通信内聚模块。的输出数据,则称为是通信内聚模块。的输出数据,则称为是通信内聚模块。的输出数据,则称为是通信内聚模块。本讲稿第二十九页,共五十四页内聚类型与关系内聚类型与关系通信内聚模块二例通信内聚模块二例通信内聚模块二例通信内聚模块二例开领开领开领开领书单书单书单书单登记登记登记登记售书售书售书售书发票发票发票发票领书单领书单领书单领书单售售售售 书书书书登记表登记表登记表登记表文件文件文件文件删除删除删除删除修改修改修改修改本讲稿第三十页,共五十四页(6)(6)(6)(6)顺序内聚
27、:顺序内聚:顺序内聚:顺序内聚:模块中某个成分的输出是另一成分的输入。模块中某个成分的输出是另一成分的输入。模块中某个成分的输出是另一成分的输入。模块中某个成分的输出是另一成分的输入。假设一文件操作包括四个步骤:打开文件、读文件、保存、关闭假设一文件操作包括四个步骤:打开文件、读文件、保存、关闭假设一文件操作包括四个步骤:打开文件、读文件、保存、关闭假设一文件操作包括四个步骤:打开文件、读文件、保存、关闭文件。如果这些操作是由两个子程序完成的,文件。如果这些操作是由两个子程序完成的,文件。如果这些操作是由两个子程序完成的,文件。如果这些操作是由两个子程序完成的,Setp1Setp1Setp1S
28、etp1打开文件和打开文件和打开文件和打开文件和读文件操作,读文件操作,读文件操作,读文件操作,Step2()Step2()Step2()Step2()进行保存和关闭文件操作。这两个子程序都进行保存和关闭文件操作。这两个子程序都进行保存和关闭文件操作。这两个子程序都进行保存和关闭文件操作。这两个子程序都具有顺序内聚性。具有顺序内聚性。具有顺序内聚性。具有顺序内聚性。内聚类型与关系内聚类型与关系本讲稿第三十一页,共五十四页(7)(7)(7)(7)功能内聚功能内聚功能内聚功能内聚 模块仅包括为完成某个功能所必须的所有成分模块仅包括为完成某个功能所必须的所有成分模块仅包括为完成某个功能所必须的所有成
29、分模块仅包括为完成某个功能所必须的所有成分(模块所有成分共同模块所有成分共同模块所有成分共同模块所有成分共同完成一个功能,缺一不可完成一个功能,缺一不可完成一个功能,缺一不可完成一个功能,缺一不可 )。内聚性最强内聚性最强内聚性最强内聚性最强内聚类型与关系内聚类型与关系本讲稿第三十二页,共五十四页启发式规则启发式规则 在多数场合下,启发式规则能给软件工程师有益的启示,在多数场合下,启发式规则能给软件工程师有益的启示,帮助他们找到改进软件设计、提高软件质量途径。帮助他们找到改进软件设计、提高软件质量途径。本讲稿第三十三页,共五十四页常用的启发式规则常用的启发式规则 改进软件结构提高模块独立性改进
30、软件结构提高模块独立性提取提取ABCDEFABCDEF合并合并本讲稿第三十四页,共五十四页模块规模应该适中模块规模应该适中深度、宽度、扇出和扇入都应适当深度、宽度、扇出和扇入都应适当常用的启发式规则常用的启发式规则本讲稿第三十五页,共五十四页财务帐务系统凭证处理录入修改审核汇总记帐明细帐财务报表损 益 表负 债 表综合报表总 帐 深度 宽度扇出扇入本讲稿第三十六页,共五十四页常用的启发式规则常用的启发式规则 模块的作用域应该在控制域之内模块的作用域应该在控制域之内 判决判决的效果的效果判决判决判决判决 判决判决的作用的作用违反准则的结构违反准则的结构修改后的结构(以满足准则)修改后的结构(以满
31、足准则)本讲稿第三十七页,共五十四页常用的启发式规则常用的启发式规则 力争降低模块接口的复杂程度力争降低模块接口的复杂程度QUAD-ROOT(TAB,X);其中,其中,TAB和和X是数组。是数组。QUAD-ROOT(A,B,C,ROOT1,ROOT2);一元二次方程:一元二次方程:AX2+BX+C=0定义接口如下:定义接口如下:修改为:修改为:本讲稿第三十八页,共五十四页常用的启发式规则常用的启发式规则 设计单入口单出口的复杂程度设计单入口单出口的复杂程度 主要是防止内容耦合。主要是防止内容耦合。本讲稿第三十九页,共五十四页常用的启发式规则常用的启发式规则 模块功能应该可以预测模块功能应该可以
32、预测存入模块标识存入模块标识取出取出“过去的过去的”标志标志标志标志标志标志可以预知吗?可以预知吗?本讲稿第四十页,共五十四页图形工具图形工具 层次图:层次图:描绘系统中模块之间的调用和被调用的关系。描绘系统中模块之间的调用和被调用的关系。HIPO图:对层次图的改进。图:对层次图的改进。结构图:结构图:表示模块调用过程中来回传递的信息。表示模块调用过程中来回传递的信息。本讲稿第四十一页,共五十四页 HIPO 图图 来源来源:美国美国IBM公司公司 “层次图层次图+输入输入/处理处理/输出图输出图”H I P O 表示表示 H图图:带编号的层次图:带编号的层次图;IPO图图 数据通信数据通信;输
33、入框输入框/输出框输出框/处理框处理框 用途用途:每张每张IPO图与层次图中的一个方框对图与层次图中的一个方框对 应,应,IPO描述这个方框代表的模块的描述这个方框代表的模块的 处理过程处理过程。本讲稿第四十二页,共五十四页层次图(层次图(HIPO图)图)总控部分总控部分备课备课形态形态结构结构1发育发育过程过程2昆虫昆虫特征特征3动化动化演示演示4本讲稿第四十三页,共五十四页结构图实例结构图实例显示用户所需信息形态结构需求分析处理发育需求分析处理昆虫纲特征需求分析处理输出结果读输入编辑输入结果格式化显示结果注:图中(1)表示原始输入;(2)表示编辑结果;(3)表示解;(4)表示格式化的解 本
34、讲稿第四十四页,共五十四页 通常用层次图作为描绘软件结构的文档。通常用层次图作为描绘软件结构的文档。结构图一般不作为文档,因为图上包含信息太多反而结构图一般不作为文档,因为图上包含信息太多反而 降低了清晰程度。降低了清晰程度。面向数据流的设计方法面向数据流的设计方法本讲稿第四十五页,共五十四页 面向数据流的设计方法的目标是给出设计软件结构的一个面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。我们通常所说的结构化设计方法,也就是基于系统化的途径。我们通常所说的结构化设计方法,也就是基于数据流的设计方法。数据流的设计方法。面向数据流的设计方法面向数据流的设计方法本讲稿第四十六页,共
35、五十四页面向数据流的设计方法面向数据流的设计方法基本概念基本概念 信息通常以信息通常以“外部世界外部世界”的形式进入软件系统,经过的形式进入软件系统,经过处理以后在以处理以后在以“外部世界外部世界”的形式离开系统。的形式离开系统。外部形式外部形式内部形式内部形式外部形式外部形式变换流变换流本讲稿第四十七页,共五十四页基本概念基本概念 事务流:是事务流:是“以事务为中心的以事务为中心的”,即数据沿输入通路到达,即数据沿输入通路到达一个处理中心,这个处理中心根据输入数据的类型在若干个一个处理中心,这个处理中心根据输入数据的类型在若干个动作序列中选出一个来执行。动作序列中选出一个来执行。事务流完成以
36、下任务:事务流完成以下任务:接受输入数据(输入数据又称为事务);接受输入数据(输入数据又称为事务);分析每个事务以确定它的类型;分析每个事务以确定它的类型;根据事务类型选取一条活动通路。根据事务类型选取一条活动通路。面向数据流的设计方法面向数据流的设计方法本讲稿第四十八页,共五十四页面面向向数数据据流流的的设设计计过过程程精化数据流图精化数据流图区分事务中心区分事务中心和数据接收通路和数据接收通路区分输入和区分输入和输出分支输出分支流类型流类型映射成事务结构映射成事务结构映射成变换结构映射成变换结构用启发式设计规则用启发式设计规则精化软件结构精化软件结构导出接口描述和导出接口描述和全程数据结构
37、全程数据结构复查复查详详 细细 设设 计计“事务事务”“变换变换”事务分析事务分析变换分析变换分析本讲稿第四十九页,共五十四页步骤步骤1:复查基本系统模型;:复查基本系统模型;步骤步骤2:复审并改进软件的数据流程图;:复审并改进软件的数据流程图;步骤步骤3:确定该数据流具有变换特征还是事务特征;:确定该数据流具有变换特征还是事务特征;步骤步骤4:确定事务中心和每个动作路径的流程特征;:确定事务中心和每个动作路径的流程特征;步骤步骤5:把该数据流程图映象成一个合适事务处理的软件结构;:把该数据流程图映象成一个合适事务处理的软件结构;步骤步骤6:对事务中心的结构和每个动作路径的结构进:对事务中心的
38、结构和每个动作路径的结构进 行分解;行分解;面向数据流的设计方法面向数据流的设计方法事务流事务流本讲稿第五十页,共五十四页练习:将练习:将练习:将练习:将DFDDFDDFDDFD用变换分析法导出初始用变换分析法导出初始用变换分析法导出初始用变换分析法导出初始SCSCSCSCA A A AC1C1C1C1C2C2C2C2C3C3C3C3B B B BD D D DG G G GE E E EJ J J JF F F FK K K KL L L Lc1c1c1c1c2c2c2c2b2b2b2b2b1b1b1b1b3b3b3b3b b b ba a a ac3c3c3c3d d d dg g g g
39、f f f fj j j jh h h he e e ek k k kl l l lm m m m本讲稿第五十一页,共五十四页优化设计优化设计基本原则:基本原则:在不考虑时间因素的前提下开发并精化软件结构;在不考虑时间因素的前提下开发并精化软件结构;在详细设计阶段选出最耗费时间的那些模块,仔在详细设计阶段选出最耗费时间的那些模块,仔 细地设计它们的处理过程,以求提高效率;细地设计它们的处理过程,以求提高效率;使用高级程序设计语言编写程序;使用高级程序设计语言编写程序;在软件中孤立出那些大量占用处理机资源的模块;在软件中孤立出那些大量占用处理机资源的模块;必要时重新设计或用依赖于机器的语言重写上述必要时重新设计或用依赖于机器的语言重写上述 大量占用资源的模块的代码,以求提高效率。大量占用资源的模块的代码,以求提高效率。本讲稿第五十二页,共五十四页优化设计优化设计一句格言:一句格言:先是它能工作,然后再使它快起来。先是它能工作,然后再使它快起来。本讲稿第五十三页,共五十四页小小 结结 总体设计的任务总体设计的任务 总体设计的过程总体设计的过程 软件设计的概念和原理软件设计的概念和原理 启发式规则启发式规则 图形工具图形工具 面向数据流的设计方法面向数据流的设计方法本讲稿第五十四页,共五十四页
限制150内