系统设计基础知识
系统设计的内容和步骤
在系统分析阶段,已经形成规格说明书描述系统的逻辑模型。
进入设计阶段,需要把“做什么”的逻辑模型转换成“怎么做”的物理模型。
系统设计的主要目的是为系统制定蓝图,最终勾画出系统的详细设计方案。
系统设计的主要内容包括:
- 总体结构设计
- 代码设计
- 输出设计
- 输入设计
- 处理过程设计
- 数据存储设计
- 用户界面设计
- 安全控制设计
系统设计的基本任务:
- 概要设计
- 详细设计
概要设计
概要设计的基本任务如下:
- 设计软件系统总体结构
即采用某种设计方法,将一个复杂的系统按功能划分成模块;
确定每个模块的功能;
确定模块见的调用关系;
确定模块之间的接口;
- 数据结构及数据库设计
1) 根据需求阶段确定的数据字典,以及数据结构的特征,进一步细化(但是不需要关系具体的实现细节,实现细节是详细设计阶段的任务)
2)进行数据库概念设计、逻辑设计、物理设计
- 编写概要设计文档
包括概要设计说明书、数据库设计说明书、用户手册以及修订测试计划
- 评审
详细设计
即确定应该怎样具体地实现所要求的系统。
详细设计阶段,不是编写程序,而是设计出程序的“蓝图”,后续可以根据这个“蓝图”写出实际的代码。
详细设计阶段的主要任务:
- 对每个模块进行详细的算法设计
- 对模块内的数据结构进行设计
- 对数据库进行物理设计,即确定数据库的物理结构
- 其他设计(代码设计、输入输出设计、用户界面设计)
- 编写详细设计说明书
- 评审
系统设计的基本原理
- 抽象
- 模块化
- 信息隐藏
- 模块独立
模块独立是指每个模块完成一个相对独立的特点子功能,并且与其他模块之间的联系简单。
衡量模块独立程度的标准有两个:耦合性和内聚性。
- 耦合性,指模块之间联系的紧密程度。耦合性越高,模块独立性越差
- 内聚性,指模块内各元素之间联系的紧密程度。内聚程度越低,模块的独立性越差
提示:
内容耦合,程度最高的耦合。
功能内聚,最强的内聚。
原则:高内聚、低耦合,提高模块独立性
结构化设计方法
SD,structured Design。
是一种面向数据流的设计方法, 可以与SA衔接。
结构化设计方法的基本思想是将系统设计成由相对独立的、功能单一的模块组成的结构。
信息流的类型
在需求阶段,已经产生了数据流图。
面向数据流的设计能方便地将DFD转换成程序结构图。
DFD中从系统的输入数据流到系统的输出数据流的一连串连续变换形成了一条信息流。
DFD的信息流分为:
- 变换流
即信息输入、内部表示、变换加工处理、输出离开系统等
即变换流的DFD可以明显的分成输入、变换加工和输出三大部分。
- 事务流
信息流严格输入通道到达一个事务中心,事务中心根据输入信息(即事务)的类型在若干个动作序列中选择一个执行。
事务流有明显的事务中心。
变换分析
即从变换流性的DFD导出程序结构图。
1)确定输入流和输出流,分离出变换中心。位于输入流和输出流之间的部分就是变换中心。
2)第一级分解:顶层和第一层
3)第二级分解:设计中、下层模块
事务分析
即从事务流型DFD导出程序结构图。
1) 确定事务中心和每天活动的流特征
2) 将事务流型DFD映射成高层的程序结构
3) 进一步分解
SD方法的设计步骤
SD方法的设计步骤如下:
- 复查并精华数据流图
- 确定DFD的信息流类型(变换流或事务流)
- 根据流类型分别实施变换分析或事务分析
- 根据系统设计的原则对西横须结构图进行优化
面向对象设计方法
面向对象设计,Object-Oriented Design,OOD,是OOA(面向对象分析)方法的延续。
是在OOA模型基础上,运用面向对象方法,主要解决与实现有关的问题,目标是产生一个符合具体实现条件的OOD模型。
OOA与OOD采用一致的表示法,因此从OOA到OOD不存在转换,只需做必要的修改和调整。
- 实体类
- 边界类
- 控制类
面向对象设计主要包括以下活动:
- 对用例模型加以精炼反映实现环境
- 建模支持用例情景的对象交互、行为和状态
- 修改对象模型以放映实现环境