starUML教程-用例图/类图

2023-11-04

用例图

        也称为用户模型图 是从软件需求分析到最终实现的第一步 它是从客户的角度来描述系统功能

        它包含3个基本组件:

                1.参与者:与系统打交道的人或使用该系统的人

                2.用例:表示该系统的某项完整功能

                3.关系:定义用例之间的关系 ——泛化关系 扩展关系 包含关系

        

用例之间的关系——泛化关系:

        表示同意业务目的(父用例)的不同技术实现(各个子用例)在UML中 用例泛化用一个三角箭头从子例指向父例  说白了就是面向对象继承里的父子类关系

用例之间的关系——包含关系:

        一个用例可以包含其他用例具有的行为 并把它包含的用例行为作为资深行为的一部分 在UML中包含关系用虚线箭头加 “<<include>>” 箭头指向被包含的用例

 

 用例之间的关系——扩展关系

        如果在完成某个功能的时候偶尔会执行另一个功能 则用扩展关系表示 在UML中扩展关系用虚线箭头 加 "<<extend>>" 箭头指向被扩展的用例

 类图

        类图是面向对象系统建模中最常见的图 是定义其他图的基础

        类图主要是用来显示系统中的类 接口 以及它们之间的关系

        类图包含的主要元素有类 接口 和关系 其中关系有泛化关系 关联关系 依赖关系和实现关系 在类图中也可以包含注释和约束

类的表示法:

        类是类图的主要组成 由3部分组成:类名 属性和方法 在UML中 类用矩形来表示 顶端部分存放类的名称 中间部分存放类的属性 属性的类型及值 底部部分存放类的方法 方法的参数和返回类型

        在UML中可以根据实际情况有选择的隐藏属性部分或方法部分或两者都隐藏

 类之间的关系——泛化关系:

        在UML中 泛化关系用来表示类与类 接口与接口之间的继承关系 泛化关系有时候也称为 “is a kind of” 关系

        在UML中泛化关系用一条实心空箭头 子类指向父类

 类之间的关系——实现关系

        在UML中 实现关系用来表示类与接口之间的实现关系

        在UML中 实现关系用一条虚线空心箭头由子类指向父类

类之间的关系——依赖关系:

        对于两个相对独立的系统,当一个系统负责构造另一个系统的实例 或者依赖另一个系统的服务时 这两个系统之间体现为依赖关系 例如生产零件的机器和零件 机器字符构造零件对象; 充电电池和充电器 充电电池通过充电器来充电 ;自行车和打气筒 自行车通过打气筒来充气

#include <iostream>
using namespace std;

class Car
{
public:
    void run() {
        cout << "开车去上班" << endl;
    }
};

class Person
{
public:
    //这里的car不是Person的成员变量 属于依赖关系
    void GoWork(Car * car) {
        car -> run();
    }
};

int main() {
    Person p;
    //必须创建一个Car对象才能跑得起来
    //不能直接通过Person对象跑起来
    //所以属于依赖关系
    Car c;
    p.GoWork(&c);
    return 0;
}

 

类之间的关系——关联关系

        对于两个相对独立的系统 当一个系统的实例与另一个系统的一些特定实例存在固定的对应关系时 这两个系统之间为关联关系 例如客户和订单 每个订单对应特定的客户 每个客户对应一些特定的订单

#include <iostream>
using namespace std;

class Car
{
public:
    void run() {
        cout << "开车去上班" << endl;
    }
};

class Person
{
public:
    void GoWork() {
        car -> run();
    }
    //这里的car是Person的成员变量 属于一个固定的关联关系
    Car* car;
};

int main() {
    Person p;
    //这里不再需要创建Car对象
    //因为Car就是Person的成员变量
    //属于固定的关联关系
    p.GoWork();
    return 0;
}

 ​​​​​​​

 类之间的关系——聚合

        聚合关系是关联关系的一种 是更强的关联关系

        聚合是整体和部分之间的关系 例如汽车由引擎、轮胎以及其他零件组成

        聚合关系也是通过成员变量来实现的 但是关联关系所涉及的两个类处在同一层面上 而聚合关系中两个类处于不同的层次上 一个代表整体 一个代表部分

 

 类之间的关系——组合

        组合关系也是关联关系的一种 是比聚合还要强的关系

        代表整体的对象负责代表部分的生命周期

 

