UML的组成

2023-09-22 10:55:27

UML的构造块

在UML(统一建模语言)中,事物是指建模中的各种元素、概念和组件,用于描述软件系统的不同方面。以下是一些常见的UML事物:

  1. 类(Class):用于表示系统中的对象类型或类别,包括属性和方法。

  2. 对象(Object):表示系统中的实际对象实例。

  3. 接口(Interface):描述类或组件的合同,规定了可以被其他类或组件实现的方法。

  4. 枚举(Enumeration):表示一个有限集合的命名值。

  5. 用例(Use Case):描述系统的功能或行为,用于捕捉系统与外部实体的交互。

  6. 用例实例(Use Case Instance):表示特定用例的实例,通常在顺序图中使用。

  7. 节点(Node):表示系统中的物理或逻辑节点,用于部署图。

  8. 活动(Activity):表示系统中的某个操作或活动,通常在活动图中使用。

  9. 状态(State):表示对象在不同状态之间的转换和行为,通常在状态图中使用。

  10. 关系(Relationship):描述事物之间的关联或连接,包括依赖、关联、聚合、组合、泛化等。

  11. 交互(Interaction):用于描述对象之间的交互和消息传递,包括顺序图、协作图等。

  12. 消息(Message):描述对象之间的消息传递,通常在顺序图中使用。

  13. 协作(Collaboration):描述对象之间的协作和通信,通常在协作图中使用。

  14. 组件(Component):表示系统中的组件或模块,用于描述软件架构。

  15. 部署目标(Deployment Target):表示部署图中的物理或逻辑目标,如服务器或设备。

还包括分组事物也就是包,注释事物也就是UML的解释部分。

这些UML事物用于不同类型的UML图,帮助开发者更好地建模、分析和设计软件系统。每种事物都有其独特的属性和关系,以便更准确地描述系统的各个方面。

UML的关系

在UML(统一建模语言)中,有多种关系用于描述不同事物之间的连接和交互。以下是一些常见的UML关系:

  1. 关联关系(Association):表示类之间的关联,可以是双向或单向的,用于描述对象之间的连接。

  2. 聚合关系(Aggregation):表示整体与部分之间的关系,其中部分可以独立存在,用菱形空心箭头表示。

  3. 组合关系(Composition):表示整体与部分之间的更强关系,部分依赖于整体的存在,用实心菱形箭头表示。

  4. 泛化关系(Generalization):用于表示类之间的继承关系,一个类可以继承另一个类的属性和方法,用带空心三角形的实线箭头表示。

  5. 依赖关系(Dependency):表示一个对象使用另一个对象,通常在一个类中调用另一个类的方法,用虚线箭头表示。

  6. 实现关系(Realization):表示类或组件实现了一个接口,用虚线箭头表示。

  7. 关联类关系(Association Class):用于表示关联中的附加信息,通常在关联之间插入一个类。

  8. 引用关系(Usage):描述一个对象在某一时刻使用了另一个对象,通常在类图中使用。

  9. 消息关系(Message):在顺序图中使用,表示对象之间的消息传递。

  10. 包含关系(Include):用于描述一个用例包含了另一个用例,通常在用例图中使用。

  11. 扩展关系(Extend):用于描述一个用例可以扩展另一个用例,通常在用例图中使用。

  12. 依赖关系(Dependency):表示一个事物依赖于另一个事物,通常在类图、包图等中使用。

  13. 协作关系(Collaboration):用于描述对象之间的协作和通信,通常在协作图中使用。

这些关系帮助开发者更清晰地表示事物之间的交互和依赖,是UML建模中的重要元素,用于捕捉系统的结构和行为。不同类型的关系在不同的UML图中使用,以便更好地描述系统的各个方面。

UML的图

