UML中的关联,泛化,依赖,聚集,组合(转)
转自:http://blog.sina.com.cn/s/blog_5f8b45f20100dzjo.html
关联(association): 这是一种很常见的关系,这种关系在我们的生活中到处可见,如:一张订单对象一个客户,关联可以是单端关联也可以是多端关联。如:用户和身份证就是双向关联的。关联可以叫做持有对方引用。(用一条实线表示,可以还箭头)
泛化(generalization):这里的泛化可以理解为面向对象中的继承
依赖(dependency):是指两个对象间有依赖关系,如果一端修改了,那么依赖他的对象都会有影响.如:充电器和电池,机器和零件,等都有依赖关系。
聚合(aggregation):聚合是一种整体与部分的关系,比如车和轮子的关系就是一种聚合关系,但是轮子可以离开车子独立存在,轮子的生命周期与车子不相关,因为可以提前把轮子做出来再做车子。还有俱乐部和人的关系也是一种聚合。还有自行车和他的轮子,铃铛,龙头都是聚合关系。
组合(composition):组织也是一种整体和部会的关系。但是部分的存必须依赖于整体的存在,如果整体不存在了,部分也自然不存了。如:公司和部门就是一种组合关系:如果公司不存在了。那么也没有部门这个概念了。
包含(extend)和扩展(include)
一般只有use case之间有扩展关联和包含关联关系。
如果use case
A和use case
B有扩展关联关系,说明B的动作序列是A动作序列的一个分支,这个分支只有在某种条件下执行,B的动作序列插入A中的位置,称为“扩展点”。
比如A是一个从ATM取款的use
case,动作包括:插入卡、输入密码、选择取款服务、输入金额、吐钱、取回卡。
B表示密码错误的处理方法,B是A的扩展用例,在输入密码错误下执行:选择重新输入密码、系统提示错误、选择取回卡。这样B的动作只在A的第二个动作输入错误密码的情况下执行。扩展点就是输入错误密码。
如果use case
A和use case
B有包含关联关系,说明A的动作序列总是包含B的动作序列,不论在什么情况下。比如如果use
case C表示验证用户,动作序列是插入卡、输入密码。A
include C,不论什么情况下,A的动作序列都包含C。
注1: extend和include的区别是,extend是可选的,只在某种情况下执行另一个use
case,通常是异常条件下,而include是一定会执行的。因为它已经包含在其中了。
注2:聚合和组合的区别就是,聚合的的各部分可以独产存在,也就是他的生命周期没有依赖性,但是组合的各部门不能独立存在。
UML中的关联,泛化,依赖,聚集,组合(转)的更多相关文章
- UML中的依赖关系
UML中的五种关系和设计模式中的代码实现. 又重新听了一遍UML中的关系.感觉又是收获很大. UML中的关系有依赖,关联(聚合,组合),泛化(也叫继承),实现 现在一个一个的来实现: 一:依赖 依赖关 ...
- UML中关系的分类及其概念——总结备忘
UML中关系分类: 依赖:依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义. 关联:关联是类与类之间的联接,它使一个类知道另一类的属性和方法. 聚合:聚合 ...
- 详解UML中的6大关系(关联、依赖、聚合、组合、泛化、实现)
UML中的6大关系相关英文及音标: 依赖关系 dependency --------> 关联关系 association ______> 聚合关系 aggregation ______ ...
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父 ...
- UML[1] UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)(转)
转自:http://blog.csdn.net/zhaoxu0312/article/details/7212152 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是 ...
- 【UML】UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的 ...
- UML类图关系(继承、泛化、实现、依赖、关联、聚合、组合)
继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者 ...
- UML类关系(依赖,关联,聚合,组合,泛化,实现)
转自https://blog.csdn.net/k346k346/article/details/59582926 在学习面向对象设计时,类关系涉及依赖.关联.聚合.组合和泛化这五种关系,耦合度依 ...
- 【UML】关联、依赖、泛化、实现等关系说明
导读:再上一篇博客中,介绍了UML的9种图,现在,将对UML中的关系进行总结.图很重要,但图形中的各种关系也很重要,这扯关系的事儿,从来都是大事儿. 一.基本定义 1.1 总体说明 1.2 具体定义 ...
随机推荐
- MySQL把文件导入表中
1. Mysql 把本地文件导入表中 drop table if exists wufangzhai_caigou_group; create table wufangzhai_caigou_grou ...
- ant 小结
ant 的配置文件是xml 格式的. 其xml根元素是 project project元素下面有 property path env target filelist patternset 其中 tar ...
- [记录] Mysql 复制表格结构
有时候我们需要原封不动的复制一张表的表结构来生成一张新表,MYSQL提供了两种便捷的方法 一.LIKE方法 like方法能一模一样的将一个表的结果复制生成一个新表,包括复制表的备注.索引.主键外键.存 ...
- Mysqli 数据库连接类
<?php namespace Lib; // 数据库连接类 class DB { //私有的属性 private static $dbcon = false; private $host; p ...
- [转]使用Ubuntu Live CD修复Grub引导教程
这个教程的方法我用过了,能够解决了我的问题. 这篇文章主要介绍了使用Ubuntu Live CD修复Grub引导教程,本文以 Ubuntu Live CD 修复 Grub 引导为例,需要的朋友可以参考 ...
- LeetCode 题解 Permutation Sequence 需要优化!
题目大意:给出n和k,找到1..n这些数组成的有序全排列中的第k个. 首先,n的全排列可以分成n组,每一组由n-1个数组成. 例如 3的全排列,分成三组: 1 2 3 和 1 3 2 2 1 3 ...
- iOS pods编译原理
首先看一下Podfile文件下面这行 use_frameworks! 这行的意思是Pod工程中的target是否编译成framework的形式,加上这行Pod工程中的target会编译成framewo ...
- C++复习:继承与派生
1继承概念 面向对象程序设计有4个主要特点:抽象.封装.继承和多态性.说了类和对象,了解了面向对象程序设计的两个重要特征一数据抽象与封装,已经能够设计出基于对象的程序,这是面向对象程序设计的基础. 要 ...
- 简洁的实现ls-l命令
现在我们来简洁的实现命令:了解一下相关知识: 我们使用掩码可以很明确的得出文件的每一种信息.关于掩码,上图中的S_IRUSR等均为掩码.我们来看看函数getpwuid,原型:struct passwd ...
- 记录在Centos下安装和使用Git的过程,从github上克隆仓库和提交。
1 安装git yum install git 2配置DNS vi /etc/resolv.conf nameserver 8.8.8.8nameserver 8.8.4.4 3 设置网关 vi /e ...