UML 的基本组成
UML 是由UML构造块、规则、通用机制三部分组成的。而UML构造块由建模元素(事物)、关系和图组成。
建模元素
建模元素是对模型中最具有代表性的成分的抽象。一般情况下,将建模元素分为结构元素、行为元素、分组元素以及注释元素。
结构元素
结构元素是模型的基本物理元素,它有7种类型,分别是类和对象、组件、接口、用例、节点、协作、活动类。在 UML中这7种元素都有自己的图形符号表示,用于组成各种图,描述系统功能
类和对象
类是具有相同属性、相同操作的一组对象的集合的抽象描述。对象是一个具体的内容。在图形中,类用一个矩形来表示,通常矩形中写有类的名称、类的属性和类的操作。
组件
组件是系统中物理的、可替代的部件,是一个描述了一些逻辑元素的物理包。在图形上,组件由一个带有小方框的矩形表示,通常在矩形中致谢该组件的名字
接口
接口是描述了一个类或组件的一个服务的操作集,或者说,接口描述了类或组件对外的、可见的动作。一个类可以实现一个或者多个接口。在图形上,使用一个带有名称的圆来表示。类图中接口用矩形表示,组件图中接口用圆来表示
用例
用例是对一组序列动作的描述,系统执行这些动作,将对用例参与者(actor)产生可以观察的结果。在图形上,用例用实线椭圆来表示,参与者用一个人形来表示
节点
节点是一个物理元素,它在运行时存在,代表一个可计算的资源,例如一台数据库服务器。在图像上,节点用一个立方体来表示
协作
协作是一组类、接口和其他元素的群体,他们共同工作,提供比个组成部分的功能总和更强的合作行为。协作与组件不同,协作不能拥有自己的结构元素,而只能引用其他地方定义的类、接口、组件、节点等结构元素,即协作是系统体系结构中的概念组块,而不是物理块。在图形,协作使用一个包含名称的虚线椭圆来表示。
活动类
活动类能够启动控制活动,因为它的对象至少拥有一个进程或线程。在图形上,活动类的表示方法与普通类相似,也是使用一个矩形,只是最外面的边框使用粗线
行为元素
行为元素是UML中的动词,它是模型中的动态部分。交互和状态机是UML中基本的动态行为元素,他们通常与其他结构元素、主要的类、对象连接在一起
交互
对象都不是孤立存在的,他们之间通过传递消息进行交互。在图形上,交互的消息通常用带有箭头的直线来表示。
状态机
状态机是一个对象或交互在生命周期内响应时间所经历的状态序列。一个状态机是一个行为,它说明对象在它的生命周期中响应事件所经历的状态序列以及它们对那些事件的响应
分组元素
分组元素是UML中的容器,用来组织模型,是模型更加结构化,最主要的分组元素是包,包是把元素组成成组的机制。结构元素、行为元素甚至其他分组元素都可以放进包内。在图形上,包用一个左上角带用一个小矩形的大矩形表示。
注释元素
注释元素是UML中的解释部分,与代码中的注释语句一样,是用来描述模型的。
关系
建模元素之间包含着多种关系,UML中将关系分为4中:依赖关系、关联关系 、泛化关系、实现关系。
依赖关系
依赖是两个元素件的语义关系,其中一个元素(独立元素)发生变化,会影响到另一个元素(依赖元素)的语义。例如,电视机和频道之间就存在一个依赖关系。
关联关系
关联表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,在图形上是用一条实线来表示关联关系。举例来说,人和汽车之间存在着关联。
泛化关系
泛化关系是一般元素(父类)和该元素较为特殊的子类之间的关系。子类继承父类的属性和操作。可以将泛化关系理解成为继承关系。
实现关系
实现关系将一种模型元素(例如类)与另一种模型元素(例如接口)连接起来,其中接口只是行为的定义而不是结构或实现。也就是说,实现关系中的一个模型元素只具有行为的定义,而行为的具体实现则是由另一个模型元素给出。
图
类图
对象图
用例图 (Use Case Diagram)
顺序图
通信图
状态机图
活动图 (Activity Diagram)
组件图
部署图
包图
组合结构图
交互概览图
时间图
UML 的基本组成的更多相关文章
- UML课程复习重点
第一章 一.UML图示建模工具 二.UML--统一建模语言,以图形符号为基础,描述软件模型既简洁又清晰.它不是开发方法,是独立于任何开发方法之外的语言.它用于描述软件系统分析.设计和实施中的各种模型. ...
- UML图中经常用到几种的关系图例
学习这个东西挺奇怪的,时间一长就容易忘记,或者记不清楚.今天看到一些UML图的关系,发现有些出入了,索性就写下来,以后再忘记的时候过来看看. 在UML的类图中,常见的有以下几种关系: 继承(Gener ...
- UML类图(下):关联、聚合、组合、依赖
前言 上一篇文章UML类图(上):类.继承.实现,讲了UML类图中类.继承.实现三种关系及其在UML类图中的画法,本文将接着上文的内容,继续讲讲对象之间的其他几种关系,主要就是关联.聚合.组合.依赖, ...
- UML类图(上):类、继承和实现
面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...
- UML
UML:1.继承关系用空心三角形+实线来表示2.实现接口用空心三角形+虚线来表示3.关联关系用实线箭头来表示4.依赖关系用虚线箭头来表示5.聚合关系用空心菱形+实线箭头来表示6.组合关系用实心菱形+实 ...
- UML类图与面向对象设计原则
1. 引言 从大一开始学习编程,到如今也已经有两年了.从最初学习的Html,Js,JaveSe,再到JavaEE,Android,自己也能写一些玩具.学习过程中也无意识的了解了一些所谓的设计模 ...
- 浅谈UML的概念和模型之UML九种图
1.用例图(use case diagrams) [概念]描述用户需求,从用户的角度描述系统的功能 [描述方式]椭圆表示某个用例:人形符号表示角色 [目的]帮组开发团队以一种可视化的方式理解系统的功能 ...
- UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- 我的敏捷、需求分析、UML、软件设计电子书 - 下载(持续更新中)
我将所有我的电子书汇总在一起,方便大家下载!(持续更新) 文档保存在我的网站——软件知识原创基地上(www.umlonline.org),请放心下载. 1)软件设计是怎样炼成的?(2014-4-1 发 ...
- UML类图关系全面剖析
UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...
随机推荐
- 『重构--改善既有代码的设计』读书笔记----Replace Array with Object
如果你有一个数组,其中的元素各自代表不同东西,比如你有一个 QList<QString> strList; 其中strList[0]代表选手姓名,strList[1]代表选手家庭住址,很显 ...
- sql知识
SQL 基本知识 SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的 ...
- android sdk api的层次结构
一.系统级:android.accounts android.app 1.OS 相关 android.os android.os.storage ...
- apache日志文件 accesslog
因为想要看到apache的日志记录用户请求某个页面所花的时间,需要添加额外参数才会记录,所以临时查了下哦..记下来了 在httpd.conf里可以看到一行这样的配置 LogFormat "% ...
- build tree
有二叉树的前序遍历和后序遍历,构造二叉树 /** * Definition for binary tree * public class TreeNode { * int val; * TreeNod ...
- 01 Hello, Python!
目标:万能的Hello,World! 接收用户输入,并打印出来. #!/usr/bin/python # First comment print("Hello, Python!") ...
- js烟花特效
<!DOCTYPE html><html><head><style>body{background:#000;margin:0;}canvas{curs ...
- BZOJ 3677 连珠线
Description 在达芬奇时代,有一个流行的儿童游戏称为连珠线.当然,这个游戏是关于珠子和线的.线是红色或蓝色的,珠子被编号为\(1\)到\(n\).这个游戏从一个珠子开始,每次会用如下方式添加 ...
- [操作系统]iOS6与iOS7屏幕适配技巧
一.没有包装任何 导航控制器 或者 UITabBarController 1.控制器的view是UIScrollView\UITableView\UICollectionView时(控制器是UITab ...
- java + spring (jython\python\script) Error:SyntaxError: no viable alternative at character '\n'
使用Jython结合java和Python开发功能时,要是遇到如下情况: 2016-03-10 16:16:49 DEBUG [com.freedom.orion.configs.JyhtonConf ...