活动图

活动图定义

活动图描述了在一个过程中,顺序的/并行的活动及其之间的关系

应用于商业过程、工作流(业务过程)、复杂算法的建模

活动图是顶点和弧的集合

  1. 活动节点
  2. 动作
  3. 对象值
  4. 注解和约束等

建模元素说明:

  1. 开始、结束

  2. 两根直线,划分了三个泳道

  3. 活动节点

    • 一个活动是一个过程中进行的非原子的执行单元
    • 活动的执行最终延伸为一些独立动作(Action)的执行
  4. 弧,迁移线

    • 分岔表示把一个单独的控制流分成两个或

      多个并发的控制流
    • 汇合表示两个或多个并发控制流的同步发

      生,一个汇合可以有两个或多个进入转移

      和一个输出转移
    • 在 中,用同步棒来说明并行控制流的

      分岔和汇合
    • 同步棒是一条水平或垂直的粗线条
  5. 对象

  6. 同步棒:合并、分岔

  7. 分支:条件判断

    • 一个分支可以有一个进入流和多个离去流

    • 在每个离去流上必须设置一个监护条件

      • 条件放在方括号里

      • 条件不能重叠,以免二义性

        • 可以有 [else] 分支
    • 两个控制路径可以重新合并,无需监护条件

泳道

  • 将一个活动图中的活动分组,每一组表示一个特定的类别人或部门,他们负责完成组内的活动
  • 每个组被称为一个泳道
  • 用一条垂直的实线把它们分开
  • 每个活动严格地属于一个泳道
  • 转移可以跨越泳道
  • 同步棒可以跨越泳道

泳道是包的一种

小结

  • 描述一项任务执行过程中所完成的工作(动作)
  • 描述对象内部的工作
  • 显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象
  • 显示用例的实例如何执行动作以及如何改变对象状态
  • 说明一次业务流程中的人(参与者)和对象是如何工作的

活动图与用例模型互为补充,主要用于需求分析阶段

活动图中的基本要素包括

活动(动作)、转移、分支、分叉和汇合、泳道、对象流等

类图

类图定义

  1. 具有相同属性、操作、方法、关系或者行为的一组对象的描述符
  2. 类是真实世界事物的抽象
  3. 问题领域的类:在对系统建模时,将会涉及到如何识别业务系统中的事物,这些事物构成了整个业务系统。在UML中,把所有的这些事物都建模为类 (class)

对象object的定义

  • 当这些事物存在于真实世界中时,它们是类的实例,并被称为对象
  • 同一个类的各对象具有
    • 相同的属性,但属性的取值可以不

把类相关的元素画在一起,即为类图

类之间的关系

  1. 依赖关系

  2. 关联关系

    • 关联的修饰

      • 名称
      • 角色
      • 多重性
      • 聚类/组合
    • 关联类
    • 连接(Link)
  3. 继承|泛化关系

    • 一般与具体
  4. 实现

    • 类与接口

类的图形表示

用四部分来表示,它是分为三个分隔区(compartment)的长方形

类元素命名

参考Java学习过程中基本命名方式

命名不做硬性要求,不做过多细述记录

关联关系的修饰

  1. 名称及其方向

  2. 角色

  3. 多重性

  4. 聚合/组合

类图小结

  • 是面向对象分析设计的核心概念,也是难点
  • 如何用UML工具来表示类及其相关概念,很重要
  • 如何用面向对象的思维方式去思考,去发现类、定义类、定义类之间的关系、定义每个类应该承担的职责!

顺序图

有关概念

  • 交互

    • 对象之间为实现某一功能而必须实施的协作过程、动态行为,称为交互
  • 消息
    • 对象间的协作与交流表现为一个对象以某种方式启动另一个对象的活动,这种交流在UML里被定义为消息
  • 顺序图的建模元素
    • 对象或角色( role )
    • 参与者
    • 消息
  • 交互图
    • 交互的过程表现出来,就是交互图
    • 顺序图、通信图,都是交互图

顺序图: 交互图的一种

​ 基本建模元素:

​ 对象

​ 生命期

​ 控制焦点

​ 消息==方法调用

​ 消息序号(可选)

顺序图中的结构化控制,又称:Frame, Fragment

类型

  • 可选执行(标签: opt)
  • 条件执行(标签:alt)
  • 并行执行(标签:par)
  • 循环(迭代)执行(标签:loop)

关于操作(Operations)

  • The behavior of a class is represented by its operations 一个类的行为/服务,是通过操作来表示的

  • Operations may be found by examining interaction diagrams 在交互图里面可以看到对象在执行这些操作

    先在类中定义操作,然后在顺序图中为对象选择操作!

顺序图小结

  • 顺序图可以动态验证类模型的可行性
  • 顺序验证的某一功能,属于某个用例描述的功能中的一部分
    • 又被称为用例实现 “usecase realization”
  • 顺序图从上到下,反映了个对象相互协作的时间顺序!

