UML 基础概念

模型

概念:是对现实系统本质特征的一种抽象,简化和直观的描述。

特征

  • 反映性
  • 直观性
  • 简化性
  • 抽象性

分类

  • 概念模型
  • 逻辑模型
  • 物理模型

软件模型

概念:指通过软件建模语言对软件的功能和性能等外特性,软件的要素和结构,以及软件的动态行为特性所给出的抽象和规范描述。

软件模型是人员交流的媒介,是软件的中间形态,是软件升级和维护的依据

特征

  • 建模对象特殊
  • 复杂性
  • 多样性

UML

概念:是一种软件工程领域内通用的软件建模语言。

由 Rational 公司推出,基于面向对象方法,Jacobson 参与了 UML 的研制。

特点

  • 独立于建模方法和建模过程
  • 统一标准
  • 体系规范
  • 方便实用

1. 元模型

元模型是 UML 的理论基础,分为 4 个层次。其中元元模型处在最顶层,用户对象处在最底层。

元素

  • 是模型的要素
  • 是 UML 元模型中最抽象的要素
  • 可以拥有自己的元素
  • 是抽象的,不能直接产生实例

基本元素包括结构元素行为元素分组元素

结构元素:

  • 对象与类:对象用来表示客观事物的一个实体,封装了一组属性和操作。类是具有相同性质的一组对象的集合。
  • 接口:用来声明一个类或构件对外提供的服务操作,分为需求接口和供应接口
  • 构件:构件是软件系统中可以独立封装的一个软件逻辑部件
  • 制品:表示可以在结点上独立部署的软件单元,制品一般以文件的形式呈现
  • 结点:是在物理上可以独立部署的一个硬件设备

行为元素

  • 用例:描述系统的一个功能
  • 协作:描述为完成一个用例所定义的功能
  • 交互
  • 状态
  • 动作

分组元素:

关系

概念:是用来建立元素之间联系的模型元素,一个关系会把一个或多个元素联系起来。根据元素之间联系的方向性,可以把关系分为无向关系和有向关系两种类型。

主要关系:

  • 关联关系
  • 组成关系
  • 泛化关系(继承关系)
  • 依赖关系

命名空间

概念:命名空间是一个拥有多个命名元素的集合,它自身也是命名元素。命名空间与所拥有的命名元素是组合关系。


用例图

用例:表示系统执行的一组动作,它会给系统或者参与者产生一组可观测的结果。用例描述系统的一个功能。

1. 用例图

概念:是 UML 用于描述软件功能的图形。

要素:

  • 参与者:与用例存在交互关系的系统外部实体
  • 用例:用来描述一个相对独立的软件功能
  • 关系:包含参与者与用例的关系,参与者相互之间的关系,用例相互之间的关系。

2. 参与者

概念:也称活动者,是与系统发生交互的外部实体。

特性:

  • 位于系统的外部,不属于系统的内容
  • 与系统发生交互关系
  • 和系统之间存在交互信息的接口

参与者的类型

  • 设备
  • 其他系统
  • 时间

参与者之间的关系

  • 泛化关系
  • 通信关系

3. 用例特性

  • 用例描述用户对系统的期望,被用于软件需求建模,一个用例对应于软件能够为参与者提供的一项服务。
  • 用例反映参与者与系统一次完整的交互过程。
  • 用例的执行过程是系统为参与者的一次服务过程,这个服务就体现为系统提供给参与者的功能。
  • 用例是软件设计和测试的依据。

4. 用例之间的关系

  • 泛化:用例之间存在一般(父用例)和特殊(子用例)关系
  • 包含:某一个用例(基用例)完整执行,必须依赖于另外一个用例(包含用例)的执行
  • 扩展:某个基用例需要通过附加一个用例开扩展或延伸它原有的功能时,基用例和这个附加用例之间的关系。

5. 用例叙述的内容

  • 用例编号
  • 用例名
  • 参与者