UML(统一建模语言)中有多种不同类型的图,每种图用于描述系统的不同方面和不同层次的细节。以下是一些常见的UML图:

  1. 用例图(Use Case Diagram):用于描述系统的功能和用户与系统之间的交互,展示用例(系统功能)和参与者(用户、系统或外部实体)之间的关系。

  2. 类图(Class Diagram):用于描述系统的静态结构,包括类、对象、属性和方法之间的关系。

  3. 顺序图(Sequence Diagram):用于描述对象之间的时间顺序交互,展示消息的发送和接收顺序,适用于描述系统的动态行为。

  4. 协作图(Collaboration Diagram):与顺序图类似,用于描述对象之间的交互和通信,但更强调对象之间的协作关系。

  5. 状态图(State Diagram):用于描述对象在不同状态之间的转换和行为,适用于建模对象的生命周期和状态变化。

  6. 活动图(Activity Diagram):用于描述系统中的活动流程,包括活动、控制流、决策点等,适用于建模业务流程和操作行为。

  7. 部署图(Deployment Diagram):用于描述系统的物理部署结构,包括硬件节点、软件组件和连接关系。

  8. 组件图(Component Diagram):用于描述系统的组件结构,包括组件、接口和依赖关系,适用于建模系统的模块化结构。

  9. 包图(Package Diagram):用于组织和表示系统中的各种元素,帮助管理复杂性和建立模块化结构。

  10. 对象图(Object Diagram):用于展示特定时刻对象的状态和关系,通常作为类图的实例化。

  11. 时间图(Timing Diagram):用于描述对象状态或信号的时间变化和时序关系,适用于硬件和嵌入式系统建模。

  12. 交互概述图(Interaction Overview Diagram):用于描述多个交互图(如顺序图和协作图)的概览,以便更好地组织和理解交互关系。

这些UML图形用于不同的建模目的和层次,帮助开发者更好地理解、设计和交流系统的各个方面。选择合适的图形类型取决于您想要表示的信息和建模的目标。、

UML的规格说明和修饰

在UML(统一建模语言)中,规格说明和修饰是用于增加对建模元素的详细描述和特定信息的方式。它们有不同的作用和用法:

  1. 规格说明(Specification)

    • 作用:规格说明用于提供对UML元素的详细描述和规范,通常包括文本、伪代码、形式化规则或其他形式的详细说明。
    • 用法:规格说明可以用于任何UML元素,如类、方法、属性、接口等,以帮助理解元素的行为和规则。它们通常用于描述元素的操作语义、前置条件、后置条件等。
  2. 修饰(Stereotype)

    • 作用:修饰用于扩展UML元素的定义,允许用户自定义元素的语义和行为,以适应特定领域或项目需求。
    • 用法:修饰通常与类、接口、用例等UML元素一起使用,以添加特定的标签或属性。例如,您可以创建一个名为 “<>” 的修饰符,将其应用于类,表示该类是一个Web服务。

总之,规格说明是用于提供详细的文字或形式化说明,以解释UML元素的具体行为和规则。修饰则是用于自定义和扩展UML元素的语义,以满足特定领域或项目的需求。这些功能允许UML更灵活地适应各种建模场景和要求。

UML的类型-实例和接口-实现

在UML(统一建模语言)中,“类型-实例” 和 “接口-实现” 是两种不同的关系,用于描述不同的概念和关联。

  1. 类型-实例(Type-Instance)关系

    • 概念:类型-实例关系表示一个对象是某个类型的实例。它用于描述一个类和该类的对象之间的关系。
    • 用法:通常,在类图中,你可以看到一个类(类型)和该类的多个对象(实例)之间的关系。例如,如果有一个名为 “Car” 的类,那么 “Car” 类的多辆具体汽车就是该类的实例。
  2. 接口-实现(Interface-Implementation)关系

    • 概念:接口-实现关系表示一个类实现了一个接口,即该类提供了接口中定义的所有方法。
    • 用法:在类图中,你会看到一个类和一个接口之间的关系。这表示该类承诺实现了接口中定义的所有方法。这用于实现接口和多态的概念,其中一个类可以以多种方式实现相同的接口,从而提供不同的行为。

总结:类型-实例关系用于表示类和类的实例之间的关系,而接口-实现关系用于表示类和接口之间的关系,其中类承诺实现接口中定义的方法。这些关系有助于描述系统的结构和行为。

UML的构造型、标记值、约束

