深入浅出UML类图(五)

2023-11-12

实例分析3——售票机控制程序

      某运输公司决定为新的售票机开发车票销售的控制软件。图I给出了售票机的面板示意图以及相关的控制部件。

I   售票机面板示意图

      售票机相关部件的作用如下所述:

      (1) 目的地键盘用来输入行程目的地的代码(例如,200表示总站)。

      (2) 乘客可以通过车票键盘选择车票种类(单程票、多次往返票和座席种类)。

      (3) 继续/取消键盘上的取消按钮用于取消购票过程,继续按钮允许乘客连续购买多张票。

      (4) 显示屏显示所有的系统输出和用户提示信息。

      (5) 插卡口接受MCard(现金卡),硬币口和纸币槽接受现金。

      (6) 打印机用于输出车票。

      (7) 所有部件均可实现自检并恢复到初始状态。

      现采用面向对象方法开发该系统,使用UML进行建模,绘制该系统的初始类图。

 

    参考解决方案:

      参考类图如下:

      类说明:

 

 

Component

抽象部件类,所有部件类的父类

Keyboard

抽象键盘类

ActionKeyboard

继续/取消键盘类

TicketKindKeyboard

车票种类键盘类

DestinationKeyboard

目的地键盘类

Screen

显示屏类

CardDriver

卡驱动器类

CashSlot

现金(硬币/纸币)槽类

Printer

打印机类

TicketSoldSystem

售票系统类

      方法说明:

方法名

 

Component init()方法

初始化部件

Component doSeltTest()方法

自检

KeyboardgetSelectedKey()方法

获取按键值

ActionKeyboardgetAction()方法

继续/取消键盘事件处理

TicketKindKeyboardgetTicketKind()方法

车票种类键盘事件处理

DestinationKeyboardgetDestinationCode()方法

目的地键盘事件处理

ScreenshowText()方法

显示信息

CardDrivergetCredit()方法

获取金额

CardDriverdebitFare()方法

更新卡余额

CardDriverejectMCard()方法

退卡

CashSlotgetCredit()方法

获取金额

PrinterprintTicket()方法

打印车票

PrinterejectTicket()方法

出票

TicketSoldSystemverifyCredit()方法

验证金额

TicketSoldSystemcalculateFare()方法

计算费用

 【作者:刘伟 http://blog.csdn.net/lovelion

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

