答案
1.1 - 1.1:B
2.1 - 3.4:B A D C
3.1 - 3.1:A
知识点分析
《模块化设计》
模块化设计的原则应该是尽量考虑高内聚、低耦合。
1)模块独立。模块的独立性原则表现在模块完成独立的功能,与其他模块的联系应该尽可能简单,各个模块具有相对的独立性。
2)模块的规模要适当。模块的规模不能太大,也不能太小。如果模块的功能太强,可读性就会较差;如果模块的功能太弱,就会很多的接口。读者需要通过较多的程序设计来进行经验的积累。
3)分解模块时要注意层次。在进行多层次任务分解时,要注意对问题进行抽象化。在分解初期,可以只考虑大的模块,在中期再逐步进行细化,分解成较小的模块进行设计。
《内聚》
内聚是一个模块内部各成分之间相关联程度的度量。内聚按强度从低到高有以下几种类型:
1)偶然内聚。如果一个模块的各成分之间毫无关系,则称为偶然内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。
2)逻辑内聚。几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚,如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。
3)时间内聚。如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素联系在一起,则称为时间内聚。
4)通信内聚。如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
5)顺序内聚。如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。
6)过程内聚。构件或操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。
模块完成多个需要按一定的步骤一次完成的功能(过程相关—控制耦合)。例如,在用程序流程图设计模块时,若将程序流程图中的一部分划出各自组成的模块,便形成过程内聚。
7)信息内聚。模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该模块执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。
8)功能内聚。模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。
《耦合》
1)数据耦合:如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。
2)印记耦合/标记耦合:如果一组模块通过参数传递记录信息,就是标记耦合。
3)控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
4)内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合。
一个模块直接访问另一个模块的内部数据;
一个模块不通过正常入口转到另一模块内部;
两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
一个模块有多个入口。
网友评论