在UML(统一建模语言)中,构造型(Constructions)、标签值(Tagged Values)、约束(Constraints)都是用于增强和精确定义UML元素的机制。它们有不同的作用和用途:

  1. 构造型(Constructions)

    • 概念:构造型是一种UML扩展机制,允许您使用自定义的关键字或构造来描述和扩展UML元素的语义。
    • 用途:构造型可以用于类、接口、用例等UML元素,以提供更具领域特定性的信息。例如,您可以创建一个构造型 “Entity” 来表示某个类是一个实体对象。
  2. 标签值(Tagged Values)

    • 概念:标签值是用于UML元素的自定义属性,通常与构造型一起使用。它们是为了提供与元素相关的附加信息。
    • 用途:标签值可以附加到UML元素上,以提供元素的详细信息或属性。例如,对于一个类,您可以添加一个标签值 “Author” 来表示该类的作者。
  3. 约束(Constraints)

    • 概念:约束是一种规则或条件,用于限制UML元素的行为或属性。它们可以用来规范化UML模型中的各个方面。
    • 用途:约束可以应用于类、属性、操作等UML元素,以确保其满足某些规则或条件。例如,您可以添加一个约束来规定属性的取值范围或操作的前置条件。

总结:构造型、标签值和约束是UML中的扩展机制,它们用于增强和精确定义UML元素的语义和行为,以使模型更具体和适应特定需求。这些机制允许开发者创建更具领域特定性的模型,并确保模型的一致性和正确性。

UML的4+1架构

“4+1 架构” 是一种软件架构视图的组织方式,旨在提供多个视图来描述和理解软件系统的不同方面。这个架构方法的名称来源于它包括了四种不同类型的视图,以及一个用例视图,共计五种视图。它旨在解决软件开发和架构设计中的多个问题,包括复杂性管理、通信和沟通问题等。

以下是 “4+1 架构” 的五个视图:

  1. 场景用例视图(Use Case View)

    • 用例视图主要关注系统的功能需求和用户与系统之间的交互。它描述了系统的用例、参与者以及用例之间的关系。
    • 用于帮助系统开发者和用户之间的沟通,确保对系统的需求和功能有共识。
  2. 逻辑视图(Logical View)

    • 逻辑视图关注系统的静态结构,包括类、对象、接口、关系等。它描述了系统的组织和数据结构。
    • 用于帮助开发者理解和设计系统的类和对象结构。
  3. 进程视图(Process View)

    • 进程视图关注系统的并发性和分布性,描述了系统中各个进程、线程或组件之间的关系和通信方式。
    • 用于处理系统的并发性和性能问题。
  4. 开发视图(Development View)

    • 开发视图关注软件的实现和分层结构,包括模块、组件、库等。它描述了系统的物理部署和开发组织。
    • 用于帮助开发团队理解系统的模块化结构和分工。
  5. 物理部署视图(Deployment View)

    • 部署视图关注系统的物理部署,包括硬件节点、服务器、网络配置等。它描述了系统的部署架构。
    • 用于帮助系统管理员和运维人员理解系统的部署需求和配置。

“4+1 架构” 的优势在于它提供了多个视图,每个视图关注不同的方面,从而允许各个利益相关者(开发者、用户、管理员等)以其关注点来理解和评估系统。如何应用 “4+1 架构” 取决于项目需求和规模,通常的步骤包括:

  1. 确定用例视图:首先明确定义系统的用例和用户需求。

  2. 创建逻辑视图:设计和建模系统的类和对象结构。

  3. 建立进程视图:考虑系统的并发性和分布性需求,描述进程和通信方式。

  4. 开发视图:将逻辑视图映射到实际的代码模块和组件。

  5. 部署视图:考虑系统的部署需求,包括硬件和网络配置,并串联所有视图。

综合使用这些视图有助于开发者和利益相关者更全面地理解系统,同时帮助管理复杂性和提高系统的质量。

更多推荐

LinuxShell命令行及脚本编程实例详解_笔记

LinuxShell命令行及脚本编程实例详解Linux典藏大师系列丛书shell脚本的构成:1.shell关键字if...thenelse;for...done;whiledodone2.shell命令export,echo,exit,pwd,return3.linux命令datarmmkdircd4.文本处理功能aw

39 | selenium基础架构,UI测试架构

