内聚度量的是一个模块内部各成分之间相互关联的强度,如果一个模块的所有成分都直接参与并且对于完成同一功能来说都是最基本的,则该模块是高内聚的;
从低到高的几种常见的内聚类型,偶然内聚,一个模块的各个成分之间毫无关系;逻辑内聚,几个逻辑上相关的功能被放在同一模块中;时间内聚,一个模块完成的功能必须在同一时间内执行,但这些功能只是因为时间因素关联在一起;过程内聚,一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行;通信内聚,一个模块的所有成分都操作同一数据集或生成同一数据集;顺序内聚,一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个的成分;功能内聚,最理想的内聚是功能内聚,模块的所有成分对于完成单一的功能都是基本的;
内聚和耦合是密切相关的,在进行软件设计时,应力争做到强内聚、弱耦合。
7. 结构化设计的启发式规则:
改进软件结构提高模块独立性,模块规模应该适中,深度、宽度、扇入和扇出应适中,模块的作用域应该在控制域之内,力争降低模块接口的复杂性,模块功能应该可以预测;
模块的作用域定义为受该模块内一个判定影响的所有模块的集合,模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。
8. 结构化分析与结构化设计的区别:
结构化分析得到数据流图、数据字典等,属于逻辑模型,结构化设计得到模块结构图,属于程序模型。
9. 详细设计阶段的目标、表现、内容:
详细设计阶段的根本目标是确定怎样具体的实现所要求的系统,详细设计以总体设计阶段的工作为基础,但又不同于总体设计,主要表现在,在总体设计阶段,数据项和数据结构以比较抽象的方式描述,详细设计要提供关于算法的更多细节;
详细设计的模块包含实现对应的总体设计的模块所需要的处理逻辑,主要有,详细的算法,数据表示和数据结构,实施的功能和使用的数据之间的关系。
10.结构化程序的三种基本结构,结构化设计的目标:
结构化程序设计技术采用自顶向下逐步求精的设计方法和单入口单出口的控制结构,并且只包含顺序、选择和循环三种结构,结构化程序设计的目标之一是使程序的控制流程线性化,即程序的动态执行顺序符合静态书写结构,结构化程序设计的观点是要求设计好结构的程序。
11.详细设计的任务,详细设计的工具及其内容特点:
详细设计的任务是给出软件模块结构中各个模块的内部过程描述,也就是模块内部的算法设计,详细设计的工具可以分为图形、表格、语言三种,包括程序流程图、盒图(N-S图)、PAD图、类程序设计语言(PDL);
程序流程图中使用的主要符号包括顺序、选择、循环结构,它的主要缺点如下,程序流程图本质上不是逐步求精的好工具,它诱使程序员过早的考虑程序的控制流程,而不去考虑程序的全局结构,程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制,程序流程图不易表示数据结构;
PAD是问题分析图的英文缩写,它用二维树形结构的图表示程序的控制流,PAD图的主要优点如下,使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序,PAD图所描述的程序结构十分清晰,用PAD图表现程序逻辑,易读、易懂、易记,很容易将PAD图转换成高级语言源程序,既可用于表示程序逻辑,也可用于描述数据结构,PAD图的符号支持自顶向下逐步求精的使用,PAD图是面向高级程序设计语言的;
类程序设计语言也称为伪码,它是用正文形式表示数据结构和处理过程的设计工具,PDL具有以下特点,关键字的固定语法,提供了结构化控制结构、数据说明和模块化的手段,自然语言的自由语法,用于描述处理过程和判定条件,数据说明的手段,既包括简单的数据结构,又包括复杂的数据结构,模块定义和调用的技术,提供各种
PDL作为一种设计工具有如下一些优点,可以作为注释直接插在源程序中间,可以使用普通的正文编辑程序或文字处理系统,很方面的完成PDL的书写和编辑工作,已经有自动处理程序存在,而且可以自动由PDL生成程序代码,PDL的缺点是不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表或判定树清晰简单。
本章设计题为DFD到模块结构图的转换和详细设计工具的具体应用,为笔试和试验的必考题型,非常重要,请考生参考辅导第256页(1)~(7)题,务必每一种题型都熟练掌握。