第五次思考题
1、软件设计的目标及主要任务有哪些?
软件设计阶段的基本目标是构造系统“怎么做”的模型描述,软件系统设计是把软件需求“变换”为用于构造软件的蓝图。“设计先于编码”,是软件工程“推迟实现”基本原则
2、什么是模块(构件)化设计思想?
模块是一个独立命名的,拥有明确定义的输入、输出和特性的程序实体。
把一个大型软件系统的全部功能,按照一定的原则合理地划分为若干个模块,每个模块完成一个特定子功能,所有的这些模块以某种结构形式组成一个整体,这就是软件的模块化设计
软件模块化设计可以简化软件的设计和实现,提高软件的可理解性和可测试性,并使软件更容易得到维护。
分解、抽象、逐步求精、信息隐蔽和模块独立性,是软件模块化设计的指导思想
3、模块独立性的两个度量标准是什么?
模块自身的内聚、模块自身的耦合
4、内聚和耦合的含义是什么?各有那些种类?请举例说明每一类型。
内聚性是从功能的角度对模块内部聚合能力的量度,包括有以下几种类型
1)功能性内聚,例如解析XML文档模块(解析XML元素, 解析XML
属性,解析XML注释等)
2)顺序性内聚,例如规则引擎:一个任务读配置,输出执行计划。另一个任务以执行计划为输入,执行该计划
3)通信性内聚,例如学生管理系统的数据库CRUD操作,都对学生信息进行增删查改操作
4)过程性内聚,例如读/写文件操作:判断文件是否存在、判断文件是否有相应权限、打开文件、读(或写)文件
5)时间性内聚,例如初始化模块,异常处理模块
6)逻辑性内聚。例如个输出设备模块将打印机类和显示器类封装
到同一个包里,该包即输出设备模块。打印机类和显示器类虽然都具有输出功能,但是具有不同的职责
7)偶然性内聚,例如一个处理正方形的模块有两个功能:计算面积,画出这个正方形
5、为什么要高内聚和低耦合?高内聚低耦合是否意味着内聚越高越好,耦合越低越好呢?
高内聚低耦合说明模块独立性愈高,则块内联系越强,块间联系越弱。对于同一个功能模块而言他们关系越紧密那么出错率就会相应的降低,同时也有利于编程。对于一个软件而言,他的功能模块有很多,如果各个模块之间的关系越复杂,就会产生更多的意想不到的错误(例如随便改一个参数,有可能对其他模块都会造成不可预估的影响),会给以后的维护工作带来很多麻烦
浙公网安备 33010602011771号