ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:21.31KB ,
资源ID:20851178      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20851178.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(UML各种图画法总结文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

UML各种图画法总结文档格式.docx

1、 如果用系统的新功能处理角色的日常工作是简单化了 还是提高了工作效率 还有一些与当前角色可能无关的问题 也能帮助建模者发现用例 例如 系统需要的输入/输出是什么信息 这些输入/输出信息从哪儿来到哪儿去 系统当前的这种实现方法要解决的问题是什么 也许是用自动系统代替手工操作UML 中的用例 UML 中的用例用椭圆形表示 用例的名字写在椭圆的内部或下方 用例位于系统边界的内部角色与用例之间的关联关系 或通信关联关系 用一条直线表示用例和角色之间有连接关系 用例和角色之间的关系属于关联 association 又称作通信关联 communication association, 这种关联表明哪种角色

2、能与该用例通信, 关联关系是双向的一对一关系, 即角色可以与用例通信, 用例也可以与角色通信。用例关系 用例之间有扩展 使用 组合三种关系 扩展和使用是继承关系 即通用化关系 的另一种体现形式 组合则是把相关的用例打成包 package 当作一个整体看待 1 扩展关系 一个用例中加入一些新的动作后则构成了另一个用例 这两个用例之间的关系就是通用化关系 又称扩展关系 后者通过继承前者的一些行为得来 前者通常称为通用化用例后者常称为扩展用例 扩展用例可以根据需要有选择地继承通用化用例的部分行为 扩展用例也一定具有完全性 2 使用关系 一个用例使用另一个用例时 这两个用例之间就构成了使用关系 一般情

3、况下 如果若干个用例的某些行为都是相同的 则可以把这些相同的行为提取出来单独作成一个用例 这个用例称为抽象用例 这样 当某个用例使用该抽象用例时 就好象这个用例包含了抽象用例的所有行为二 类图 所谓对象就是可以控制和操作的实体,类是对象的抽象描述,它包括属性的描述和行为的描述二方面,构建面向对象模型的基础是类 对象和它们之间的关系 类图是用类和它们之间的关系描述系统的一种图示 是从静态角度表示系统的 因此类图属于一种静态模型 类图是构建其它图的基础 没有类图 就没有状态图 协作图等其它图 也就无法表示系统的其它各个方面 类图中允许出现的模型元素只有类和它之间的关系 类用长方形表示 长方形分成上

4、 中 下三个区域 每个区域用不同的名字标识 用以代表类的各个特征 上面的区域内用黑体字标识类的名字 中间的区域内标 类的名字识类的属性 下面的区域内标识类的操作方法 即行为 这三部分作为一个整体描述某个类属性的可见性可以不限于上述的三种 某些具体的程序设计语言还可以定义其它的可见性类型 但是 在表示类图时 必须含有公有类型和私有类型 在类图中 公有类型表示为加号 + 私有类型表示为减号 它们标识在属性名称的左侧 如图 4-4 所示如果属性名称旁没有标识任何符号 表示该属性的可见性尚未定义 描述属性的语法格式为可见性 属性名 类型名 = 初值 性质串枚举类型的属性经常使用性质串操作 在类图中 操

5、作部分位于长方形的最底部 一个类可以有多种操作 每种操作由操作名 参数表 返回值类型等几部分构成 标准语法格式为 可见性 操作名 参数表 返回值类型性质串参数表由多个参数 用逗号分开 构成 参数的语法格式为参数名 参数类型名= 缺省值 有一种特别的类 叫做持久类 persistent class 如图 4-11 所示的类就是一个持久类当产生对象的程序 draw 运行结束时 所需的对象便生成了 同时生成的对象将自身存入数据库 文件或其它永久性的存储器中 类之间的关系类图由类和它们之间的关系组成 类与类之间通常有关联 通用化(继承) 依赖和精化等四种关系 关联可分为普通关联 递归关联 限定关联 或

6、关联 有序关联 三元关联和聚合等七种普通关联:由于关联是双向的 可以在关联的一个方向上为关联起一个名字 而在另一个方向上起另一个名字 也可不起名字 名字通常紧挨着直线书写导航关联:类与类之间的关联是单向的类图中图示关联中的数量关系-重数0.1 表示 零到 1 个对象0.*或* 表示 零到多个对象5.17 表示 5 到 17 个对象2 表示 2 个对象 对于多对多的双向关联 可以转化为两个一对多的关联来实现对象图 对象的图示方式与类的图示方式几乎是一样的 主要差别在于对象的名字下面要加下划线 对象名有下列三种表示格式 第一种格式形如 对象名 类名 即对象名在前 类名在后 中间用冒号连接 第二种格

7、式形如 类名 这种格式用于尚未给对象命名的情况 注意 类名前的冒号不能省略 第三种格式形如 对象名 这种格式不带类名 即省略类名递归关联如果一个类与它本身有关联关系 那么这种关联称为递归关联 recursive association角色 任何关联关系中都涉及到与此关联有关的角色 也就是与此关联相连的类中的对象所扮演的角色 引入角色的好处是 指明了类和类的对象之间的联系 (CONTEXT)限定关联 限定关联用于一对多或多对多的关联关系中 在限定关联中 使用限定词将关联中多的那一端的具体对象分成对象集 限定词可以理解为一种关键词 用关键词把所有的对象分开 利用限定关联可以把模型中的重数从一对多变

8、成一对一 类图中 限定词放置在关联关系末端的一个小方框内 紧挨着开始导航的类有序关联 对象与对象之间的连接可以具有一定的次序 就像应把窗口安排在屏幕之上一样 一般情况下 对象之间的关联都是无序的 如果要明确表示关联中的次序关系 一定要将规格说明排序放在表示关联的直线旁 且紧挨着对象被排序的类三元关联 类与类之间的关联关系 不仅限于两个类之间 多个类之间也可以有关联关系 如果三个类之间有关联关系 则称之为三元关联 三元关联图示为一个大的菱形 菱形的角与关联的类之间用直线相连 也可以用虚线连接聚合 聚合是关联的特例 如果类与类之间的关系具有 整体与部分 的特点 则把这样的关联称为聚合 如图 4-3

9、5 是一个带角色的复合聚合的示例 图中给出了三种图示方法 角色名位于部分类一方 按钮和图标 a 是带角色名的复合聚合图示 b 是带角色的复合聚合的标准语法形式 c 采用将属性名变成角色名 将属性的类型变成类的方法的形式图示复合聚合通用化 一个类 通用元素 的所有信息 属性或操作 能被另一个类 具体元素 继承 继承某个类的类中不仅可以有属于自己的信息 而且还拥有了被继承类中的信息 这种机制就是通用化受限通用化 给通用化关系附加一个约束条件 进一步说明该通用化关系的使用方法或扩充方法这样的通用化关系称为受限通用化 预定义的约束有四种 多重 不相交 完全和不完全 图 4-44 图示了二种约束通用化的

10、表示方法 图 4-44 a 是多个子类共用一个箭头指向父类 约束用花括号括起来放在直线旁边 多个约束之间用逗号分隔 图 4-44 b 中的继承关系是单独图示的 这种情况下 要另外附加一条虚线 穿越所有的继承关系 多重继承 多重继承指的是 子类的子类可以同时继承多个上一级子类 图 4-45 所示的 水陆两用 类就是通过多重继承得到的 依赖和精化关系 依赖关系描述的是两个模型元素 类 组合 用例等 之间的语义上的连接关系 UML 中的规则称为约束和派生 约束用于限制一个模型 我们已经讨论过的约束有或关联 有序关联和四种继承约束 多重 不相交 完全和不完全 派生用于描述某种事物的产生规则 约束关联

11、派生关联派生属性由其它属性通过某种方式计算得来 派生属性前面加一个斜线表示 它并不真正出现在类的对象中 派生属性的计算公式用括号括起来放在类的下方 对 UML 模型元素应用的约束和派生 规则 也可以用 UML 语言语法机制表示 表示规则的语法称为导航表达式 它构成说明一个具体规则的基本语句 根据需要 有时可以扩展导航表达式 下面介绍五种常见语法的书写形式 形式一 set 是一个表达式 代表一个对象或对象集 attribute 是 set 所代表对象的一个属性名 它们之间用 . 号相连接 形式一的结果是属性的值 结果值可能是单值 也可能是多值 具体结果依赖于关联的重数 形式二 其中 set 的含

12、义同形式一 role 代表关联关系中目的方角色名 它们之间用 . 相连形式二的结果为一个或多个对象 对象的多少依赖于关联的重数形式三 set.role 形式三与形式二的含义差不多 不同之处在于 role 代表关联关系中的起始方角色名role 前面多加一个 符号 表示对关联关系的逆转 具体结果仍然是与关联的重数有关的对象或对象集形式四 set 布尔表达式 set 是代表一个对象或多个对象的表达式 布尔表达式用 set 中的对象书写 并用方括号括起来 形式四的结果值是使布尔表达式为真的对象 是 set 的一个子集 形式五 set.限定词的值 set 是代表一个对象或多个对象的表达式 限定词指明一个

13、限定 set 的限定关联 限定词代表限定关联中的限定属性值动态建模所有系统均可表示为两个方面 静态结构和动态行为 UML 提供图来描述系统的结构和行为 类图(class diagram)最适合于描述系统的静态结构 类 对象以及它们之间的关系 而状态 序列 协作和活动图则适合于描述系统的动态行为 即描述系统中的对象在执行期间不同的时间点是如何动态交互的系统中的对象需要相互通信 它们相互发送消息本章中描述的动态图有状态图 状态图描述对象在生命周期内处于哪些状态 每一种状态的行为以及什么样的事件引起对象状态发生改变 例如 一张发票可以是已付(状态 paid)和未 付(状态 unpaid)序列图 描述

14、对象如何相互交互和通信 序列图中的最要的是时间 通过序列 图 可以看出为了完成某种功能一组对象如何发送和接收一序列消息协作图 协作图也是描述对象交互的 但侧重于空间的协作 意即明确地给出对 象间的关系(链接) 活动图 也是描述对象交互的 但侧重于工作的描述 当对象相互交互时 需要执行一些工作或活动 这些活动以及它们的出现顺序就是活动图所要描述的简单消息 表示普通的控制流 它只是表示控制是如何从一个对象传给另一个对象 而没有描述通信的任何细节 这种消息类型主要用于通信细节未知或不需要考虑通信细节的场合 它也可以用于表示一个同步消息的返回 也就是说 箭头 处理消息的对象指向调用者表示控制返回给调用

15、者同步消息 一个嵌套控制流 典型情况下表示一个操作调用 处理消息的操作在调用者恢复执行之前完成(包括任何在本次处理中发送的其它消息) 返回可以用一个简单消息来表示 或当消息被处理完毕隐含地表示异步消息 异步控制流中 没有直接的返回给调用者 发送者发送完消息后不需要等待消息处理完成而是继续执行 在实时系统中 当对象并行执行时 常采用这类消息 状态图:状态图主要用来描述对象 子系统 系统的生命周期 通过状态图可以了解到一个对象所能到达的所有状态以及对象收到的事件(收到消息 超时 错误 条件满足)对对象状态的影响等 所有的类 只要它有可标记的状态和复杂的行为 都应该有一个状态图一个状态一般包含三个部

16、分 第一部分为状态的名称 如空闲 已付 移动 第二部分为可选的状态变量的变量名和变量值 属性(变量)指的是状态图中类的属性 在某些情况下 临时变量也是很有用的 如计数器 第三部分为可选的活动表列出有关的事件和活动活动部分的语法如下 :事件名 参数表 / 动作表达式状态转移的语法表示如下 event-signature guard-condition action-expression send-clause 其中 event-signature的语法表示如下 事件名 参数 , , send-clausedestination-expression . destination-event-nam

17、e argument 从图 5-7 中可以看出 由事件名 参数 触发状态转移的事件 与事件有关的附加数据组成 参数由逗号隔开的参数表来表示 其语法表示如下 参数名 : 类型表达式 参数名 类型表达式, 守卫条件是状态转移中的一个布尔表达式 如果将守卫条件和事件说明放在一起使用的话 则当且仅当事件发生且布尔表达式成立时 状态转移才发生 如果状态转移只有守卫条件这一个条件 则只要守卫条件为真 状态转移就发生带守卫条件动作表达式(Action-Expression)动作表达式是一个过程表达式 当状态转移开始时执行 如图 所示 它可以由对象(拥有所有状态的对象)的操作和属性组成 也可以由事件说明中的参

18、数组成 在一个状态转移中 允许有多个动作表达式 但是多个动作表达式之间必须用斜杠(/)分隔开 动作表达式按指定顺序(从左至右)一个一个地执行 不允许有嵌套的动作表达式或递归的动作表达式 但是 只带一个动作表达式的状态转移是可能的 下面就是只有一个动作表达式的状态转移的例子( = 表示赋值) increase () / n := n + 1 / m := m + 1 add (n) / sum := sum + n / flash发送子句是动作的特例 它被用来在两个状态转移之间发送消息 发送子句由目的表达式和事件名组成 目的表达式由一个或多个对象组成 事件名是对目的对象(一组对象)有意义的事件的

19、名称 目的对象可以是对象本身 可以将: timer = Time-out / go down (first floor) 转换成一个发送子句 timer = Time-out down (first floor) 再举几个带发送子句的状态转移的例子 out_of_paper () () left_mouse_btn_down(location) / color := pick_color(location) (color)UML 中有四类事件条件成真 即状态转移上的守卫条件收到另一个对象中的信号 信号本身也是一个对象 在状态转移中 表示为事件说明 这类事件也称作消息 收到另一个对象(或对象本身)的操作调用 在状态转移中 表示为事件说明 这类事件也称为消息经过指定时间间隔 通常情况下 时间是从另一个指定事件(通常是当前状态的入口)或一给定时间段之后开始计算的 在状态转移中 表示为时间表达式需要注意的是 错误也可以是事件 对建模也许有用 UML 并不对错误事件提供直接的支持 但是可以将错误事件定义成版类(stereotype) 例如 out_of_memory

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1