第四章软件设计 主要内容: 软件设计的目标和任务 软件设计基础 模块的独立性 ▲结构化设计方法 ▲数据设计及文件设计 过程设计
第四章 软件设计 主要内容: ▲ 软件设计的目标和任务 ▲ 软件设计基础 ▲ 模块的独立性 ▲ 结构化设计方法 ▲ 数据设计及文件设计 ▲ 过程设计
讨论要点 (1)如何将分析模型转换为软件 设计? (2)作为软件工程师在软件设计 方面应使用哪些基本原则和 概念?
讨论要点 (1)如何将分析模型转换为软件 设计? (2)作为软件工程师在软件设计 方面应使用哪些基本原则和 概念?
§4.1软件设计的目标和目的 软件需求:解决“做什么” 软件设计:解决“怎么做” 4.1.1软件设计的任务 问题结构(软件需求)映射软件结构 从软件需求规格说明书出发,形成软 件的具体设计方案
§4.1 软件设计的目标和目的 软件需求:解决“做什么” 软件设计:解决“怎么做” 4.1.1 软件设计的任务 问题结构(软件需求) 软件结构 从软件需求规格说明书出发,形成软 件的具体设计方案。 映射
将分析模型转换为软件设计 数 据 过程设讠 分/E图数据规 象描述 数据流图约接口设计 字典 体系结构设计 状态变迁图 控制规约 数据设计 分析模型 设计模型
将分析模型转换为软件设计 数据 字典 数据 流图 E-R图 状态变迁图 加 工 规 约 控制规约 数 据 对 描 述 象 数 据 设 计 体系结构设计 接口设计 过程设计 分析模型 设计模型
1.软件的总体结构主要回答的问题 软件的组成部分 软件的层次关系 模块的内部处理逻辑 模块之间的界面
1.软件的总体结构主要回答的问题 软件的组成部分 软件的层次关系 模块的内部处理逻辑 模块之间的界面
2.软件设计的问题 工具一如何描述软件的总体结构 方法一用什么方法有问题结构导出 软件结构 评估准则一什么样的软件结构是 “最优的
2. 软件设计的问题 工具 — 如何描述软件的总体结构 方法 — 用什么方法有问题结构导出 软件结构 评估准则 — 什么样的软件结构是 “最优的
3.软件设计方法 结构化设计方法(SD) 面向数据结构的设计方法(JSD方法) 面向对象的设计方法(00D)
3. 软件设计方法 结构化设计方法(SD) 面向数据结构的设计方法(JSD方法) 面向对象的设计方法(OOD)
4.软件设计分为两个阶段 (1)概要设计(总体设计 确定软件的结构以及各组成成分 (子系统或模块)之间的相互关系。 (2)详细设计 确定模块内部的算法和数据结构, 产生描述各模块程序过程的详细文 档
4. 软件设计分为两个阶段: (1)概要设计(总体设计) 确定软件的结构以及各组成成分 (子系统或模块)之间的相互关系。 (2)详细设计 确定模块内部的算法和数据结构, 产生描述各模块程序过程的详细文 档
s4.1软件设计的原则 Davis提出的软件设计原则: The design process should not suffer from tunnel vision.” The design should be traceable to the analysis mode The design should not reinvent the wheel The design should"minimize the intellectual distance?between the software and the problem at it exists in the real world The design should exhibit uniformity and ntegration
§4.1 软件设计的原则 Davis提出的软件设计原则: • The design process should not suffer from “tunnel vision.” • The design should be traceable to the analysis model. • The design should not reinvent the wheel. • The design should “minimize the intellectual distance”between the software and the problem at it exists in the real world. • The design should exhibit uniformity and integration
The design should be structured to accommodate change The design should be structured to degrade gentle, even when aberrant data, evens, or operating conditions are encountered Design is not coding, coding is not design The design should be assessed for quality as it is being created, not after the fact The design should be reviewed to minimize conceptual(semantic)errors
• The design should be structured to accommodate change. • The design should be structured to degrade gentle,even when aberrant data,evens,or operating conditions are encountered. • Design is not coding,coding is not design. • The design should be assessed for quality as it is being created,not after the fact. • The design should be reviewed to minimize conceptual(semantic)errors