软件设计的目标和任务
根据用信息域表示的软件需求,以及功能和性能需求进行(数据设计、系统结构设计、过程设计)
开发阶段的信息流
软件设计任务
概要设计
详细设计
概要设计和管理设计从管理观点和技术观点划分
软件设计基础
自顶向下,逐步细化
软件结构
程序结构
结构图
模块化
抽象化
模块的独立性
指软件系统中每个模块只涉及软件要求的具体的子功能
两个准则度量:耦合、内聚
模块间的耦合
耦合是模块之间相互连接的紧密程度的度量。模块之间的连接越紧密,联系越多,耦合性就越高,而且模块独立性就越弱
模块内聚
指同一个模块之间,语句间联系的紧密程度
一个模块内部各个元素之间的联系越紧密,内聚性就越高,相对于其他模块之间的耦合性就会降低,而模块独立性就越强
软件模块结构的改进
模块功能的完善化
1、执行规定的功能的部分
2、出错处理的部分
3、给它的调用者返回一个结束状态标志
消除重复功能,改善软件结构
1、完全相似
2、局部相似
文件设计
1、整理必须的数据元素
2、分析数据间的关系
3、确定文件的逻辑设计
4、理解文件的特性
5、确定文件的组织方式(顺序文件、直接存取文件)
6、确定文件的存储介质
7、确定文件的记录格式
8、估算存取时间和存储容量
结构设计原则
1、显著改进软件结构提高模块独立性
2、模块规模应该适中(150行左右,不超过150行)
3、适当选择深度、宽度、扇出和扇入
4、模块的作用域应该在控制域之内
5、力争降低模块接口的复杂程度
6、设计单入口单出口的模块
7、模块功能应该可以预测
面向数据流的设计方法
程序流程图
5种控制结构
N-S图(盒图)
问题分析图(PAD)