UML 是由UML构造块、规则、通用机制三部分组成的。而UML构造块由建模元素(事物)、关系和图组成。

建模元素

建模元素是对模型中最具有代表性的成分的抽象。一般情况下,将建模元素分为结构元素、行为元素、分组元素以及注释元素。

结构元素

结构元素是模型的基本物理元素,它有7种类型,分别是类和对象、组件、接口、用例、节点、协作、活动类。在 UML中这7种元素都有自己的图形符号表示,用于组成各种图,描述系统功能

类和对象

类是具有相同属性、相同操作的一组对象的集合的抽象描述。对象是一个具体的内容。在图形中,类用一个矩形来表示,通常矩形中写有类的名称、类的属性和类的操作。

组件

组件是系统中物理的、可替代的部件,是一个描述了一些逻辑元素的物理包。在图形上,组件由一个带有小方框的矩形表示,通常在矩形中致谢该组件的名字

接口

接口是描述了一个类或组件的一个服务的操作集,或者说,接口描述了类或组件对外的、可见的动作。一个类可以实现一个或者多个接口。在图形上,使用一个带有名称的圆来表示。类图中接口用矩形表示,组件图中接口用圆来表示

用例

用例是对一组序列动作的描述,系统执行这些动作,将对用例参与者(actor)产生可以观察的结果。在图形上,用例用实线椭圆来表示,参与者用一个人形来表示

节点

节点是一个物理元素,它在运行时存在,代表一个可计算的资源,例如一台数据库服务器。在图像上,节点用一个立方体来表示

协作

协作是一组类、接口和其他元素的群体,他们共同工作,提供比个组成部分的功能总和更强的合作行为。协作与组件不同,协作不能拥有自己的结构元素,而只能引用其他地方定义的类、接口、组件、节点等结构元素,即协作是系统体系结构中的概念组块,而不是物理块。在图形,协作使用一个包含名称的虚线椭圆来表示。

活动类

活动类能够启动控制活动,因为它的对象至少拥有一个进程或线程。在图形上,活动类的表示方法与普通类相似,也是使用一个矩形,只是最外面的边框使用粗线

行为元素

行为元素是UML中的动词,它是模型中的动态部分。交互和状态机是UML中基本的动态行为元素,他们通常与其他结构元素、主要的类、对象连接在一起

交互

对象都不是孤立存在的,他们之间通过传递消息进行交互。在图形上,交互的消息通常用带有箭头的直线来表示。

状态机

状态机是一个对象或交互在生命周期内响应时间所经历的状态序列。一个状态机是一个行为,它说明对象在它的生命周期中响应事件所经历的状态序列以及它们对那些事件的响应

分组元素

分组元素是UML中的容器,用来组织模型,是模型更加结构化,最主要的分组元素是包,包是把元素组成成组的机制。结构元素、行为元素甚至其他分组元素都可以放进包内。在图形上,包用一个左上角带用一个小矩形的大矩形表示。

注释元素

注释元素是UML中的解释部分,与代码中的注释语句一样,是用来描述模型的。

关系

建模元素之间包含着多种关系,UML中将关系分为4中:依赖关系、关联关系 、泛化关系、实现关系。

依赖关系

依赖是两个元素件的语义关系,其中一个元素(独立元素)发生变化,会影响到另一个元素(依赖元素)的语义。例如,电视机和频道之间就存在一个依赖关系。

关联关系

关联表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,在图形上是用一条实线来表示关联关系。举例来说,人和汽车之间存在着关联。

泛化关系

泛化关系是一般元素(父类)和该元素较为特殊的子类之间的关系。子类继承父类的属性和操作。可以将泛化关系理解成为继承关系。

实现关系

实现关系将一种模型元素(例如类)与另一种模型元素(例如接口)连接起来,其中接口只是行为的定义而不是结构或实现。也就是说,实现关系中的一个模型元素只具有行为的定义,而行为的具体实现则是由另一个模型元素给出。

类图

对象图

用例图 (Use Case Diagram)

顺序图

通信图

状态机图

活动图 (Activity Diagram)

组件图

部署图

包图

组合结构图

交互概览图

时间图

UML 的基本组成的更多相关文章

  1. UML课程复习重点

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

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

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

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

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

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

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

  5. UML

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

  6. UML类图与面向对象设计原则

    1. 引言     从大一开始学习编程,到如今也已经有两年了.从最初学习的Html,Js,JaveSe,再到JavaEE,Android,自己也能写一些玩具.学习过程中也无意识的了解了一些所谓的设计模 ...

  7. 浅谈UML的概念和模型之UML九种图

    1.用例图(use case diagrams) [概念]描述用户需求,从用户的角度描述系统的功能 [描述方式]椭圆表示某个用例:人形符号表示角色 [目的]帮组开发团队以一种可视化的方式理解系统的功能 ...

  8. UML类图几种关系的总结

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

  9. 我的敏捷、需求分析、UML、软件设计电子书 - 下载(持续更新中)

    我将所有我的电子书汇总在一起,方便大家下载!(持续更新) 文档保存在我的网站——软件知识原创基地上(www.umlonline.org),请放心下载. 1)软件设计是怎样炼成的?(2014-4-1 发 ...

  10. UML类图关系全面剖析

    UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...

随机推荐

  1. HTML5 自适应rem布局

    (function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? ' ...

  2. php根据经纬度计算距离和方向--摘录自http://haotushu.sinaapp.com/post-520.html

    define('EARTH_RADIUS', 6367000);//需定义的静态变量 function getRadian($d) { return $d * M_PI / 180; } functi ...

  3. php 常用

    零:重要的PHP超级全局变量 1.$_SERVER $_SERVER超级全局变量包含由web服务器创建的信息,它提供了服务器和客户配置及当前请求环境的有关信息.根据服务器不同,$_SERVER中的变量 ...

  4. Android中基于Socket的网络通信

    1. Socket介绍 2. ServerSocket的建立与使用 3. 使用ServerSocket建立聊天服务器-1 4. 使用ServerSocket建立聊天服务器-2 5. 在Android中 ...

  5. python中的buildin函数详解(第一篇)

    这会是很长的一个帖子,因为我打算从python最基础的东西开始,尝试去完全的掌握它,buildin中有一些常用的函数比如 abs, open, setattr, getattr, 大家都很了解他们的用 ...

  6. Git中从远程的分支获取最新的版本到本地

    Git中从远程的分支获取最新的版本到本地有这样2个命令: 1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge    git fetch origin mastergit l ...

  7. 如何使用 Laravel Facades ?

    Facade 布局是在面向对象编程中经常使用的一种软件设计布局方式.Facade 实际上是一种包括复杂函数库的类,提供了更加简洁易读的接口.Facade 布局还能为一组结构复杂.设计简陋的 API 提 ...

  8. 李洪强iOS开发之-环信01_iOS SDK 前的准备工作

    李洪强iOS开发之-环信01_iOS SDK 前的准备工作 1.1_注册环信开发者账号并创建后台应用 详细步骤:  注册并创建应用 注册环信开发者账号 第 1 步:在环信官网上点击“即时通讯云”,并点 ...

  9. 使用lombok

    Lombok是一种JavaArchive(JAR)文件,可用来消除Java代码的冗长.通过在开发环境中实现Lombok,开发人 员可以节省构建诸如hashCode()和equals()这样的方法以及以 ...

  10. Qt 窗体的模态与非模态(setWindowFlags(Qt::WindowStaysOnTopHint);比较有用,还有Qt::WA_DeleteOnClose)

    概念 模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对话框等. 1. 模态窗体 ...