1、设计之路,软件工程第六章设计(上),第六章(上)总体设计 本章分为【总体设计】和【详细设计】两部分。,6.1.1 耦合(1) 耦合是不同模块间的相关的程度。,模块越多 耦合度越大。接口越多 耦合度越大。信息越复杂 耦合度越大。我们希望 耦合度越小越好!,6.1.1 耦合(2) 面向对象系统中,有三种不同种类的耦合。,交互耦合:一个函数调用另一个函数构件耦合:一个类有另一个类的变量继承耦合:是父类和子类的继承关系,6.1.2 内聚(1) 内聚是一个模块内部小元素密切程度。,6.1.2 内聚(2) 内聚在面向对象系统中,分为三大类。,方法内聚:和功能内聚一样一样的。类内聚:把我们需要的属性和方法放
2、在一个类中。继承内聚:把有继承关系的子类放在一父类中。,6.1.2 开闭原则 开闭原则是:增加新功能,不要修改老功能。,6.1 随堂作业 同学们打开你的作业本,练习下面题目。,什么是耦合?影响耦合复杂度有哪些因素? 我们希望耦合度越高越好吗?为什么? 在面向对象系统中,耦合可以怎样分类? 什么是内聚? 内聚按照强度划分为6个等级,请逐一写出来。 上边题目中我们最喜欢哪一种内聚? 在面向对象系统中,内聚可以怎样分类? 开闭原则是什么? 开闭原则有什么用?,请写在作业本上,作业作为期末考核重要指标。,第二课 面向功能设计,设计之路(2),6.2 面向功能设计 面向功能设计是一种结构化设计方法。,6
3、.2.1 结构图 结构图是程序功能结构的图。,上级模块可以调用下级模块 长箭头表示调用下级程序 短箭头表示传递信息 短箭头前段为空心表示数据 短箭头前段为实心表示控制弧线箭头表示循环调用,主程序,程序1,程序3,程序2,6.2.1 结构图(2) 结构图可表示程序的循环结构和选择结构。,菱形表示从两个模块中有选择的调用其中一个,主程序,程序1,程序3,程序2,6.2.2结构化设计方法 结构化设计的基本原则是问题分解。,画出数据流图,我们以前学过画法。 在数据流图中,识别出输入模块、输出模块、加工模块。 第一层分解。增加一个协同模块。 继续分解各个子模块,直到结构图很清晰。,6.2.3 举例 一个很简单的例子,三步画好。,主模块,输入模块,统计数目,打印数目,获取单词列表,排序,取一个单词,与前一个单词相同,计数递增,取词,加入单词列表,6.2 随堂作业 同学们打开你的作业本,练习下面题目。,结构图有什么用? 结构图中怎样表示参数?怎样表示控制参数?怎样表示数据参数? 结构图中怎样表示循环结构?怎样表示选择结构? 结构化设计的方法步骤是什么? 请画出课本97页图6.5中的数据流图的结构图。 请画出课本127页第5题的程序结构图。,请写在作业本上,作业作为期末考核重要指标。,