链接:https://pan.baidu.com/s/1fDNk4WVQkImfCfSAcsH0SA 
提取码:xm19 
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

starUML教程-用例图/类图 的相关文章

  • 模板继承的 UML 图

    在我的库的文件中 我有一个继承自模板的类 我的代码示例 class data class dataA public data class dataB public data inheritance from a template templ
  • 我应该使用什么图来表示模块中功能之间的交互?

    我需要使用 UML 或 SysML 符号创建图表 我有由函数组成的模块 有些函数仅在模块 内部 使用 其他函数则由其他模块使用 Example MODULE 1有两个功能 func1 and func2 func2 uses func1 i
  • 类图转换为关系模型;继承和匹配表

    对于一个学校项目 我应该设计上学期项目的系统 我们使用 UML 创建一个极其简单的用例图 没有 lt
  • 如何绘制java uml类图并在另一个类中创建枚举[重复]

    这个问题在这里已经有答案了 假设我有一个类名 A 在这个类中我定义了枚举 Bpublic enum B AA BB CC 现在我想画一个uml来体现这种关系 应该怎么做呢 在类类图中 表示使用 例如
  • 从 umbrello 中的 java 代码自动创建类图?

    我能够将 java 代码导入到 umbrello 中 但是 如何自动生成类图呢 也许雨伞可以not有那个功能 来自handbook http docs kde org stable en kdesdk umbrello code impor
  • 如何在 UML 活动图上显示异步操作

    我即将绘制 记录一些客户端 服务器连接建立代码 以更好地理解它 有几个操作是在单独的线程中异步完成的 连接线程 数据接收线程等 我应该在单独的图表上显示它们吗 我更愿意将其放在单个图表上以掌握整体视图 但不知道如何在活动图上表示它 我不确定
  • UML 领域建模

    领域模型和数据模型有什么区别 数据模型是一个design仅描述数据及其关系的模型 该模型包含实体 但它们是根据什么来描述的data他们不负责如何处理这些数据或他们的责任是什么 另一方面 领域模型是用于分析问题领域的概念模型 它用具有关系 数
  • staruml 抽象类?

    有谁知道如何使用 StarUML 创建抽象类 我在文档中找不到任何提及 是否有某种反映抽象类的更一般的概念 从工具箱中选择类并将其添加到画布中 然后转到属性选择 isAbstract 复选框 然后类名显示为斜体
  • 用例可以没有参与者吗?

    我正在研究全自动系统的用例图 外部系统只会触发该系统的一个用例 大多数其他用例都是计划任务并由计时器调用 我有一个由计时器调用的用例 它包含并扩展了其他两个用例 当我编写用例描述时 谁将成为 UC 2 和 UC 3 的参与者 用例可以在没有
  • XMI 2.1.1 的 XSD

    我必须使用 JAXB 解析 XMI 文件 xmi 版本 2 1 1 为此 我必须生成与 XMI 文件相对应的 Java 类 因此 我需要 xmi 文件的 shema 定义才能使用 jxc 工具执行此操作 我希望有人知道在哪里可以找到这个文件
  • Dia:图表编辑器:盒子对象的限制?

    如标题所示 我尝试为 hte 3d 图形引擎 ogre3d 开发尽可能少的方案 问题是大图方案 Ogre Root 类需要相当多的从它下降的箭头 用关系箭头连接框的模型是它们只能通过边界周围的特定点 称为 关节 或其他东西 进入 退出 但现
  • 如何*真正*编写 UML 基数?

    我想一劳永逸地知道如何编写 UML 基数 因为我经常不得不争论它们 所以非常欢迎证明和来源 如果我想解释一下a Mother可以有几个Children but a Child有且仅有一个Mother 我应该写 Mother 1 Child
  • 绘制 UML 时何时使用属性(属性)而不是关联/聚合/组合

    好吧 我有点困惑 当尝试在 UML 图中显示关系时 我应该向类添加属性 还是绘制与类的关联 例如 假设我有一个 DFA 类 其中包含 10 个状态对象 每个状态对象都有一组不同的通往 DFA 中各种状态的路径 我应该绘制从 DFA 到 St
  • 如何在 Windows 上使用 Pyreverse

    我想使用pyreverse 创建图表类 我下载它 当我使用这个命令时 pyreverse bat c PyreverseCommand a1 s1 f ALL o png test py 我收到错误 名称 点 无法识别 什么是 点 如何创建
  • 如何在时序图上表示 if 条件 1 else if 条件 2?

    我想知道 如何在序列图上表示 if cond1 else if cond2 语句 if condition1 Do something else if condition2 Do something else if 我不确定是否有两个独立的
  • 如何使组合键唯一?

    I am making a database of students in one school Here is what I have so far 如果您不喜欢阅读 请跳至 简而言之 部分 问题是我对这个设计并不满意 我想要的组合gra
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • UML:一对多关系表示?

    我是 UML 新手 还不太理解其表示法 这是我对图的理解 The system has many doctors Doctors can have many patients however patients can only have o
  • UML 帮助 C# 设计原则

    我在理解下面的 UML 时遇到问题 具体来说 两者之间有什么关系PersistentSet and ThirdPartyPersistentSet 之间有什么关系PersistentObject and ThirdPartyPersiste
  • Qt中用于线程间通信的类设计

    问题陈述 用相机跟踪物体并相应地移动相机的方位角和仰角 Process 相机获取物体的图像 处理相机的每一帧以查找物体 应该被跟踪 并将每帧中生成的信息传递给机械设备 万向节 以平移和倾斜方式移动摄像机 Design 主 Gui 在一个线程

