在软件开发中,经常会遇到UML建模,而类图作为一种静态的结构图,不仅是系统编码和测试的重要模型,还可以简化人们对系统的理解。因此,理解和知道如何使用UML图就显得尤为重要!

UML类图的基本符号

UML类图基本符号的含义

1、类(Class):一般是用三层矩形框表示,第一层表示类的名称,第二层表示的是字段和属性,第三层则是类的方法。第一层中,如果是抽象类,需用斜体显示。

2、包(Package):是一种常规用途的组合机制。在UML中用一个Tab框表示,Tab里写上包的名称,框里则用来放一些其他子元素,比如类,子包等等。

3、接口(Interface):表示的是一系列的操作集合,它指定了一个类所提供的服务。一个接口只指明了实现这一接口的分类器实例应该支持的特性,并没有指定其所刻画的特性是如何实现的。

UML类图六种关系

在UML类图中,常见的有以下几种关系:

  • 泛化(Generalization)
  • 实现(Realization)
  • 关联(Association)
  • 聚合(Aggregation)
  • 组合(Composition)
  • 依赖(Dependency)。

各种关系的强弱顺序:泛化 >实现>组合> 聚合> 关联> 依赖

  • 泛化:表示的是类之间的继承关系,注意是子类指向父类。UML中用带空心三角箭头的实线表示泛化关系,箭头指向的是一般个体。

  • 实现:一般是接口和实现类之间的关系;
  • 关联:一种拥有关系,表示的是类与类之间存在某种特定的对应关系。UML中用双向带箭头的虚线表示关联关系,箭头两端为相互关联的两个类。

  • 聚合:表示的是整体与部分之间的关系, 如汽车类和轮胎类;部分不能离开整体单独存在。UML中用空心菱形头的实线表示聚合关系,菱形头指向整体。

  • 组合:是聚合的一种特殊形式,表示的是类之间更强的组合关系。整体与部分的关系,但是二者不可分离,分离了就没有意义了,例如,公司类和部门类,没有公司就没有部门;UML中用实心菱形头的实线来表示组合,菱形头指向整体。

  • 依赖:表示的是类之间的调用关系。UML中用带箭头的虚线表示依赖关系,而箭头所指的则是被依赖的类

软件设计之UML的几种关系相关推荐

  1. UML 有几种关系图标

    UML 有几种关系图标:泛化(继承),实现,依赖,关联,聚合,组合 泛化(继承) B--▷A                  B 类作为 A 类的子类存在.(A是具体类)     实现        ...

  2. 软件设计之UML—UML中的六大关系

    一.UML中的六大关系 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation), ...

  3. 软件设计之UML—UML的构成[上]

    UML是一种通用的建模语言,其表达能力相当的强,不仅可以用于软件系统的建模,而且可用于业务建模以及其它非软件系统建模.UML综合了各种面向对象方法与表示法的优点,至提出之日起就受到了广泛的重视并得到了 ...

  4. UML 用例图以及UML的八种关系

    首先,一张总体的知识脉络导图献上: 一.什么是用例图? 用例图描述了一组用例.参与者以及它们之间的关系. 使用阶段:软件需求分析 使用者:软件分析人员.软件开发人员 用例模型:表明开发者和用户对需求规 ...

  5. 剪不断,理还乱——UML的四种关系

        看UML视频已经有一段时间了,但是对于UML中的关系还是不够理解.虽然,UML中只有四种关系,但是还是不太能够区分,有种剪不断,理还乱的赶脚.特此总结. (一)关联. 关联表示两个或多个类之间 ...

  6. UML之6种关系的解释与画法

    1.依赖关系,A类是B类的一个变量,B类持有A类的一个引用.依赖其实定义非常模糊,所以使用依赖只应该是在其他关系无法表示的时候: 2.泛化关系 就是java中的继承 3.关联关系,分为单项关联,双向关 ...

  7. UML图和软件设计原则

    笔记来源于黑马程序员但不仅仅是黑马 UML图和软件设计原则 UML图 2.1 类图概述 2.2 类图的作用 2.3 类图表示法 2.3.1 类的表示方式 2.3.2 类与类之间关系的表示方式 2.3. ...

  8. 软件设计与体系结构(第二版)部分习题

    第一章:软件工程与软件设计 1.叙述软件工程中可修改性,有效性,可靠性,可理解性,可维护性,可重用性,可适应性,可移植性和可追踪性等概念的含义,并指明这些概念的重要性 可修改性(modifiabili ...

  9. 软件设计应该遵循的基本原则有哪些?

    1.1)高内聚.低耦合 一个软件系统要有一个稳定的架构,不会随着需要的改变在发生巨大的变动.因此,高内聚.低耦合是一个软件系统设计中必须遵循的基本原则. 所谓高内聚,是指一个软件模块内各个元素彼此结合 ...

最新文章

  1. Javascript(JS)中的大括号{}和中括号[]详解
  2. .Net Core中利用TPL(任务并行库)构建Pipeline处理Dataflow
  3. Java集合:ArrayList和LinkedList区别?
  4. 去除C++中string前面和后面的空白符
  5. 转:实例学习PHP程序对用户身份认证实现两种方法
  6. 小话设计模式三:发布/订阅模式
  7. 报名|腾讯技术开放日·5G技术专场
  8. win2008 mysql端口_Win7系统下SqlServer 2008修改IP端口的方法
  9. SQL创建数据库– PostgreSQL,MySQL,SQL Server
  10. Struts2+Spring4+Hibernate4项目整合
  11. Delphi版本下载合集更新至10.4.1
  12. python模拟gps定位_python 模拟 GPS, $GPRMC $GPRMC
  13. 利用FGSM实现对抗样本攻击
  14. 有人喜欢有人嫉妒,竟然因为这上了互联网热搜
  15. 吴裕雄--天生自然 诗经:临江仙·滚滚长江东逝水
  16. 模拟游戏在设计上是如何处理对仿真性的追求的?
  17. LOE是什么?如何加入?
  18. SQL SERVER 2016安装部署
  19. java muti实现图片上传_MutiFileUpload.java 多文件上传
  20. Python实现计算圆周率π的值到任意位的方法示例

热门文章

  1. Head First 设计模式 —— 策略设计模式
  2. 使用 matlab 数字图像处理(十)—— 维纳滤波复原
  3. hadoop 2.6 伪分布式的安装
  4. python抛出异常 后如何接住,Python 异常的捕获、异常的传递与主动抛出异常操作示例...
  5. python画简便的图-python如何画出漂亮的地图?
  6. 基于python的在线考试系统-基于Django的在线考试系统
  7. 简明python教程-Python简明教程
  8. 2018年python工作好找吗-2018年涨工资了吗?Python 工程师薪资最新出炉
  9. 用python画简单的图案-使用 Python Turtle 设计简单而又美丽的图形
  10. Android 轻松实现语音识别详解及实例代码