什么是测试基础架构?测试基础架构指的是,执行测试的过程中用到的所有基础硬件设施以及相关的软件设施。因此,我们也把测试基础架构称之为广义的测试执行环境。通常来讲,测试基础架构主要包括以下内容:执行测试的机器;测试用例代码仓库;发起测试执行的JenkinsJob;统一的测试执行平台;测试用例执行过程中依赖的测试服务,比如提

百望云获评ITShare数智未来创新峰会“年度数字化优秀服务商”大奖

近日,百望云应邀出席“新能源-新制造暨汽车数智未来创新峰会”,凭借在数字化领域优秀的服务能力和丰富的落地成果,成功获评“年度数字化优秀服务商”,这也是市场对百望云在赋能企业数字化转型和产品创新领域的再度认可!在“数智创新未来”的主题下,百望云也与众多行业知名企业分享了财税数字化转型成功经验,共襄盛会,齐瞻未来。数智未来

【Linux】Linux权限

目录一、认识Linux下的用户分类1.root和普通用户是怎样切换的如果我是普通用户,那我怎么变成root?如果我是root,那我怎么变成指定的普通用户?2.对某一指令进行暂时提权二、什么叫做权限三、没有权限的会出现什么现象三、修改权限通过二进制序列转换对权限进行加减修改文件所属组、拥有者其他问题1.为什么我们创建文件

【计算机网络】75 张图详解:网络设备、网络地址规划、静态路由(万字长文)

75张图详解:网络设备、网络地址规划、静态路由1.网络设备1.1交换机1.2路由器2.网络地址规划2.1IP地址2.2分类地址2.3子网掩码2.4无类地址2.5子网划分2.5.1示例一2.5.2示例二2.6超网合并3.静态路由3.1路由表3.2直连路由3.3静态路由3.4默认路由3.5网关和默认网关4.实战演练4.1静

网络爬虫——HTTP和HTTPS的请求与响应原理

目录一、HTTP的请求与响应二、浏览器发送HTTP请求的过程三、HTTP请求方法四、查看网页请求五、常用的请求报头六、服务端HTTP响应七、常用的响应报头八、Cookie和Session九、响应状态码十、网页的两种加载方法十一、认识网页源码的构成十二、爬虫协议在如今这个数据驱动的时代,网络爬虫在数据采集、信息抓取和处理

【大数据开发技术】实验04-HDFS文件创建与写入

文章目录一、实验目标二、实验要求三、实验内容四、实验步骤一、实验目标熟练掌握hadoop操作指令及HDFS命令行接口掌握HDFS原理熟练掌握HDFS的API使用方法掌握单个本地文件写入到HDFS文件的方法掌握多个本地文件批量写入到HDFS文件的方法二、实验要求给出主要实验步骤成功的效果截图。要求分别在本地和集群测试,给

@DateTimeFormat 和 @JsonFormat 的详细研究

关于这两个时间转化注解,先说结论一、介绍1、@DateTimeFormat@DateTimeFormat并不会根据得到其属性pattern把前端传入的数据转换成自己想要的格式,而是将前端的String类型数据封装到Date类型;其次它的pattern属性是用来规范前端传入数据的格式@DateTimeFormat它用于前

Dubbo3应用开发——架构的演变过程

Dubbo3应用开发——架构的演变过程什么是Dubbo早期Dubbo的定位;基于Java的高性能,轻量级的RPC框架;SOA【Service-OrientedArchitecture⾯向服务的架构】=RPC+服务治理;2018年阿⾥巴巴把这个框架捐献给了Apache基⾦会,正式更名为ApacheDubbo。最新版本为D

第28章_瑞萨MCU零基础入门系列教程之基于面向对象的工程结构

本教程基于韦东山百问网出的DShanMCU-RA6M5开发板进行编写,需要的同学可以在这里获取:https://item.taobao.com/item.htm?id=728461040949配套资料获取:https://renesas-docs.100ask.net瑞萨MCU零基础入门系列教程汇总:https://b

C++核心编程——P34+35-空指针返回成员函数+const修饰成员函数

空指针返回成员函数C++中空指针也是可以调用成员函数的,但是也要注意有没有用到this指针,如果用到this指针,需要加以判断来保证代码的健壮性。#include<iostream>usingnamespacestd;classPerson{public:voidShowClassName(){cout<<"thisi

热文推荐