软件工程第七章 软件设计

好像有两章的作业被隐藏了看不到,所以再发一遍

1.软件设计的目标及主要任务有那些?

软件设计阶段的基本目标是构造系统“怎么做”的模型描述。

任务:总体设计 软件详细设计

2.什么是模块化设计思想

分解、抽象、逐步求精、信息隐蔽和模块独立性

3.模块独立性的两个度量标准是什么

模块自身的内聚(Cohesion)

模块之间的耦合(Coupling),也称为块间联系。

4.内聚和耦合的含义是什么?各有什么种类?请举例说明一类型

内聚(Cohesion),也称为块内联系,指一个模块内部元素彼此结合的紧密程度。分为

  功能性内聚:模块各个成分结合在一起,完成一个特定的功能。功能性模块具有内聚性最强、与其他模块联系少的特点。 

  顺序性内聚:模块内的各个任务是顺序执行的。通常,上一个任务的输出是下一个任务的输入。

  通信性内聚(信息内聚):模块内部的各个任务靠公用数据联系在一起,即都使用同一个输入数据,或者产生同一个输出数据。

  过程性内聚:模块内的各个任务必须按照某一特定次序执行。

  时间性内聚:模块内的各个任务由相同的执行时间联系在一起。

  逻辑性内聚:模块通常由若干个逻辑功能相似的任务组成,通过模块外引入的一个开关量选择其一执行。这种内聚增大了模块间的耦合。

  偶然性内聚:模块内的各个任务在功能上没有实质性联系,纯属“偶然”因素组合了块内各个互不相关的任务。

耦合(Coupling),也称为块间联系,指几个模块之间彼此结合的紧密程度。分为

非直接耦合:同级模块相互之间没有信息传递,即没有耦合。

数据耦合:调用下属模块时,如果交换的都是简单变量,便构成数据耦合。

特征耦合(数据结构耦合):调用下属模块时,如果交换的是数据结构,便构成特征耦合。由于传递的是数据结构,不仅数据量增加,而且会使模块的相关性增加。

控制耦合:模块间传递的信息不是一般的数据,而是作为控制信息的开关值或标志量。

外部耦合:若允许一组模块访问同一个全局变量,可称它们为外部耦合。 公共耦合:若允许一组模块访问同一个全局性的数据结构,则称它们为公共耦合。全局性的数据结构可以是共享的通信区、公共的内存区域、任何存储介质文件、物理设备等。

内容耦合:若一个模块可以直接访问另一个模块中的内部数据,或者一个模块直接转到另一个模块的内部,或者一个模块有多个入口,则称为内容耦合。

5.为什么要高内聚低耦合?高内聚低耦合是否意味着内聚越高越好,耦合越低越好?

如果各模块之间联系太过紧密对于代码复用是不容易的,因为很难会再找到同样适合的环境。所以要低耦合

而高内聚有利于工程代码的可读性、复用性、可维护性和易变更性

并不是内聚越高越好,耦合越低越好,真正好的设计是在高内聚和低耦合间进行平衡,也就是说高内聚和低耦合是冲突的。

posted @ 2021-06-23 21:24  FEILI13  阅读(84)  评论(0编辑  收藏  举报