软件工程自考复习资料-全 下载本文

程实体。

模块化:解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。 信息隐藏:在设计和确定模块时,使一个模块内包含的信息,对于不需要这些信息的

其他模块来说,是不能访问的。定义和实施对模块过程细节和局部数据结构的存取限制。

模块独立性(最主要的原理):每个模块指完成系统要求的独立的子功能,且与其他模

块的联系最少且接口简单。

4. 软件设计基本任务: 软件系统结构设计、数据结构和数据库设计、网络系统设计、软

件总体设计文档、评审。

5. 结构化设计(SD)又叫面向数据流的设计,是以需求分析阶段产生的数据流图为基础,

按一定步骤映射成软件结构。

6. 结构化设计分为总体设计和详细设计,它们是全局和局部的关系。主要任务是在需求分析的基础上,

定义满足需求要的结构,即针对给定的问题,给出该问题的软件解决方案,确定“怎么做”的问题。

7. 总体设计阶段的工具:模块结构图、层次图、HIPO图。

8. 总体设计基本步骤:先将系统DFD图转化成初始的模块结构图,再基于“高内聚低耦

合”软件设计原则,通过模块化,将初始的模块结构图转化为最终的、可供详细设计使用的模块结构图(MSD)。

9. 根据数据流的特性,将数据流图分为变换型数据流图和事务型数据流图。

变换流指DFD具有明显的输入、变换、输出界面。事务流指DFD中输入流被分离成

许多数据流,形成

17

许多加工路径,并根据输入值选择其中一条路径来执行。

10. 模块结构图是软件系统的模块层次结构,反映整个系统的功能实现,用网状或树状结构

的图形表示。

形态特征:深度(模块的层数)、宽度(一层中最大的模块个数)、扇入(一个模块直接

上属模块的个数)、扇出(一个模块直接调用下属模块的个数)。

画图注意事项:同一名字的模块在结构图中只出现一次;调用关系只能从上到下;模块

调用次序一般从左到右。

11. 模块的控制域指这个模块本身以及所有直接或间接从属它的模块的集合。模块的作用域

是受该模块内一个判定所影响的所有模块的集合。当一个模块的作用域不在其控制域内,或把该模块移到上一层次,或把在作用域内但不在控制域内的模块移到控制域内,尽量使模块的作用域是其控制域的子集。

六、 耦合性和内聚性

1. 耦合性也叫块件关系,根据模块外部特征提出的,是对软件系统结构中各模块间相互联

系紧密程度的一种度量。按耦合程度由低到高分为:

? 无直接耦合:两个模块间无直接关系,分别从属不同模块的控制和调用,不传递任

何信息。

? 数据耦合:两个模块间有调用关系,传递简单数据值,相当于高级语言的值传递。 ? 标记耦合:两个模块间传递数据结构。 ? 控制耦合:传递控制变量,如开关、标志。 ? 公共耦合:传递在公共数据环境中的数据。

? 内容耦合:传递的是一个模块的内部数据,往往出现在汇编语言中。

18

2. 影响模块间耦合程度的最主要因素是模块间传递信息的复杂性,另外还受接口的复杂性

和调用方式的影响。模块间耦合性越强,联系越紧密,独立性越差。提高模块间独立性的措施有:

* 在耦合方式上降低模块间接口的复杂性:包括模块的接口方式、接口信息和参数个数。 * 在传递信息类型上尽量使用数据耦合,避免控制耦合,慎用或有控制地使用公共耦合。 3. 内聚性又叫块内联系,根据模块内部特征提出的指模块功能强度的度量,即一个模块内

部各个元素彼此结合的紧密程度的度量。按内聚程度由低到高分为: ? 偶然内聚:一个模块内的各处理元素间没有任何联系。

? 逻辑内聚:模块内执行的几个逻辑上相似的功能,通过参数确定该模块完成那一个

功能。

? 时间内聚:需要同时执行的动作组合在一起形成的模型。

? 通信内聚:都要在同一数据结构上操作,紧密相关于同一数据结构。

? 顺序内聚:紧密相关于同一功能,且必须按顺序完成,某成分的输入是另一成分的

输出。

? 功能内聚:共同完成同一功能,缺一不可,模块不可再分割。

3. 影响内聚程度的最主要因素是模块内各成分之间相关于同一功能的紧密程度。模块内聚

性越高,独立性越强,有利于软件重用。

七、 详细设计 1.

详细设计主要确定每个模块具体执行过程和内部特性,也称过程设计。结果是基本决定了最终程序代码的质量。 2.

结构图(SC图)是总体设计和详细设计衔接的图形工具,主要内容有:模块、模块

19

的控制关系、模块的信息传递。 3.

详细设计基本任务:为每个模块进行详细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设计;其他设计;编写详细设计说明书(内容包括引言、软件结构、模块设计说明);评审(针对处理过程的算法和数据库的物理结构)。 4.

详细设计目标是逻辑上正确实现每个模块的功能,还应使设计出的处理过程通过结构化程序设计清晰易读,指导开发出易于理解、易于验证的程序。 5.

结构化程序设计是面向数据流的软件总体设计方法,主要强调的是程序的易读性。基本要点有:(1)采用自顶向下,逐步求精的程序设计方法。(2)使用三种基本控制结构(共同点是只有单入口和单出口)构造程序。(3)采用工作方式为主程序员组的组织形式,突出了主程序员的领导(包括一个住程序员、后备程序员、程序管理员,一些专家和其他技术人员)。 6.

详细设计的工具:图形(程序流程图、盒图N-S图、PAD图、IPO图)、表格(判定表)、语言(类程序设计语言PDL,也叫伪码)。 7.

流程图,是描述程序逻辑结构的工具。 优点是:直观清晰、易使用。

缺点是:(1)可随心所欲画出控制流程的流向,易造成非结构化的程序结构。(2)不

易反映逐步求精过程,往往反映最后结果。(3)不易表示数据结构。(4)对大型软件过于琐碎,不易阅读和修改。

结构化流程图由三种基本控制结构顺序组合和完整嵌套而成,不能相互交叉,克服流

程图最大缺陷。

8.

问题分析图(PAD图),描述的是算法,是由左往右展开的二维树形结构,控制流程为自上而下,从左到右执行。

20