当前位置: 首页 > news >正文

UML简介

 UML,全称为Unified Modeling Language(统一建模语言),是一种用于软件工程和系统设计的标准化建模语言。它提供了一套图形化的符号和标记,用于描述和表示软件系统、系统架构、流程、数据结构、行为和交互。UML的设计旨在帮助开发人员、分析师和设计师更好地理解、沟通和设计复杂的系统。

1. 模型

  • 功能模型:从用户的角度展示系统的功能,包括用例图。
  • 对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。
  • 动态模型:展现系统的内部行为。包括序列图,活动图,状态图。

2. UML图

UML图是UML模型中的可视化表示,用于呈现系统的不同方面和特征。UML定义了多种不同类型的图表,每种图表有其特定的目的和用途。

3. 类图

在UML中类图一般由3部分组成。

第一部分:类名,按照命名规范来定义。

第二部分:属性(Attribute),属性通常值类的成员变量。

第三部分:操作(Operation),操作通常指类的成员方法

[可见性] 属性名:数据类型 [=默认值]

[可见性] 方法名([参数1:数据类型,参数2:数据类型,....]) [:返回值类型]

4. 类之间关系

4.1. 关联关系

关联(Association)关系是一种结构化的关系,用于表示一个类对象与另一个类对象的之间的关系,在 代码中被关联的对象以成员变量的方式体现。

单向关联

双向关联

自关联

多重性关联

多重性关联关系又称为重数性(Multiplicity)关联关系,表示关联对象之间存在数量关系。

数量关系符表示如下

  • 1或1..1:表示另一个类的一个对象只与该类的一个对象有关系
  • 0..*:表示另一个类的一个对象与该类的零个或多个对象有关系
  • 1..*:表示另一个类的一个对象与该类的一个或多个对象有关系
  • 0..1:表示另一个类的一个对象没有或只与该类的一个对象有关系
  • m..n:表示另一个类的一个对象与该类最少m最多n个对象有关系(m ≤ n)

4.2. 聚合关系

聚合(Aggregation)关系表示整体与部分的关系,在聚合中成员是整体对象的一部分,成员对象可以 脱了整体对象而独立存在。

4.3. 组合关系

组合(Composition)关系也表示整体与部分的关系,在组合中整体对象可以控制成员对象的生命周期,一旦整体对象消亡成员对象将消失。

4.4. 依赖关系

依赖(Dependency)关系是一种使用关系,在大多数情况下依赖关系体现在某个类方法参数上使用另 一个类的对象作为方法参数。

4.5. 泛化关系

泛化(Generalization)关系也就是继承关系。

4.6. 接口与实现关系

接口(Interface)之间也可以有与类之间关系类似的继承关系和依赖关系,接口与类之间同时还存在一 种实现(Realization)关系,在这种关系中类实现了接口中所有的操作。

http://www.lryc.cn/news/186184.html

相关文章:

  • 【PostgreSQL内核学习(十七)—— (AutoAnalyze)】
  • C++中指向成员的指针运算符(.* 和 ->*)用法说明
  • ASUS华硕ZenBook灵耀X逍遥UXF3000E_UX363EA原装出厂预装Win11系统工厂模式安装包
  • 【数据结构】栈和队列-- OJ
  • 访问Apache Tomcat的管理页面
  • 企业组织内如何避免山头文化?
  • 【c#】线程Monitor.Wait和Monitor.Pulse使用
  • GitLab平台安装中经典安装语句含义解析
  • 湘潭大学 2023年下学期《C语言》作业0x03-循环1 XTU OJ 1094,1095,1096,1112,1113
  • 【Linux系统满足产品实时性需求】
  • 不用休眠的 Kotlin 并发:深入对比 delay() 和 sleep()
  • 在Ubuntu中批量创建用户
  • 汽车冲压车间的RFID技术设计解决方案
  • TCP 和UDP通信流程
  • Swift SwiftUI CoreData 过滤数据 1
  • 【uniapp】subnvue组件数据更新视图未更新问题
  • Unity编辑器拓展-Odin
  • 小红书婴童产业探索,解析消费者需求!
  • 离线安装mysql客户端
  • Docker 数据管理
  • 数据统计--图形报表--ApacheEcharts技术 --苍穹外卖day10
  • 【kubernetes的三种网络】
  • Java中树形菜单的实现方式(超全详解!)
  • 基于Uniswap V3的去中心化前端现货交易平台Oku正式登陆Moonbeam
  • leetcode 每日一题复盘(10.9~10.15)
  • 【云计算网络安全】DDoS 缓解解析:DDoS 攻击缓解策略、选择最佳提供商和关键考虑因素
  • 如何巧用AI智能技术,让文物不再“无人问津”?
  • 一天一八股——SSL/TLS协议
  • SpringCloud学习笔记-Eureka服务的搭建
  • css如何实现页面布局与五种实现方式