UML类图的概述

新书速览|《UML 2.5基础、建模与设计实践》新书速览|《UML 2.5基础、建模与设计实践

类是对一组具有相同属性、操作、关系和语义的对象的抽象,主要包括名称(Name)部分、属性(Attribute)部分和操作(Operation)部分。在UML中,类图用一个矩形框表示,它包含3个区域,最上面是类名,中间是类的属性,最下面是类的方法,如图5.1所示。一个具体的类图如图5.2所示。

            

图5.1  类图                                图5.2  类说明

1)名称

每个类都必须有一个能和其他类进行区分的名称,类的名称部分是不能省略的,其他组成部分可以省略。类的名称是一个字符串,要求是由字符、数字、下画线组成的唯一字符串。表示方法有两种:

(1)简单名:如图5.2中的Account,它只是一个单独的名称。

(2)全名:也称为路径名,就是在类名前面加上包的名称,例如图5.2中的Business::Account。[f1] 

2)属性

属性描述了类在软件系统中代表的事物(即对象)所具备的特性。类可以有任意数目的属性,也可以没有属性。类如果有属性,则每一个属性都必须有一个名字,例如图5.2中的Account类中的banlance属性。另外,属性还可以有其他的描述信息,如可见性、数据类型、默认值等。

在UML中,类属性的语法为:

[可见性] 属性名 [:类型] [=初始值] [{属性字符串}]

说明如下:

  1. 可见性:类中属性的可见性主要包括公有(Public)、私有(Private)和受保护(Protected)。在UML中,用“+”表达公有类型,用“-”表达私有类型,用“#”表达受保护类型。UML的类中不存在默认的可见性,如果没有显示任何一种符号,就表示没有定义该属性的可见性。
  2. 属性名:每个属性都必须有一个名字用以区别于类中的其他属性,这是类的一个特性。属性名由描述所属类的特性的名词或名词短语组成。按照UML的约定,单字属性名小写。如果属性名包含多个单词,那么这些单词要合并,并且除了第一个单词之外其余单词的首字母要大写。例如,在图5.2中balance是属性名,是私有属性。
  3. 类型:说明属性的数据类型。在类的图标里,可以指定每个属性值的类型。可能的类型包括字符串(string)、浮点型(float)、整型(int)和布尔型(boolean)(以及其他的枚举类型)。指明类型时,需要在属性值后面加上类型名,中间用冒号隔开。还可以为属性指定一个默认值。
  4. 初始值:为了保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性,可以设定属性的初始值。图5.2中的balance属性的数据类型是double,且初始值等于1。
  5. 属性字符串:属性字符串用来指定关于属性的其他信息,例如某个属性应该是永久的。任何希望添加在属性定义字符串里又没有合适地方可以加入的规则,都可以放在属性字符串里。

3)操作

操作是对类的对象所能做的事务的一个抽象。一个类可以有任意数量的操作或者根本没有操作。类如果有操作,则每一个操作也都有一个名字。其他可选的信息包括可见性、参数的名字、参数类型、参数默认值和操作的返回值的类型等。

在UML中,类操作的语法为:

[可见性] 操作名 [(参数表)] [:返回类型] [{属性字符串}]

说明如下:

  1. 可见性:类中操作的可见性主要包括公有(Public)、私有(Private)、受保护(Protected)和包内公有(Package)。在UML中,公有类型用“+”表示,私有类型用“-”表示,受保护类型用“#”表示,包内公有类型用“~”表示。
  2. 操作名:用来描述所属类的行为的动词或动词短语。
  3. 参数表:一些按顺序排列的属性定义了操作的输入。该项是可选的,即操作不是必须有参数。参数的定义方式为“名称:类型”。若存在多个参数,则各个参数用逗号隔开。参数可以具有默认值。
  4. 返回类型:是可选的,即操作不是必须有返回类型。绝大部分编程语言只支持一个返回值。具体的编程语言一般要加一个关键字void来表示无返回值。
  5. 属性字符串:在操作的定义中加入一些除了预订义元素之外的信息。

像前面给类的属性指定附加信息一样,也可以给操作指定附加信息。在操作名后面的括号中可以说明操作所需要的参数和参数的类型。有一种操作叫作函数(Function),它在完成操作后要返回一个返回值,可以指明函数的返回值及返回值的类型。

