Rose中UML类图详解及画法

一、UML简介

    UML(Unified Modeling Language)是一种用于软件系统建模的标准化工具,它提供了一套统一的符号和语法,用于描述、设计、构建和交流软件系统的结构和行为。UML广泛应用于软件开发领域,被视为一种通用的建模语言。

    UML的主要目标是提供一种统一的、标准化的建模语言,以便软件开发团队能够更加清晰地理解和描述系统的结构和行为,从而更好地进行沟通、协作和设计。UML提供了一系列的图表和符号,用于描述系统的静态结构、动态行为和交互过程。

    UML包括了一些常用的图形建模工具,如类图、用例图、时序图、活动图、状态图等。这些图形工具可以用来描述系统的各个方面,例如类与对象、系统功能、交互过程、状态转换等。UML还提供了一些附加的建模机制,如关联、继承、多态、接口等,用于更详细地描述系统的特性和关系。

    通过使用UML,开发团队可以更好地共享和交流对系统的理解,减少误解和沟通障碍,并能够更好地进行系统设计、开发和维护。UML具有标准化的语法和符号,因此可以支持跨团队、跨组织的软件开发合作,提高开发效率和质量。

二、类图介绍

1.类图(Class Diagram)

是UML中最常用的一种图表,用于描述系统的静态结构,即系统中的类、接口、关系和属性等元素之间的关系。

在类图中,类以矩形框表示,包括类的名称、属性和方法。类之间的关系通过连线表示,有以下几种常见的关系:

1>关联关系(Association)

表示两个类之间的关联关系,可以是一对一、一对多或多对多的关系。关联关系可以是双向的,也可以是单向的。
例如:一个学生持有一个学生证,可以用关联关系表示为学生类和学生证类之间的关联关系。

单向关联:

双向关联:

自关联

在系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。例如:一个节点类(Node)的成员又是节点Node类型的对象,如图所示:

 多重性关联

2>泛化关系(Inheritance)

(继承)关系

表示类与类之间的继承关系,即一个类继承自另一个类。继承关系使用空心三角箭头表示。

例如:Student类和Teacher类都是Person类的子类,Student类和Teacher类继承了Person类的属性和方法,Person类的属性包含姓名(name)和年龄(age),每一个Student和Teacher也都具有这两个属性,另外Student类增加了属性学号(studentNo),Teacher类增加了属性教师编号(teacherNo),Person类的方法包括行走move()和说话say(),Student类和Teacher类继承了这两个方法,而且Student类还新增方法study(),Teacher类还新增方法teach()。

3>实现关系(Realization)

表示类与接口之间的实现关系,即类实现了接口中定义的方法。实现关系使用虚线箭头表示。
   例如:定义了一个交通工具接口Vehicle,包含一个抽象操作move(),在类Ship和类Car中都实现了该move()操作

4>聚合关系(Aggregation)

表示整体与部分之间的关系,表示一个类包含另一个类的对象。聚合关系使用空心菱形和箭头表示。
   例如:一个公司包含多个员工,可以用聚合关系表示为公司类和员工类之间的关系。

   汽车发动机(Engine)是汽车(Car)的组成部分,但是汽车发动机可以独立存在,因此,汽车和发动机是聚合关系

5>组合关系(Composition)

表示一种强耦合的聚合关系,整体对象的生命周期与部分对象的生命周期相关联。组合关系使用实心菱形和箭头表示。
   例如:一个汽车由多个零部件组成,汽车的销毁会导致零部件的销毁,可以用组合关系表示为汽车类和零部件类之间的关系。

   例如:人的头(Head)与嘴巴(Mouth),嘴巴是头的组成部分之一,而且如果头没了,嘴巴也就没了,因此头和嘴巴是组合关系