6. 用例图的作用

  • 描述软件功能,展示软件使用者和软件功能的关系
  • 建立软件分析模型的依据
  • 软件测试的依据
  • 展现软件功能相互之间的关系

类图与对象图

1. 对象

概念:可以是客观中一个具体的事物,也可以是主观中一个抽象观念。在计算机软件中,从形式上看,对象是一段具有特定语法规则的程序单元,它能够作为软件系统的一个相对独立的基本单位,在软件中承担确定的服务职能。

对象的要素:
  • 认识的指向物
  • 认识者
  • 认识指向物在认识者主观中的反映

对象图的作用

  • 初期分析工具
  • 描述业务场景
  • 模拟运行场景

2. 实例

实例是类元中的一个元素。

3. 类元

类元是对聚集一组具有共同特征的实例的模型元素的通称,类,接口,用例,参与者,关联等都属于类元。

4. 类

概念:是具有相同性质的一组对象的集合,这组对象具有相同的特征,约束和语义。
类型:

  • 抽象程度

    • 业务对象
    • PIM 类:PIM (平台无关模型)独立于软件开发和运行平台
    • PSM 类:PSM(平台相关模型)与具体的开发平台有关
  • 作用
    • 实体类:表示客观实体
    • 边界类:用来描述系统与外界之间交互的系统要素
    • 控制类:表示系统用来进行调度,协调以及业务处理的系统要素

5. 接口

概念:是一种类元,聚集了一组需要通过其他类元实现的公共的操作和属性。接口只是定义一组操作的规约,并不实现这组操作,接口所定义的操作需要通过另外一个类元来实现。

类型:

  • 供应接口
  • 需求接口

6. 关联关系

关联表示事物之间存在内在角色之间的一种牵连关系,这种关系是事物之间的一种基本关系。

7. 组成关系

部分组成整体的关系是客观世界事物之间存在的一种基本关系。根据部分与整体事物之间关系的紧密程度,可以把组成关系分为聚集和组合两种类型。

  • 聚集:表示事物之间一种相对松散的组成关系
  • 组合:表示整体与部分紧密的组成关系

8. 泛化关系

指抽取事物的共性特征,形成超越特殊事物而具有普遍意义的一般事物的方法。

9. 依赖关系

是模型元素之间的一种有向关系,表示一个模型元素在其语义或结构上依赖于另外一个元素。

类型

  • 使用(《use》)
  • 调用(《call》)
  • 实例化(《instance》)
  • 创建(《create》)
  • 销毁(《destory》)
  • 职责(《responsibility》)
  • 发送(《send》)
  • 抽象(《abstraction》)
  • 派生(《derive》)
  • 精化(《refine》)
  • 跟踪(《trace》)
  • 实现(《realization》)
  • 接口的实现(《implementation》)
  • 替代(《substitution》)
  • 许可(《permission》)

10. 类图

用来展示一组类,类的特性及其类相互之间的关系,对系统的领域概念及静态结构进行建模。

类图的元素:类,接口,协作,关系,注释,约束,包

类描述事物以及事物的性质,类的关系反映事物之间的联系。

类的关系

关联,组成,泛化,依赖,接口的实现

作用

  • 在软件空间中建立对问题空间抽象的结构映像
  • 用例分析和设计的逻辑结构建模
  • 数据库结构建模

包图

1. 包

概念:UML 用来对模型元素进行分组的一种机制,包图是构建软件模型框架和结构的一种图。

可见性:

  • 公开
  • 私有
  • 保护

关系:

  • 依赖

    • 使用(《use》)
    • 抽象(《abstraction》)
    • 跟踪(《trace》)
  • 导入(《import》)
    • 元素导入
    • 包导入
  • 合并(《merge》)
  • 包含

2. 包图

概念:用来展示包成员以及包与包之间的关系

作用

  • 分类组织模型元素
  • 模型结构建模
  • 命名空间建模

