文章目录

  • 1. UML类图
    • 1.1 泛化(Generalization)
    • 1.2 实现(Realization)
    • 1.3 关联(Association)
    • 1.4 聚合(Aggregation)
    • 1.5 组合(Composition)
    • 1.6 依赖(Dependency)
  • 2. UML时序图
    • 2.1 角色(Actor)
    • 2.2 对象(Object)
    • 2.3 生命线(Lifeline)
    • 2.4 控制焦点(Focus of Control)
    • 2.5 消息(Message)
    • 2.6 同步消息=调用消息(Synchronous Message)
    • 2.7 异步消息(Asynchronous Message)
    • 2.8 返回消息(Return Message)
    • 2.9 自关联消息(Self-Message)
    • 2.10Combined Fragments
  • 3. UML用例图
    • 3.1参与者(Actor)
    • 3.2 用例(Use Case)
    • 3.3 关系(Relationship)
      • 关联(Association)
      • 泛化(Inheritance)
      • 包含(Include)
      • 扩展(Extend)

1. UML类图

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)

1.1 泛化(Generalization)

【泛化关系】:是一种继承关系, 表示一般与特殊的关系, 它指定了子类如何特化父类的所有特征和行为. 例如:老虎是动物的一种, 即有老虎的特性也有动物的共性.
【箭头指向】:带三角箭头的实线,箭头指向父类

描述](https://img-blog.csdnimg.cn/20191117113016581.png)

1.2 实现(Realization)

【实现关系】:是一种类与接口的关系, 表示类是接口所有特征和行为的实现.
【箭头指向】:带三角箭头的虚线,箭头指向接口

1.3 关联(Association)

【关联关系】:是一种拥有的关系, 它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子
关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者

上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

上图为自身关联

1.4 聚合(Aggregation)

【聚合关系】:是整体与部分的关系, 且部分可以离开整体而单独存在. 如车和轮胎是整体和部分的关系, 轮胎离开车仍然可以存在.
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
【代码体现】:成员变量
【箭头及指向】:带空心菱形的实心线,菱形指向整体

1.5 组合(Composition)

【组合关系】:是整体与部分的关系, 但部分不能离开整体而单独存在. 如公司和部门是整体和部分的关系, 没有公司就不存在部门.
组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期
【代码体现】:成员变量
【箭头及指向】:带实心菱形的实线,菱形指向整体

1.6 依赖(Dependency)

【依赖关系】:是一种使用的关系, 即一个类的实现需要另一个类的协助, 所以要尽量不使用双向的互相依赖.
【代码表现】:局部变量、方法的参数或者对静态方法的调用
【箭头及指向】:带箭头的虚线,指向被使用者

各种关系的强弱顺序:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
下面这张UML图,比较形象地展示了各种类图关系:

2. UML时序图

时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:角色(Actor)、对象(Object)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。

2.1 角色(Actor)

系统角色,可以是人、及其甚至其他的系统或者子系统。

2.2 对象(Object)

对象包括三种命名方式:
第一种方式包括对象名和类名;
第二中方式只显示类名不显示对象名,即表示他是一个匿名对象;
第三种方式只显示对象名不显示类明。

2.3 生命线(Lifeline)

生命线在顺序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间,如下图

2.4 控制焦点(Focus of Control)

控制焦点是顺序图中表示时间段的符号,在这个时间段内对象将执行相应的操作。用小矩形表示。如下图表示:

2.5 消息(Message)

消息一般分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message).如下图所示:

2.6 同步消息=调用消息(Synchronous Message)

消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。

2.7 异步消息(Asynchronous Message)

消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。

2.8 返回消息(Return Message)

返回消息表示从过程调用返回

2.9 自关联消息(Self-Message)

表示方法的自身调用以及一个对象内的一个方法调用另外一个方法。

2.10Combined Fragments

表示带有一些特定条件发送的消息。

如上图,就表示,循环(loop)发送GetProperty消息获得属性。在使用Astah画时序图时,选择一个Combined Fragments之后,可以在其对应的属性面板更改对应的发送条件。里面介绍了很多,此处列举一二:
Alternative fragment(denoted “alt”) 与 if…then…else对应
Option fragment (denoted “opt”) 与 Switch对应
Parallel fragment (denoted “par”) 表示同时发生
Loop fragment(denoted “loop”) 与 for 或者 Foreach对应

3. UML用例图

用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示一个外部用户能够观察到的系统功能模型图。用例图多用于静态建模阶段(主要是业务建模和需求建模),帮助开发团队以一种可视化的方式理解系统的功能需求。

3.1参与者(Actor)

在系统外部与系统直接交互的人或事物;需要注意以下两点:

  1. 参与者是角色而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色。所以在系统的实际运作中,一个实际用户可能对应系统的多个参与者。不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例。
  2. 参与者作为外部用户(而不是内部)与系统发生交互作用,是它的主要特征。
    在UML中,参与者使用如图所示的一个小人表示:

3.2 用例(Use Case)

系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。用椭圆表示,椭圆中的文字简述系统的功能:

3.3 关系(Relationship)

  • 关联
  • 泛化
  • 包含
  • 扩展

关联(Association)

表示参与者与用例之间的交互,通信途径,任何一方都可发送或接受消息。
箭头指向:指向消息接收方。

泛化(Inheritance)

在编程中,泛化关系是一种很重要的关系,我们随处可见。
泛化关系是一般和特殊关系,就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
箭头指向(需要特别注意):指向父用例。

