1、UML

1.1概述

UML(Unified Modeling Language 统一建模语言) 是为软件系统的制品进行描述(specifying)可视化(visualizing)构造(constructing)文档化(documenting) 的一种语言。

UML规范用来描述建模的概念有: 类、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。

1.2 UML是一种建模语言

  • 建模方法 = 建模语言 + 建模过程。建模语言定义了用于表示设计的符号(通常是图形符号);建模过程描述进行设计所需要遵循的步骤。
  • 标准建模语言UML是一种建模语言,而不是一种方法,它统一了面向对象建模的基本概念、术语及其图形符号,为人们建立了便于交流的共同语言。
  • 建模能力:建模方法 + 领域知识 + 实践

1.3 UML语言包含三方面

  1. UML基本图素:它是构成UML模型图的基本元素。例如类、对象、包、接口、组件等。
  2. UML模型图:它由UML基本图素按照UML建模规则构成。例如用例图、类图、对象图、…等。
  3. UML建模规则:UML模型图必须按特定的规则有机地组合而成,从而构成一个有机的、完整的UML模型图(well-formed UML diagram)。

2、UML支持软件体系结构建模

为了表达不同的软件开发相关人员在软件开发周期的不同时期看待软件产品的不同侧重面, 需要对模型进行分层。

UML根据软件产品的体系结构(architecture)对软件进行分层。

软件的体系结构分解为五个不同的侧面,称为4+1视图(view)。分别是:

  • 用例视图(Use case view,Scenarios)—场景视角
  • 逻辑视图(Logical view) — 逻辑视角
  • 进程(过程)视图(Process view) — 过程视角
  • 实现(开发)视图(Implementation view) —开发视角
  • 部署(物理、配置)视图(Deployment view) —物理视角

  • 每个视图分别关注软件开发的某一侧面
  • 视图由一种或多种模型图(diagram)构成
  • 模型图描述了构成相应视图的基本模型元素(element)及它们之间的相互关系。

2.1 逻辑视图

逻辑视图定义系统的实现逻辑, 描述为实现用例图描述的功能,在对软件系统进行设计时, 所产生的设计概念,设计概念又称为软件系统的设计词汇 (vocabulary)。

逻辑视图定义了:

  • 设计词汇的逻辑结构
  • 存在于它们之间的语义联系
  • 设计词汇包括系统的类/协同/接口及其关系

对逻辑视图的描述在原则上与软件系统的实现平台无关。 它相当于电子产品生产中的电原理图。逻辑视图包含的模型图有:

  • 类图(class diagrams)
  • 对象图(object diagrams)
  • 交互图(interaction diagrams)
  • 状态图(state-chart diagrams)
  • 活动图(activity diagrams)

2.2 实现(开发)视图

实现视图描述组成一个软件系统的各个物理部件,这些部件以各种方式组合起来,(如: 不同的源代码经过编译,构成一个可执行系统; 或者不同的软件组件配置成为一个可执行系统;以及不同的网页文件,以特定的目录结构,组成一个网站,等等) 构成了一个可实际运行的系统。

当系统的逻辑结构在逻辑视图里被定义之后, 需要定义逻辑结构的物理实现。这包括:

  • 设计元素对应的源代码文件
  • 各物理文件之间的关系、存放路径,等等

实现视图就是定义这些内容的地方,它当于电子产品的印刷电路板的布线图。


实现视图包含的模型图有:

  • 部件图(Component diagram)
  • 交互图(Interaction Diagram)
  • 状态图(state-chart diagram)
  • 活动图(activity diagram)

2.3 部署视图

软件产品将运行在计算机硬件系统上, 如果软件产品是面向网络的应用系统,则有可能同时运行在多个计算机上。

部署视图用来描述软件产品在计算机硬件系统和网络上的安装、分发(delivery)、分布(distribution)。


在部署视图中,系统的静态特性用分布图(deployment diagram)描述。

动态特性的描述用

  • 交互图(interaction diagram)
  • 状态图(state-chart diagram)
  • 活动图(activity diagram)

2.4 过程视图

