1 / 99

UML 面向对象分析与设计

UML 面向对象分析与设计. UML 把 Booch, Rumbaugh 和 Jacobson 等各自独立的 OOA 和 OOD 方法中最优秀的特色组合成一个统一的方法。 UML 的特点: 统一标准 面向对象 可视化,表示能力强大 独立于过程 容易掌握使用. UML 的定义. UML 定义有两个主要组成部分: 语义:用自然语言描述 表示法:定义 UML 的可视化标准表示符号 使用 UML 时,要从不同的角度观察系统,为此定义了概念 “视图”。视图是对系统的模型在某方面的投影,注重于系统的某个方面。. 为最终用户做什么. 程序员提供什么.

Download Presentation

UML 面向对象分析与设计

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. UML面向对象分析与设计 • UML把Booch, Rumbaugh和Jacobson等各自独立的OOA和OOD方法中最优秀的特色组合成一个统一的方法。 • UML的特点: • 统一标准 • 面向对象 • 可视化,表示能力强大 • 独立于过程 • 容易掌握使用

  2. UML的定义 • UML定义有两个主要组成部分: • 语义:用自然语言描述 • 表示法:定义UML的可视化标准表示符号 • 使用 UML 时,要从不同的角度观察系统,为此定义了概念 “视图”。视图是对系统的模型在某方面的投影,注重于系统的某个方面。

  3. 为最终用户做什么 程序员提供什么 系统静态结构 软件组织与管理 结构视图 实现视图 分析员或测试员 用例视图 行为 行为视图 环境视图 系统工程师如何配置和运行系统 系统集成人员如何组织与控制系统 系统拓扑、交付、安装、操作、通信 系统任务控制与管理 (性能,可伸缩性,吞吐量)

  4. 软件体系结构的 4+1 视图模型 • 结构视图:描述系统的静态结构,可根据它确定重要的设计:类、包和子系统。 • 实现视图:描述处于开发环境中的静态软件成分的组织(源程序、构件、数据文件、可执行程序等)。 • 行为视图:描述系统在运行时的并发性,包括任务、线程、进程及其相互作用。

  5. 环境视图:描述处于运行环境中的各种可执行程序是如何映射到底层平台或计算结点上的。环境视图:描述处于运行环境中的各种可执行程序是如何映射到底层平台或计算结点上的。 • 用例视图:包括若干关键场景或用例。在初始和细化阶段用来帮助发现和设计体系结构。在构造阶段用来验证各种不同视图。在文档中用来表明其他视图是如何工作的。 • UML分析建模着重系统的用例模型和结构模型,设计建模着重行为模型,实现模型和环境模型上。

  6. 体系结构中主要的元素包括: • 主要的类,如为业务实体建模的类。 • 将行为赋予类的机制,如协同。 • 模式与框架。 • 层次与子系统。 • 接口以及主要的进程控制或线程控制。 • UML 的三个主要组成元素 • 基本构造块 • 组织构造块的规则 • 运用于整个 UML 的公共机制

  7. 类名 Window 属性 origin size 操作 open( ) close( ) move( ) display( ) UML的构成 • UML包括三种基本构造块:事物、关系和图。 UML事物—结构事物 类

  8. ISpelling • 接口 — 描述一个类或构件的服务(操作)。 • 协作 — 描述合作完成某个特定任务的一组类及其关联的集合,用于对使用情形的实现建模。 • 用例 — 表示系统想要实现的行为,不关心这些行为是怎样实现的。

  9. EventManager suspend() flush() Place Order 实现 协作 用例 Order Management • 主动类 —它至少拥有一个进程或线程,故能够启动控制活动。

  10. 数据库 服务器 应用 服务器 课程 管理 成绩 管理 Orderform .java • 构件 — 系统中物理 的、可替代的部件。 • 节点 — 系统在运行 时存在的物理元素。

  11. 消息 有名对象 Assign(development) :Company p:Person 匿名对象 UML 事物—行为事物 • 交互 — 由在特定环境中共同完成一定任务的一组对象之间交换的消息组成。

  12. Keypress initializing command Exit idle Finished • 状态机 — 描述了一个对象或一个交互在生存周期内响应事件所经历的状态序列。

  13. 用户接口包 业务对象包 数据库包 应用包 UML 事物—分组事物 • 包

  14. See policy8-5-96.doc for details about these algorithms. CashAccount presentValue() UML 事物—注释事物 • 注释 — 依附于一个元素或一组元素之上,对其进行约束或解释的简单符号。

  15. CourseSchedule add(c:Course) remove(c:Course) Course <<friend>> Iterator UML 关系 • 依赖 — 两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。

  16. 0..1 * employee employer • 关联 — 一种描述一组对象之间连接的结构关系。 • 聚合是一种特殊类型的关联,描述了整体和部分间的结构关系。 • 泛化 — 一种一般化—特殊化的关系。

  17. 依赖 open() close() move() display() handleEvent() Event Window 泛化 关联 ConsoleWindow Control DialogBox

  18. Place Order 实现 协作 用例 Order Management • 实现 — 类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。 两种情况出现实现关系: • 在接口和实现它们的类或构件之间; • 用例和它们的协作之间。

  19. 状态机 用例 类 属性 操作 对象 属性 操作 接口 注释 节点 构件 包 关联 依赖 实现 泛化 聚合 复合 模型中主要的图形元素

  20. State Diagrams State Diagrams State Diagrams State Diagrams State Diagrams State Diagrams Use Case Diagrams 对象图 类图 构件图 Component Diagrams Use Case Diagrams Component Diagrams 用例图 部署图 Use Case Diagrams Scenario Diagrams Scenario Diagrams Use Case Diagrams Scenario Diagrams Scenario Diagrams 模型 顺序图 状态图 协作图 活动图 UML 模型的图形

  21. 1. 用例图 • 用例图展现了一组用例、参与者以及它们间的关系。 • 可以用用例图描述系统的静态使用情况,它定义了系统的功能需求,但这是从系统的外部观看系统功能,并不描述系统内部对功能的具体实现。 • 在对系统行为组织和建模方面,用例图的是相当重要的。

  22. 商品查询 售货管理 查询商品成分 查询商品价格 库存系统 查询商品信息 顾客 预售商品 出售商品 网上销售商品 售货员 打折销售商品 总账系统

  23. 用例规格说明:销售商品

  24. 2. 类图 • 类图展示了一组类、接口和协作及它们间的关系。 • 类图没有时间概念,是概念数据模型(如E-R 图)的一种延伸。 • 用类图说明系统的静态结构视图,包含主动类的类图—专注于系统的静态处理视图。 • 系统可有多个类图,单个类图仅表达了系统的一个方面,要在高层给出类的主要职责,在低层给出类的属性和操作。

  25. 类的名称 属性 属性 :数据类型 属性 :数据类型 = 初值 操作 操作(参数表):结果类型 • 类图是从系统构成角度来描述系统。 • 类的表示:

  26. 关联名称 类1 类2 限定词 角色1 角色2 整体 类名 聚合 简单引用 0..1 0..1 复合聚合 双方捆绑 0..* 0..* 部分 类名1 部分 类名2 限定关联 聚合、引用和重复度

  27. 关联类名 属性 操作 关联类 关联名 类 1 类 2 角色 2 角色 1

  28. 抽象类 操作 超类 子类1 子类2 操作 泛化关系

  29. 客户 团队 部门 客户标识 客户名称 客户地址 客户电话 客户代表 团队标识 承担工作 部门标识 部门名称 1 0..* 项目 0..* 1 1..* 1..* 项目标识 项目名称 1 0..* 1..* 参与 雇员 1..* 开始日期 结束日期 雇员标识: char 姓名: char 职务: char 工资: long 1 1 0..* 1..* 0..* 任务 0..* 任务标识 任务名称 任务费用 技能 技能标识 技能名称

  30. 3. 对象图 • 对象图展示了一组对象及它们间的关系。 • 用对象图说明类图中类的对象实例的数据结构和静态快照,即在某一时刻,一组对象的状态及其关系。 • 对象图表达了系统的静态设计视图或静态过程视图,除了现实和原型的方面因素外,它与类图作用是相同的。

  31. d2: 部门 c: 公司 d1: 部门 名称=“研发” 名称=“销售” p: 人员 连接 link 对象 姓名=“郑人杰” 雇员标识=6037 职务=“销售副总” d3: 部门 : 联系信息 名称=“打印机销售” 地址=“清华产业楼411” 属性值 匿名对象 经理

  32. 4. 包图 • 包图表明包及其之间的依赖类图。 • 包是对模型中涉及的元素分组所得的结果,是具有特定语义的一个子集,必须保证低耦合、高内聚。 • 广义地讲,包可以包含类、接口、构件、节点、协作、用例等,还可以内嵌其他子包。 • 包之间的访问权限通过输出(输出品)和导入(进口货)设置,虚箭头 从源包到目标包。

  33. 5. 构件图 • 构件图展现了一组构件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库等的系统建模。 • 构件图表示系统的静态实现视图。

  34. Register.exe Billing.exe 课表系统 用户 People.dll Course.dll 课程 Course Professor Student Course Offering

  35. 6. 部署图 • 部署图展现了对运行时处理节点以及其中构件的配置每一节点代表一个计算单元。。 • 它描述系统硬件的物理拓扑结构 ( 包括网络布局和构件在网络上的位置) ,以及在此结构上执行的软件(即运行时软构件在节点中的分布情况)。 • 用部署图说明系统结构的静态环境视图,即说明分布、交付和安装的物理系统。

  36. 注册 服务器 数据库 主排课 客户机 图书馆 客户机 宿舍 客户机

  37. 8. 活动图 • 活动图是一种特殊的状态图,描述要做的活动、执行这些活动的顺序以及工作流。它对于系统的功能建模特别重要,强调对象间的控制流程。 • 高层活动图用于表示任务。即用于分析用例,理解涉及多个用例的工作流、多线程及并行,显示相互联系的行为整体,还可用于业务过程建模,对系统的功能建模。低层活动图用于表示类的方法。

  38. 起点 接订单 变迁 分叉 活动 按订单供货 开发票 分支 [紧急订单] [非紧急订单] 快速交付 收款 正常交付 合并 结束 结清订单 汇合

  39. 9. 状态图 • 状态图展示了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移。 • 一个状态图描述了一个状态机,用状态图说明系统的动态视图。 • 状态图对于接口、类或协作的行为建模尤为重要,可用它描述用例实例的生存周期。

  40. 新project 注册 预售 开发 系统 分析 程序 编码 软件 测试 系统 部署 系统 设计 开始 结束 单元测试与调试 project完 维护 Project对象的状态图

  41. 10. 交互图 • 交互图展现了按一定的目的进行一种交互,它由在一个上下文中的一组对象及它们之间交互的信息组成。 • 交互图可用于描述一个用例的行为。顺序图和协作图都是交互图,它们可以相互转换。 • 如果希望查看单个对象跨用例的行为, 要使用状态图。 • 如果希望查看跨用例跨线程的行为,要使用活动图。

  42. 10-1 顺序图 • 顺序图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模。 • 对象表述为虚垂线顶端的矩形小框。 • 垂线是对象的生命线,说明对象的生命。 • 生命线之间的箭头表示消息。消息出现的次序自上而下。 • 消息箭头可以回到同一条生命线,指明自调用,即对象发给自己的消息。

  43. 与对方通话 管理电话本 下载图符 下载铃声 移动用户 移动网络 移动电话系统的用例图

  44. : 移动按键 : 移动显示 : 移动手机 : 移动基站 按数字键 显示按键号码 : 移动用户 按发送键 连接基站 建立连接 连接成功 显示连接成功 移动电话系统的顺序图

  45. 10-2 协作图 • 协作图展现了一组对象,这组对象之间的连接以及这组对象收发的消息。 • 它强调收发消息的对象结构组织,按组织结构对控制流建模。 • 协作图中的协作不是参与者与系统之间的交互,而是系统内部某一个用例中各个对象之间信息传递的方式。 • 消息上所附编号指明执行顺序。

  46. 1: 按数字键 3: 按发送键 2: 显示按键号码 : 移动按键 : 移动显示 : 移动手机 : 移动基站 : 移动用户 4: 连接基站 7: 显示连接成功 5: 建立连接 6: 连接成功 移动电话系统的协作图

  47. *RUP(Rational Unified Process统一开发过程)的分析/设计工作流 • 分析和设计工作流的目的是研究欲采用的实现环境和系统构件的效用,定义软件的组织结构,把需求获取结果转化为实现规格。 • 为实现这种转化,必须理解需求,采用最佳实现策略将其翻译为系统设计。 • 为此,首先是建立健壮的软件体系结构,设计出易于理解、开发和演进的系统,然后调整这个设计,使之适应实现环境。 • 最后结果是产生一个对象模型,即设计模型。

  48. [早期细化迭代] 定义初始体系结构 [细化迭代] 分析行为 细化体系结构 [可选] [非实时] [实时] 设计 数据库 设计构件 设计 实时构件

More Related