需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。确定系统的具体 实现方案、给出软件的模块结构、编写各个文档
目的是什么?
承上(需求)启下(开发)的一步。
根据需求,把代码开发阶段需要的东西,全部想好。
概要设计与详细设计从管理和技术点划分,如下图:
软件开发阶段过程
1.概要设计
2.详细设计
详细设计实际是概要设计的一个细化
软件设计基础
- 自顶向下,逐步细化
- 软件结构
- 程序结构
- 结构图
- 模块化
- 抽象化
- 信息隐藏
模块的独立性
指软件系统中每个模块只涉及软件要求的具体的子功能
可以用两个定性标准度量:耦合和内聚
模块间的耦合
耦合是模块之间相互连接的紧密程度的度量。模块之间的连接越紧密,联系越多,耦 合性就越高,而其模块独立性就越弱。
模块内聚
指同一个模块之间,语句间联系的紧密程度。
一个模块内部各个元素之间的联系越紧密,内聚性就越高,相对于其他模块之间 的耦合性就会降低,而模块独立性就越强。
面向数据流的设计方法
程序流程图
五种
N-S图
也叫做盒图。
问题分析图(PAD)
PAD也设置了五种基本控制结构的图示,并允许递归使用
优点:表示的程序结构易懂,清晰
支持自顶向下的方法