1.   作用

  • 用于面向对象软件开发的分析和设计阶段,描述系统的静态结构。
  • 描述类与类、类与接口、接口与接口之间的静态结构和关系,描述系统的结构化设计。最基本的元素:类、接口。
  • 用于应用程序的一般概念建模、详细建模、数据建模,将模型转换成编程代码。
  • 类图是系统编码和测试的重要模型依据。

2.   元素

  • 包(package)
  • 类(class)
  • 接口(interface)
  • 关系(relation)
  • 信号(signal)
  • 数据类型(data type)
  • 原始类型(primitive type)
  • 枚举(enumeration)

3.   范围属性

  • +:public
  • #:protected
  • -:private
  • ~:package

4.   关系

4.1 关联(association)

拥有关系,拥有者能知道被拥有者的属性和方法。被拥有者是拥有者的属性。关联分单向关联(unidirectional association)和双向关联(bidirectional association)。

荔枝:

4.2 依赖(dependency)

使用关系。使用者需要被使用者的部分属性和方法。

荔枝:

4.3 泛化(generalization)

继承关系。使继承者(子类)拥有被继承者(父类)的属性和方法。

荔枝:

4.4 聚合(aggregation)

描述整体与部分的关系,部分离开整体可以独立存在。

荔枝:

4.4 组合(composition)

描述整体与部分的关系,部分不能离开整体独立存在。

荔枝:

4.5 实现(realization)

类的方法体现接口的行为。

荔枝:

5.   Robustness(拓展)

边界(boundary)

实体(entity)

控制(control)

6.   大荔枝

01_描述对象_类图(Class Diagram)的更多相关文章

  1. 类图(Class Diagram)

    类图(Class Diagram): 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 类一般由三部分组成: 类名(Class):每个类都必须 ...

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

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

  3. 【UML】类图Class diagram(转)

    http://blog.csdn.net/sds15732622190/article/details/48860711 前言 说到UML,相信大家就能立刻反应出其中的类图,为什么这么说呢,类图和用例 ...

  4. Pownerdesigner画用例图_类图_时序图

    1. 问题描述 软件过程中,设计阶段有几个常用的工具:Rational Rose.Visio.Pownerdesigner,一般用Rose用例图/类图/时序图,Visio画流程图,Pownerdesi ...

  5. 四、java基础-面向过程_对象_类中可出现的因素

    1.面向过程和面向对象区别: 1)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...

  6. MVC描述对象的类关系图/调用关系图【学习笔记】

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

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

  8. UML 用例图、顺序图、状态图、类图、包图、协作图、流程图

    ​用例图.顺序图.状态图.类图.包图.协作图 面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling La ...

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

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

随机推荐

  1. 【记录一个问题】铁威马NAS存储中的python3,安装后找不到xml这个包

    如题 因为找不到xml,所以无法安装setuptools 因为无法安装setuptools,所以无法安装pip3 现在准备重新下载python3的源码自己编译. 铁威马的系统中还缺少libm这个库,导 ...

  2. 游戏mod启动器原理

    基本原理 游戏程序会按一定顺序读取游戏文件夹根目录的文件. 所以我们制作mod和补丁的时候需要使得我们的文件先读取,从而使得后面读取到重复内容时候,游戏运行的内存中舍弃掉原本的文件. 游戏mod启动器 ...

  3. python文档1-unittest单元测试之mock

    什么是mock unittest.mock是一个用于在Python中进行单元测试的库,Mock翻译过来就是模拟的意思,顾名思义这个库的主要功能是模拟一些东西.它的主要功能是使用mock对象替代掉指定的 ...

  4. 带你学习BFS最小步数模型

    最小步数模型 一.简介 最小步数模型和最短路模型的区别? 最短路模型:某一个点到另一个点的最短距离(坐标与坐标之间) 最小步数模型:不再是点(坐标),而是状态到另一个状态的转变 BFS难点所在(最短路 ...

  5. Error: xz compression not available解决办法

    centos6升级php时误安装: rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm rpm -Uvh https://mir ...

  6. Spring源码-IOC部分-Bean实例化过程【5】

    实验环境:spring-framework-5.0.2.jdk8.gradle4.3.1 Spring源码-IOC部分-容器简介[1] Spring源码-IOC部分-容器初始化过程[2] Spring ...

  7. 生成"cmd.exe"错误

    转载请注明来源:https://www.cnblogs.com/hookjc/ 在VC2005里打开"工具"菜单,选择"选项",打开"选项" ...

  8. Posix 信号

    转载请注明来源:https://www.cnblogs.com/hookjc/ 函数sem_open创建一个新的有名信号灯或打开一个已存在的有名信号灯.有名信号灯总是既可用于线程间的同步,又可以用于进 ...

  9. 判断js对象是否为空

    let _isEmptyObj = function(obj) { for(var key in obj) { return false; } return true; }

  10. iOS多线程总览 --By 吴帮雷

    在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程.由于在iOS中除了主线程,其他子线程是独立于Cocoa Touch的,所以只有主线程可以更新UI界面(新版iOS中, ...