01_描述对象_类图(Class Diagram)
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)的更多相关文章
- 类图(Class Diagram)
类图(Class Diagram): 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 类一般由三部分组成: 类名(Class):每个类都必须 ...
- Python设计模式 - UML - 类图(Class Diagram)
简介 类图是面向对象分析和设计的核心,用来描述系统各个模块中类与类之间.接口与接口之间.类与接口之间的关系,以及每个类的属性.操作等特性,一般在详细设计过程中实施. 类图本身就是现实世界的抽象,是对系 ...
- 【UML】类图Class diagram(转)
http://blog.csdn.net/sds15732622190/article/details/48860711 前言 说到UML,相信大家就能立刻反应出其中的类图,为什么这么说呢,类图和用例 ...
- Pownerdesigner画用例图_类图_时序图
1. 问题描述 软件过程中,设计阶段有几个常用的工具:Rational Rose.Visio.Pownerdesigner,一般用Rose用例图/类图/时序图,Visio画流程图,Pownerdesi ...
- 四、java基础-面向过程_对象_类中可出现的因素
1.面向过程和面向对象区别: 1)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...
- MVC描述对象的类关系图/调用关系图【学习笔记】
- UML类图(Class Diagram)中类与类之间的关系及表示方式(转)
源地址:https://blog.csdn.net/a19881029/article/details/8957441 ======================================== ...
- UML 用例图、顺序图、状态图、类图、包图、协作图、流程图
用例图.顺序图.状态图.类图.包图.协作图 面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling La ...
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父 ...
随机推荐
- 为什么JavaWeb要分层
首先bai让我们坐着时光机回到n年前的web开发.那个时候最早du都是静态的html页面,zhi后来有了数据库,有了所谓dao的动态页面,然后程序猿在编码的时候,会把所有的代码都写在页面上,包括数据库 ...
- MVC框架---转
浅析MVC模式 摘要:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面 ...
- 【解决了一个小问题】golang中引用一个路径较长的库,导致goland中出现"module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v2"
在项目中的go.mod文件中有这样一句: require ( github.com/xxx-devops/xx1/sdk/go v2.2.3 ) 项目的编译没有问题,但是goland中出现如下提示: ...
- Qt之QColorDialog
widget.h: #ifndef WIDGET_H #define WIDGET_H #include <QWidget> class Widget : public QWidget { ...
- gin中映射查询字符串或表单参数
package main import ( "fmt" "github.com/gin-gonic/gin" ) func main() { r := gin. ...
- centos下python2升级为python3
1.下载 下载地址 https://www.python.org/downloads/release/python-353/ 选择"Gzipped source tarball"这 ...
- Nginx代理常用参数
目录 一:Nginx代理常用参数 1.添加发往后端服务器的请求头信息 二:参数案例 1.lb01配置文件 2.web01 web02 web服务器 3.测试 4.重启 5.DNS域名解析 6.网址测试 ...
- linux中三剑客之一grep命令
目录 一:grep语法格式: 二:参数: 三:正则表达式 1.linux正则表达式 2.普通正则表达式 四:正则与grep实战案例实战: grep简介: linux 三剑客之一,文本过滤器(根据文本内 ...
- 如何使用c#编写单片机程序
因为个人喜爱想研究单片机,但是不太会c,然后再找资料研究有没有其他的方法发现国外的c# nanoframework 框架可以编写单片机程序,本文我将会用自己踩过的坑来总结一些c#编写单片机的一些经 ...
- 学习JAVAWEB第一天
第一天:单元测试(junit)黑盒测试:不需要写代码,给输入值,看程序能否给出期望值白盒测试:需要写代码,关注程序的具体执行流程junit使用步骤:步骤1:定义一个测试类建议类名,被测试类名后面加一个 ...