第七章-软件设计
1、软件设计的目标及主要任务有哪些?
目标:用比较抽象、概括的方式确定目标系统如何完成预定的任务
主要任务:将软件分解成模块使之能实现某个功能的数据和程序说明、可执行程序的程序单元。
2、什么是模块(构件)化设计思想?
在设计较复杂的程序时,一般采用自顶向下的方法,将问题划分为几个部分,各个部分再进行细化,直到分解为较好解决问题为止。模块化设计,简单地说就是程序的编写不是一开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系逐步求精的结果是得到一系列以功能块为单位的算法描述。以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化。
利用函数,不仅可以实现程序的模块化,使得程序设计更加简单和直观,从而提高了程序的易读性和可维护性,而且还可以把程序中经常用到的一些计算或操作编写成通用函数,以供随时调用。
3、模块独立性的两个度量标准是什么?
耦合性和内聚性。
4、内聚和耦合的含义是什么?各有哪些种类?
内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述
的是模块内的功能联系; 耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
内聚:
1) 偶然内聚。
2) 逻辑内聚。
3) 时间内聚
4) 过程内聚
5) 通信内聚
6) 顺序内聚
7) 功能内聚
耦合:
(1) 内容耦合
(2) 公共耦合
(3) 外部耦合
(4) 控制耦合
(5) 标记耦合
(6) 数据耦合
(7) 非直接耦合
5、为什么要高内聚低耦合?是否意味着内聚越高,耦合越低越好?
高内聚:对于同一个功能模块而言他们关系越紧密那么出错率就会相应的降低,同时也有利于编程。
低耦合:对于一个软件而言,他的功能模块有很多,如果各个模块之间的关系越复杂,就会产生更多的意想不到的错误(例如随便改一个参数,有可能对其他模块都会造成不可预估的影响),会给以后的维护工作带来很多麻烦。
并不意味着内聚越高,耦合越低越好