【软件工程】第七章 软件设计思考题

【软件工程】第七章 软件设计思考题

  • 软件设计的目标及主要任务有哪些?
  • 什么是模块(构件)化设计思想?
  • 模块独立性的两个度量标准是什么?
  • 内聚和耦合的含义是什么?各有那些种类?请举例说明每一类型。
  • 为什么要高内聚和低耦合?高内聚低耦合是否意味着内聚越高越好,耦合越低越好呢?
1. 软件设计的目标及主要任务有哪些?

软件设计的基本目标:构造系统“怎么做”的模型描述。
主要任务包括:总体设计和软件详细设计

2. 什么是模块(构件)化设计思想?

把一个大型软件系统的全部功能,按照一定的原则合理地划分为若干个模块,每个模块完成一个特定子功能,所有的这些模块以某种结构形式组成一个整体,这就是软件的模块化设计(Modular Design)

分解、抽象、逐步求精、信息隐蔽和模块独立性,是软件模块化设计的指导思想。

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

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

4. 内聚和耦合的含义是什么?各有那些种类?请举例说明每一类型。
内聚性:是从功能的角度对模块内部聚合能力的量度。

其中包括功能性内聚、顺序性内聚、通信性内聚、过程性内聚、时间性内聚、逻辑性内聚和偶然性内聚。

过程性内聚:模块内的各个任务必须按照某一特定次序执行。在函数级别的模块比较常见。例如:读/写文件操作:判断文件是否存在、判断文件是否有相应权限、打开文件、读(或写)文件

耦合性:是对一个软件结构内不同模块之间互连程度的度量

其中包括非直接耦合、数据耦合、特征耦合、外部耦合、公告耦合和内容耦合。

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

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

高内聚低耦合是基于面向对象思想的概念。首先面向对象的主要特点是封装、继承和多态。实质上是将本来混乱的代码尽可能的抽象出共性,分门别类。最终达到复用,提高开发效率和保证软件质量的目的。面向对象追求的是代码复用和运行稳定,即在模块之间减少联系。可以想象,如果各模块之间联系太过紧密对于代码复用是不容易的,因为很难会再找到同样适合的环境。同时对于运行来说也是不利的,软件发生错误是不可避免的,那么各模块如果联系紧密则错一处而动全身,好比多米诺骨牌。所以一个好的软件各模块之间的联系不能过分紧密,即低耦合。

面向对象的思想追求的是每个模块的动能单一,模块间越独立越好。即在划分模块时,只有为了完成一个功能的各个元素才会被划分到一个模块中。所以模块内部的各个元素必须是联系紧密的,否则就说明模块划分还没有到位。所以模块内部需是联系紧密的,即高内聚。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值