软考(软设师)知识点7.2-UML

UML

上午题八:3~5分

下午题三:15分

事物

  • 结构事物:结构事务是UML模型中的名词。它们通常是模型的静态部分,描述概念或物理元素
  • 行为事物:行为事物是UML模型的动态部分。它们是模型中的动词,描述了跨越时间和空间的行为
  • 分组事物:分组事物是UML模型的组织部分,最主要的分组事物是包。结构事物、行为事物甚至其他事物都可以放进包内
  • 注释事物:注释事物是UML模型的解释部分

关系

  • 依赖:其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。有方向的虚线

​ 依赖事物-------------------------->(虚线)独立事物

  • *关联:(结构关系)一组链,链是对象之间的连接。它描述了整体和部分间的结构关系。在关联上可以标注多重度/重复度和角色

    多重度: 0…1表示0个或1个 0…*表示0个或多个

    关系-关联

    • 聚合:部分和整体的生命周期不一致,整体消失了,部分仍然存在,部分可以脱离整体存在

      ​ ————◇(实线)

    • 组合:部分和整体的生命周期一致,整体消失了,部分也消失了,部分不可以脱离整体存在

      ​ ————◆(实线)

  • 泛化:父类泛化子类。特殊元素(子元素)的对象可替代一般元素(父元素)的对象

    ​ 子类 ————▷(实线) 父类

  • 实现:(类元之间的语义关系)其中一个类元指定了由另一个类元保证执行契约。使用场景:在接口和实现它们的类或结构之间、在用例和实现它们的协作之间

类图(一组对象、接口、协作之间的关系)、对象图、用例图、序列图、通信图、状态图、活动图、构件图(构件之间的组成和依赖)、部署图(软件和硬件之间的物理关系)

(序列图、通信图均被称为交互图)

静态建模:类图、对象图(有对象名和类名的)、用例图(有火柴人的)

动态建模:序列图(顺序图、时序图)、通信图(协作图)、状态图、活动图

物理建模:构件图(组件图)、部署图

交互图:序列图(顺序图、时序图)、通信图(协作图)

类图

展现一组对象、接口、协作和它们之间的关系 。类图给出系统的静态设计图(即系统要提供给最终用户的服务)

使用类图的方式:对系统的词汇建模、对简单的协作建模、对逻辑数据库模式建模

类图-类

“+”、"-"表示的是权限修饰符:+:public公有的;-:private私有的;#:protected受保护的;~:package包的

多对多的类图中要单拎出来一个关联类

对象图

展现了某一时刻一组对象 以及它们之间的关系 ,对象图一般包括对象和链,描述了在类图中所建立的事物的实例的静态快照,对象图给出系统的静态设计视图或静态进程视图

​ 对象名:类名(eg. d2:Department)

​ 属性 (eg. name=…)

UML对象图

用例图

展现了一组用例(系统的一个功能)、参与者(外部实体)以及它们之间的关系

用例图通常包含这些元素:用例(椭圆表示)、参与者、用例之间的扩展关系extend和包含关系include

参与者和用例之间的关联 关系,包含 是用例和用例之间的关系,扩展 是用例和用例之间的关系

用例与用例以及参与者与参与者之间的泛化 关系,

UML用例图

  • 包含关系:一个用例包含另一个用例

试题三(UML)_用例图包含关系箭头指向-优快云博客

  • 扩展关系:一个用例执行的时候,可能会发生一些特殊的情况或可选的情况

UML-扩展关系

  • 泛化关系:子类————▷(实线)父类(特殊元素指向一般元素)

用例图用于对系统的静态用例视图(支持系统的行为)进行建模,使用用例图的方式:对系统的语境建模、对系统的需求建模

交互图

包含对象、链、消息

序列图和通信图是同构的,它们之间可以相互转换

  • 序列图(顺序图)

强调消息时间顺序的交互图——描述了以时间顺序组织的对象之间的交互活动

消息:调用消息即同步消息;异步消息即不用等待下一步反应,可继续操作;返回消息为虚线

UML顺序图

特征:① 把交互的对象放在图的上方,沿水平方向排列

​ ② 通常把发起交互的对象放在对象的左边,下级对象依次放在右边

​ ③ 对象发送和接收的消息沿着垂直方向按时间顺序从上到下放置

​ ④ 有对象生命线:对象生命线是一条垂直的虚线,表示一个对象在一段时间内存在,有个大X表示生命的结束

​ ⑤ 有控制焦点:控制焦点是一个瘦高的矩形,表示一个对象执行一个动作所经历的时间段,顶部即动作开始,底部即动作的结束

  • 通信图(协作图)

展示了对象之间的消息流及其顺序,强调接受和发送消息的对象的结构组织的交互图

查看源图像

特征:① 参加交互的对象作为图的顶点、连接这些对象的链表示为图的弧、用对象发送和接受的消息来修饰这些链

