系统设计知识点
概要设计基本任务:
- 设计系统的总体结构
将一个复杂的系统划分成若干个模块;确定每一个模块的功能;确定模块之间的调用关系;确定模块之间的接口;评价模块结构的质量。 - 数据结构及数据库设计
数据结构的设计。将需要分析阶段确定的数据字典对数据的组成、操作约束、数据之间的关系等方面进行描述。
数据库的设计。数据库的设计指将数据存储文件的设计。
A.概念设计。
B.逻辑设计。
C.物理设计。 - 概要文档的编写
- 评审
详细设计的基本作务:
- 对每个模块进行详细的算法设计
- 对模块内的数据结构进行设计
- 对数据库进行物理设计
- 其他设计:根据软件系统的类型,不可能要进行以下设计:代码设计、输入输出格式设计、人机交互设计
- 编写详细设计说明书
- 评审。
系统设计的原理:
- 抽象。忽略或者掩盖一些非本质的东西,让一个复杂化的现象简化到可分析、可实验和可理解的程度。
- 模块化。将系统进行模块化,各个击破,化整为零的方式进行处理复杂系统。
- 信息隐蔽。在开发整体程序结构时,使用的方法。即将每一个程序分成隐蔽或封装在一个单一的设计模块中。信息隐蔽性对提高了软件的可修改性、可测试性和可移植性起着重大作用。
- 模块独立。模块独立是指各个模块完成独的内容。衡量标准有两个耦合与内聚。应该达到低耦合高内聚。
耦合:各模块间的紧密程度。耦合越高则模块独立性越差。耦合分为以下几个类型:- 无直接耦合。是指两个模块间没有直接的关系。之间不存在传递数据。模块独立性最高。
- 数据耦合。是指两个模块间有调用关系,传递简单数值。如C语言中的函数调用的传值。
- 标记耦合。指两个模块间传递数据结构。如C语言中传递数组、结构到另一个模块中。
- 控制耦合。指两个模块间存在调用关系,传递控制标志。
- 公共耦合。指两个模块间存在共享公共数据。
- 内容耦合。这种耦合度最高,是指一个模块调用另一个模块中的内容。一般出现在汇编中。
内聚:是指模块内部各个部件间的紧密程度。分以为下几个类型:
- 偶然内聚。指各个处理单元之间没有直接关系。
- 逻辑内聚。指模块内执行几个逻辑上相似的功能。比如消息循环中的各个Case,根据不同的逻辑标志,调用想应该的块。
- 时间内聚。把需要时间上需要同时执行的块放在一起。
- 通信内聚。指各块间处理的对象在同一个数据结构上,或处理相同的输入或输出。
- 顺序内聚。指各块间的功能密切,上一块的输出是下一块的输入。
- 功能内聚。这是最强的内聚,各块间完成同一功能,缺一不可。
系统设计原则:
- 分解--协调原则。将系统分解成多个小问题分别处理,在处理过程中根据系统的总体要求协调各部门的关系。
- 自顶向下的原则。根据系统功能,逐层分解。先确定上层模块的功能,再依次确实下层模块的功能。
- 信息隐蔽、抽象的原则。上层模块只规定下层模块的功能,至于怎么做由下层自主安排。以保证模块的相对独立性和内部结构的合理性,使得模块与模块之间的层次分明,易于理解、实施和维护。
- 一致性原则。要保证整个系统设计过程中有统一的规范、统一标准和统一的文件模式。
- 明确性原则。每个模块必须功能明确、接口明确。
- 模块间的耦合尽量小,模块的内聚度尽可能的高。
- 模块的扇出系数和扇出系数尽量合理。一个模块直接调用其他模块的个数称该模块的扇出系统,反之一个模块被其他模块调用时,直接调用他的模块数理移为扇入系数。
- 模块的规模要适当。模块过大使系统分解不充分,模块过小导致模块的独立性差。
子系统设计原则:
- 子系统要具有相对独立性。
- 子系统之间数据依赖性尽量小
- 子系统划分的结果应使数据冗余较小。
- 子系统应该考虑将来的管理发展的需要
- 子系统的划分应便于系统分阶段实现。
- 子系统的划分应考虑到各类资源的充分利用。
结构化设计方法:
- 信息流的类型:分为变换流和事务流。变换流是指将输入的数据经过处理后输出的形式。事务流是指根据输入的类型,在若干个动作序列中选择一个来执行。
- 变换分析:是指将需求分析阶段的DFD,导出程序结构图。
面向数据结构的分析方法:是指以数据结构作为设计基础,它根据输入/输出数据结构导出程序结构,重合规模不大的数据处理系统。Jackson方法是一种典型的数据结构的设计方法。
