1.03k likes | 1.32k Views
软件开发 —— 概要设计. 授课教师:张莹 电子邮件: zying119@yahoo.com.cn. 内 容 提 纲. 设计的基本任务 总体设计的基本过程 结构化设计方法 — 描绘软件结构的图形工具 — 设计软件结构的方法 设计的优化. 内 容 提 纲. 面向对象设计方法 — 设计活动的介绍 — 设计原则的介绍 — 典型的软件体系结构 — 面向对象设计建模. 内 容 提 纲. 设计的基本任务 总体设计的基本过程 结构化设计方法 — 描绘软件结构的图形工具 — 设计软件结构的方法 设计的优化. 设计的基本任务.
E N D
软件开发——概要设计 授课教师:张莹 电子邮件:zying119@yahoo.com.cn
内 容 提 纲 • 设计的基本任务 • 总体设计的基本过程 • 结构化设计方法 —描绘软件结构的图形工具 —设计软件结构的方法 • 设计的优化
内 容 提 纲 • 面向对象设计方法 —设计活动的介绍 —设计原则的介绍 —典型的软件体系结构 —面向对象设计建模
内 容 提 纲 • 设计的基本任务 • 总体设计的基本过程 • 结构化设计方法 —描绘软件结构的图形工具 —设计软件结构的方法 • 设计的优化
设计的基本任务 • 研究系统的软件实现问题。即在分析模型的基础上形成实现环境下的设计模型 • 主要涉及体系结构设计、详细设计、用户界面设计和数据库设计等方面
系统说明 数据库设计 进度计划 测试计划 用户手册 总体设计的基本过程 设计 数据库 确定软件的 具体实现方案 设计 软件结构 需求 评审和复审
内 容 提 纲 • 设计的基本任务 • 总体设计的基本过程 • 结构化设计方法 —描绘软件结构的图形工具 —设计软件结构的方法 • 设计的优化
描绘软件结构的图形工具(层次图) • 适用范围:自顶向下分析
描绘软件结构的图形工具(结构图) • 基本符号 —方框:模块,框内注明模块的名字或主要功能 注意:顶层控制模块——M 输入模块——MI 输出模块——MO —箭头(或直线):模块的调用关系。 注意:调用次序为上层调用下层; 同层按照数据传递关系确定; 一般从左到右执行,执行过程即按照数据流向 进行。 • 适用范围:软件结构的优化
y x y x x y 传入模块 变换模块 传出模块 x x x 源模块 漏模块 y 控制模块 模块的基本形态
A X,Y Z Z B C 模块间的关系——简单调用
面向数据流的设计方法(SD) • 基本思想 通过数据流图描绘的信息在系统中加工和流动的情况,定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构 • 基本方法 —变换流分析 —事务流分析
结构化设计方法(SD)的步骤 • 复审DFD,必要时可再次进行修改或细化 • 鉴别DFD所表示的软件系统的结构特征 • 按照规则,把DFD映射为初始的结构图 • 按照启发式原则细化和改进初始的结构图
W w a b A B C c R r P u d p e D E Q v U V 举例:分析和划分下列DFD 第一级分解 第二级分解
练习 请将下列数据流图转换成软件结构图
答案 M MI MT MO 1 4 8 5 7 2 3 6
举例 高考录取统分子系统有如下功能: • 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件; • 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。 要求:试根据要求画出该系统的数据流程图,并将其转换为软件结构图。
软件结构答案 统分子系统 输入 处理 输出 计算标准分 计算录取分
事务流分析 引起或触发单一动作或一串动作的数据、控制信号、事件或状态变化
E L B A F C I M D G N 事务中心 事务流转换举例
总控 接受事务 调度 动作L 动作M 动作N 输入 L 输出 输入 M 输出 输入 N 输出 SC图
总控 E,F,G A B G F C E D 输出 L N M 取 A 简化后的结构图
练习 2 e b h a f c 3 4 1 d m g 5 6
答案 主模块(1/4) h a b e c f g d 2 3 Get a Put h d g m l 5 6
配置文件 格式化配置数据 系统 参数 读 系统 数据 建立 配置 文件 配置 数据 配置命令 命令 分析 处理 用户 命令 格 式 化 配 置 数 据 密码 命令 读密码 密码 四位 数字 密码 验证 输出 显示 验证 信息 验证 信息 重试 显示 举例:交互系统的DFD
交互系统 接收用户命令 调度命令 配置命令 密码命令 第一级模块结构图
交互系统 用户命令 用户命令 接收用户命令 调度命令 密码 系统参数 配置命令 密码命令 读系统数据 建立配置 文件 读密码 密码检验 输出 有效显示 无效显示 第二级模块结构图
注意 • 根据是否有明显的事务中心,决定模块结构 • 通常大型系统是变换型和事务型的混合结构
内 容 提 纲 • 设计的基本任务 • 总体设计的基本过程 • 结构化设计方法 —描绘软件结构的图形工具 —设计软件结构的方法 • 设计的优化
设计的优化——启发式规则 • 改进软件结构提高模块独立性 —模块独立性 —目标:模块的分解、合并力求降低耦 合,提高内聚。
X X X Y Y Y 改进方案1 改进方案2 Q1 Q2 Q1 Q2 Q’ C C C 举例:请提高下列模块间的独立性
模块规模、大小应该适中 • 模块化 —将系统“分而治之”,降低了问题的复 杂性 —使软件结构清晰,易于测试和维护 • 模块数量的确定
扇出为3 A 顶层 B C D 1层 深度 E F G H 2层 I J K L M 3层 扇入为2 N 4层 扇入为3 宽度 宽度 宽度 软件结构示意图 深度、宽度、扇入、扇出合理 目标:避免高扇出,争取高扇入 基本方法:增加中间层
计算实发工资 取得 工资 数据 计时 制工 资额 薪金 制工 资额 编外 人员 工资 税收 扣款 编外 人员 税款 常规 扣款 编外 人员 扣款 举例:下列模块结构图是否合适
计算实发工资 取得工资数据 计时工人实发工资 计薪工人实发工资 编外人员实发工资 计时 制工 资额 税收 扣款 薪金 制工 资额 常规 扣款 编外 人员 工资 编外 人员 税款 编外 人员 扣款 优化后的模块结构图
模块的作用域应在控制域之内 • 定义 —控制域:结构方面的特点,包括模块及其所有下 属模块。 —作用域:判断所涉及到的模块,是从功能特点考 虑。 • 基本目标 —当作用范围为控制范围的子集时,才能获得弱耦 合; —判定模块和受其影响的模块应该尽量靠近。
TOP A X T D C B B B G F E F E B1 A B2 举 例
(a) TOP TOP (b) B A B A D C D C E F E F (c) TOP B A C E D F 练习:判断下列模块结构图是否合理?
M M、A A G G C B C B D E F D E F M A C B G D E F 练习:如何消除下列模块结构图中的不合理 方案1: 方案2:
力争降低模块接口的复杂程度 • 模块接口应具备传递简单,易于对功能模块的理解
设计单入口、单出口模块 • 防止模块间内容耦合的出现
模块功能应该可以预测 • 只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。 • 模块带有内部状态其功能可能是不可预测的