​ ② 通信图有顺序号。为表示一个消息的时间顺序,给消息加上数字前缀

​ ③ 沿同一条链可以显示许多消息,可能发自不同的方向,并且每个消息都有唯一的一个顺序号

*状态图

展现了一个状态机,它由状态、转换、事件和活动组成,通常是对反应型对象建模(包括出现在系统体系结构的任何视图中的任何一种对象的按事件排序的行为)

  • 状态:状态名称+活动(动作表达式);黑点为起点,圆圈包围黑点为终点

状态

有三种标准事件:entry、exit、do

​ entry:入口动作,进入状态,立即执行

​ exit:出口动作,退出状态,立即执行

​ do:内部活动,占有有限时间,并可以中断的工作

时间事件:在绝对时间或在某个时间间隔内发生的事情所引起的事件,用关键字When或After表示

  • 转换(迁移):两个状态(源状态,目标状态)+事件+[监护条件]+动作

转移/迁移

事件会触发转换(迁移),若箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换

活动(动作)可以在状态内执行,也可以在状态内转换(迁移)时执行

组合状态(超状态):嵌套在另外一个状态中的状态称为子状态,含有子状态的状态的成为组合状态

活动图

  • 特殊的状态图,展现了在系统内从一个活动到另一个活动的流程
  • 专注于系统的动态 视图,强调对象间的控制流程
  • 活动图可以表示分支、合并、分岔和汇合。并发分岔和并发汇合
  • 活动图一般包括活动状态和动作状态、转换和对象

UML活动图_uml用活动图表示for循环_Warren2Lynch的博客-优快云博客

[…]——监护表达式

  • 当对一个系统的动态方面建模时,通常有两种使用活动图的方式:对工作流建模(业务处理)、对操作建模

最大线程数=有多少个活动流——>并发分岔有多少分支

构件图

(组件图)展现了一组构件之间的组织和依赖,专注于系统的静态实现视图,通常把构件映射为一个或多个类、接口或协作

UML构件图

调用 “构件名” 实现的 “供需口名” 接口

部署图

用来面向对象系统的物理建模的方法,展示了系统的软件和硬件之间的关系,在实施 阶段使用(对系统的静态部署视图进行建模),<>表示制品

部署组件之间的依赖类似于包依赖

UML部署图

