统一建模语言UMLPPT课件.ppt_第1页
统一建模语言UMLPPT课件.ppt_第2页
统一建模语言UMLPPT课件.ppt_第3页
统一建模语言UMLPPT课件.ppt_第4页
统一建模语言UMLPPT课件.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安电子科技大学课程 第三章统一建模语言 UML 2019 12 29 1 西安电子科技大学课程 3 1UML概述3 1 1发展历史1994年Booch和Rumbaugh开始了UML的工作 其目标是创建一个 统一的方法 并与1995年发布UML0 8 自1996年起 一些机构把采用UML作为其商业策略 宣布支持并采用UML 并成立了UML委员会 1997年11月 国际对象管理组织OMG批准把UML1 1作为基于面向对象技术的标准建模语言 2019 12 29 2 统一的OOA方法由Rumbaugh Booch Jacobson提出的统一建模语言 UnifiedModeingLanguage简称UML UML是一种定义良好 易于表达 功能强大且普遍实用的建模语言 2019 12 29 3 UML的开发历程 Booch 91 其它方法 OMT 1 OOSE Booch 93 OMT 2 UML0 8 UML0 9 0 91 UML1 0 UML1 1 UML同行专家意见 OMG认证 10 95 10 96 9 96 OMG审核 1 97 OMG修正 9 97 OMG采用 11 97 UML1 3 2019 12 29 4 西安电子科技大学课程 3 1 2UML简介1 视图从一个角度观察系统 就是一个视图2 模型元素类 对象 用例 结点 接口 包 构件 模型元素之间的关系 关联 泛化 依赖 聚集 类 属性 操作 对象 属性 操作 状态 用例 结点 2019 12 29 5 包 注解 构件 接口 依赖 泛化 关联 聚集 2019 12 29 6 西安电子科技大学课程 3 1 3UML图UML9种图1 用例图用例图描述了系统提供的一个功能单元 用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求 包括基于基本流程的 角色 actors 也就是与系统交互的其他实体 关系 以及系统内用例之间的关系 用例图一般表示出用例的组织关系 要么是整个系统的全部用例 要么是完成具有功能 例如 所有安全管理相关的用例 的一组用例 要在用例图上显示某个用例 可绘制一个椭圆 然后将用例的名称放在椭圆的中心或椭圆下面的中间位置 要在用例图上绘制一个角色 表示一个系统用户 可绘制一个人形符号 角色和用例之间的关系使用简单的线段来描述 如下图所示 2019 12 29 7 西安电子科技大学课程 用例图如下图所示 2019 12 29 8 西安电子科技大学课程 2 类图类图表示不同的实体 人 事物和数据 如何彼此相关 换句话说 它显示了系统的静态结构 2019 12 29 9 根据图的详细程度 每条属性可以包括属性的可见性 属性名称 类型 缺省值和约束特性 UML规定类的属性的语法为 可见性属性名类型 缺省值 约束特性 不同属性具有不同可见性常用的可见性有PublicPrivate和Protected三种 在UML中分别表示为 和 操作名 返回类型和参数表组成操作界面UML规定操作的语法为 可见性操作名 参数表 返回类型 约束特性 类图描述了类和类之间的静态关系定义了类之后 就可以定义类之间的各种关系了 2019 12 29 10 2019 12 29 11 西安电子科技大学课程 3 对象图UML中对象图与类图具有相同的表示形式 对象图可以看作是类图的一个实例 对象是类的实例 对象之间的链 Link 是类之间的关联的实例 对象的图示方法与类的图示方法几乎一样 主要差别在于对象的名字下面要加下划线 链的图形表示与关联相似 对象图常用于表示复杂的类图的一个实例 对象名有下列三种表示格式1对象名类名2类名3对象名 2019 12 29 12 2019 12 29 13 西安电子科技大学课程 4 状态图状态图表示某个类所处的不同状态和该类的状态转换信 大多数面向对象技术都用状态图表示单个对象在其生命周期中的行为 一个状态图包括一系列的状态以及状态之间的转移 状态图的符号集包括5个基本元素 初始起点 它使用实心圆来绘制 状态之间的转换 它使用具有开箭头的线段来绘制 状态 它使用圆角矩形来绘制 判断点 它使用空心圆来绘制 以及一个或者多个终止点 它们使用内部包含实心圆的圆来绘制 要绘制状态图 首先绘制起点和一条指向该类的初始状态的转换线段 状态本身可以在图上的任意位置绘制 然后只需使用状态转换线条将它们连接起来 2019 12 29 14 状态图例 状态1 Do 活动1 状态2 事件1 条件1 动作1 结束事件 初始事件 空闲 可视菜单 左边按钮按下 显示弹出菜单 左边按钮弹起 擦除弹出菜单 光标移动 高亮菜单项 弹出菜单动作 2019 12 29 15 举例 饮料自动售货机系统的状态图 投入硬币 有效的 按下选择饮料键 Do 显示售货机在备用所有灯都关闭 Do 显示金额总数 Do 显示金额已够饮料选择灯亮 取出饮料结算找零扣减存量完成交易 饮料 售完 灯亮 投入硬币金额 1元 5元 10元 金额不足再投币 存量为零 无效的硬币 取消 取消 回到备用状态 回到备用状态 2019 12 29 16 西安电子科技大学课程 5 时序图时序图描述对象是如何交互的 并且将重点放在消息序列上 也就是说 描述消息是如何在对象间发送和接收的 时序图有两个坐标轴 纵坐标轴显示时间 横坐标轴显示对象 每一个对象的表示方法是 矩形框中写有对象和 或类名 且名字下面有下划线 同时有一条纵向的虚线表示对象在序列中的执行情况 即发送和接收的消息对象的活动 这条虚线称为对象的生命线 对象间的通信用对象的生命线之间的水平的消息线来表示 消息线的箭头说明消息的类型 如同步 异步或简单 浏览时序图的方法是 从上到下查看对象间交换的消息 分析那些随着时间的流逝而发生的消息交换 2019 12 29 17 西安电子科技大学课程 时序图 下图是时序图的一个例子 2019 12 29 18 西安电子科技大学课程 6 协作图协作图将焦点集中于一组相互协作的对象之间的交互和链接上 链接是关联的一个实例 虽然时序图和协作图都显示了交互 但是时序图的焦点在时间上 而协作图的焦点在空间上 协作图显示的是对象和对象之间的链接 以及消息是如何在这些链接的对象之间发送的 链接是用直线来绘制的 在图形上 链接看起来与关联很类似 但是它没有多重性 在一个链接上可以附加一个消息 而消息上可以附带一个消息标签 用来为该消息定义一个顺序号 这种消息标签需要使用一个特殊的语法 2019 12 29 19 西安电子科技大学课程 协作图 下图是一个协作图的例子 2019 12 29 20 西安电子科技大学课程 7 活动图活动图可以对多种不同类型的工作流建模 如果从更简单或者更具体的角度考虑 可以更容易理解活动图 即 活动图被设计用于简化描述一个过程或操作的工作步骤 例如 软件公司可以用活动图对一个软件的开发过程建模 会计师事务所可以用活动图对任意数目的财务往来进行建模 公司可以用活动图对订单批准过程进行建模 活动图是由状态图变化而来的 它们各自用于不同的目的 活动图依据对象状态的变化来捕获动作 将要执行的工作或活动 与动作的结果 与状态图不一样 活动图中动作状态之间的迁移不是靠事件触发的 当动作状态中的活动完成时转移就触发 活动图中一个活动结束后将立即进入下一个活动 2019 12 29 21 西安电子科技大学课程 活动图 2019 12 29 22 西安电子科技大学课程 8 构件图构件图显示软件构件之间的依赖关系 组件图提供系统的物理视图 它的用途是显示系统中的软件对其他软件组件 例如 库函数 的依赖关系 一般来说 软件构件就是一个实际文件 可以是源代码文件 二进制代码文件和可执行文件等 可以用来显示编译 链接或执行时构件之间的依赖关系 2019 12 29 23 西安电子科技大学课程 构件图 2019 12 29 24 西安电子科技大学课程 9 部署图部署图表示该软件系统如何部署到硬件环境中 它的用途是显示该系统不同的组件将在何处物理地运行 以及它们将如何彼此通信 因为部署图是对物理运行情况进行建模部署图中的符号包括组件图中所使用的符号元素 另外还增加了几个符号 包括节点的概念 一个节点可以代表一台物理机器 或代表一个虚拟机器节点 例如 一个大型机节点 要对节点进行建模 只需绘制一个三维立方体 节点的名称位于立方体的顶部 所使用的命名约定与序列图中相同 实例名称 实例类型 2019 12 29 25 西安电子科技大学课程 部署图下图是部署图的例子 描述在终端PC中部署GUI文件 在服务器中部署顾客管理应用程序和顾客DB 终端PC和服务器通过互联网连接的情况 2019 12 29 26 西安电子科技大学课程 3 1 4视图1 用例视图2 逻辑视图静态 类图 对象图动态 状态图 时序图 协作图 活动图3 构件视图4 并发视图展示系统的并发性用动态图和实现图描述5 部署视图 2019 12 29 28 西安电子科技大学课程 3 2用例建模用例建模的主要成分有用例 行为者和系统 系统的边界定义了系统所具有的功能 功能用用例来表示 创建用例模型的工作 1 定义系统2 寻找行为者和用例3 描述用例4 定义用例间的关系5 确认模型用例图以下给出某金融贸易系统的用例图 2019 12 29 29 交易经理记帐系统交易人员销售员 设置边界 风险分析 交易估计 进行交易 超越边界 更新帐目 评价 图3 3贸易系统的用例 2019 12 29 30 西安电子科技大学课程 确定行为者行为者以及如何寻找行为者 确定用例用例的特征与寻找用例 用例之间的关系 用例之间的关系主要有扩展和使用 2019 12 29 31 西安电子科技大学课程 3 3类和对象建模3 3 1类图和对象图3 3 2确定类1 寻找类2 定义属性属性用来描述类的特征 描述一个属性的语法如下 visibilityattribute name type initial value propetty string 3 定义操作UML中描述一个操作的语法如下 visibilityoperating name parameter list retrurn type property string 描述一个参数的属性如下 Parameter name type default value 2019 12 29 32 步骤1 识别类与对象 1 发现对象主要策略 考虑问题域人员组织物品设备事件表格结构考虑系统边界人员设备外系统考虑系统责任 2019 12 29 33 问题域描述中的名词 往往是候选的及对象 根据问题域结构可提取候选的类及对象 例 银行储蓄管理系统 2019 12 29 34 与系统发生作用的其它系统和必要的设备可作为候选的类及对象 如 打印机等 分析阶段可不把与实现有关的计算机部件作为候选的类及对象 2019 12 29 35 系统必须观测 记忆的与时间有关的事件可作为候选的类及对象 如 建立帐户的日期打开一个帐户等与系统发生交互的人及系统必须保留其信息的人 可作为候选的类及对象 如 柜员 储户等这些人所属的组织单位 可作为候选的类及对象 如 总行 分行等 2019 12 29 36 2 审查和筛选 舍弃无用的类对象的精简只有一个属性的对象只有一个服务的对象推迟到OOD考虑的对象 2019 12 29 37 帐册 上级系统接口 供货员 销售事件 商品 特价商品 计量商品 收款机 商品一览表 超市销售管理系统 对象层 2019 12 29 38 步骤2 定义属性与服务定义属性定义服务对象的状态与状态转换图例 栈的状态 服务对照表 2019 12 29 39 例 栈状态转换图 空 半满 满 创建 压入 未满 弹出 未空 压入 报错 弹出 报错 弹出 已空 压入 弹出 压入 已满 2019 12 29 40 定义服务对象行为分类发现服务的策略审查与调整识别对象的主动行为服务的详细说明 服务解释 消息协议 消息发送 约束条件 服务流程图 2019 12 29 41 帐册 前班节余销售事件表收入累计上交款本班节余 接班计帐报帐交班 上级系统接口 帐目目册 消息发送查帐报帐价格更新种类增删 供货员 缺货登记表 缺货登记供货 销售事件 收款人购物清单应收款 销售计划入帐 商品 编号名称单价架上数量下限 售出补充价格更新 特价商品 开始日期结束日期 计量商品 单价计量单位计价方式 售出 补充 价格更新 收款机 本班收款员开始时间结束时间 登录售货结帐 商品一览表 商品目录 检索种类增删 超市销售管理系统 特征层 2019 12 29 42 建立数据字典为所有模型实体准备一个数据字典 精确描述每一个对象类 包括 成员约束关联 属性 操作 2019 12 29 43 对象字典举例 类名父类提供的服务需要的服务帐户 ATM 银行 出纳员 2019 12 29 44 步骤3 定义结构与连接初步确定关联对应于描述性动词或动词短语需求陈述中隐含根据问题域知识得出筛选完善分析标识对象之间的关系对象之间的分类关系 一般 特殊结构对象之间的组成关系 整体 部分结构对象之间的静态联系 实例连接对象之间的动态关系 消息连接 2019 12 29 45 西安电子科技大学课程 3 3 3UML中类之间的关系1 关联2 聚集3 泛化4 依赖和细化5 约束和派生包包可以嵌套 包之间可以有关系 模块 2019 12 29 46 3 4动态建模 消息在面向对象方法中 对象之间是通过发送消息来相互通信的 状态图 同步消息 异步消息 简单消息 状态图 状态变量 活动 状态 迁徙 其始状态 结束状态 2019 12 29 47 西安电子科技大学课程 1 状态活动区中事件的形式化语法如下 event name argument list action expressi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论