一、软件设计的目标和任务
根据用信息域表示的软件需求,以及功能和性能需求,进行
数据设计
系统结构设计(概要,详细)
过程设计(根据过程性描述生成源代码)
如果没有设计,只能建立一个不稳定的系统结构。
1、软件设计的任务
1. 概要设计:
总体设计,将软件的需求转化为数据结构和软件的系统结构。
2. 详细设计:
过程设计,通过对结构细化,得到软件详细结构和算法。
二、软件设计的基础
自顶向下,逐步细化
软件结构:(程序的模块,数据)
程序结构:(树状、网状)
结构图
模块化
抽象化
信息隐蔽
三、模块独立性
1.模块用“矩形框”表示
2.模块的调用关系和接口
3.模块间的信息传递
4.表示模块A有条件的调用另一个模块,用“菱形框 ”表示;循环调用,用“弧形 ”表示
5.模块的基本属性:
功能:实现什么功能
逻辑:描述模块内部怎么做
状态:该模块使用时的环境和条件
6.耦合、内聚:用来度量模块独立性(高内聚低耦合),每个模块之间的耦合越少越好
非直接耦合:两个模块之间没有 直接关系(这种耦合是最弱的)
数据耦合:仅有数据传输,提倡使用
标记耦合:共用数据的一部分,稍加改动可变程数据耦合,弱耦合提倡使用
控制耦合:中耦合,少用
外部耦合:肯定有,局限在模块内,和外部数据相连,较强耦合
公共耦合:较强耦合,尽量避免,SQL语句都是公共耦合,多个模块相互作用产生公共耦合
内容耦合:一个模块多个入口,不通过正常的入口,使用数据,产生内容耦合
模块内聚
功能内聚:最高内聚,按功能划分模块
信息内聚:顺序内聚,每一功能有唯一入口点
通信内聚:公用数据
过程内聚:上一个的输出是下一个的输入
时间内聚:模块中任务必须在同一时间段执行
逻辑内聚:把几种相关功能组合在一起,效率不高浪费内存
巧合内聚:松散型的
四、结构化设计方法
首先研究、分析和审查数据流图
数据处理问题:变换型和事务型
分析处理
在系统中的模块(传入模块、传出模块、变换模块、协调模块)
变换型系统结构图
事务型系统结构图:关键要找出事务中心,如何调度事务,多条道供你选择
五、数据设计和文件设计
1、数据设计的原则
用于软件的系统化方法也适用于数据
确定所有的数据结构和在每种数据结构上施加的操作
应当建立一个数据词典并用它来定义数据和软件的设计
低层数据设计的决策应推迟到设计过程的后期
数据结构的表示只限于那些必须直接使用该数据结构内数据的魔铠才知道
应当建立一个存放有效数据结构及相关操作的库
软件设计和程序设计语言应当支持抽象数据类型的定义和实现
2、文件设计
1. 整理数据元素
2. 分析数据关系
3. 逻辑设计
4. 理解文件特性
5. 确定文件的组织方式
顺序文件
直接存取文件
六、过程设计
1、工具
1. 图形工具
2. 表格工具
3. 语言工具
2、程序流程图