软件设计
定义
在软件设计中根据需求分析的软件需求及功能、性能需求,采用某种设计方法进行数据设计,系统结构设计和过程设计。
基本目标
用比较抽象概括的方式确定目标系统如何完成预定的任务
内容
数据设计、体系结构设计、接口设计、过程设计
将分析模型转换为设计
步骤及其任务
概要设计
将软件需求转化为软件体系结构
确定系统级接口
全局数据结构或数据库模式
详细设计
确立每个模块的实现算法和局部数据结构
用适当方法表示算法和数据结构的细节
总体设计的过程
系统设计
确定系统实现的方案;
结构设计
确定软件的结构,是概要设计的重点,完成四个任务:
① 采用某种设计方法,将一个复杂的软件系统按功能划分成模块的层次结构;
② 决定每个模块的功能,建立与已确定软件需求的对应关系;
③ 决定每个模块的调用关系;
④ 决定模块间的接口,即模块之间的传递信息,设计接口的信息结构。
⑤ 评估模块划分的质量及寻出模块结构的规则。
软件结构
构成及其各自含义
程序结构
程序结构有两层含义,
一是指程序的数据结构和控制结构;
另一是指由比程序低一级的程序单位(模块)组成程序的过程、方法和表示。
文档结构
文挡描述的对象往往很复杂,所以文档结构需要简明、清晰和有层次。
类和模块
对于模块,可理解为具有如下特性的程序单位,即把这些模块组合成较大的程序时,不要求了解各个模块的内部工作细节,而各模块的正确性也不用置于整个程序中就可检查。按照面向对象的方法来构造软件时,这种模块的概念就可以理解为类(参见面向对象程序设计)。
软件设计的主要手段
1.设计应遵循抽象化的原则
- 数据抽象
- 过程抽象
2.设计应遵循自顶向下、逐步细化的原则,建立一个层次的结构。
3.设计应当遵循模块化的原则。
- 模块可分解性
- 模块可组装性
- 模块可理解性
- 模块连续性
- 模块保护
4.设计应遵循信息隐蔽的原则