用例图

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

它包含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

starUML教程-用例图/类图相关推荐

  1. UML 建模步骤 用例图 类图 对象图 包图 顺序图/时序图 状态图 活动图 协作图

    统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明.可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言. UML是面向对象设计的建 ...

  2. StarUML使用教程【画类图】

    1.打开StarUML 打开后,默认就是画类图的模式 默认创建了一个untitled项目 2.修改工程名字 ** 鼠标双击** [Untitled] 在这里进行填写相关信息 修改后,就变成了你修改的那 ...

  3. 用例图类图练习(网上购物平台)

    某网上购物平台的主要功能如下: 创建订单.顾客(Customer)在线创建订单(Order),主要操作是向订单中添加项目.从订单中删除项目.订单中应列出所订购的商品(Product)及其数量(quan ...

  4. 车辆销售系统用例_服装销售系统 数据流图 用例图 类图都有

    项目编号: 2014-19 项目名称:连锁零售运动装管理系统 项目描述: 随着社会经济的迅速发展和科学技术的全面进步以及计算机 事业的飞速发展, 以计算机科学与通信技术为基础的信息管理系统正处于蓬 勃 ...

  5. UML实践详细经典教程----用例图、顺序图、状态图、类图、包图、协作图

    2009-01-20 作者:Randy Miller 来源:网络 面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified M ...

  6. 项目前期——用例图、类图、活动图、组件图

    建立模型是为了更好地理解要模拟的现实世界,是软件开发方法的核心问题.在结构化方法中,使用SA构建系统的环境模型和逻辑模型,实现模型的主要工具有数据字典(DD).ER图和数据流图(DFD). 面向对象方 ...

  7. UML实践---用例图、顺序图、状态图、类图、包图、协作图

    转载:http://www.uml.org.cn/oobject/200901203.asp 面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UM ...

  8. UML实践----用例图、顺序图、状态图、类图、包图、协作图

    http://www.uml.org.cn/oobject/200901203.asp UML实践----用例图.顺序图.状态图.类图.包图.协作图 2009-01-20 作者:Randy Mille ...

  9. powerdesigner绘制UML模型(包括用例图、类图、时序图、E-R图……)

    文章目录 UML模型介绍 创建项目 创建模型 活动图 用例图 类图 包图 时序图 状态图 数据流图 实体关系图 数据结构图 样式更改 更改单个对象样式 更改全局样式 常见问题 箭头上无法显示文字: 本 ...

最新文章

  1. 2015.7.13 第五课 课程重点(z-index、overflow、浏览器兼容性)
  2. 计算机网络相关知识 参考博客 子网掩码怎么理解 网关及网关的作用 路由器基础知识详解
  3. 归并排序相关题目(待编辑)
  4. 【ubuntu】ubuntu18.04:在处理时有错误发生:ufw E: Sub-process /usr/bin/dpkg returned an error code (1)
  5. 4.RabbitMQ Linux安装
  6. 针对12306.cn网站应用架够的一些看法
  7. linux宝塔登录不上去怎么回事,宝塔面板点击登陆没有用怎么办
  8. SP2010开发和VS2010专家食谱--第七章节--使用客户端对象模型(2)--Handling exceptions...
  9. IT工作者要保护自己的头发啊..
  10. HighCharts 详细使用及API文档说明
  11. 仙岛求药 详解(C++)
  12. 虚拟机客户端访问不了服务器域名,虚拟机ESXI 篇四:让你电脑打开网页不用等待---SmartDns...
  13. JESD204B协议基础知识
  14. 怎么裁剪PDF文件页面?一种方法轻松搞定
  15. 卡西欧计算机在线使用方法,卡西欧金融计算器FC-200V使用教程
  16. ORACLE 如何获取uid
  17. 热烈祝贺 Entrust 正式成为本届SDS赞助商
  18. MongoDB——MongoDB分片集群(Sharded Cluster)两种搭建方式
  19. 永不放弃--一个藏羚人的感人故事
  20. 【电气设计】理论知识学习(持续更新中...)

热门文章

  1. PLSQL中Oracle设置主键自增
  2. 论文阅读——Automatic Testing and Improvement of Machine Translation
  3. 第一个帖子,先灌灌水
  4. 3种常见的数据库迁移同步工具对比,哪个更适合你?
  5. 电子科技大学硕士毕业论文和博士毕业论文Latex模板及问题集锦
  6. 什么是 PM,什么是 SCM,和 NVM 什么关系?
  7. C语言逻辑语句问题集锦
  8. 更改win10管理员账户名称
  9. Coursera机器学习+deeplearning.ai+斯坦福CS231n
  10. JAVA学习笔记 03 - JAVA语言程序结构