1 / 103

软件开发 —— 概要设计

软件开发 —— 概要设计. 授课教师:张莹 电子邮件: zying119@yahoo.com.cn. 内 容 提 纲. 设计的基本任务 总体设计的基本过程 结构化设计方法 — 描绘软件结构的图形工具 — 设计软件结构的方法 设计的优化. 内 容 提 纲. 面向对象设计方法 — 设计活动的介绍 — 设计原则的介绍 — 典型的软件体系结构 — 面向对象设计建模. 内 容 提 纲. 设计的基本任务 总体设计的基本过程 结构化设计方法 — 描绘软件结构的图形工具 — 设计软件结构的方法 设计的优化. 设计的基本任务.

isha
Download Presentation

软件开发 —— 概要设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 软件开发——概要设计 授课教师:张莹 电子邮件:zying119@yahoo.com.cn

  2. 内 容 提 纲 • 设计的基本任务 • 总体设计的基本过程 • 结构化设计方法 —描绘软件结构的图形工具 —设计软件结构的方法 • 设计的优化

  3. 内 容 提 纲 • 面向对象设计方法 —设计活动的介绍 —设计原则的介绍 —典型的软件体系结构 —面向对象设计建模

  4. 内 容 提 纲 • 设计的基本任务 • 总体设计的基本过程 • 结构化设计方法 —描绘软件结构的图形工具 —设计软件结构的方法 • 设计的优化

  5. 设计的基本任务 • 研究系统的软件实现问题。即在分析模型的基础上形成实现环境下的设计模型 • 主要涉及体系结构设计、详细设计、用户界面设计和数据库设计等方面

  6. 系统说明 数据库设计 进度计划 测试计划 用户手册 总体设计的基本过程 设计 数据库 确定软件的 具体实现方案 设计 软件结构 需求 评审和复审

  7. 内 容 提 纲 • 设计的基本任务 • 总体设计的基本过程 • 结构化设计方法 —描绘软件结构的图形工具 —设计软件结构的方法 • 设计的优化

  8. 描绘软件结构的图形工具(层次图) • 适用范围:自顶向下分析

  9. 描绘软件结构的图形工具(HIPO图)

  10. 描绘软件结构的图形工具(结构图) • 基本符号 —方框:模块,框内注明模块的名字或主要功能 注意:顶层控制模块——M 输入模块——MI 输出模块——MO —箭头(或直线):模块的调用关系。 注意:调用次序为上层调用下层; 同层按照数据传递关系确定; 一般从左到右执行,执行过程即按照数据流向 进行。 • 适用范围:软件结构的优化

  11. y x y x x y 传入模块 变换模块 传出模块 x x x 源模块 漏模块 y 控制模块 模块的基本形态

  12. A X,Y Z Z B C 模块间的关系——简单调用

  13. 模块间的关系——选择调用

  14. 模块间的关系——循环调用

  15. 举例:求取最佳解系统的结构图

  16. 面向数据流的设计方法(SD) • 基本思想 通过数据流图描绘的信息在系统中加工和流动的情况,定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构 • 基本方法 —变换流分析 —事务流分析

  17. 结构化设计方法(SD)的步骤 • 复审DFD,必要时可再次进行修改或细化 • 鉴别DFD所表示的软件系统的结构特征 • 按照规则,把DFD映射为初始的结构图 • 按照启发式原则细化和改进初始的结构图

  18. 变换流分析

  19. 变换流转换成软件结构

  20. W w a b A B C c R r P u d p e D E Q v U V 举例:分析和划分下列DFD 第一级分解 第二级分解

  21. 练习 请将下列数据流图转换成软件结构图

  22. 答案 M MI MT MO 1 4 8 5 7 2 3 6

  23. 举例 高考录取统分子系统有如下功能: • 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件; • 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。 要求:试根据要求画出该系统的数据流程图,并将其转换为软件结构图。

  24. 数据流图答案

  25. 软件结构答案 统分子系统 输入 处理 输出 计算标准分 计算录取分

  26. 事务流分析 引起或触发单一动作或一串动作的数据、控制信号、事件或状态变化

  27. 事务流的转换

  28. E L B A F C I M D G N 事务中心 事务流转换举例

  29. 总控 接受事务 调度 动作L 动作M 动作N 输入 L 输出 输入 M 输出 输入 N 输出 SC图

  30. 总控 E,F,G A B G F C E D 输出 L N M 取 A 简化后的结构图

  31. 练习 2 e b h a f c 3 4 1 d m g 5 6

  32. 答案 主模块(1/4) h a b e c f g d 2 3 Get a Put h d g m l 5 6

  33. 配置文件 格式化配置数据 系统 参数 读 系统 数据 建立 配置 文件 配置 数据 配置命令 命令 分析 处理 用户 命令 格 式 化 配 置 数 据 密码 命令 读密码 密码 四位 数字 密码 验证 输出 显示 验证 信息 验证 信息 重试 显示 举例:交互系统的DFD

  34. 交互系统 接收用户命令 调度命令 配置命令 密码命令 第一级模块结构图

  35. 交互系统 用户命令 用户命令 接收用户命令 调度命令 密码 系统参数 配置命令 密码命令 读系统数据 建立配置 文件 读密码 密码检验 输出 有效显示 无效显示 第二级模块结构图

  36. 注意 • 根据是否有明显的事务中心,决定模块结构 • 通常大型系统是变换型和事务型的混合结构

  37. 内 容 提 纲 • 设计的基本任务 • 总体设计的基本过程 • 结构化设计方法 —描绘软件结构的图形工具 —设计软件结构的方法 • 设计的优化

  38. 设计的优化——启发式规则 • 改进软件结构提高模块独立性 —模块独立性 —目标:模块的分解、合并力求降低耦 合,提高内聚。

  39. X X X Y Y Y 改进方案1 改进方案2 Q1 Q2 Q1 Q2 Q’ C C C 举例:请提高下列模块间的独立性

  40. 模块规模、大小应该适中 • 模块化 —将系统“分而治之”,降低了问题的复 杂性 —使软件结构清晰,易于测试和维护 • 模块数量的确定

  41. 扇出为3 A 顶层 B C D 1层 深度 E F G H 2层 I J K L M 3层 扇入为2 N 4层 扇入为3 宽度 宽度 宽度 软件结构示意图 深度、宽度、扇入、扇出合理 目标:避免高扇出,争取高扇入 基本方法:增加中间层

  42. 计算实发工资 取得 工资 数据 计时 制工 资额 薪金 制工 资额 编外 人员 工资 税收 扣款 编外 人员 税款 常规 扣款 编外 人员 扣款 举例:下列模块结构图是否合适

  43. 计算实发工资 取得工资数据 计时工人实发工资 计薪工人实发工资 编外人员实发工资 计时 制工 资额 税收 扣款 薪金 制工 资额 常规 扣款 编外 人员 工资 编外 人员 税款 编外 人员 扣款 优化后的模块结构图

  44. 模块的作用域应在控制域之内 • 定义 —控制域:结构方面的特点,包括模块及其所有下 属模块。 —作用域:判断所涉及到的模块,是从功能特点考 虑。 • 基本目标 —当作用范围为控制范围的子集时,才能获得弱耦 合; —判定模块和受其影响的模块应该尽量靠近。

  45. TOP A X T D C B B B G F E F E B1 A B2 举 例

  46. (a) TOP TOP (b) B A B A D C D C E F E F (c) TOP B A C E D F 练习:判断下列模块结构图是否合理?

  47. 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:

  48. 力争降低模块接口的复杂程度 • 模块接口应具备传递简单,易于对功能模块的理解

  49. 设计单入口、单出口模块 • 防止模块间内容耦合的出现

  50. 模块功能应该可以预测 • 只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。 • 模块带有内部状态其功能可能是不可预测的

More Related