1设计过程 2设计原理 3启发规则 4描绘软件结构的图形工具 5面向数据流的设计方法
1 设计过程 2 设计原理 3 启发规则 4 描绘软件结构的图形工具 5 面向数据流的设计方法
1)模块化( Modularity) 模块化是好的软件设计的一个基本准则 高层模块一一从整体上把握 问题,隐蔽细节 分解 复杂间题较小问题 分解 可减小解题所需的总的工作
1) 模块化 (Modularity) 模块化是好的软件设计的一个基本准则 从整体上把握 问题,隐蔽细节 复杂问题 较小问题 分解 可减小解题所需的总的工作 分解
例:将问题(1+P2)分解为LP2 设函数C(x)定义问题x的复杂程度 函数E(x)确定解决问题ⅹ需要的工作量 则,对问题P1和P2,有: C(P1)>C(P2) 显然:F(P1)>E(P2) 且存在规律:C(P1+P2)>C(Pl)+C(P2) E(P1+P2)>E(P1)+E(P2) “各个击破”理论基础
例:将问题(P1+P2)分解为P1,P2 设函数C(x)定义问题 x 的复杂程度 函数E(x)确定解决问题 x 需要的工作量. 则,对问题P1和P2,有: C(P1) > C(P2) 显然: E(P1) > E(P2) 且存在规律:C(P1+P2) > C(P1)+C(P2) E(P1+P2) > E(P1)+E(P2)) “各个击破”理论基础
模块化和软件成本 软件总成本 成本或工作量 最小成本区域 集成成本 M 成本/模块 模块数量
模块化和软件成本 成 本 或 工 作 量 模块数量 软件总成本 集成成本 成本/模块 M 最小成本区域
2)抽象( Abstraction) 抽象原则应用举例 Windows nt一体化的I/0系统设计 文件管理 抽对虚拟文件 O网络管理 象的字节流, 虚拟文件可 S设备管理 为任何设备 高速缓冲存储器 和实体
2) 抽象(Abstraction) 抽象原则应用举例 Windows NT一体化的I/O系统设计 文件管理 网络管理 设备管理 高速缓冲存储器 O S 对虚拟文件 的字节流, 虚拟文件可 为任何设备 和实体 抽 象