过程架构考虑一些非功能性的需求,如性能和可用性。它解决并发性、分布性、系统完整性、容错性的问题,以及逻辑视图的主要抽象如何与过程结构相配合在一起 —— 即在哪个控制线程上,对象的操作被实际执行。

2.5 用例视图

用例(场景)视图用来支持软件系统的需求分析,它定义系统的边界,关注的是系统的外部功能的描述。

它从系统的使用者的角度,描述系统的外部的

  • 静态的功能
  • 动态行为

系统的动态功能由UML以下模型图描述:

  • 交互图(interaction diagram),包括顺序图和协作图。
  • 状态图(state-chart diagram)
  • 活动图(activity diagram)

3、UML基本组成

\(UML = UML成员 + UML建模规则\)

UML建模规则:相当于建模语言的语法

UML成员(building blocks of the UML):它是UML的基本组成部分


\(UML成员 = UML 基本模型元素+ 关系+ 模型图\)

UML成员可进一步划分为

  • UML 基本模型元素(things in UML)
  • 关系(relationship)
  • 模型图(diagram)

3.1 UML成员

3.1.1 UML 基本模型元素

UML基本模型元素,类似于电子产品电原理图里的集成电路符号,是模型图上包含的基本符号

\(UML基本模型元素 = 结构模型元素+行为模型元素+成组元素+注解元素\)

基本模型元素可分为四类, 它们是:

  • 结构模型元素(structural things)
  • 行为模型元素(behavioral things)
  • 分组模型元素(grouping things)
  • 注解元素(annotational things)

详情点击这里

3.1.2 关系

结构模型元素是UML模型的静态组成部分,静态组成部分不是孤立存在的,它们被组合在一起互相协作以完成某项任务。因此,结构模型元素之间存在着某种语义上的联系。

在UML中,这种联系是关系(relationship)

UML中共有4种关系,它们是:

  • 关联关系(association)

  • 依赖关系(dependency)

  • 泛化关系(generalization)

  • 实现关系(realization)



    详情点击这里

3.1.3 模型图

UML基本模型元素及其关系必须通过某种载体表示,这种载体就是模型图(diagram)

在UML中,模型图是一组UML基本模型元素的图形表示,它通常由一组节点(UML基本模型元素), 及节点之间的连线(关系)组成

软件系统体系结构的5个视图的内容, 就是用模型图来表达的

一般地说,一个UML基本模型元素既可以出现在所有的模型图中,又可以出现在某些模型图中,甚至可以不在任何一个模型图上出现


9种UML模型图。它们是:

  • 类图
  • 对象图
  • 用例图
  • 序列图
  • 协同图
  • 状态图
  • 活动图
  • 组件图
  • 分布图

3.2 UML建模规则

UML建模规则包括:

  • 名字:任何一个UML成员都必须包含一个名字
  • 作用域:UML成员所定义的内容起作用的上下文环境
  • 可见性:UML成员能被其它成员引用的方式
  • 完整性:UML成员之间互相联接的合法性和一致性。
  • 运行属性(execution):UML成员在运行时的特性。

完备的UML模型必须对以上的内容给出完整的解释, 当用于软件系统的建造时,UML模型是必须是完备的, 但是当模型在不同的视图中出现时, 出于不同的交流侧重点, 其表达可以是不完备的 。