随机推荐

  • asn1c编解码时 Assertion ‘lb <= ub‘ failed问题

    近期在使用asn编解码时提示 per support c 238 per long range rebase Assertion lb lt ub failed 经过查找资料和分析 找到解决办法 如下 修改INTEGER c 文件
  • 瑞芯微Rockchips RK3368对比晶晨Amlogic S905

    回首过去的2015上半年 国内网络机顶盒64位处理器一直被瑞芯微RK3368垄断着 到了2015年下半年 随着天猫魔盒M13和小米盒子3等电视盒子的曝光 预售与上市 瑞芯微RK3368的在电视盒子中64位处理器的垄断地位也被打破 因为天猫魔
  • 如何在vue项目中引入字体图标

    第一步 进入阿里图标库 选择自己需要的图标 第二步 选择之后不要点击下载 点击加入购物车 第三步 点击右上角的购物车 然后点击添加至项目可以新建项目名称 第四步 然后点击红字复制代码 注 画红框的是引用字体图标时的名字 点击画框的地方 在新
  • Qt设计师的简单使用(ui设计界面的简单使用)

    文章目录 一 界面的基本介绍 二 添加控件 2 1 添加控件 2 2 设置控件属性 三 布局器的使用 3 1 布局器介绍 3 2 简单布局 3 3 复杂布局 3 4 带分裂器的布局 四 拓展 4 1 添加模块窗口 4 2 转到槽的使用 4
  • M3U8视频AES解密播放

    在网站上看到一些有意思的视频想要下载下来的时候 发现没有找不到mp4格式的地址 因为该网站视频播放是HLS HTTP Live Streaming 技术 HLS是Apple公司研发的流媒体传输技术 包括一个m3u8的索引文件 多个ts分片文
  • MySql锁机制(全网最全、最详细、最清晰)

    1 MySql锁机制 锁机制的作用 解决因为资源共享 而造成的并发问题 没有锁机制时 例如一号用户和二号用户都要去买同一件商品 假如这件商品是一件衣服 一号用户手速稍微快了一些 于是就先买到了这件衣服 但是因为没有 锁机制 于是就造成了二号
  • 【笔试强训选择题】Day28.习题(错题)解析

    作者简介 大家好 我是未央 博客首页 未央 303 系列专栏 笔试强训选择题 每日一句 人的一生 可以有所作为的时机只有一次 那就是现在 文章目录 前言 一 Day28习题 错题 解析 总结 前言 一 Day19习题 错题 解析 1 解析
  • ES高可用及集群管理

    ES高可用及集群管理 Elasticsearch 是一个分布式 高扩展 高实时 RESTful 风格的搜索与数据分析引擎 服务可用性 允许有节点停止服务 数据可用性 部分节点丢失 不会丢失数据 水平扩展 集群容错 一 分片 1 什么是分片及
  • Unity Blend Tree动画的混合,认识Blend Tree

    我们在Animator Controller中除了可以创建一个State外还可以创建一个Blend Tree 如下 那么我们看下新创建的Blend Tree和State有什么区别 唯一的区别就是Montion指向的类型变成了Blend Tr
  • 启动测试(建立索引库,映射,用分页结果集的方法把当前的页面的商品数据拿到后,再用do,while方法把当前商品页面转换给goods列表,再把结果导入索引库)

    我们要去实现对上一次内容的测试 上一次内容大概就是讲了怎么样去完成Goods查询页面的编写 下面的测试当中需要把上次做完的东西导入索引库当中对索引库进行增删改查 然而就会用到下面的方法 一个是Template方法 导入索引库 一个是Repo
  • python调用摄像头

    import cv2 模块称作cv2 python需要用到opencv python模块 可在命令行模式输入 pip install opencv python i https pypi douban com simple capture
  • AI建模

    三维重建是将客观世界中的物体在虚拟空间表达出来 在大众视野中 物品三维重建最直观的应用当属虚拟仿真和VR AR导航 其实在学科专业领域 三维重建已经更早地应用在高精地图 测绘系统 城市规划等领域 科技发展的终极方向应当是普适性 结合现代信息
  • Git的下载及使用

    一 Git的下载 1 下载Git 打开Git官网进行下载Git git scm com 直接点击Download for Windows进入Git版本页面 在此页面根据自己电脑的操作系统选择相应的Git版本 2 安装程序 下载完成之后双击g
  • 炒冷饭,springboot自定义logo详解

    初学springboot的朋友 是不是经常能看到项目启动时日志打印的springboot图标logo 有没有人想让他长成自己的样子 现在我就告诉你 如果不想显示logo 你可以在配置文件中增加如下配置 spring main banner
  • 64位操作系统不能安装64位虚拟机的解决办法

    很多人都遇到过这样的情况把 就是自己的电脑CPU明明是64的 为什么安装64的虚拟机却不能安装 安装时出现如下错误 但是在真实机上安装却没有问题 这是为什么呢 这是因为你电脑的硬件虚拟化没有开启 据说host系统是64位的 guest系统才
  • 1.错误处理org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core。是什么原因造成

    解决方法 tomcat 8 5 启用项目时提示 无法在web xml或使用此应用程序部署的jar文件中解析绝对uri http java sun com jsp jstl core 项目需要扫描Tld文件 修改一下tomcat 配置conf
  • retrofit应用详解与源码解析--奇技淫巧

    本文出自门心叼龙的博客 属于原创类容 未经允许 不得转载 本专栏的同步视频教程已经发布到CSDN学院 https edu csdn net course detail 30408 文章目录 请求超时设置 日志拦截器的设置 网络的缓存设置 自
  • linux shell中\w \s \d \b ^ $等常用匹配用法

    正则表达式 w s d b 用法 匹配除换行符以外的任意字符 w 匹配字母或数字或下划线 s 匹配任意的空白符 d 匹配数字 等价于 0 9 D 匹配非数字字符 b 匹配单词的开始或结束 匹配字符串的开始 匹配字符串的结束 其中 A Z 表
  • running beyond physical memory limits. Current usage: 2.0 GB of 2 GB physical memory used; 2.6 GB of

    昨天使用hadoop跑五一的数据 发现报错 Container pid 47660 containerID container 1453101066555 4130018 01 000067 is running beyond physic
  • starUML教程-用例图/类图

    用例图 也称为用户模型图 是从软件需求分析到最终实现的第一步 它是从客户的角度来描述系统功能 它包含3个基本组件 1 参与者 与系统打交道的人或使用该系统的人 2 用例 表示该系统的某项完整功能 3 关系 定义用例之间的关系 泛化关系 扩展