UML统一建模

UML

  • UML(统一建模语言)介绍

UML(统一建模语言)介绍

面向对象软件开发需要经过OOA面向对象分析、OOD面向对象设计和OOP面向对象编程三个阶段。OOA对目标系统进行分析并寄哪里分析模型,并将之文档化,OOD用面向对象的思想将OOA的结果进行细化,得出设计模型。OOA和OOD的分析、设计结果需要统一的符号的描述、交流并记录,UML就是这种用于描述、记录OOA和OOD结果的符号表示法。

Booch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。Booch1993表示法比较适合用于系统的设计和构造

Rumbaugh等人提出了面向对象的建模技术(OMT)方法,采用了面向对象的概念,并引入各种独立于语言的表示符。这种方法用对象模型、动态模型、功能模型和用例模型,共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全过程,软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。

Jacobson于1994年提出了OOSE方法,其最大特点就是面向用例(Use-Case),并在用例的描述过程中引入了外部角色的概念。用例的概念是精确描述需求的重要武器,但是用例贯穿于整个开发过程,包括对系统的测试和验证。

UML统一了Booch、Rumbaugh和Jaacobson的表示方法,最终统一为大众所接受的标准建模语言。UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。

1996年10月,获取广泛支持

1997年底,OMG组织采纳了UML1.1作为基于面向对象技术的标准建模语言。一共包含:

在这里插入图片描述

最常用的UML图包括:用例图、类图、组件图、部署图、顺序图、活动图和状态机图等。

  • 用例图

用例图用于描述系统提供的系列功能,而每个用例则代表系统的一个功能模块。用例图的主要目的是帮助开发团队对以一种可视化的方式理解系统的需求功能,用例图对系统的实现不做任何说明,仅仅是系统功能的描述。

用例图包括用例(椭圆),“角色”(人形),角色和用例之间的关系(线段)以及系统内用例之间的管理。

在这里插入图片描述

  • 1.类图

最古老、功能最丰富、使用最广泛的UML图形。表示系统中应该包含哪些实体,各实体之间如何关联,使用三个矩形来描述,最上面的部分显示类的名称,中间部分包含类的属性,最下面部分包含类的方法。

在这里插入图片描述

类图除了可以表示实体的静态内部结构,还可以表示实体之间的相互关系,类之间的三种基本关系:关联(聚合、组合)、泛化(继承)、以来。

  • 关联

类中的某个属性引用到另外一个实体时,就变成了关联,如仅能从一个类单方向地访问到另一个类,则被称为单向关联,如果两个类可以相互访问,则称为双向关联,一个对象能访问关联对象的数目称为多重性。

在这里插入图片描述

  • 泛化

泛化和继承时同一个概念,都是指的子类是一种特殊的父类,类与类之间的继承关系是非常普遍的的。

在这里插入图片描述

  • 依赖

如果一个类的改动会导致另一个类的改动,则称为两个类之间存在依赖。依赖关系使用带箭头的虚线表示,其中箭头指向被依赖的实体。依赖常见的可能原因:1.改动的类将消息发给另一个类。2.改动的类以另一个类作为数据部分。3.改动的类以另一个类作为操作参数。

在这里插入图片描述

  • 2。组件图

显示系统中的软件对其他软件组件的依赖关系。

在这里插入图片描述

  • 3.部署图

描述软件系统如何部署到硬件环境中,显示软件系统中不同的组件在何处物理地运行,以及他们将如何批次通信。

在这里插入图片描述

  • 4。顺序图

描述对象之间的交互,描述消息及时间顺序。有两个维度:垂直维度以发生的时间显示消息/调用的序列,水平维度显示消息被发送到的对象实例。

在这里插入图片描述

  • 5。活动图

活动图和状态机图被称为演化图。
活动图:用于描述用例内部的活动或方法的流程,如果除去活动图中的并行活动描述以后,它就变成了流程图。
演化图的五要素:

  • 状态:状态是对象响应事件前后的不同面貌,状态是某个时间段对象所保持的稳定态,目前的软件计算都是基于稳定态的,对象的稳定态是对象的固有特征,一个对象的状态一般是有限的。有限状态的对象是容易计算的,对象的状态越多,对象的状态迁移越复杂,对象状态可以想象成对象演化过程中的快照。
  • 事件:来自对象外界的刺激,通常的形式是消息的传递,只是相对对象而言发生了事件。事件是对象状态发生改变的原动力。
  • 动作:动作是对象针对所发生事件所做的处理,实际上通常表现为某个方法被执行。
  • 活动:活动是动作激发的后续系统行为。
  • 条件:条件指事件发生所需要具备的条件。
    • 激发对象状态改变的事件,通常有两种类型:
    • 内部事件:从系统内部激发的事件,一个对象的方法(动作)调用,(通过事件激活)另一个对象方法(动作)。
    • 外部事件:从系统边界外激发的事件,例如用户的鼠标、键盘动作。