UML(续)的更多相关文章

  1. python day 18: thinking in UML与FTP作业重写

    目录 python day 18 1. thinking in UML读书小感 2. FTP作业重写 2.1 软件目录结构 2.2 FTPClient端脚本 2.3 FTPServer端脚本 pyth ...

  2. UML建模语言、设计原则、设计模式

    1.UML统一建模语言 定义:用于软件系统设计与分析的语言工具 目的:帮助开发人员更好的梳理逻辑.思路 学习地址:UML概述_w3cschool 官网:https://www.omg.org/spec ...

  3. UML课程复习重点

    第一章 一.UML图示建模工具 二.UML--统一建模语言,以图形符号为基础,描述软件模型既简洁又清晰.它不是开发方法,是独立于任何开发方法之外的语言.它用于描述软件系统分析.设计和实施中的各种模型. ...

  4. .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整(续)-使用配置文件动态注入

    上次实现了依赖注入,但是web项目必须要引用业务逻辑层和数据存储层的实现,项目解耦并不完全:另一方面,要同时注入业务逻辑层和数据访问层,注入的服务直接写在Startup中显得非常臃肿.理想的方式是,w ...

  5. [.NET] C# 知识回顾 - 委托 delegate (续)

    C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...

  6. UML图中经常用到几种的关系图例

    学习这个东西挺奇怪的,时间一长就容易忘记,或者记不清楚.今天看到一些UML图的关系,发现有些出入了,索性就写下来,以后再忘记的时候过来看看. 在UML的类图中,常见的有以下几种关系: 继承(Gener ...

  7. UML类图(下):关联、聚合、组合、依赖

    前言 上一篇文章UML类图(上):类.继承.实现,讲了UML类图中类.继承.实现三种关系及其在UML类图中的画法,本文将接着上文的内容,继续讲讲对象之间的其他几种关系,主要就是关联.聚合.组合.依赖, ...

  8. UML类图(上):类、继承和实现

    面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...

  9. UML

    UML:1.继承关系用空心三角形+实线来表示2.实现接口用空心三角形+虚线来表示3.关联关系用实线箭头来表示4.依赖关系用虚线箭头来表示5.聚合关系用空心菱形+实线箭头来表示6.组合关系用实心菱形+实 ...

随机推荐

  1. FTP服务器与客户端的安装与配置

    FTP服务器安装与配置 1. 切换到root用户:  su root 2. 查看系统中是否安装了vsftpd,可以通过执行命令 :  rpm -qa | grep vsftpd 3. 如果没有安装 v ...

  2. 使用sklearn做单机特征工程(Performing Feature Engineering Using sklearn)

    本文转载自使用sklearn做单机特征工程 目录 目录 特征工程是什么 数据预处理 1 无量纲化 11 标准化 12 区间缩放法 13 标准化与归一化的区别 2 对定量特征二值化 3 对定性特征哑编码 ...

  3. (连续的矩形)HDU - 1506

    题意:7 2 1 4 5 1 3 3  直接讲数据 :给出7个矩形的高,底长都为1,求最大的连通的矩形块的面积 思路:如果暴力的话肯定超时,有一个特别巧妙的预处理,如果我们知道每一个矩形的左右两边能延 ...

  4. GIS中地图投影的定义

    我国的基本比例尺地形图[1:5千.1:1万.1:2.5万.1:5万.1:10万.1:25万.1:50万.1:100万]中,大于等于50万的均采用高斯-克吕格投影[Gauss-Kruger]:小于50万 ...

  5. USCOSII

    一.要求 下载附件,尝试在vc6.0中编译运行ucos 下载附件,尝试在vs2017中编译运行ucos,给出你遇到的问题和解决方式 ucos是如何分层的? HAL都有哪些代码? 分析任务是如何切换的? ...

  6. ShardingJDBC的基本配置和使用

    一.ShardingSphere介绍 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC.Sharding-Proxy和Sharding-S ...

  7. Java是未来的第一编程语言吗?

    目录 一.前言 二.Java帝国的今天 2.1 依然霸占TIOBE热门编程语言的榜首 2.2 曾经想扼杀Java的微软宣布加入OpenJDK 2.3 Oracle发布开源全栈虚拟机GraalVM 三. ...

  8. Unix 下 使用 RVM 管理 Ruby 和 gem

    转载:http://www.ibm.com/developerworks/cn/aix/library/au-aix-manage-ruby/   尽管 Internet Relay Chat.论坛和 ...

  9. 如何让Java应用成为杀不死的小强?(上篇)

    各位坐稳扶好,我们要开车了.不过在开车之前,我们还是例行回顾一下上期分享的要点. 项庄舞剑意在沛公,而咱们上期主要借助应用服务器 Resin 的源码,体验了一次 JMX 的真实应用.鉴于 9012 年 ...

  10. C# 快速开发框架搭建—开发工具介绍

    C# 快速开发框架搭建—开发工具介绍 一.VS2013,SQL SERVER R22008 以上两种工具如有不会者自行百度学习下. 二.动软代码生成器 对于经典的三层架构框架来说,使用动软代码生成器会 ...