深入浅出UML类图(五) 的相关文章

  • 具有属性的 UML 建模枚举

    我想使用 Java 枚举 enum 创建一个 UML 图 它具有一个或多个属性 但我对如何做到这一点感到困惑 例如 可以这样声明枚举 public enum Enumeration type LITERAL A attr1 value at
  • 这是实体关系图还是类图

    嘿 基本上我对类图和 ERD 的区别感到困惑 我创建了一个我认为是 ERD 的东西 但我的室友似乎认为它是一个类图 它是什么 与已接受的答案相反 xmojmr 也注意到这是NOTUML 图 而是实体关系图 ERD 最明显的区别是连接器末端的
  • 使用基于关联数组的 UML 建模类型

    假设有一个 PHP 子系统 它仅使用关联数组来存储某种结构化数据 因此 实际上在语言级别上没有机制来约束这些结构 但您希望在设计中使用 UML 来定义它们 E g 在 PHP 中 联系人可能是这样的关联数组 name gt John Doe
  • 如何在 UML 属性中指定枚举文字作为默认值?

    我目前使用 EMF UML Implementation 进行一些模型转换 在我的模型转换中 我创建了一个具有一些属性的 uml 类 这些属性是我也创建的枚举类型 某些属性应该获得默认值 默认值应该是枚举文字 现在的问题是 如何将枚举文字获
  • 从 umbrello 中的 java 代码自动创建类图?

    我能够将 java 代码导入到 umbrello 中 但是 如何自动生成类图呢 也许雨伞可以not有那个功能 来自handbook http docs kde org stable en kdesdk umbrello code impor
  • 如何在 UML 中建模协变关联类?

    In short 我想对两个类之间的协变关联进行建模 每个类都可以专门化 我需要展示相关关联类的专业化 但我想避免我的模型可能意味着存在冗余关联 即泛化之间的关联和专业化之间的关联 问题的逐步解释 我在 UML 类图中有一个多对多关联Per
  • 如何用UML表示通信协议?

    在我的 UML 模型中 我有一个系统及其相互通信的子组件 例如 我有一台计算机和一个遥控机器人 它们通过蓝牙进行通信 目前图中的流程类似于 计算机 触发 遥控车 的 setVelocity 函数 在这一点上 我想通过说以下的话来完善沟通 计
  • 将 StarUML 图转换为 Visio 绘图

    我有一个使用 Star Uml 创建的类图 但现在的要求是将其移植到 MS Visio 是否可以将 uml 移植到具有可用 xml 信息的 vsd 提前致谢 导出为 Windows 图元文件 WMF 和增强型 Windows 图元文件 EM
  • 关联注入还是依赖注入?

    我正在研究依赖注入模式 我看过很多例子 其中一个典型的例子就是以XxxService XxxRepository为例 但我认为 根据UML概念 类XxxRepository应该是类XxxService的关联 为什么不称这种情况为关联注入 但
  • Dia:图表编辑器:盒子对象的限制?

    如标题所示 我尝试为 hte 3d 图形引擎 ogre3d 开发尽可能少的方案 问题是大图方案 Ogre Root 类需要相当多的从它下降的箭头 用关系箭头连接框的模型是它们只能通过边界周围的特定点 称为 关节 或其他东西 进入 退出 但现
  • Android:从 Android Java 源代码创建 UML [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以从我的 Java Android 源代码自动创建 Uml 的程序 我测试过ArgoU
  • IBM Rhapsody 中状态图终止连接器的理解

    在IBM Rhapsody中 如果我使用new创建了一个类的实例 那么我们是否必须通过调用delete来处理内存的释放 或者Termination Connector将在其状态图中通过内存释放来处理其销毁 如果您使用 C 和 OXF 对象执
  • UML状态图中守卫和事件的区别

    我以为我可以区分event and guard 但我遇到了一个与守卫类似的事件 counter gt 4 pin is high switch on event 我将变量计数器从小于 4 的某个值更改为大于 4 的值作为事件 这是否意味着事
  • PlantUML 活动图 返回

    我正在使用 PlantUML 创建活动图 我想要从里面出来的箭头Modify Details回到OP2而不是钻石 我有这个图 startuml Swimlane1 start OP1 Swimlane2 OP2 if Form Valid
  • 如何在 Windows 上使用 Pyreverse

    我想使用pyreverse 创建图表类 我下载它 当我使用这个命令时 pyreverse bat c PyreverseCommand a1 s1 f ALL o png test py 我收到错误 名称 点 无法识别 什么是 点 如何创建
  • 在用例建模中分解 CRUD

    我有一个后续问题用例图中的 CRUD https stackoverflow com questions 7772399 crud in a use case diagram 如果我需要分解复杂的用例 例如 管理用户 假设这很复杂 可以将它
  • 如何表示类的实例与将其作为输入的类之间的关系?

    我有一堂课叫House 这个类的实例是house class House def init self height length self height height self length length def housePlan hou
  • 这是正确的 UML 活动图吗?

    这是活动图截图 https i stack imgur com 575VU jpg 这是对的吗 如果不是 我做错了什么 从语法上讲 这个带有分区的活动图似乎几乎是正确的 起始节点应该是实心 黑色 圆圈 最终节点应该有一个内部实心 黑色 圆圈
  • 如何设计/规划Web应用程序开发?

    我有兴趣学习如何在多个开发团队场景中设计 规划 Web 应用程序开发 担任 项目经理 主管 的角色 成功的 Web 应用程序开发需要哪些 文档 需要哪些 UML 图以及需要到什么程度 在设计 计划阶段 是否需要根据用例对每个类进行图表化 类
  • 用例图的本质

    对于学校作业 我们必须制作用例图 但我们拥有的文档并不是很丰富 它仅描述用例由哪些组件组成 以及一个示例 我们必须制作一个关于图书馆系统的用例 我们已经找到了 11 个用例 但我不会用所有用例来打扰您 IIRC 用例描述了系统的典型用法 对

随机推荐

  • python对两个list取交集、并集、和异或

    第一种方法 使用python基本数据结构set集合 优点 集合运算长度可以不一致 运算效率高 缺点 两个进行运算的集合中不能够含有重复的元素 如果含有的话 转成set集合后 会自动去掉重复元素 a 1 2 3 b 1 2 6 9 12
  • MyBatis-Plus&Druid数据源理解

    SpringBoot集成MyBatis Plus 1 1MyBatis Plus简介 MyBatis Plus 简称 MP 是一个 MyBatis 的增强工具 在 MyBatis 的基础上只做增强不做改变 为简化开发 提高效率而生 1 12
  • Unity(Input.GetAxis和Input.GetAxisRaw)

    Input GetAxis 描述 数值返回是慢慢向上加的 1 gt 0 3 gt 1 类似于车慢慢加速的过程 Input GetAxisRaw 描述 数值返回是固定的是 1 gt 0 gt 1
  • undo表空间出现问题的几种情况与处理

    undo空间出现问题的处理 一 数据库正常关闭immediate或normal 创建pfile并使用pfile启动数据库 startup nomount create pfile from spfile shutdown abort sta
  • 【python】实现list除以一个数

    文章目录 新建一个list 存放数据 使用numpy np divide list如何除以一个数 有如下两种方法 import random my list random randint 0 100 for x in range 10 pr
  • mysql 页和叶子页_一看就懂的:MySQL数据页以及页分裂机制,别在说不会了

    下面我们就一起看下 究竟什么是MySQL的数据页 数据区等概念 二 数据页长啥样 数据页长下面这样 image png 三 什么是数据区 在MySQL的设定中 同一个表空间内的一组连续的数据页为一个extent 区 默认区的大小为1MB 页
  • MySQL Flashback拯救手抖党

    MySQL Flashback拯救手抖党 2019 06 12 黄子程 黄子程 黄子程 网易游戏资深运维工程师 曾参与多款网易代理游戏产品的运营维护工作 后逐渐转向数据库管理维护领域 目前主要工作方向为网易游戏 Relational DBa
  • unity3d 对大图额外加载

    加载 UI 背景大图 lua 使用 if self findBack image nil then resMgr UnLoadBigImage self findBack image self findBack image nil self
  • 【华为云】E: You don‘t have enough free space in /var/cache/apt/archives/.

    目录 一 购买华为云系统盘空间 二 扩容前的准备 三 扩容 扩大已有MBR分区 起因 使用华为云服务器 在安装Xfce桌面环境时报错 E You don t have enough free space in var cache apt a
  • sql 数据库删除,修改,增加列语句

    ALTER TABLE 添加 修改 删除表的列 约束等表的定义 查看列 desc 表名 修改表名 alter table t book rename to bbb 添加列 alter table 表名 add column 列名 varch
  • [翻译&摘抄]ES6 中的元编程:Symbol

    原文地址 Metaprogramming in ES6 Symbols and why they re awesome 原文作者 Keith Cirkel 译文出自 掘金翻译计划 转自 https juejin im post 5a0e65
  • LM5118 DC-DC电源降压芯片带载能力不够问题

    1 现象 主机系统带载到2A时 系统反复重启 2 分析 示波器测量VCC 5V 稳压源一显示到2A VCC 5V就会掉到0V 把如下二极管断开 万用表测量电流到3 7A就是掉下 3 解决 查规格书可知电流检测电阻的计算 原来为0 03R 按
  • javascript解析XML生成树形结构

    前两天一个朋友去一家公司面试 面试题是用javascript解析一个XML 生成树形结构 今天闲着没事就试了试 源代码
  • Unity自带的相应事件

    Unity自带的相应事件 代码 条件 各个响应事件 鼠标移入移出 鼠标按下 抬起 点击 鼠标拖拽 选择事件接口 系统按键事件的接口 代码 using UnityEngine using UnityEngine EventSystems pu
  • 数据结构题目-哈希

    目录 A Hash表 线性探测法解决冲突 B 求3阶B 树的深度 C 输出3阶B 树的构造过程 D Hash表 链表法解决冲突 仅作储存代码使用 A Hash表 线性探测法解决冲突 include
  • Python当中reverse()函数

    Hello大家好 今天我想和大家分享一下Python当中的reverse 函数 reverse 函数顾名思义就是反转的意思 但是我们要注意反转的内容只能是python当中的列表 千万不要忘记了 例子如下 arr 1 2 3 4 5 6 ar
  • js数据类型之对象object类型(数组与自定义对象)

    对象object 数组与自定义对象 JavaScript 中的所有事物都是对象 字符串 数值 数组 函数 此外 JavaScript 允许自定义对象 JavaScript 提供多个内建对象 比如 String Date Array 等等 对
  • CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar实现渐变透明的状态栏

    在之前的一篇博文里面我已经说明了CoordinatorLayout使用过程中遇到的问题 之后又发现结合CollapsingToolbarLayout使用时的另一个问题 CollapsingToolbarLayout里面的ImageView为
  • [架构之路-208]- 人人都是产品经理 - 什么是产品经理?产品经理具体是做什么的?

    目录 一 什么是产品经理 产品经理具体做什么 二 产品经理的岗位职责 三 产品经理的职业规划 一 什么是产品经理 产品经理具体做什么 在外行人看来 产品经理常常被误认为是 经理 其实产品经理只是一个岗位名称 并不是真正意义上的 经理 或者说
  • 深入浅出UML类图(五)

    实例分析3 售票机控制程序 某运输公司决定为新的售票机开发车票销售的控制软件 图I给出了售票机的面板示意图以及相关的控制部件 图I 售票机面板示意图 售票机相关部件的作用如下所述 1 目的地键盘用来输入行程目的地的代码 例如 200表示总站