【软考】UML中的图之类图

1. 说明
  • 1.类图(Class Diagram)展现了一组对象接口协作和它们之间的关系
  • 2.在面向对象系统的建模中所建立的最常见的图是类图。
  • 3.类图给出系统的静态设计视图。
  • 4.包含主动类的类图给出了系统的静态进程视图。
  • 5.类图中通常包括:接口协作依赖泛化关联关系。
  • 6.类图中也可以包含注解和约束。
  • 7.类图还可以含有包或子系统,二者都用于把模型元素聚集成更大的组块。
  • 8.类图用于对系统的静态设计视图建模。
  • 9.这种视图主要支持系统的功能需求,即系统要提供给最终用户的服务。
2. 图示

在这里插入图片描述

  • 1.实线空心三角箭头:代表泛化关系,表示类之间的继承关系。箭头从子类指向父类。在Java中,这种关系用extends 关键字表示。
  • 2.虚线空心三角箭头:代表实现关系,表示类实现了接口的所有方法和特征。箭头从类指向接口。
  • 3.虚线箭头:代表依赖关系,表示一个类的实现需要另一个类的协助。在Java中,这通常意味着一个类的方法参数需要传入另一个类的对象
  • 4.实线箭头:代表关联关系,表示类与类之间的连接。这种关系使一个类知道另一个类的属性和方法。与依赖关系相比,关联关系更强且不是临时性的。
  • 5.空心菱形实线箭头:代表聚合关系,是关联关系的一种特例,表示整体与部分的关系,但部分对象可以脱离S整体对象独立存在。箭头中的空心萎形指向被聚合类,箭头本身指向聚合类。
3. 类图使用方式
3.1 对系统的词汇建模
  • 1.对系统的词汇建模涉及做出这样的决定:哪些抽象是考虑中的系统的一部分,哪些抽象处于系统边界之外。
  • 2.用类图详细描述这些抽象和它们的职责。
3.2 对简单的协作建模
  • 1.协作是一些共同工作的类、接口和其他元素的群体,该群体提供的一些合作行为强于所有这些元素的行为之和。
  • 2.用类图对这组类以及它们之间的关系进行可视化和详述。
3.3 对逻辑数据库模式建模
  • 1.将模式看作为数据库的概念设计的蓝图。
  • 2.很多领域要在关系数据库或面向对象数据库中存储永久信息,可以用类图对这些数据库的模式建模。
4. 例题
4.1 例题1
  • 1.题目
1.一个完整的软件系统需从不同视角进行描述,下图属于软件架构设计中的(D),用于(D)视图来描述软件系统 。

在这里插入图片描述
A.对象图
B.时序图
C.构件图
D.类图

A.进程
B.开发
C.物理
D.用户

  • 2.分析
1.“4+1”视图模型从五个不同的视角来描述软件架构,每个视图只关心系统的一个侧面,五个视图结合在一起才能反映软件架构的全部内容。
2.逻辑视图。逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。在OO技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图。逻辑视图中使用的风格为面向对象的风格,在设计中要注意保持一个单一的、内聚的对象模型贯穿整个系统。
3.开发视图。开发视图也称为模块视图,在UML中被称为实现视图,它主要侧重于软件模块的组织和管理。开发视图要考虑软件内部的需求,例如,软件开发的容易性、软件的复用性和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。开发视图通过系统I/O关系的模型图和子系统图来描述。
4.进程视图。进程视图侧重于系统的运行特性,主要关注一些非功能性需求,例如,系统的性能和可用性等。进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适合进程结构等,它也定义了逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。进程视图可以描述成多层抽象,每个级别分别关注不同的方面。
5.物理视图。物理视图在UML中被称为部署视图,它主要考虑如何把软件映射到硬件上,它通常要考虑到解决系统拓扑结构、系统安装和通信等问题。当软件运行于不同的物理节点上时,各视图中的构件都直接或间接地对应于系统的不同节点上。因此,从软件到节点的映射要有较高的灵活性,当环境改变时,对系统其他视图的影响最小化。
6.场景视图。场景视图可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景视图是最重要的需求抽象。场景视图对应UML中的用例视图。在开发软件架构时,它可以帮助架构设计师找到构件及其相互关系。同时,架构设计师也可以用场景来分析一个特定的视图,或描述不同视图的构件之间是如何相互作用的。场景视图可以用文本表示,也可以用图形表示。
在Ubuntu中使用VSCode配置OpenCV并编写孔明棋的步骤大致如下: 1. 安装OpenCV:首先需要在Ubuntu系统中安装OpenCV库。可以通过以下命令在终端中安装OpenCV: ``` sudo apt-get install libopencv-dev ``` 2. 安装VSCode和C/C++扩展:如果尚未安装VSCode,可以访问其官方网站下载并安装。安装完成后,需要安装C/C++扩展,以便在VSCode中编写和运行C/C++代码。 3. 创建项目文件夹:在合适的位置创建一个新的文件夹作为项目目录。 4. 创建C/C++源文件:在项目目录中创建孔明棋的源代码文件,例如`kongmingqi.cpp`。 5. 配置VSCode的`tasks.json`:需要配置一个编译任务来编译C++代码。右键点击项目目录中的`.vscode`文件夹(如果不存在则创建一个),选择“在终端中打开”,然后输入`code .`打开VSCode,并创建或修改`tasks.json`文件,加入如下配置: ```json { "version": "2.0.0", "tasks": [ { "label": "C++ build", "type": "shell", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}", "-std=c++11", "-I/usr/include/opencv4" ], "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": true, "clear": false }, "problemMatcher": [ "$gcc" ] } ] } ``` 6. 配置VSCode的`c_cpp_properties.json`:确保你的C++环境路径配置正确。这可以在VSCode的设置中通过“C/Cpp: Edit Configurations (UI)”命令来完成。 7. 编写孔明棋代码:在`kongmingqi.cpp`中编写孔明棋的逻辑代码。 8. 构建和运行:在VSCode中按下`Ctrl+Shift+B`启动构建任务,然后可以通过在终端中运行编译后的可执行文件来运行孔明棋。 请注意,孔明棋的实现细节取决于具体的游戏规则和你打算如何实现它。你需要编写相应的算法来实现棋盘的布局、棋子的移动规则以及游戏的胜负判断逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王佑辉

老板,赏点吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值