UML,理理关系

2024-08-25 19:18
文章标签 关系 uml 理理

本文主要是介绍UML,理理关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

	     UML的学习,也持续了一段时间了。从最初的迷茫,到现在的跃跃欲试。可是,刚想实战,便碰壁了。
	看完视频中对9中图的概述,也看完了对Rational Rose软件的使用介绍,于是便想着实战一把,画个图试试。结果就是赠给自己一句话:还没学会走,就别想着跑了。
	刚开始觉得示例中画个小人,添个任务,很简单嘛。可是,真准备动手了,却不知道如何下手。最重要的就是关系,几种关系,将会关系到后面每一块领地。
	“能用继承表示就一定要用泛化关系,当描述接口与类的实现就用实现关系,两个类之间有结构关系就用关联,除此之外采用依赖关系”,视频中这段话,不止说了一次了。一款好的软件,一定是从最初的需求分析到最后的实施维护的过程中都严格按照规则去做的。就拿需要形成的几种图来说,关系的应用也一定是具体而又经过周全考虑的。所以,每一个图,不仅仅是为了完成它,而且要认真理清每一个接口或类之间的关系。这其中,关联是一定的,但具体是组合呢,还是聚合呢,还是其他关系,都需要仔细思考。
	UML 中类与类, 类与接口, 接口与接口间的关系有: 泛化(generalization) 关系, 关联(association)关系( 关联, 聚合,组合), 依赖(dependency)关系,实现(realization)关系. 
	下面便一一来总结一下:
(一)泛化关系
	【含义】一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。用英文描述就是is-a-kind-of。   
	【表示】带三角箭头的实线,箭头指向父类。
	【举例】动物可分为爬行、两栖和哺乳动物,而狗、猫和牛都是属于哺乳动物。不管是爬行、两栖还是哺乳动物,一定都具有动物的特征。而不管是猫、狗还是牛,一定都具有哺乳动物的特征。这样的关系就属于泛化关系。
	【图】
			
(二)关联关系
       【含义】一种结构化关系,指一种对象和另一种对象有联系。【分类】普通关联、聚合、组合。
【普通关联】【表示】直线【举例】人与公司之间。其中描述该关系的性质名称为Job,employee与employer为该关系中的两个角色。
【图】
【聚合】
	【表示】空心菱形
	【举例】书架与书之间。两者为整体与部分的关系,相互联系,但又相互独立。书架没有,书仍存在,反之亦然。
	【图】
			
【组合】【表示】实心菱形【举例】书和页之间。两者同样为整体与部分的关系,相互联系,但部分不能离开整体而单独存在。没有书,就没有页。【图】	


(三)依赖关系
【含义】是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。
【表示】带箭头的虚线,指向被使用者。
【举例】课程调度。其依赖于课程类。也就是说如果都不存在某一课程,也就不可能对其有所调整了。
【图】
		

(四)实现关系
	【含义】是一种类与接口的关系,表示类是接口所有特征和行为的实现。
	【表示】带三角箭头的虚线,箭头指向接口。
	【举例】圆圈与形状间的关系。Circle类实现了Shape接口。
	【图】
			
各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 
	“能用继承表示就一定要用泛化关系,当描述接口与类的实现就用实现关系,两个类之间有结构关系就用关联,除此之外采用依赖关系”,再加上“能用组合的就不用聚合关系”,这些也都是因为上面的关系顺序而来。所以,理清了这些关系,才知道在实践中如何去应用了。
学习心得:
	这六个关系理论上自己接受了,但在实践过程中可谓一波三折。为了用Rational Rose这款软件画出这六个关系,花了不少时间琢磨。自己也知道,这是前期学习必不可少的。所以,实践很重要。
	通过理理这六个看似简单的关系,发现了学习还是一步一个脚印。有时候,新的学习遇到问题了,那么大有可能是前面的学习没有扎实。所以,还是得踏踏实实地走下去。只有知道了关系该怎么样,包括该用什么,也包括该怎么画出来,才能继续去创作更宏伟的UML图。(⊙v⊙)	
 
	
	


这篇关于UML,理理关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106426

相关文章

MYSQL关联关系查询方式

《MYSQL关联关系查询方式》文章详细介绍了MySQL中如何使用内连接和左外连接进行表的关联查询,并展示了如何选择列和使用别名,文章还提供了一些关于查询优化的建议,并鼓励读者参考和支持脚本之家... 目录mysql关联关系查询关联关系查询这个查询做了以下几件事MySQL自关联查询总结MYSQL关联关系查询

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图

陈科肇 ============= 1.主要模型 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型:展现系统的内部行为。 包括序列图、活动图、状态图。 因为要创建个人空间项目并不是一个很大的项目,我这里只须关注两种图的创建就可以了,而在开始创建UML图

读软件设计的要素04概念的关系

1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一个概念才有意义 1.3. 概念依赖关系图简要概括了软件的概念和概念存在的理

数据依赖基础入门:函数依赖与数据库设计的关系

在数据库设计中,数据依赖 是一个重要的概念,它直接影响到数据库的结构和性能。函数依赖 作为数据依赖的一种,是规范化理论的基础,对数据库设计起着至关重要的作用。如果你是一名数据库设计的初学者,这篇文章将帮助你理解函数依赖及其在数据库设计中的应用。 什么是数据依赖? 数据依赖 是指同一关系中属性间的相互依赖和制约关系,它是数据库设计中语义的体现。在现实世界中,数据之间往往存在某种依赖关系,而这

c++ 和C语言的兼容性关系

C++ 和 C 语言有很高的兼容性,但也存在一些差异和限制。下面是它们的兼容性关系的详细介绍: 兼容性 C++ 是 C 的超集: C++ 语言设计为兼容 C 语言的语法和功能,大部分 C 代码可以在 C++ 编译器中编译运行。 标准库兼容性: C++ 标准库包含了 C 标准库的内容,如 stdio.h、stdlib.h、string.h 等头文件,但 C++ 的标准库也提供了额外的功能,如

七、Maven继承和聚合关系、及Maven的仓库及查找顺序

1.继承   2.聚合   3.Maven的仓库及查找顺序

file-max与ulimit的关系与差别

http://zhangxugg-163-com.iteye.com/blog/1108402 http://ilikedo.iteye.com/blog/1554822

【编程底层原理】方法区、永久代和元空间之间的关系

Java虚拟机(JVM)中的内存布局经历了几个版本的变更,其中方法区、永久代和元空间是这些变更中的关键概念。以下是它们之间的关系: 一、方法区: 1、方法区是JVM规范中定义的一个概念,它用于存储类信息、常量、静态变量、即时编译器编译后的代码等数据。 3、它是JVM运行时数据区的一部分,与堆内存一样,是所有线程共享的内存区域。 二、永久代(PermGen): 1、在Java SE 7之前,