http://blog.csdn.net/sds15732622190/article/details/48860711

前言

说到UML,相信大家就能立刻反应出其中的类图,为什么这么说呢,类图和用例图我觉得是UML最精髓的部分,在软件开发与管理中起着巨大的作用。接下来介绍一下类图。

定义

        由许多(静态)说明性的模型元素(例如类、包和它们之间的关系,这些元素和它们的内容互相连接)组成。类图可以组织在(并且属于)包中,仅显示特定包中的相关内容。

组成

如例图,类一般由名称,属性和方法组成。分别写在三个方框里。

类(Class)

1、类名

不可省略。
书写规范:正体字(可被实例化),斜体字(抽象类)。

2、属性(attributes)

书写规范:修饰符 [描述信息] 属性、方法名称 [参数] [:返回类型|类型]
可见性修饰符:(+)public;(-)private;(#)protected;(默认)package(包)级别的可见性。

3、方法

同属性。

关系

泛化(Inheritance)

表示方法:直线加空心三角形。
①单重继承(一个子类有且只有一个父类)
②多重继承(一个子类有两个或两个以上父类)

关联关系(Association)

①简单关联

表示方法:直线

(1)单向关联(使用箭头)

(2)双向关联

(3)自身关联

②聚合关系(Aggregation)

整体和部分,松耦合,可以独立存在,时间不分先后。

表示方法:空心菱形。

③组合关系(Composition)

整体和部分,紧耦合,不可独立存在,时间存在先后。

表示方法:实心菱形。

依赖关系(Dependency)

即为使用关系。
表示方法:虚线箭头。

实现关系

一个类元描述了另一个类元保证实现的契约。
表示方法:虚线加空心三角。

协作

        协作是指一些类、接口和其他的元素一起工作提供一些合作的行为,这些行为不是简单地将元素加能得到的。例如:当你为一个分布式的系统中的事务处理过程建模型时,你不可能只通过一个类来明白事务是怎样进行的,事实上这个过程的执行涉及到一系列的类的协同工作。使用类图来可视化这些类和他们的关系。

接口

类和接口的实现关系,接口用圆表示。

要点

1、给定一个软件系统,根据软件系统特征抽象得到类。
2、抽象得到每个类的属性方法。
3、正确表达出类和类的关系。(不能只用依赖关系(太弱);能用关联时要用关联;能用组合就不用聚合;能用聚合就不用一般关联;能用一般关联就不用依赖;该用接口实现的要用接口实现;需要继承的要用继承。)
4、用准确关系进行建模后要进行修饰(名称,属性等)。

机房收费系统类图

      欢迎大家提出宝贵的建议。

总结

        我感觉类图是UML图中相对较难的一张,如何画好类图是我们需要学习的,如何完整的找出具体类,抽象类不是画一两张图就能学会的,所以我们要多把握画图的机会,画好类图,学好UML。

【UML】类图Class diagram(转)的更多相关文章

  1. Python设计模式 - UML - 类图(Class Diagram)

    简介 类图是面向对象分析和设计的核心,用来描述系统各个模块中类与类之间.接口与接口之间.类与接口之间的关系,以及每个类的属性.操作等特性,一般在详细设计过程中实施. 类图本身就是现实世界的抽象,是对系 ...

  2. UML类图(Class Diagram)中类与类之间的关系及表示方式(转)

    源地址:https://blog.csdn.net/a19881029/article/details/8957441 ======================================== ...

  3. 练习UML类图中的类的表示

    第一部分:UML类图(class diagram) 类图用来展现一组类.类的特性以及其类相互之间的关系,一个类图由一组类以及它们之间的关系构成,类图用来对系统的领域概念以及静态结构进行建模. 在软件模 ...

  4. UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

    UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父 ...

  5. 【转】UML类图与类的关系详解

    UML类图与类的关系详解   2011-04-21 来源:网络   在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...

  6. 转:深入浅出UML类图(具体到代码层次)

    深入浅出UML类图 作者:刘伟 ,发布于:2012-11-23,来源:CSDN   在UML 2.0的13种图形中,类图是使用频率最高的UML图之一.Martin Fowler在其著作<UML ...

  7. 深入浅出UML类图(一)

    在UML 2.0的13种图形中,类图是使用频率最高的UML图之一.Martin Fowler在其著作<UML Distilled: A Brief Guide to the Standard O ...

  8. [转载]UML类图总结

    前言 类图和序列图是UML中最常用的两种Diagram.我将做详细的总结.在许多书中,或者网站中,在介绍一个系统的子系统的设计时,很多时候,都是给出简单的类图来简述构成子系统的类之间的关系.这足以说明 ...

  9. intellij idea 高级用法之:集成JIRA、UML类图插件、集成SSH、集成FTP、Database管理

    之前写过一篇IntelliJ IDEA 13试用手记,idea还有很多高大上的功能,易用性几乎能与vs.net媲美,反正我自从改用idea后,再也没开过eclipse,今天来看几个高级功能: 一.与J ...

  10. 深入浅出UML类图

    原作者:http://www.uml.org.cn/oobject/201211231.asp 在UML 2.0的13种图形中,类图是使用频率最高的UML图之一.Martin Fowler在其著作&l ...

随机推荐

  1. 初步使用redis

    1.导入jar包 2.新建类: public class JedisAdapter { private static final Logger logger = LoggerFactory.getLo ...

  2. JavaWeb_打包web应用war

    使用下面的语句进行打包 jar -cvf aa.war news 打包之后的文件可以直接放在tomcat的webapps里面,一旦启动tomcat,会自动解压aa.war文件.

  3. js中的"=="和equals()以及is()三者的区别

    在 javaScript或者jQuery中字符串比较没有equals()方法,要比较两个字符串是否相等可以直接用==或者is()进行判断. 例如: "a"=="a&quo ...

  4. Golang : pflag 包简介

    笔者在前文中介绍了 Golang 标准库中 flag 包的用法,事实上有一个第三方的命令行参数解析包 pflag 比 flag 包使用的更为广泛.pflag 包的设计目的就是替代标准库中的 flag ...

  5. ue4 delegate event

    官网相关 https://docs.unrealengine.com/latest/CHN/Programming/UnrealArchitecture/Delegates/index.html wi ...

  6. 关于lspci命令

    lspci是一个用来查看系统中所有PCI总线以及连接到该总线上的设备的工具. 命令格式为 lspci -参数 (不加参数显示所有硬件设备) 至于有哪些参数及其详细用法可以看下这篇博客:http://w ...

  7. django 模版 语法与使用

    目录 django 模版语法与使用 django模板语言介绍 (摘自官方文档) 链接 什么是模板? 模板语句的 注释 变量 {{ 变量 }} 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值 ...

  8. 求n位水仙花数

    求n位水仙花数 A.两个关键 1.n位水仙花数的范围是什么? n位水仙花数的范围是[10n-1,10n) 2.如何判断是否为水仙花数 核心操作: 2-1.如何得到每一位? A.核心思想 对得到的数进行 ...

  9. eShopOnContainers(一)

    微软微服务架构eShopOnContainers(一) 为了推广.Net Core,微软为我们提供了一个开源Demo-eShopOnContainers,这是一个使用Net Core框架开发的,跨平台 ...

  10. missfresh问题记录

    一.基本信息 1.登陆机器    ssh lina02@mjump.missfresh.net -p2222 二.问题 1.分页问题:job_id为空时能查询出来(笛卡尔乘积),需要加上AND res ...