1 / 142

面向对象系统分析与设计 Object-Oriented Systems Analysis and Design

面向对象系统分析与设计 Object-Oriented Systems Analysis and Design. 河北农业大学信息科学与技术学院 滕桂法 教授. 第三章 面向对象分析与设计. ★ 什么是 面向对象分析与设计 ★ 面向对象分析的实践 ★ 面向对象分析与设计中再利用的实践. 什么是 面向对象分析与设计. 面向对象是一种从下到上的思想. 面向对象的软件开发. OOA 面向对象分析. 分析 明确问题. OOD 面向对象设计. 设计 决定如何解决问题. OOP 面向对象编程. 编程 根据解决方案实现解决. 软件开发的工业化、大众化.

bruno
Download Presentation

面向对象系统分析与设计 Object-Oriented Systems Analysis and Design

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. 面向对象系统分析与设计Object-OrientedSystems Analysis and Design 河北农业大学信息科学与技术学院 滕桂法 教授

  2. 第三章 面向对象分析与设计 ★什么是面向对象分析与设计 ★面向对象分析的实践 ★面向对象分析与设计中再利用的实践

  3. 什么是面向对象分析与设计 • 面向对象是一种从下到上的思想 面向对象的软件开发 OOA 面向对象分析 分析 明确问题 OOD 面向对象设计 设计 决定如何解决问题 OOP 面向对象编程 编程根据解决方案实现解决

  4. 软件开发的工业化、大众化 什么是面向对象分析与设计 • 面向对象实现软件开发的一贯性 利用面向对象方法的软件开发历程 爱好者研究者 一般SE 上 流 80年代后 80年代中 80年代前 分析 开发过程 设计 设计 编程 编程 编程 下 流

  5. 面向对象分析阶段 • 要求模型的构建 • 3种模型的表现 • 分析阶段中的对象 分析阶段的目的 模型化 要求文件 要求说明 (要求模型) ●消除不完整性、模糊、赘长 ●承担者对问题的理解 委托方 委托者+承担者 承担者

  6. 面向对象分析阶段 • 代表性的方法论中的3种模型

  7. 分析阶段的实例 • 对象模型的建立 • 动态模型的建立 • 功能模型的建立 文件索引的制作 abstract accept ····· 单词 Abstract 1,6,7 Accept 2,4,5 行序号 索引 文件 1

  8. 分析阶段的实例 对象的动态动作 对象群的静态构造 开始 初期状态 文件索引制作系统的分析阶段的3种模型 文件 索引 项目登录 登录中 单词 行序号 项目登录索引印刷 索引 印刷 开始 项目 登录 对应表 对象的功能

  9. 设计阶段 设计阶段是软件开发的中心部分 基本设计和详细设计 逻辑设计和物理设计 设计阶段的内容

  10. 设计阶段

  11. 设计阶段的实例1 索引生成程序的设计为实现追加对象3种模型的扩展(见图:索引生成程序中设计阶段的3种模型)

  12. abstract accept …… …… Abstract1,6,7 Accept 2,4,5 1 设计阶段的实例1 单词 行号 文件 队列 树 过滤器

  13. 设计阶段的实例2 对象的动态处理过程 对象群的静态构造 文章 过滤 索引 Tree 初期状态 Queue Add/insert main 登录中 行号 MakeReport 单词 表示中 Do:display 输出报告 读取单词 读取行号 打印 01 下面没有单词 对象的行为功能 索引生成程序中设计阶段的3种模型

  14. 设计阶段的实例2 编程分析、设计、编程的连续性 从3种模型的分析到编程的流程 OOA 对象(静态)模型 动态模型 功能模型 分析 设计 OOD 静态模型 动态模型 功能模型 编程 OOP 接口部分 实现部分

  15. 整体流程 面向对象的开发过程 来回型的开发形态

  16. 整体流程 面向对象开发过程 现实世界 要求 抽象化 OOA 细化 追加 追加 OOD 问题领域 数据管理 任务管理 U1 OOP 再利用 计算机

  17. 整体流程 来回型开发形态 分析 分析 原型 设计 设计 原型 编程 编程 来回型 瀑布型

  18. 各种方法 4大方法的特征 方法 Shlaer&Mellor OMT方法 Coad&Yourdon Booch方法 开发者/公司 Sally Shlaer/美国Project Technology公司 J.Rumbaugh等General Electric公司研究开发中心 Peter Coad/美国Object International公司 Grady Booch/美国Rational公司 将意义模型作为基础 高 从结构化分析继承数据流和状态转换图,对象、建摸受E-R图等的影响 高 扩充了Ada用的方法论的旧Booch法。从HOOD,OOSD等Ada用的方法论的影响大,也受E-R,JSD法的影响 高 概要 记述力 组合E-R图及Shlaer&Mellor的方法和OOP及知识库系统的概念而发展而来 低 分析.设计过程 OOD的联结度 自然 低 自然 高 ------- 高 -------- -------- 发表年 1988年 1991年 1990年 1990年 适用成绩 丰富(1979---) 少 少 丰富 辅助工具 Teamwork OMTool OOATool Rose 技术公开度 低 特别高 高 中 对象规模 小—大规模 小—中规模 小规模 中—大规模

  19. 各种方法 4大方法的特征 S-M法: 作为对象意识到实时系统,辅助特别细致的动态建模 C-Y法: 没有细微的限制,对于用户自由度高,是4种方法中 最通用的。 OMT法: 是4种方法中唯一从分析到设计、编程连贯下来的方法 Booch法:以面向对象设计为对象,与其他方法比较,对于各种 面向对象语言有种种表现形态,与面向对象语言的连 接明确

  20. 重用的目的和对象 重用的目的 重用的对象 软件生产性,可靠性的提高 促进标准化 软件的质量一致性 软件组件 技术 软件的重用

  21. 软件的重用 组件重用中的技术课题 重用单位 组件的体系化 组件重用的 技术课题 检索方法 修改顺序 登录方法 各个阶段的成果都是重用的候补

  22. 阶段 分析 设计 编程 对象组件(成果物) 设计技巧 系统设计书 程序 为了确定设计,参考原来的分析信息,未组件化 系统设计书的多半没有组件化 检索类似程序,加以修改 重用的形态 负荷(劳力)(时间) 高 中 低 重用率 低 中 高 开发阶段与重用组件

  23. 利用类和库进行面向对象开发的组件重用 上层 问题领域 分 析 检索 类 和 库 重用Ob + 登录 新Ob 类管理,数据管理,UI管理 设 计 检索 重用Ob + 登录 新Ob 编 程 设计中已有的Pro 检索 重用Pro + 新Pro 登录 下层 新系统 Ob:对象 Pro:程序

  24. 饭店综合信息系统 后付款方式 顾客 来店 点菜 餐桌 服务员 就餐 收银 收款员 目的:考虑两种饭店均可用的对象/模型/动态模型

  25. 来店 点菜 收银 用餐 饭店综合信息系统 先付款方式 顾客 收款员 服务员 餐桌

  26. 饭店综合信息系统 对象/模型 用OMT方法建立对象/模型 首先分析领域对象,实际可能有很多对象,现仅选与分析目的有关的5个对象来建立对象模型。 顾客-------------区分顾客的属性 菜单-------------菜单项目和价格,按此来收款 点菜-------------相当于传票,其属性有点菜号、时间、品种 服务员----------接受点菜、供菜 收款员----------管理收款、每日的收款总数和欠帐管理 在明确属性后,就可以定义其操作了。例如,点菜的操作是:点菜、供菜、收款、统计累加。

  27. 饭店系统对象/模型(对象间的关系定义) 顾客 人数 ID 顾客区分 订单 订单号 日期 菜名 合计数量 合计金额 状态 服务员 ID 点菜处理 服务处理 点菜 上菜服务 菜单品种 菜号 菜名 菜名简称 单价 种类区分 会计处理 收银员 当日收款 未收款项 入帐处理 表示 1对多 饭店综合信息系统

  28. 饭店综合信息系统 用OMT方法建立动态模型 在建立对象模型后,建立动态模型。 建立动态模型的顺序: 首先针对某作业,制作表示事件发生的流程的序列。 然后根据其序列作成规定对象间事件流程的事件跟踪图。 饭店1 的事件跟踪图的建立。

  29. 饭店综合信息系统 动态模型(1) 饭店1 的序列 服务员记录顾客的点菜 服务员将顾客的点菜记录到订单 服务员上菜 服务员在订单上加注上菜标记 用餐后、顾客付款 收款员向订单上加注已收款标志

  30. 顾客 服务员 订单 结帐 饭店综合信息系统 动态模型(1) 饭店1 的动态模型的事件跟踪图 口头点菜 订单记录 (生成) (菜做好) (点菜) 上菜 订单执行 (执行) 结帐(交钱) 结帐完毕

  31. 饭店综合信息系统 动态模型(1) 饭店1 中的“订单”对象的状态变换图 会计处理(金额) 会计的事件 统计完,保存 上菜服务 点菜 结帐完成 统计的事件 服务员的事件 点菜(品种、顾客层) 上菜 统计

  32. 饭店综合信息系统 动态模型(2) 饭店2 的序列 服务员记录顾客的点菜 服务员将顾客的点菜记录到订单(输入到机器里) 顾客付款 收款员在订单标已收款 服务员给顾客上菜 服务员向订单上加注上菜记录

  33. 动态模型(2) 饭店2 的动态模型的事件跟踪图 顾客 服务员 订单 结帐 口头点菜 订单记录 (生成) 结帐(交钱) (点菜) 结帐完毕 (菜做好) 上菜 订单执行 (执行) 饭店综合信息系统 对象模型一样 但动态模型不一样

  34. 动态模型(2) 点菜(品种、顾客层) 饭店2中的“订单”对象的状态变换图 点菜 生成与属性值设定 结帐处理(金额) 所有应服务的内容 已结帐 请求服务指示 服务实施 服务标志开 上菜 统计完成,保存 已统计标志开 统计 饭店综合信息系统

  35. 多视点状态变换模型 适合饭店1的多视点状态变换模型( “订单” 对象) 点菜(品种、顾客层) 会计处理(金额) 点菜 未结帐 服务 服务完 已结帐 会计 统计 服务员 已调查 统计处理 饭店综合信息系统

  36. 饭店综合信息系统 多视点状态变换模型 适合饭店2的多视点状态变换模型(“订单” 对象) 点菜(品种、顾客层) 点菜 未结帐 会计处理(金额) 服务 服务完 已结帐 会计 统计 服务员 已调查 统计处理

  37. 实现组件的标准化 对于饭店1的“订单”对象,在饭店2中怎样? 订单的动态模型的状态变换关系没有变化,唯一变化是:点菜事件的起源由服务员变成会计了。这样就可是县实现了面向对象中的组件标准化。 多视点状态变换的考虑方法对模型化十分有效。从多个视点不考虑之间的关系建立起独立的模型,这样模型化较容易和提高理解性。

  38. 设计变更过程的固定化 设计变更的过程 过 程 (例)饭店综合信息系统 处理的变更: 先付款方式-后付款方式 设计变更 可重用部分----对象、模型 追加修改部分----动态模型 可重用部分及追加修改部分的特定化 追加/修改/消除 多视点状态变换模型的修改

  39. 面向对象分析与设计 ●面向对象开发过程概述 ●面向对象开发过程的特征 ●面向对象分析、设计方法论 OMT法 Booch法 其他方法论 第二代OMT法 ●案例介绍

  40. 面向对象开发过程概述 面向对象分析 系统分析、设计 用户接口设计与面向对象设计 编程(面向对象编程) 再利用的准备

  41. 各种方法 方法 Shlaer&Mellor OMT方法 Coad&Yourdon Booch方法 开发者/公司 Sally Shlaer/美国Project Technology公司 J.Rumbaugh等General Electric公司研究开发中心 Peter Coad/美国Object International公司 Grady Booch/美国Rational公司 将意义模型作为基础 高 从结构化分析继承数据流和状态转换图,对象、建摸受E-R图等的影响 高 扩充了Ada用的方法论的旧Booch法。从HOOD,OOSD等Ada用的方法论的影响大,也受E-R,JSD法的影响 高 概要 记述力 组合E-R图及Shlaer&Mellor的方法和OOP及知识库系统的概念而发展而来 低 分析.设计过程 OOD的联结度 自然 低 自然 高 ------- 高 -------- -------- 发表年 1988年 1991年 1990年 1990年 适用成绩 丰富(1979---) 少 少 丰富 辅助工具 Teamwork OMTool OOATool Rose 技术公开度 低 特别高 高 中 对象规模 小—大规模 小—中规模 小规模 中—大规模

  42. 4大方法的特征 S-M法: 作为对象意识到实时系统,辅助特别细致的 动态建模 C-Y法: 没有细微的限制,对于用户自由度高,是4种 方法中最通用的。 OMT法: 是4种方法中唯一从分析到设计、编程连贯下 来的方法 Booch法:以面向对象设计为对象,与其他方法比较, 对于各种面向对象语言有种种表现形态,与 面向对象语言的连接明确

  43. 四种方法没有本质的区别 • 四种方法的描述方法确实不同,但没有本 质区别。 • 这些方法没有具体到现场怎么用,所以对 于具体问题有必要适当改变再应用。 • 可能几种方法混合使用和引用。 • 这些方法都在进一步完善。

  44. 方法实例之一:S&M方法介绍 • 1988年提出的方法,原型始于1979年左右应用于大规模实时系统为中心的系统分析。1992年进一步完善。 • 用法上的注意点:S&M法中,现实世界中的事务叫【事例】,抽象化后的事例叫【对象】。 • 模型:信息模型(对象模型)、状态模型(动态模型)、处理模型(功能模型)

  45. 基本 对象模型 状态模型 处理模型 原创 对象通信模型 对象存取模型 Shlaer&Mellor法的基本模型 方法实例之一:Shlaer&Mellor法

  46. S&M方法介绍 • 模型扩展 在3个基本模型的基础上增添4个原创模型: (1)对象通信模型,(2)对象存取模型,(3)领域模型, (4)子系统模型。 ●对象通信模型表示对象间的消息关系。 ●对象存取模型表示对象间数据的参照关系。 ●领域模型与子系统模型是为适用于大规模开发而设置的模型。

  47. S&M方法介绍 • 模型扩展 大系统的情况下,要考虑分割成领域。领域由一些子系统构成。为了描述这两个模型,还有表示系统整体对应的领域图以及描述领域中各种子系统间的事件通信的子系统模型等的模型。这样就需要各种文件,其特征就是明确其关系。以下几节就介绍上述的用S&M法的分析建模。

  48. 系统 领域 领域 子系统 子系统 子系统 子系统 领域图 领域模型和子系统模型

  49. 方法实例之二:信息模型-(1)所谓对象 • 对象就是事物的抽象 首先有必要识别事物。进而,还必须抽出现实事物间的静态关系。将事物作为对象模型化,然后将事物共有的性质作为属性附加于对象。事物间的静态关系作为对象间的静态关系来模型化。

  50. 方法实例之二:所谓对象(图示) 事物的识别 事物间的静态关系 对象 对象的属性 对象间的静态关系

More Related