包含(Include)

包含关系用来把一个较复杂用例所表示功能分解成较小的步骤。包含用例是必须的,如果缺少包含用例,基用例就不完整;包含用例必须被执行。
箭头指向:指向分解出来的功能用例。

扩展(Extend)

扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。扩展用例是可选的,如果缺少扩展用例,不会影响到基用例的完整性。
箭头指向(需要特别注意):指向基用例


供一个完整的系统的用例图

UML 类图-时序图-用例图相关推荐

  1. UML 建模步骤 用例图 类图 对象图 包图 顺序图/时序图 状态图 活动图 协作图

    统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明.可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言. UML是面向对象设计的建 ...

  2. 火车购票系统服务器端uml活动图,火车购票完整系统UML类图时序图状态图协作图活动图对象图用例图.doc...

    火车购票完整系统UML类图时序图状态图协作图活动图对象图用例图 <UML面向对象分析>课程 实践项目报告 项目名称: 网上订购火车票系统 项目组成员: 学 号: 班 级: 指导 教师: 2 ...

  3. UML顺序图/序列图/时序图

    UML顺序图/序列图/时序图 UML时序图 什么是顺序图 基本元素 参与者 对象 生命线 激活框 消息 绘制工具 visio 亿图 UML时序图 什么是顺序图 为了实现系统功能,若干个对象之间需要交互 ...

  4. UML建模之时序图(Sequence Diagram)转

    UML建模之时序图(Sequence Diagram) 一.时序图简介(Brief introduction) 二.时序图元素(Sequence Diagram Elements) 角色(Actor) ...

  5. UML之顺序图(时序图)

    UML学习之顺序图(时序图绘制) 1. 什么是时序图 时序图(Sequence Diagram),又名顺序图.序列图.循序图,是一种UML交互图.它通过描述对象之间发送消息的时间顺序显示多个对象之间的 ...

  6. UML 对象图、时序图、活动图 、状态图、协作图 、包图、组件图及部署图

    UML 对象图.时序图.活动图 .状态图.协作图 .包图.组件图及部署图 目录 对象图 时序图 活动图 状态图 协作图 包图 组件图 部署图 对象图 对象图是类图的一个实例,用于显示系统执行时的一个可 ...

  7. UML建模之时序图(Sequence Diagram)教程

    一.时序图 时序图是一种强调时间顺序的交互图,在时序图中,首先把参与交互的对象放在图的上方,沿X轴方向排列.通常把发起交互的对象放在左边,较下级对象依次放在 右边,然后把这些对象发送和接受的消息沿Y轴 ...

  8. 机械动作时序图怎么画_快速学习时序图:时序图简介、画法及实例

    原标题:快速学习时序图:时序图简介.画法及实例 时序图作为常用的UML交互图,可以直观的传达系统内外之间的交互过程,经常用在详细设计文档中.下面本文综合参考了多篇时序图的教程,根据作者的思路将时序图做 ...

  9. 火车购票系统服务器端uml活动图,火车购票标准软件系统UML类图时序图状态图协作图活动图对象图用例图.doc...

    文档介绍: <UML面向对象分析>课程实践项目报告项目名称:网上订购火车票系统项目组成员:学号:班级:指导教师:2008年11月10日目录1 需求分析 1个人收集整理勿做商业用途1.1 需 ...

最新文章

  1. 腻害了!同事写了个隐藏 Bug,我排查了 3 天才解决问题!
  2. 如何实现一个malloc
  3. restful-api最佳实践
  4. MVC Controllers和Forms验证
  5. ios8 定位问题解决思路
  6. UITableView的使用及代理方法
  7. 腾讯与字节跳动罕见“合作”:企业微信在抖音投放广告
  8. php设计验证码图片,php实现简单的图片验证码
  9. iOS Mac终端 生成模拟器与真机都能运行的.a静态库
  10. 天联服务器虚拟网卡未启动,天联未检测到虚拟网卡
  11. win10或11非华为电脑安装最新的电脑管家(支持移动应用引擎)安装方法及问题解决
  12. fedora安装字体
  13. Unity爆炸、闪电、火焰、雷雨特效Demo
  14. 相比传统监控,智慧门店的摄像机有多“能干”
  15. Axure RP 9 授权码
  16. 【python:turtle绘画 圣诞树】
  17. 布袋除尘器过滤风速多少_太原布袋式除尘器过滤风速一般多大
  18. [HNOI2004]打鼹鼠 简单DP
  19. 基于matlab的16qam系统,基于MATLAB的16QAM通信系统的仿真精选.doc
  20. 北大英语考研分数计算机,08年计算机系录取分数线及名单

热门文章

  1. ios 企业版(in house)及打越狱包
  2. 飞桨开发者创意荟:PaddleHub一键部署,AI创意实现原来如此简单
  3. 极品飞车服务器维修,极品飞车ONLINE-官方网站-腾讯游戏
  4. Android学习——SQLite游戏玩家管理案例
  5. qq飞车手游微信新服务器失败怎么办,QQ飞车手游无法安装怎么办 安装失败解决方法...
  6. Simulink代码生成——多速率任务调度
  7. C++中getcwd()方法如何使用
  8. 选择SOLIDEDGE的10大理由(2)
  9. 基于Matlab的电磁场与波“镜像电荷法”仿真——点电荷位于半球形凸起导体附近
  10. saas产品如何搭好架构?