欢迎来到天天文库
浏览记录
ID:48251034
大小:435.50 KB
页数:66页
时间:2020-01-18
《第4章-总体设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4章总体设计4.1总体设计的过程4.2软件设计的概念和原理4.3启发式规则4.4图形工具4.5面向数据流的设计方法总体设计的任务回答“怎么做”的问题;总体设计的成果是系统结构图4.1总体设计的过程分解软件的功能设计软件的结构设计软件数据库制定测试的计划书写软件的文档严格审查和复查4.2软件设计的概念和原理软件设计的方法:自顶向下,逐步求精模块化概念事情分解与难度公式假设:复杂度C(P1)>C(P2)假设:工作量E(P1)>E(P2)则:C(P1+P2)>C(P1)+C(P2)则:E(P1+P2)>E(P1)+E(P2)模块化概念模块划分不是无限地分割软件;
2、成本模块数目接口成本成本/模块软件总成本最小成本区M模块化和软件成本之间的关系图模块化概念每个软件都有一个最适当的模块数目M使得软件开发的成本最小;模块化的优点:软件结构清晰;有助于提高软件的可靠性;有助于软件开发工程的组织管理;抽象使用问题所处环境的语言概括地描述问题的解法。采用过程化的方法对问题加以描述。描述数据对象的细节,定义与该数据对象相关的操作,如数据字典。信息隐藏模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。信息局部化把一些关系密切的软件元素物理地放在一起。局部化意味着模块中的错误也局部化了,易于发现。模块独立模块独立是
3、模块化、抽象、信息隐蔽和局部化概念的直接结果;模块独立的两条理由:有效的模块化软件比较容易开发;独立的模块比较容易测试和维护;模块独立是好设计的关键;模块独立的概念衡量模块独立程度的定性标准----内聚、耦合耦合是模块之间的互相连接的紧密程度的度量。内聚是模块内部各个元素彼此结合的紧密程度的度量。模块独立性比较强的模块是高内聚低耦合的模块。耦合一个软件结构内不同模块之间互相连接的度量。影响系统的可理解性、可测试性、可靠性和可维护性。尽量设计松散耦合的软件系统耦合的种类非直接耦合如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,
4、这就是非直接耦合。耦合的种类数据耦合如果两个模块彼此之间通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称为数据耦合。软件中必然包含这种耦合,耦合度小开发票计算水费单价数量金额耦合的种类标记耦合如两个模块通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,或都与一个数据结构有关系,则称这两个模块间存在标记耦合。耦合的种类标记耦合:“住户情况”是一个数据结构,图中模块都与此数据结构有关.计算水电费计算水费计算电费住户情况水费电费住户情况标记耦合改为数据耦合举例计算水电费计算水费计算电费本月用水量本月用电量水费电费耦合的
5、种类控制耦合如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能就是控制耦合。耦合度高系统复杂把它分解或将判定上移耦合的种类A计算平均分或最高分B平均/最高(控制信号)成绩读入分数输出结果计算平均分计算最高分平均/最高?B改控制耦合为数据耦合举例A计算平均分B1平均成绩最高成绩计算最高分B2耦合的种类公共耦合当两个或多个模块都通过一个公共数据环境相互作用,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局变量、全局数据结构、共享的通信区、内存的公共覆盖区等。耦合的种类只有两个模块有公共数据环境耦合的种类内容耦合(1)一个模块直接
6、访问另一个模块的内部数据;(2)一个模块不通过正常入口转到另一模块内部;(3)两个模块有一部分程序代码重迭(只可能出现在汇编语言中);(4)一个模块有多个入口(程序功能不独立)坚决避免内容耦合耦合的种类耦合概念总结尽量使用数据耦合;少用控制耦合;限制公共环境耦合的范围;完全不用内容耦合;内聚一个模块内部各个元素彼此结合的紧密程度。理想内聚的模块只做一件事情。内聚和耦合密切相关,但更应重视内聚。追求高内聚内聚的种类功能内聚10分一个模块中各个部分都是完成某一具体功能必不可少的组成部分,该模块中所有部分紧密联系,不可分割的。内聚的种类顺序内聚9分如果一个模块内的
7、处理元素和同一个功能密切相关,而且这些处理必须顺序执行。内聚的种类通信内聚7分如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据。通信内聚模块是通过数据流图来定义的。内聚的种类图通信内聚例子内聚的种类通信内聚例子产生工资报表计算平均工资职工工资记录职工工资报表平均工资产生职工工资报表并计算平均工资模块相同输入内聚的种类过程内聚5分用流程图设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。内聚的种类读入成绩单审查成绩单统计成绩打印成绩读入
8、并审查成绩单统计并打印成绩单过程内聚内聚的种类时间内
此文档下载收益归作者所有