活动图

1. 活动

概念:活动的一般含义是指在过程中能够完成确定任务的一项相关动作的集合。

活动要素:一个完整的活动由多个活动节点和活动边构成。

活动节点

概念:是活动图中由活动边连接的表示活动单元的节点。一个活动结点是一条活动流程中的一个步骤,通过活动边把多个活动结点联系起来,就构成一个完整的活动。

类型
  • 动作节点:描述一个动作,是活动的基本行为单位
  • 对象结点:描述实体或数据结构的节点,描述在活动中处于某种状态的对象
  • 控制结点:用来控制和协调活动图中动作结点和对象结点的流程,包括起始,终止,分叉与汇合,判断与合并等。

动作

动作是活动的一个基本执行单位,若干个动作按照一定的流程联系起来就构成一个活动。活动可以分解为多个动作,但动作具有原子性,一般不在分解。

动作节点

一个动作的执行需要经历下面5个步骤

  • 创建
  • 启动
  • 操作
  • 完成
  • 清理
控制节点
  • 起始节点:没有入边,只有出边
  • 活动终止节点:用来终止一个活动
  • 流终止节点:用来终止活动中的一个流。一个活动中出现一个流的终止时,并不影响该活动中其他流的执行。
  • 分叉节点:有一个入边,多个出边
  • 汇合节点:多条入边,一条出边
  • 判断节点
  • 合并节点
对象结点
  • 一般对象节点:表示处于某种状态的对象
  • 活动参数节点:通过给活动设置参数来提高活动的灵活性
  • 引脚:用来作为动作参数的对象结点,因此引脚也被称为动作参数结点
  • 中央缓冲节点:可以接收来自不同源的对象流,对接收到的对象进行排序,分拣和缓冲处理,然后分发给不同的对象流
  • 数据存储节点:用于在活动图中对持久存储对象建模

活动边

概念:连接两个活动节点之间的线条被称为活动边。用一个带箭头的连线表示,箭头由源节点指向目标节点。

一条活动边的权重规定为同时通过该条边的令牌的最小数目。默认为 all。当边的权重为 x 时,只有令牌数目达到 x,才允许令牌通过。

控制流:

表示在前一个活动结点执行完成后,把控制令牌传递给下一个活动结点,并启动该结点的执行。控制流上不能传递对象或数据,因此控制流不能连接对象结点。

对象流:

传输对象或数据。在一个对象流连接的两个活动结点中,至少应该有一个是对象结点。在对象流上传递对象令牌。

2. 令牌

令牌为一个可以赋予结点执行权力的数据结构,这个数据结构可以在活动图的各个结点之间进行传递,一个结点只有获得令牌才可以执行。

类型

  • 控制令牌:沿着控制流移动
  • 对象令牌:延着对象流移动

3. 活动图

通过对活动中的各个动作的联系来描述活动的流程

作用

  • 业务流程建模
  • 工作流建模
  • 算法流程建模
  • 用例描述

状态机图

概念:描述事物在其生命周期中所具有的各种状态和关系,以及因事件激励导致的状态变换。

状态机图可以表现一个对象在生存周期的行为,所经历的状态序列,引起状态转换的事件以及因状态转换引起的动作。

1. 状态

概念:指事物在其生存周期中满足某些条件,执行某些操作或等待某些事件而持续的一种稳定的状况。每个状态都需要持续一段有限的时间。

类型

  • 简单状态
  • 复合状态
  • 子机状态

2. 状态机图的构成

  • 状态结点:描述事物的状态,分为简单状态,复合状态,子机状态
  • 控制结点:用来协调状态关系,控制状态转换的流程
  • 转换边:连接状态机图中的结点,表示状态因事件触发,由源状态到目标状态的转换。

3. 状态转换

概念:是两个状态之间的一种有向关系,表示从源状态转换到目标状态。

要素:触发事件,监护条件,转换动作