6>依赖关系(Dependency

依赖关系表示一个类对另一个类的使用,即一个类依赖于另一个类的某个方法或功能。在类图中,依赖关系用带箭头的虚线表示,箭头指向被依赖的类。依赖关系表示在一个类的方法中调用了另一个类的方法或使用了其对象作为参数。

例如:驾驶员开车,在Driver类的drive()方法中将Car类型的对象car作为一个参数传递,以便在drive()方法中能够调用car的move()方法,且驾驶员的drive()方法依赖车的move()方法,因此类Driver依赖类Car,如图所示:

2.注意

类图除了表示类与类之间的关系外,还可以描述类的属性和方法。属性通常以名称和类型表示,例如:name: String。方法通常以名称、参数和返回类型表示,例如:getName(): String。

通过类图,可以清晰地描述系统中的类、接口和它们之间的关系,帮助开发人员更好地理解和设计系统的静态结构,从而更高效地进行软件开发。

3.系统分析与设计阶段

在系统分析与设计阶段,类通常可以分为三种,分别是实体类(Entity Class)、控制类(Control Class)和边界类(Boundary Class),下面对这三种类加以简要说明:

(1) 实体类:实体类对应系统需求中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。实体类来源于需求说明中的名词,如学生、商品等。

(2) 控制类:控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。控制类一般是由动宾结构的短语(动词+名词)转化来的名词,如增加商品对应有一个商品增加类,注册对应有一个用户注册类等。

(3) 边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等。

三、类图画法

1. 创建类图

(1) 右键单击浏览器中的"UseCase View"(用例视图)、"Logical View"(逻辑视图)或者位于这两种视图下的包。

(2) 在弹出的快捷菜单中,选中"New"(新建)下的"ClassDiagram"(类图)选项。

(3) 输入新的类图名称。

(4) 双击打开浏览器中的类图。
 

2.类图中如何创建类的属性和方法

1.创建一个最基本的类(含有类的名称即可)
2.右击刚刚创建好的类选择 New Attribute即可创建类的属性
3右击刚刚创建好的类选择 New Operation即可创建类的方法 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】qsort()函数排序及其模拟实现,万物皆可排!

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 函数介绍 2. qsort举例排列整型变量 3. qsort举例排列结构型变量 3.1 按名字排序 3.1.1 srtcmp函数 3.2 按年龄排序 4. qsort函数模拟实现(采用冒泡的…

宝塔要注意的问题

数据库创建访问权限要全部人 反向代理1 打包dist,并不会有反向代理,所以宝塔里面要配置 反向代理2 这种去掉/api为/,上面的并没有去掉 rewrite ^/api/(.*)$ /$1 break;

mysql数据库表的数据显示到前端tableView

首先我们在ui视图设计中引入TableView, 定义一个model QSqlQueryModel *modelnew QSqlQueryModel(ui->tableView);model->setQuery(query);//将查询结果绑定到模型上ui->tableView->setModel(model); 将tableView内容设置成model然后就可以出现数据库的数据。示…

uni.uploadFile上传图片后台接收不到数据

今天遇到一个很奇怪的问题,通过使用uni.uploadFile上传文件时后端接收不到文件,查过很多资料,原来是自定义了header的Content-Type问题。取消即可,另把自定义文件上传的代码贴出来。 分析:当我们加上请求头的时候 不…

一.NODE MCU(ESP8285,ESP8286)开发环境搭建

一.序言: 1.esp8285长什么样? 2.esp8285是什么,能做什么? 通过上面图片,看到上面的芯片,是带有多个阵脚的单片机。实际上,看着该芯片很小,但是却具有完整的wifi无线蓝牙功能,它本身可以运行一个极简的linux小系统,并且该极简的小linux系统具备无线蓝牙功能。。它同…

了解光纤的最大损耗

在电信和数据传输领域,保持最佳的网络性能和可靠性至关重要。 影响网络完整性的关键因素之一是光纤中的信号丢失。信号损耗,也称为衰减损耗或光纤衰减,测量光缆输入和输出之间的光损耗量。本文将深入探讨光纤中的主要损耗,并指导您…

压缩感知的概述梳理(2)

参考文献 An efficient double-image encryption and hiding algorithm using a newly designed chaotic system and parallel compressive sensing 文献内容 梳理结果 列表形式 并行压缩感知核心元素 信号 x 和 s 信号 x: 稀疏信号信号 s: 非稀疏自然信号,在频…

数据库的创建

数据库分类 通过查看对象资源管理器来区分数据库类型 数据库物理文件的组成 : 数据库文件 日志文件 创建一个主数据文件和一个日志文件

数据结构--顺序表,链表,双向链表

数据结构的学习,从浅到深的学习,在了解他们的概念后,当然要明白他们分别是怎么实现的,同时通过对比来了解他们的异同点。 一.数据结构 1.1 什么是数据结构 所谓数据结构,拆开来讲,就是数据和结构。 数据…

n皇后问题-java

本次n皇后问题主要通过dfs(深度优先搜索)实现,加深对深度优先搜索的理解。 文章目录 前言 一、n皇后问题 二、算法思路 三、使用步骤 1.代码如下 2.读入数 3.代码运行结果 总结 前言 本次n皇后问题主要通过dfs(深度优先搜索&#…

部署Hyperledger Fabric测试区块链网络

一. 快速启动区块链测试网络 启动Fabric虚拟机 将 fabric-samples.zip 拷贝进虚拟机 ubzip fabric-samples.zip 解压并重命名为fabric-samples mv fabric-samples-main fabric-samples 拷贝bin和config目录 cd fabric-samples cp ~/fabric/bin bin -r cp ~/fabric/config …

民族运动饮料之父『健力宝』×企企通正式启动SRM项目,打造饮料行业采购数字化应用标杆

近日,为推进采购阳光化、数字化和智能化,提升管理效率与质量,企企通与中国电解质饮料的领军品牌广东健力宝股份有限公司(以下简称“健力宝”)成功签约并召开项目启动会。健力宝行政副总裁赵总、CIO李总、采购本部总监杨…

矿用连续式负压自动排渣放水器——YC型

从今天起,努力去做一个可爱的人,不羡慕谁,也不埋怨谁,在自己的道路上,欣赏自己的风景,遇见自己的幸福。 矿用连续式负压自动排渣放水器——YC型 【1-5-9】产品介绍 连续式式负压自动排渣放水器采用双罐体结…

web自动化系列-selenium的3种等待方式(十一)

在ui自动化测试中,几乎出现问题最多的情况就是定位不到元素 ,当你的自动化在运行过程中 ,突然发现报错走不下去了 。很大概率就是因为找不到元素 ,而找不到元素的一个主要原因就是页面加载慢 ,代码运行速度快导致 。 …

Redis的RedisObject和对外可见的5种数据结构

目录 RedisObject Redis的编码方式 对外可见的5种数据结构 1.string string结构的源码 为什么是小于44字节会采用embstr编码? embstr和raw区别 2.list list结构的源码 3.set set结构的源码 4.zset zset结构的源码 5.hash hash结构的源码 Redis中…

EtherCAT开发_2_SSC使用记录

SSC快速开始参考《EtherCAT Slave Design Quick Guide》 字段内容直接参考SSC工具右侧Description,本文未填写。中文也可直接参考:《https://blog.csdn.net/g360250466/article/details/129847081》 ① Select EL9800 | 8Bit Digital I/O, 16Bit Analog Input 一、S…

Intel性能分析工具Vtune安装和使用简介

一、介绍 Intel Vtune profiler是用于串行和多线程应用程序的性能分析工具,可以帮助软件开发人员对应用程序的性能问题进行分析,支持包括linux和windows在内的多种操作系统。主要功能包括: 性能分析:可以对应用程序进行深入的性…

如何将低分辨率的视频变高清,使用AI工具分辨率画质增强至1080P、4K或者8K(附工具)

环境: Topaz Video AI 5.0 问题描述: 如何将低分辨率的视频变高清,使用AI工具分辨率画质增强至1080P、4K或者8K 原视频 增强1080P 解决方案: 1.打开软件,导入要处理的视频(工具在本文最后附上&#xf…

网络安全:绕过 MSF 的一次渗透测试

这次渗透的主站是 一个 Discuz!3.4 的搭建 违法招 piao 网站, 配置有宝塔 WAF 用 Discuz!ML 3.X 的漏洞进行攻击,但是没有成功 发现主站外链会有一个发卡网,引导人们来这充值,是 某某发卡网,而且域名指向也是主站的 ip…

Stable Diffusion 模型分享:CyberRealistic XL(真实)cyberrealisticXL_v11VAE.safetensors

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八下载地址模型介绍
最新文章