在这里插入图片描述

  • 6。状态机图

描述某一对象声明周期中需要关注的不同状态,并会详细描述刺激对象状态改变的事件,以及对戏那个状态改变时所采取的动作。
状态机图的符号集包括5个基本元素:

  • 初始状态,它使用实心圆来绘制;
  • 状态之间的转换,它使用具有带箭头的线段来绘制;
  • 状态,它使用圆角矩形来绘制;
  • 判断点,它使用空心圆来绘制;
  • 一个或者多个终止点,它们使用内部包含实心圆的圆来绘制。

在这里插入图片描述

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

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

相关文章

CPP_类和对象

面向对象: 更接近真实世界(关注各对象之间的关系,而非各步骤的进行) 将结构体升级成立类 类里面可以有:成员函数,成员变量 class Stack { public:void Init(int defaultCapacity4 ) {_a (int*)malloc(s…

极狐GitLab 如何撤销变更?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 还原更改 (BASIC ALL) 在极狐GitLab 中,您可以还原单个提交或整个合并请求。 当您在 Git 中还原一个提交时&…

PNG透明免抠设计素材大全26000+

在当今的数字设计领域,寻找高质量且易于使用的素材是每个设计师的日常需求。今天,我们将为大家介绍一个超全面的PNG透明免抠设计素材大全,涵盖多种风格、主题和应用场景,无论是平面设计、网页设计还是多媒体制作,都能轻…

uniapp小程序使用echarts

1、引入插件 在Dcloud插件市场下载echarts插件&#xff1a;插件地址 2、页面使用简单示例&#xff1a; <template><view class"pie-view flex-center"><view style"width: 100%; height: 600rpx"><l-echart ref"chartRef&quo…

7-1 三种语言的单词转换

编写程序实现&#xff1a;首先从键盘输入若干个中文与英文单词的偶对&#xff0c;以空行作结束标记&#xff1b;再输入若干个英文与丹麦文单词的偶对&#xff0c;以空行作结束标记。然后输入一个中文单词&#xff0c;输出对应的丹麦文单词&#xff1b;若不存在该单词&#xff0…

开源AI守护童心——幼儿跌倒报警系统的智能安全革命

幼儿园是孩子们成长的乐园&#xff0c;但跌倒事件却时常让家长和园方忧心。教室、走廊、操场&#xff0c;幼儿的每一次意外跌倒都可能带来安全隐患。传统人工监管难以全天候覆盖&#xff0c;反应速度也常受限。如何让幼儿园更安全、更放心&#xff1f;幼儿跌倒报警系统&#xf…

Halcon应用:相机标定

提示&#xff1a;若没有查找的算子&#xff0c;可以评论区留言&#xff0c;会尽快更新 Halcon应用&#xff1a;相机标定 前言一、Halcon应用&#xff1f;二、应用实战1、图像理解1.1、开始标定 前言 本篇博文主要用于记录学习Halcon中算子的应用场景&#xff0c;及其使用代码和…

Arduino示例代码讲解:Project 08 - Digital Hourglass 数字沙漏

Arduino示例代码讲解:Project 08 - Digital Hourglass 数字沙漏 Project 08 - Digital Hourglass 数字沙漏程序功能概述功能:硬件要求:输出:代码结构全局变量`setup()` 函数`loop()` 函数计时和点亮LED:读取倾斜开关状态:重置LED和计时器:运行过程注意事项Project 08 - …

《计算机视觉度量:从特征描述到深度学习》—深度学习图像特征工程

传统算法的图像特征分析和描述&#xff0c;一直贯穿图像算法的发展。2017年深度学习的出现&#xff0c;很多开发人员和技术人员认为&#xff0c;图像特征分析这个概念可以被深度学习完全取代。很长一段时间以深度学习为主的视觉方案成为主流&#xff0c;逐渐淡化了传统视觉的特…

零部件三维激光扫描检测

制造业竞争激烈&#xff0c;零部件的精准检测与三维数据的高效获取&#xff0c;已成为企业确保产品质量、提升生产效率的核心要素。传统检测手段&#xff0c;往往因效率低下、精度不足&#xff0c;难以满足复杂零部件的检测需求。 传统零部件检测&#xff0c;检测人员通常是手…

KafkaSpark

Kafka Kafka基本概念 卡夫卡是一个分布式、分布订阅的消息系统&#xff0c;作为消息中间件使用。 设计上是一个分布式的、分区的和可复制的提交日志服务。 Kafka的优势 分布式系统&#xff0c;易于扩展。 高吞吐量&#xff0c;支持发布和订阅模式。 支持多地复制&#xff…

图文结合 - 光伏系统产品设计PRD文档 -(慧哥)慧知开源充电桩平台

光伏系统产品设计PRD文档 ‌版本号‌&#xff1a;1.0 ‌修订日期‌&#xff1a;2023年10月 ‌作者‌&#xff1a; 一、文档概述 1.1 背景与目标 ‌行业背景‌&#xff1a;全球光伏装机量年增长20%&#xff0c;数字化运维需求迫切‌用户痛点‌&#xff1a;现有系统存在数据延…

Eyecare-100K:首个覆盖多模态、多任务的高质量眼科视觉指令数据集

2025-04-18 , 由浙江大学、哈尔滨工业大学、郴州市第一人民医院、新加坡国立大学等机构合作创建了 Eyecare-100K数据集&#xff0c;这是首个涵盖多种模态、任务和疾病的高质量眼科视觉指令数据集&#xff0c;为眼科智能诊断领域提供了关键资源&#xff0c;推动了医学视觉语言模…

CoT-Drive:利用 LLM 和思维链提示实现自动驾驶的高效运动预测

25年3月来自澳门大学和 MIT 的论文“CoT-Drive: Efficient Motion Forecasting for Autonomous Driving with LLMs and Chain-of-Thought Prompting”。 准确的运动预测对于安全的自动驾驶 (AD) 至关重要。本研究提出 CoT-Drive&#xff0c;这是一种利用大语言模型 (LLM) 和思…

[FPGA基础] RAM篇

Xilinx FPGA RAM 使用指南 1. 引言 随机存取存储器&#xff08;RAM&#xff09;是 Xilinx FPGA 设计中用于存储和快速访问数据的重要资源。Xilinx FPGA 提供多种 RAM 类型&#xff0c;包括块 RAM&#xff08;Block RAM&#xff09;和分布式 RAM&#xff08;Distributed RAM&a…

Elasticsearch内核探秘:从Shard分配到网络通信的深度实践指南

#作者&#xff1a;孙德新 文章目录 一、底层模块深入解析之shard allocation1、shard allocation的介绍2、cluster level shard allocation介绍3、disk-based shard allocation介绍4、shard allocation awareness5、shard allocation filtering6、node下线时的shard延迟分配7、…

SQL Server 2022 常见问题解答:从安装到优化的全场景指南

SQL Server 2022 作为微软最新的数据库管理系统&#xff0c;在性能、安全性和云集成方面带来了多项革新。然而&#xff0c;用户在实际使用中仍可能遇到各类问题。本文将围绕安装配置、性能优化、备份恢复、安全设置、高可用性方案、兼容性问题及错误代码解析等核心场景&#xf…

57、Spring Boot 最佳实践

Spring Boot 最佳实践 一. 开发规范与代码风格 编写高质量的代码不仅需要功能的实现,还需要遵循一定的规范和代码风格,以提高代码的可读性、可维护性和协作效率。以下是 Spring Boot 开发中的一些关键规范和代码风格建议。 1. 代码命名规范 在编写代码时,命名是非常重要的…

​​OSPF核心机制精要:选路、防环与设计原理​

一、OSPF选路规则解析 OSPF作为经典的链路状态路由协议&#xff0c;其选路规则采用层次化优先级机制&#xff0c;不同路由类型遵循严格比较顺序&#xff1a; 1. 路由类型优先级 优先级路由类型描述1域内路由通过1类、2类LSA生成2域间路由通过3类LSA生成3域外路由通过5类/7类…

1.1软考系统架构设计师:系统架构的定义与作用 - 超简记忆要点、知识体系全解、考点深度解析、真题训练附答案及解析

超简记忆要点 定义&#xff1a;结构决策 | 抽象概念 | 多视图模型&#xff08;逻辑/物理/动态&#xff09;作用&#xff1a;解耦复杂需求 | 集成扩展 | 指导开发&#xff08;蓝图&#xff09;要素&#xff1a;构件&#xff08;原子/复合&#xff09; | 连接件&#xff08;API/…