交互图

交互

概念:表示一组相关的对象在动作执行中通过相互交互消息完成确定的任务。

交互图类型

  • 顺序图:描述在交互过程中,参与交互的对象实体之间消息传输的时序关系
  • 通信图:表示在交互过程中参与交互的对象实体之间的结构关系
  • 交互概览图:把顺序图和活动图结合起来描述交互流程和交互细节的一种图
  • 时序图:描述在一个交互中,参与交互的各对象实体状态变化的时序关系

顺序图

强调在交互过程中交互的各实体之间消息传输的时序关系

生命线

概念:表示参与交互的一个实体及实体集合。一条生命线表示为一个矩形框下面垂着一条虚线。

消息

概念:是一种命名元素,定义了在交互中生命线之间所传输的信息,这种信息可以表示调用一个操作,创建或销毁一个实体,或者发送一个信号。

类型:
  • 同步调用消息
  • 异步调用消息
  • 异步消息
  • 应答消息
  • 创建消息
  • 销毁消息

交互事件

概念:指在交互的某个时刻发生的事情。

一条消息隐含着两个交互事件,在消息的起点一定存在发送消息的事件,在消息的终点存在接收消息的事件。

时序:

一组消息的交互事件之间会存在一定的时序,并遵循下面三个基本准则

  • 同一消息的发送事件一定先于接收事件
  • 同一生命线上,上面的事件先于下面的事件
  • 不同生命线上的不同消息的事件之间的时序不定
定序

概念:为了确定在不同生命线上的不同消息的事件的时序。

定序是规定两个事件一个为先发事件,一个为后发事件,先发事件在后发事件之前发生。

主要用途

  • 确认和丰富一个使用语境的逻辑表达
  • 细化用例的表达
  • 有效地描述如何分配各个类的职责

通信图

UML2.0 版本之前,通信图被称为协作图。用来描述参与一个交互的多个实体之间的结构关系。

交互概览图

概念:把顺序图活动图结合起来描述交互流程交互细节的一种交互图。

类型

  • 以活动图为主线,用顺序图或通信图作为活动节点,适合对复杂的工作流建模
  • 以顺序图为主线,用活动图细化某些消息描述的操作细节

应用

  • 组织顺序图
  • 细化活动细节

时序图

概念:描述在一个交互中,参与交互的各对象实体状态变化的时序关系

时序图要素

  • 生命线
  • 状态
  • 事件
  • 时间刻度
  • 时序约束

表示法

  • 一般表示法
  • 交错表示法

时序图的应用

  • 实时控制系统的时序逻辑应用
  • 事务处理系统的时序逻辑应用

UML 软件建模课程设计报告目录

PS:复习笔记和课程设计虽然是为了应付学校的,但是这个微信小程序我是真的做出来了。