UML的定义和组成详细介绍的更多相关文章

  1. uml中定义的关系详细详解

    uml定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合.下面对其定义和表示方法逐一说明. 依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依 ...

  2. java基础:方法的定义和调用详细介绍,方法同时获取数组最大值和最小值,比较两个数组,数组交换最大最小值,附练习案列

    1. 方法概述 1.1 方法的概念 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集 注意: 方法必须先创建才可以使用,该过程成为方法定义 方法创建后并不是直接可 ...

  3. Unity3d 发动机原理详细介绍

    Unity3d 发动机原理详细介绍 www.MyException.Cn   发布于:2013-10-08 16:32:36   浏览:46次 0     Unity3d 引擎原理详细介绍 体系结构 ...

  4. kvm详细介绍

    KVM详解,太详细太深入了,经典 2016-07-18 19:56:38 分类: 虚拟化 原文地址:KVM详解,太详细太深入了,经典 作者:zzjlzx KVM 介绍(1):简介及安装 http:// ...

  5. [No0000A7]批处理经常用到的变量及批处理>NUL详细介绍

    绝对路径是指调用绝对的程序位置的路径,例如: start C:\Windows\test.exe 相对路径是文件改变路径以后还会按照变量的路径所在位置去调用,例如: start %WINDIR%\te ...

  6. _MSC_VER详细介绍

    _MSC_VER详细介绍 转自:http://www.cnblogs.com/braver/articles/2064817.html _MSC_VER是微软的预编译控制. _MSC_VER可以分解为 ...

  7. Linux截屏工具scrot用法详细介绍

    Scrot是Linux命令行中使用的截图工具,能够进行全屏.选取等操作,下面小编将针对Scrot截图工具的用法给大家做个详细介绍,通过操作实例来学习Scrot的使用.   在Linux中安装Scrot ...

  8. 【转载】硬盘MBR详细介绍

    原文地址:http://blog.chinaunix.net/uid-15007890-id-106892.html 硬盘MBR详细介绍      硬盘是现在计算机上最常用的存储器之一.我们都知道,计 ...

  9. Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例

    概要  前面,我们已经学习了ArrayList,并了解了fail-fast机制.这一章我们接着学习List的实现类——LinkedList.和学习ArrayList一样,接下来呢,我们先对Linked ...

随机推荐

  1. redis入门到精通系列(三):key的通用操作和redis内部db的通用操作

    五种数据类型都用到了key,key本身是一种字符串,通过key可以获取redis中保存的对象.这一篇博客就将介绍key的通用操作. (一)key基本操作 删除key del key key是否存在 e ...

  2. Linux:ps -ef命令

    ps命令将某个进程显示出来 grep命令是查找 中间的|是管道命令 是指ps命令与grep同时执行 PS是LINUX下最常用的也是非常强大的进程查看命令 检查java 进程是否存在:ps -ef |g ...

  3. Ajax异步更新网页(使用原生JavaScript)

    一.页面代码 <!DOCTYPE html> <html> <head> <title>MyHtml.html</title> <me ...

  4. [源码解析] PyTorch 分布式(14) --使用 Distributed Autograd 和 Distributed Optimizer

    [源码解析] PyTorch 分布式(14) --使用 Distributed Autograd 和 Distributed Optimizer 目录 [源码解析] PyTorch 分布式(14) - ...

  5. STL模板前言(1)

    STL提供以下数据结构方便使用: 顺序容器: vector(动态数组):从后面直接插入删除元素,直接访问任何元素. deque(双端队列):从前面和后面快速插入删除,直接访问任何元素. list(双链 ...

  6. 资源的批量删除与替换(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 资源分配好以后,嗯,很满意! 可是!有人看了不满意,或者自己手贱分配错了,要改? 改就改呗,和分配有什么区别吗? 没有啊! ...

  7. 模仿写了一个摸鱼APP解决原作者的问题

    前几天见到微博里有人提到摸鱼APP,发现需要在windows store下载才可以使用,文件约100多M左右的样子,自已没有登录微软Store的习惯.想想只有一个介面,没有必要这么大,于是,自已动手写 ...

  8. CF250A Paper Work 题解

    Content 有 \(n\) 个数,要分成若干堆,要求每堆中的负数最多只能有两个.试求出分成的堆数最少是多少,并求出每一堆里面的数的个数. 数据范围:\(1\leqslant n\leqslant ...

  9. LuoguP7694 [COCI2009-2010#4] AUTORI 题解

    Content 科学论文会大量引用一些早期的著作,因此在一个论文中出现两种不同的命名约定并不少见.这两种不同的命名约定分别是: 长变体,由每个作者姓氏的完整单词由连字符连接而成,例如 Knuth-Mo ...

  10. 搭建 3D 智慧农场可视化,解锁绿色生态田园

    前言 何为"无人农场"?中国工程院院士罗锡文用五句话高度概括:"耕种管收生产环节全覆盖:机库田间转移作业全自动:自动避障异况停车保安全:作物生产过程实施全监控:智能决策精 ...