<think>我们遇到了在安装特定RPM包时出现的依赖缺失问题。错误信息显示缺少以下依赖项: 1. libXinerama.so.1 2. libfreetype.so.6 3. libreofficedev7.2-ure <= 7.2.2.2-2 4. lodevbasis7.2-ooofonts <= 7.2.2.2-2 根据之前解决类似问题的经验(如安装MySQL时缺少libaio),我们可以通过安装相应的依赖包来解决。由于系统是Kylin Linux 10 (aarch64架构),我们将使用yum或dnf来安装缺失的依赖。 ### 解决步骤 1. **安装libXinerama.so.1**: 通常,这个库文件由`libXinerama`包提供。我们可以通过以下命令安装: ```bash sudo dnf install libXinerama ``` 如果dnf不可用,可以尝试yum: ```bash sudo yum install libXinerama ``` 2. **安装libfreetype.so.6**: 这个库通常由`freetype`包提供。安装命令: ```bash sudo dnf install freetype ``` 或 ```bash sudo yum install freetype ``` 3. **安装libreofficedev7.2-ure和lodevbasis7.2-ooofonts**: 这两个依赖项看起来是特定于LibreOffice的包,且要求版本小于等于7.2.2.2-2。通常,我们不需要手动安装这些包,因为它们可能会作为其他包的依赖自动安装。但是,如果仍然缺失,我们可以尝试安装整个LibreOffice套件或者查找包含这些包的具体RPM。 由于这些包名称中包含特定版本,我们可以尝试使用yum/dnf来安装指定版本(如果仓库中有): ```bash sudo dnf install libreofficedev7.2-ure lodevbasis7.2-ooofonts ``` 但是,请注意版本约束(<=7.2.2.2-2)。如果仓库中的版本高于要求的版本,可能会导致问题。在这种情况下,可能需要手动下载较低版本的RPM包进行安装。 如果仓库中没有合适的版本,我们可以尝试从官方源或镜像站点下载指定版本的RPM包,然后手动安装。 例如,从Kylin的件仓库或LibreOffice官方网站下载: - libreofficedev7.2-ure-7.2.2.2-2.ky10.aarch64.rpm - lodevbasis7.2-ooofonts-7.2.2.2-2.ky10.aarch64.rpm 然后使用rpm命令安装: ```bash sudo rpm -ivh libreofficedev7.2-ure-7.2.2.2-2.ky10.aarch64.rpm sudo rpm -ivh lodevbasis7.2-ooofonts-7.2.2.2-2.ky10.aarch64.rpm ``` 4. **重新尝试安装目标RPM包**: 安装完所有依赖后,再次尝试安装原始包: ```bash sudo rpm -ivh lodevbasis7.2-core-7.2.2.2-2.ky10.aarch64.rpm ``` ### 注意事项 - 如果使用yum/dnf安装依赖时遇到问题,可以尝试更新件仓库缓存:`sudo dnf makecache` 或 `sudo yum makecache`。 - 在手动安装RPM包时,需要注意包之间的依赖关系,避免出现循环依赖或版本冲突。 - 如果依赖包在仓库中不可用,可能需要添加额外的件仓库(如EPEL、RPM Fusion等)或从其他可信源获取。 ### 替代方法:使用yum/dnf直接安装 我们也可以不手动解决依赖,而是让yum/dnf自动处理依赖关系。将目标RPM包添加到yum/dnf的本地安装路径,然后使用yum/dnf安装,它会自动解决依赖问题。 ```bash sudo dnf install ./lodevbasis7.2-core-7.2.2.2-2.ky10.aarch64.rpm ``` 或 ```bash sudo yum install ./lodevbasis7.2-core-7.2.2.2-2.ky10.aarch64.rpm ``` 这样可以避免逐个安装依赖的麻烦,推荐优先尝试此方法。 ### 总结 首先尝试使用yum/dnf自动安装依赖的方式(通过`sudo dnf install ./package.rpm`)。如果自动解决依赖失败,再根据缺失的依赖逐一安装。 §§相关问题§§ 1. 如何添加额外的件仓库(如EPEL)以解决依赖问题? 2. 在安装RPM包时,如何查看包依赖关系? 3. 如何手动下载RPM包及其依赖项? </think>### 解决 RPM 安装依赖缺失问题的方法 您在安装 `lodevbasis7.2-core-7.2.2.2-2.ky10.aarch64.rpm` 时遇到的依赖缺失问题(`libXinerama.so.1`、`libfreetype.so.6`、`libreofficedev7.2-ure`、`lodevbasis7.2-ooofonts`),可以通过以下步骤解决: --- ### **解决方案** #### 1. **安装缺失的动态库** ```bash # 安装 libXinerama sudo dnf install libXinerama # 安装 freetype(提供 libfreetype.so.6) sudo dnf install freetype ``` > **说明**:`libXinerama` 和 `freetype` 是标准库,通过系统包管理器可直接安装。 #### 2. **解决特定版本依赖** 缺失的 `libreofficedev7.2-ure` 和 `lodevbasis7.2-ooofonts` 是 LibreOffice 组件,需手动安装: ```bash # 从 Kylin 仓库下载所需 RPM(示例 URL,需确认可用性) wget http://archive.kylinos.cn/kylin/KYLIN-ALL/pool/main/l/lodevbasis7.2/lodevbasis7.2-ooofonts_7.2.2.2-2.ky10_aarch64.rpm wget http://archive.kylinos.cn/kylin/KYLIN-ALL/pool/main/l/lodevbasis7.2/libreofficedev7.2-ure_7.2.2.2-2.ky10_aarch64.rpm # 安装依赖包(使用 yum/dnf 自动处理子依赖) sudo dnf install ./lodevbasis7.2-ooofonts_7.2.2.2-2.ky10_aarch64.rpm sudo dnf install ./libreofficedev7.2-ure_7.2.2.2-2.ky10_aarch64.rpm ``` #### 3. **安装目标 RPM** ```bash sudo dnf install ./lodevbasis7.2-core-7.2.2.2-2.ky10.aarch64.rpm ``` > **提示**:使用 `dnf install` 代替 `rpm -ivh` 可自动解决剩余依赖[^1]。 --- ### **注意事项** 1. **仓库配置**: 确保已启用 Kylin 10 的官方仓库: ```bash sudo dnf config-manager --add-repo=http://archive.kylinos.cn/kylin/KYLIN-ALL/ sudo dnf makecache ``` 2. **强制安装(不推荐)**: 若仍有个别依赖冲突,可尝试: ```bash sudo rpm -ivh --nodeps lodevbasis7.2-core-7.2.2.2-2.ky10.aarch64.rpm ``` > ⚠️ 此操作可能导致系统不稳定,仅作为最后手段。 3. **架构验证**: 确认所有 RPM 均为 **aarch64** 架构: ```bash file *.rpm | grep "ARM aarch64" ``` --- ### **补充说明** - **依赖关系逻辑**: `libXinerama.so.1` 和 `libfreetype.so.6` 是图形库依赖,而 `libreofficedev7.2-ure` 和 `lodevbasis7.2-ooofonts` 是 LibreOffice 的运行时组件,需优先安装。 - **安装路径**: 动态库通常安装在 `/usr/lib64/`,可通过 `find /usr -name libXinerama.so.1` 验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值