UML-统一建模语言学习笔记20240912

news2024/11/26 0:46:04

UML入门

一、软件开发基础知识:

1.软件开发的生命周期,包括需求分析,设计,实现,测试和维护等阶段。
2.面向对象的编程(OOP):UML 是一种用于描述面向对象系统的语言,需要理解OOP 概念(如类,对象,继承,封装,多态)。

二、含义:

UML(Unified Modeling Language,统一建模语言)是一种用于软件工程的标准建模语言。UML 提供了一系列图形表示和符号,用来描述软件系统的结构和行为。UML 是一种通用的、面向对象的设计语言,它不依赖于任何特定的编程语言。

三、分类:

1.用例图(Use Case Diagrams):用来描述系统功能和用户(角色)之间的交互。
2.类图(Class Diagrams):用来描述系统中的类及其属性、方法和类之间的关系。
3.序列图(Sequence Diagrams):用来描述对象之间的交互,特别是交互发生的顺序。
4.状态图(State Diagrams):用来描述一个对象的生命周期或一个操作的执行过程。
5.活动图(Activity Diagrams):用来描述业务流程或算法的步骤。
6.组件图(Component Diagrams):用来描述系统的物理组成部分和这些部分之间的关系。
7.部署图(Deployment Diagrams):用来描述系统的硬件配置和软件组件的分布。
8.对象图(Object Diagrams):类图的实例,展示特定时刻对象的状态和关系。
9.通信图(Communication Diagrams):与序列图类似,但更侧重于对象间的组织结构。
在这里插入图片描述

四、基本组成部分

UML 包括一组基本的建模元素,这些元素可以组合在一起,形成 UML 图。主要的包括:
类(Class):表示系统中的实体或对象类型。
接口(Interface):描述了类或组件提供的服务或可执行的操作。
属性(Attribute):描述了类或接口的特性或状态。
操作(Operation):描述了类或接口可以执行的行为或方法。
关系(Relationship):描述了元素之间的交互或依赖。

五、类图

类图,描述类的内部结构和类与类之间的关系,是一种静态结构图。类图中的类由三个部分组成:类名、属性和方法。类之间的关系包括:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
泛化 (又称继承)= 实现 > 组合 > 聚合 > 关联 > 依赖

1.泛化关系

在面向对象程序中,泛化关系是对象之间耦合度最大的一种关系(实现关系虽然耦合度更大,但是接口不能创建对象),使用面向对象的继承机制来实现泛化关系。(用带空心三角箭头的实线连接)
在这里插入图片描述

2.实现关系

是类与接口的关系,表示类是接口所有特征和行为的实现。(用带空心三角箭头的虚线表示)
在这里插入图片描述

3.组合关系

是整体与部分的关系,但部分不能离开整体而单独存在。组合关系是关联关系的一种,是比聚合关系还要强。(用带实心菱形的实线表示,菱形指向整体)
​ 在面向对象程序中,一般是以成员变量的形式存在,是使用构造方法设置的成员变量。
在这里插入图片描述

4.聚合关系

聚合是整体与部分的关系,且部分可以离开整体而单独存在。聚合关系是关联关系的一种,是较强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。(用带空心菱形的实线表示,菱形指向整体)
​ 在面向对象程序中,一般也是以成员变量的形式存在,是使用set方法设置成员变量。
在这里插入图片描述

5.关联关系

两个类之间有一定的关联度,可以是双向的,也可以是单向的。在面向对象程序中,是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,让一个类知道另一个类的属性和方法(实例变量体现)。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。(用实线或者带箭头的实线表示)。
​ 在面向对象程序中,一般也是以成员变量体现关联关系。例:A类依赖于B对象,并且把B作为A的一个成员变量, 则A和B存在关联关系。
在这里插入图片描述

6.依赖关系

依赖关系指的是类与类之间的联接,表示一个类依赖于另一个类的定义。一般而言,依赖关系在Java语言中体现为成员变量、局域变量、方法的形参、方法返回值,或者对静态方法的调用。(用带箭头的虚线表示)
例:表示一个A类依赖于B类的定义,如果A对象离开B对象,A对象就不能正常编译,则A对象依赖于B对象(A类中使用了B对象)。
在这里插入图片描述

六、用例图

