UML类图组成
UML类图
UML类图(Classdiagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性信息。
类图(Classdiagram)由许多(静态)说明性的模型元素(例如类、包和它们之间的关系,这些元素和它们的内容互相连接)组成。类图可以组织在(并且属于)包中,仅显示特定包中的相关内容。
类图(Classdiagram)是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。
类图(Classdiagram)最基本的元素是类或者接口。
UML类图通常包含如下的内容:
类
接口
协作
关系
同其他的图一样,类图也可以包含注解和限制。
类图中也可以包含包和子系统,这两者用来将元素分组。有时后你也可以将类的实例放到类图中。
注:组件图和分布图和类图类似,虽然他们不包含类而是分别包含组件和节点。
你通常通过下面三种方式使用UML类图:
1,为系统词汇建模型
为系统的词汇建模实际上是从词汇表中发现类,发现它的责任。
2,模型化简单的协作
协作是指一些类、接口和其他的元素一起工作提供一些合作的行为,这些行为不是简单地将元素加能得到的。例如:当你为一个分布式的系统中的事务处理过程建模型时,你不可能只通过一个类来明白事务是怎样进行的,事实上这个过程的执行涉及到一系列的类的协同工作。使用类图来可视化这些类和他们的关系。
3,模型化一个逻辑数据库模式
想象模式是概念上设计数据库的蓝图。在很多领域,你将想保存持久性数据到关系数据库活面向对象的数据库。你可以用类图为这些数据库模式建立模型。
1.类(Class)
UML类图中类一般包含3个组成部分。第一个是类名;第二个是属性(attributes);第三个是该类提供的方法(类的性质可以放在第四部分;如果类中含有内部类,则会出现第五个组成部分)。类名部分是不能省略的,其他组成部分可以省略。
类名书写规范:正体字说明类是可被实例化的,斜体字说明类为抽象类。
属性和方法书写规范:修饰符[描述信息]属性、方法名称[参数][:返回类型|类型]
属性和方法之前可附加的可见性修饰符:
加号(+)表示public;减号(-)表示private;#号表示protected;省略这些修饰符表示具有package(包)级别的可见性。
如果属性或方法具有下划线,则说明它是静态的。
描述信息使用<<开头和使用>>结尾。
类的性质是由一个属性、一个赋值方法和一个取值方法组成。书写方式和方法类似。
2.包(Package)
UML类图中包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,通常使用逻辑性的包,用于对模型进行组织;使用物理性的包,用于转换成系统中的Java包。每个包的名称对这个包进行了惟一性的标识。
3.接口(Interface)
接口是一系列操作的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口类型。接口的表示有大概两种方式。具体画法见下例:
4.关系
UML类图中常见的关系有:一般化关系(Generalization),关联关系(Association),聚合关系(Aggregation),合成关系(Composition),依赖关系(Dependency)。
其中,聚合关系(Aggregation),合成关系(Composition)属于关联关系(Association)。
一般关系表现为继承或实现关系(isa),关联关系表现为变量(hasa),依赖关系表现为函数中的参数(usea)。
一般化关系:表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。
表示方法:用一个空心箭头+实线,箭头指向父类。或空心箭头+虚线,如果父类是接口。
关联关系:类与类之间的联接,它使一个类知道另一个类的属性和方法。
表示方法:用实线+箭头,箭头指向被使用的类。
聚合关系:是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,啊聚合关系两个类处于不同的层次,一个是整体,一个是部分。
表示方法:空心菱形+实线+箭头,箭头指向部分。
合成关系:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系不能共享。
表示方法:实心菱形+实线+箭头,
依赖关系:是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
表示方法:虚线+箭头
UML类图组成的更多相关文章
- UML类图(下):关联、聚合、组合、依赖
前言 上一篇文章UML类图(上):类.继承.实现,讲了UML类图中类.继承.实现三种关系及其在UML类图中的画法,本文将接着上文的内容,继续讲讲对象之间的其他几种关系,主要就是关联.聚合.组合.依赖, ...
- UML类图(上):类、继承和实现
面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...
- UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- UML类图关系全面剖析
UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...
- UML类图关系--继承(泛化)、实现、关联、聚合、组合、依赖
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composi ...
- UML类图的6大关系
<小酌重构系列>已经完成了大约1/3了,在这些文章中,我使用了一些简单的类图来描述重构策略.在之后的文章中,我可能会借助稍微复杂一些的UML类图来介绍.但是在此之前,我觉得有必要先介绍一下 ...
- [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图
[.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...
- 初识UML类图--类之间关系
前言 最近有打算学习一下设计模式,所以就去看了园子里面左潇龙大哥的设计模式文章,看完之后只有一个感觉,我啥时候也能写出来这么牛逼的文章啊,但是我这语文老师死的早的人还是算了,但是设计模式还是要学的,这 ...
- 我对uml类图关系的理解
uml类图的关系: 泛化关系也就是继承. 实现关系就是一个类实现另外一个接口. 依赖关系就是一个类使用了另外一个类,是一种使用关系,在这个类的某个服务中需要另外一个类来协助. 关联关系就是一类拥有另外 ...
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父 ...
随机推荐
- 阶乘-递归-java
public class Main { public static void main(String[] args) { for (int i=0;i<11;i++){ System.out.p ...
- 标准C程序设计七---105
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- 安装phpssdb扩展:
安装 igbinary 扩展(安装phpssdb扩展时候要用到--enable-ssdb-igbinary): clone https://github.com/igbinary/igbinar ...
- dedecms--二次开发之前后台登录分开
最近在写dedecms系统下会员功能二次开发,然后发现在本地测试的时候每次登录后台,管理员帐号都会在前台页面也显示登录了,但是如果真的是在前台页面用管理员账号登录的话那是登陆不了的,所以我觉得这样的效 ...
- [react-router] 平时积累
path通配符: <Route path="/hello/:name"> // 匹配 /hello/michael // 匹配 /hello/ryan <Rout ...
- python 操作系统和进程
一. 操作系统介绍 多道程序系统 多道程序设计技术 所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行.即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种 ...
- python 之 实现su 到root账号
简单记录一下如何通过python代码在linux系统下实现自动su - 切换到root账号, 使用到的模块:paramiko 使用到的方法:invoke_shell 功能:在SSH server端创 ...
- 一些yuv视频下载地址
因为测试需要下载一些yuv视频地址,现存一个可以下载yuv视频的地址以备后用 http://trace.eas.asu.edu/yuv/index.html ftp://ftp.ldv.e-techn ...
- MySql_ procedure
返回参数示例 下面是一个示例: delimiter //S drop procedure if EXISTS myzrz; CREATE PROCEDURE myzrz(in pin int,out ...
- InnoDB: Warning: a long semaphore wait 解决办法
http://blog.csdn.net/wulantian/article/details/37560849