例如,图5.2中共有两个操作,分别是Deposite(Amount:double):int和ComputeInterest(),其中Amount:double是参数列表,int是操作返回值的类型。

4)职责

职责位于操作部分下面的区域,可以用来说明类要做什么或说明另一个类的信息。类的职责可以是一个短语或一个句子。在UML中,把职责列在类图底部的分隔栏中。如图5.3所示,借阅者类的职责是借阅者可以从图书管理系统中借阅图书和归还图书。

5)约束

说明类的职责是消除二义性的一种非形式化的方法,形式化的方法是使用约束。约束指定了该类所要满足的一个或多个规则。在UML中,约束是用{}的格式写在类的边上,指定个别属性的取值范围。

花括号中的文本指定了该类所要满足的一个或者多个规则。例如,假设想指定借阅者类的类别只能是教师、学生或者行政管理人员(也就是说给借阅者类的 “类别”属性加上约束),可以在借阅者类图标的旁边写一个约束“{类别=教师 or 学生or 行政管理人员}”,如图5.3所示。

《UML 2.5基础、建模与设计实践》(李波,姚丽丽,朱慧)【摘要 书评 试读】- 京东图书 (jd.com)

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

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

相关文章

六个Python实用技巧,大幅提升你的编程效率!

关注星标,每天学习Python新技能 Python作为当下最流行的编程语言之一,以其简洁易懂的语法和强大的第三方库支持,深受开发者的喜爱。在实际开发中,掌握一些实用的Python小技巧,可以大大提升编程效率和代码质量。 本文…

windwos下mysql的udf提权

MySql UDF提权介绍 UDF(User Defined Functions)即用户自定义函数,通过这种方式可以实现命令执行,其原理是通过lib_mysqludf_sys提供的函数可以执行系统命令 攻击场景:同之前利用日志写WebShell的场景,即堆叠注入或MySQL终端权限或类似phpMy…

钉钉扫码登录第三方

钉钉文档 实现登录第三方网站 - 钉钉开放平台 (dingtalk.com) html页面 将html放在 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>登录</title>// jquery<script src"http://code.jqu…

LeetCode刷题之HOT100之最长递增子序列

2024/7/10 晴&#xff0c;睡眠质量良好&#xff0c;到实验室时间9.18。知了在窗外聒噪&#xff0c;似乎让我安心&#xff0c;静下来。做题吧 1、题目描述 2、算法分析 给一个整数数组&#xff0c;要求出里面最长严格递增子序列的长度。遇到这种问题&#xff0c;想到的就是DP算…

【逆向基础】九、dnSpy使用技巧随记

一、dnSpy逆向工具的使用 1、反汇编适用范围&#xff1a;C#,.NET等语言编写的程序 2、工具的获取&#xff1a;dnSpy (ps:大家可自行去网页搜索下载最新版) 3、打开需要反汇编的程序&#xff0c;成功后出现如图所示的界面 4、dnSpy反汇编.NET程序后&#xff0c;可以像开发一样…

算术运算符用途解析及应用案例

文章目录 常用的算术运算符及其用途&#xff1a;运算符优先级类型转换高级用法 应用案例1. 计算器程序2. 平方根计算3. 计算平均数和标准差4. 货币兑换5. 计算几何6. 动力学模拟7. 数字图像处理8. 金融计算&#xff1a;复利计算 常用的算术运算符及其用途&#xff1a; 算术运算…

怎么简单快捷的分享文件呢?扫描二维码看文件的制作方法

怎么简单快捷的分享文件呢&#xff1f;想要快速的实现文件分享&#xff0c;那么可以将文件转成二维码之后&#xff0c;通过分享二维码让其他人扫码在手机上查看文件&#xff0c;可以将单个文件或者多个文件生成二维码&#xff0c;扫描点击文件就能够在手机上预览或者下载文件。…

【JavaScript】深入理解Promise:从基础概念到进阶用法、手写promise

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、引言二、Promise概述1. Promise的定义2. Promise的用途3. Promise的三种状态4. Promise的构造函数和基础结构5. Promise的优点6. Promise的实例方法7. Promise的静态方法 三、Promise的基本用法1. 创建一个Promise2. th…