用例图,描述系统和外部实体之间的交互(如用户或其他系统)。主要元素包括"用例"(表示系统提供的服务或功能)和"参与者"(使用或与这些用例交互的外部实体)。用例和参与者之间的关系通常用连线表示。
用例图主要展示:1、是谁用软件;2、软件的功能,从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。
在这里插入图片描述

七、序列图

顺序图,交互图的一种,展示对象之间如何交互以实现行为。以二维图形表示,其中水平轴表示对象,垂直轴表示时间。图上箭头代表消息调用,可以显示出消息发送的顺序。
在这里插入图片描述

八、活动图

活动图,一种行为图,描述系统的动态行为,通常用于描述业务流程或软件流程。主要元素包括活动、决策和分支。活动之间的关系由箭头表示,表示控制流。
在这里插入图片描述

九、状态图

状态图(又称状态机),描述了系统的状态和状态之间的转换。主要元素包括状态、转换和事件。状态表示系统的某一特定条件或情况,转换表示从一个状态到另一个状态的过程,通常由某事件触发。状态图是对类图的补充。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2128920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这么好用的电脑桌面美化工具 你怎么能错过她?

芝麻时钟是一个功能强大的桌面时钟软件,它具有多种实用功能,包括桌面时钟、时钟屏保、任务栏时钟和桌面日历等。这个软件不仅提供了丰富的主题和美观的界面,更重要的是它的实用性和特色功能。(下载地址:https://clock.zhimasoft.c…

计算机网络 ---- OSI参考模型TCP/IP模型

目录 一、OSI参考模型 1.1 学习路线 1.2 OSI参考模型和TCP/IP模型 1.3 具体设备与具体层次对应关系 1.3.1 物理层 1.3.2 数据链路层 1.3.3 网络层 1.3.4 传输层 1.3.5 会话层、表示层、应用层 1.4 各层次数据传输单位 二、TCP/IP模型 2.1 学习路线 2.2 TCP/I…

源代码防泄密软件的五大特点

在数据防泄密领域,深信达的SDC沙盒软件以其独特的技术和创新应用,为源代码安全提供了强有力的保护。特别是在源代码防泄密方面,SDC沙盒表现出色,其实现方式主要包括以下几个方面: 1. **内核级虚拟沙盒技术**&#xff1…

QT学习参考书籍

6.2 Qt参考书籍资料 6.2.1 《Qt C编程从入门到实战》 主编:彭源 6.2.2 《Qt 5编程入门 第2版》编著:程梁 霍亚飞 6.2.3 《嵌入式Qt开发项目教程》编著:王浩 著 王浩 6.2.4 《Qt Quick核心编程》编著:安晓辉 6.2.5《零基础学Qt 4编程》 作者:吴迪著 6.2.6 《C并发编程实战(第2版…

【Python机器学习】循环神经网络(RNN)——超参数

几乎所有模型都可以根据数据和样本进行调整,它们都有各自的优势和相应的利弊权衡方式。寻找最优超参数集通常是一个棘手的问题,但是人类的直觉和经验可以为我们提供解决问题的方法。比如之前的例子: #设置任意输入序列的最大长度 maxlen100 …

论文笔记:基于LLM和多轮学习的漫画零样本角色识别与说话人预测

整理了ACM MM2024 Zero-Shot Character Identification and Speaker Prediction in Comics via Iterative Multimodal Fusion)论文的阅读笔记 背景模型框架实现细节 模型数据集实验可视化消融实验 背景 最近读到一篇新文章,主要是做漫画中的零样本角色识…

Linux中限制服务如mysql的最大cpu使用率

1、cpu占用测试&#xff1a; DELIMITER // DROP PROCEDURE IF EXISTS intensive_calculations; CREATE PROCEDURE intensive_calculations() BEGINDECLARE v INT DEFAULT 0;DECLARE i INT DEFAULT 0;WHILE i < 1000000 DOSET v SQRT(i * i (RAND() * 10000));SET i i 1…

【动态规划】(一)动态规划理论及基础题目

动态规划理论及基础题目 理论基础斐波那契数爬楼梯使用最小花费爬楼梯不同的路径不同的路径2整数拆分不同的二叉搜索树 理论基础 动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规划…

告别存储烦恼,MyDiskTest全方位检测解决方案

科技改变生活&#xff0c;但质量决定科技的生命力——这句话在数字化时代尤为贴切。近年来&#xff0c;随着科技的飞速发展&#xff0c;U盘、SD卡、CF卡等移动存储设备已成为我们日常工作和生活中不可或缺的工具。它们便携、高效&#xff0c;能够快速存储和传输大量数据。然而&…

【详解】数据库E-R图——医院计算机管理系统

题目 某医院病房计算机管理中需要如下信息&#xff1a; 科室&#xff1a;科室名&#xff0c;科室地址&#xff0c;科室电话&#xff0c;医生姓名 病房&#xff1a;病房号&#xff0c;床位号&#xff0c;所属科室名 医生&#xff1a;工作证号&#xff0c;姓名&#xff0c;性别&a…

GPT撰写开题报告教程——课题确定及文献调研

撰写开题报告是一项复杂而重要的任务&#xff0c;需要涵盖从主题选择到文献综述、研究方法等多个环节。借助AI&#xff0c;如ChatGPT&#xff0c;可以显著提高这一过程的效率以及内容的质量。本文将详细探讨如何一步步利用ChatGPT撰写开题报告。 一、开题报告内容 一个清晰的…

基于R语言的统计分析基础:使用ggplot2包进行绘图

安装ggplot2包并查看官方文档 ggplot2是一个基于图形语法的R包&#xff0c;它允许用户通过声明式方式指定数据、美学映射和图形元素来灵活创建复杂且美观的可视化图表。 ggplot2包官方教学文档&#xff1a;ggplot2官方文档 在R语言中安装ggplot2有两种方法&#xff1a; 安装整…

【SQL】百题计划:SQL判断条件OR的使用。

【SQL】百题计划-20240912 Select name, population, area from World where area>3000000 or population > 25000000;

替换传统数据处理平台,TDengine 与华风数据达成合作

在全球能源转型的大背景下&#xff0c;新能源产业正迎来前所未有的发展机遇。随着国家对可再生能源的政策支持和市场需求的不断增长&#xff0c;风电、光伏和储能等新能源项目如雨后春笋般蓬勃发展。然而&#xff0c;随之而来的数据处理与管理挑战也日益凸显。面对海量的设备运…

YOLO-v8:对yolov8网络的改进教程(以GAM注意力模块为例)

本文将介绍如何在YOLOv8网络中进行模块化修改。 通过将改进的核心模块添加到项目中&#xff0c;即可直接运行各种 YOLOv8-xxx.yaml 网络配置文件&#xff0c;支持乐高式创新扩展。无论是进行网络结构的调整还是增加新的功能模块&#xff0c;用户只需一键运行&#xff0c;轻松实…

净赚百亿背后,海尔智家的机遇与隐忧

广撒网、出海忙&#xff0c;海尔智家如何熬过存量周期&#xff1f; 转载&#xff1a;科技新知 原创 作者丨田箫 编辑丨赛柯 冰箱、空调、洗衣机不好卖了&#xff0c;已成为不争的事实。 在购房热情降温、收入预期低迷的双重打击下&#xff0c;白电品牌正艰难求生。然而&#x…

通过ASCII码打印HelloWorld(花式打印HelloWorld)

/*** 通过ASCII码打印HelloWorld*/ public class Main {public static void main(String[] args) {String target "HelloWorld";String fi "";for (int i 0; i < target.length(); i) {for (int x 0; x < 127; x) {char c (char) x;String d f…

怎么利用短信接口发送文字短信

在当今这个快节奏的数字时代&#xff0c;即时通讯已成为人们日常生活和工作中不可或缺的一部分。而短信接口&#xff08;SMS Interface&#xff09;&#xff0c;作为传统与现代通讯技术结合的典范&#xff0c;凭借其高效、稳定、广泛覆盖的特性&#xff0c;在众多领域发挥着不可…

K8s中HPA自动扩缩容及hml

1.HPA&#xff1a;基于cpu的利用率来动态实现pod数量的自动伸缩&#xff0c;创建的方法一种是yaml文件&#xff0c;一种是命令行&#xff08;运用比较少&#xff09;&#xff1b;在yaml文件中必须要有资源控制&#xff08;cpu&#xff09;的字段才能生效的。 必要条件&#xf…

linux内核驱动:ptp内核phc框架

目录 一、介绍二、PHC驱动文件三、主要数据结构四、初始化和调用流程五、总结 一、介绍 本文基于linux内核5.10.xxx总结ptp1588精确时间协议实现过程中&#xff0c;内核部分的8A34002实现的phc(PTP hardware clock)驱动支持&#xff1b; ptp的系统框架 .红圈部分为本笔记总结的…