UML 软件建模课程期末复习笔记及课程设计报告相关推荐

  1. 【期末复习】北京邮电大学《数字内容安全》课程期末复习笔记(2. 信息隐藏与数字水印)

    [相关链接] [期末复习]北京邮电大学<数字内容安全>课程期末复习笔记(1. 绪论) [期末复习]北京邮电大学<数字内容安全>课程期末复习笔记(3. 文本安全) [期末复习]北 ...

  2. 【期末复习】北京邮电大学《数字内容安全》课程期末复习笔记(5. 社交媒体安全)

    [相关链接] [期末复习]北京邮电大学<数字内容安全>课程期末复习笔记(1. 绪论) [期末复习]北京邮电大学<数字内容安全>课程期末复习笔记(2. 信息隐藏与数字水印) [期 ...

  3. 【期末复习】北京邮电大学《网络安全》课程期末复习笔记(9. 虚拟专用网络)

    [相关博客链接] [期末复习]北京邮电大学<网络安全>课程期末复习笔记(1. 网络安全概述) [期末复习]北京邮电大学<网络安全>课程期末复习笔记(2. 恶意代码) [期末复习 ...

  4. 【期末复习】北京邮电大学《数字内容安全》课程期末复习笔记(4. 多媒体安全)

    [相关链接] [期末复习]北京邮电大学<数字内容安全>课程期末复习笔记(1. 绪论) [期末复习]北京邮电大学<数字内容安全>课程期末复习笔记(2. 信息隐藏与数字水印) [期 ...

  5. RFID原理及应用期末复习笔记 | 1.RFID概述【完结✿✿ヽ(°▽°)ノ✿】

    系列索引:RFID原理及应用期末复习笔记 | 快速索引 RFID是博主大三下的一门专业课,因为疫情缩短学期进程提前结课,所以期末考试也来的更早,这里就简单记录一下自己复习时的一些笔记,也给后来的学弟学 ...

  6. 电子科技大学操作系统期末复习笔记(二):进程与并发控制

    目录 前言 进程管理 进程基本知识 程序的顺序执行 前趋图 程序的并发执行 并发程序 进程的定义和特征 进程的特征和状态 操作系统内核 定义 功能 原语 原子操作的实现 操作系统控制结构 进程控制块P ...

  7. 【期末复习笔记】知识产权法——著作权、专利法、商标权

    [期末复习笔记]知识产权法 著作权 著作权法不予以保护的客体 著作权的归属 著作权的内容 著作人身权 著作财产权 著作权的取得方式:自动取得 著作权的保护期限: 邻接权 表演者权 表演者义务 表演者权 ...

  8. JMU软件计组期末复习总结

    本篇博客是针对JMU软件专业的期末复习进行的知识点总结,知识点来回穿插,会比较凌乱,不适合预习使用. 因是参考老师给的提纲进行的总结,并没有覆盖这本书的所有知识点,有遗漏还请见谅. 本人能力有限,出现 ...

  9. 【基于UML软件建模的在线学习平台】

    文章目录 开发背景与意义 一.需求分析 学生功能结构 教师功能结构 二.部分课程设计报告 总结 开发背景与意义 随着教育事业的改革,国家对高等教学逐渐得到重视.但是传统的高校间教学教育无法在学生与老师 ...

最新文章

  1. 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路(1)
  2. arm单片机中函数参数的传递
  3. python全套视频教程下载-老男孩python全套视频教程百度云资源下载
  4. python一次性读取整个文件-python-文件中的行是否读取整个文件
  5. USACO 3.2 Stringsobits(DP)
  6. Java二十三设计模式之-----原型模式
  7. Go嵌套并发实现EDM,附坑点分析#1
  8. Oracle表空间查询及扩充表空间
  9. css-第一个CSS
  10. python打飞机源码_python 飞机大战 游戏源码(pygame入门级)
  11. 佳能Canon PIXMA G1010 打印机驱动
  12. Access数据库的模糊查询
  13. java实现人脸识别源码【含测试效果图】——前期准备工作及访问提示
  14. 史上最全的 iOS测试工具集锦(自动化、性能)
  15. 5g工业路由器下自来水管网无线监控系统
  16. 3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)
  17. matlab非牛顿流体,可用于常见非牛顿流体的数值模拟方法与流程
  18. java生成zipf分布_统计分布-Zipf分布
  19. css3图标 对号,添加删除,箭头,关闭
  20. 用fact函数算阶乘

热门文章

  1. Linux基础命令---ar
  2. 什么是事件委托?什么时候用?
  3. H3C/华为交换机配置NTP客户端
  4. matlab图像最暗,一种暗图像的亮度增强方法与流程
  5. JAVA RedissonClient之自动取消订单
  6. yh的生日,我的策划
  7. 【官方文档】Fluentd 输入输出插件(kafka)
  8. 如何洞悉人性、洞察人心
  9. 将字符串中连续的相同字符仅保留1个
  10. 五一要来了,教你用Python动刷新抢12306火车票,附源码