居家客服人员分散,更需要统一客服话术

1、居家客服服务需求激增 近年来&#xff0c;随着线上消费的兴起&#xff0c;以及客服人员成本的不断攀升&#xff0c;越来越多的企业选择雇佣居家客服&#xff0c;以客服服务发包的形式接待客户的咨询。因此&#xff0c;居家客服人员的数量也逐渐增加。然而&#xff0c;居家办…

【探索Linux】P.38(传输层 —— TCP协议通信连接管理机制简介 | TCP连接状态转换)

阅读导航 引言一、TCP协议通信连接管理机制二、连接状态转换1. TCP状态转换图2. 状态转换过程3. 理解TIME_WAIT状态&#xff08;1&#xff09;目的和作用&#xff08;2&#xff09;状态转换&#xff08;3&#xff09;特殊情况&#xff08;4&#xff09;影响和优化 4. 理解 CLOS…

纯技术分享:淘宝商品详情原数据接口参数解析

item_get_app-获得淘宝app商品详情原数据 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_s…

【React】Ant Design -- Table分页功能实现

实现步骤 为Table组件指定pagination属性来展示分页效果在分页切换事件中获取到筛选表单中选中的数据使用当前页数据修改params参数依赖引起接口重新调用获取最新数据 const pageChange (page) > {// 拿到当前页参数 修改params 引起接口更新setParams({...params,page})…

免费GPU——Google Colab使用

免费GPU——Google Colab使用 1、创建新的Notebook 网址&#xff1a;https://colab.research.google.com/ 点击“新建笔记本”进行创建 2、设置免费GPU 点击“更改运行时类型”&#xff0c;打开界面如下所示&#xff1a; 选择“T4 GPU”&#xff0c;然后“保存”即可使用…

通用图形处理器设计GPGPU基础与架构(一)

GPGPU背景 GPGPU&#xff08;General Purpose Graphics Processing Unit&#xff0c;通用图形处理器&#xff09;脱胎于GPU (Graphics Processing Unit&#xff0c;图形处理器&#xff09;。GPGPU由于其强大的运算能力和高度灵活的可编程性&#xff0c;已经成为深度学…

大模型应用中什么是SFT(监督微调)?

大模型应用中什么是SFT&#xff08;监督微调&#xff09;&#xff1f; 一、SFT的基本概念 监督微调&#xff08;Supervised Fine-Tuning, SFT&#xff09;是对已经预训练的模型进行特定任务的训练&#xff0c;以提高其在该任务上的表现。预训练模型通常在大量通用数据上进行训…

模型和应用,哪个更重要?

前言 2024 年 7 月 4 日&#xff0c;世界人工智能大会暨人工智能全球治理高级别会议全体会议在上海世博中心举行。百度创始人李彦宏在产业发展主论坛上发言&#xff0c;呼吁不要卷模型&#xff0c;要卷应用。 目录 四个要点 积极的观点 不合理性 总结 四个要点 李彦宏的呼吁…

【经典链表OJ】环形链表

一、题目要求 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&…

2024年上海市安全员C3证证考试题库及上海市安全员C3证试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年上海市安全员C3证证考试题库及上海市安全员C3证试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试…

ATA-M4功率放大器在充粘液管道损伤检测中的应用

实验名称&#xff1a;充粘液管道损伤检测 实验原理&#xff1a;在管道上的传感器激发一束超声能量脉冲&#xff0c;此脉冲沿着管道长度方向向远处传播&#xff0c;并充斥整个圆周方向&#xff0c;在导波传播过程中遇到缺陷时&#xff0c;入射波会在缺陷处发生反射、透射&#x…

视频怎么压缩变小?最佳视频压缩器

即使在云存储和廉价硬盘空间时代&#xff0c;大视频文件使用起来仍然不方便。无论是存储、发送到电子邮件帐户还是刻录到 DVD&#xff0c;拥有最好的免费压缩软件可以确保您快速缩小文件大小&#xff0c;而不必担心视频质量下降。继续阅读以探索一些顶级最佳 免费视频压缩器选项…