ATM取款机优化需求的用例设计
案例设计需求
有一个ATM取款系统,现对于取款功能进行了如何需求变更:碑只能取面额是100元(如取500,输出5张100元),现在功能修改为,可以取面额是10元、50元和100元的,其余功能不变,用户界面也没有任何变化,取款原则为“最优吐钞法”,有大额先吐大额,请根据需求变更进行案例设计。
参考测试用例
大额优先:
- 刚好整百的金额,吐出N张100元的
- 刚好为50元,吐出1张50元
- 刚好是50以内的整10元,吐出N张10元
- 取款金额是N百超过50元,吐出N张100元,1张50元,(M-5)张10元。例如380元,会吐出3张100元,1张50元,8-5张10元
- 如果是几十元,同时超过50元。那么会吐出1张50元,M-5张10元
- 取款金额是N百几十元,不超过50的,那么会吐出N张100元,M张10元
没有大额了:
- 如果没有50元了,那么会吐出N张100元,M张10元
- 如果没有100元,有50元,那会出吐出2N张50元,十位部分。如果十位部分不足50元,则会吐出M张10元。如果超过50元,则会吐出2N+1张50元,M-5张10元
- 如果100元和50元的都没有了,那么会吐出全额的10元
- 如果100元的不够用,会优先吐出全部的100元,再用50元进行折算
- 如果100元和50元都不够用了,会优先吐出全部的100元和50元,最后用10元的填补
无效场景:
- 钱不够了,无论是哪一种不够,这时候会报错说取款机余额不足
- 用户输入金额不正确,即有个数,那么也会报错用户输入不正确
- 用户未输入,提示报错
ATM取款机优化需求的用例设计的更多相关文章
- 深入浅出面向对象分析与设计读书笔记一&吉他搜索案例&吉他特性锚点集中&委托&重用&业务阶段&需求列表&用例
		案例:吉他搜索Guitar Inventory GuitarSpec需求变化:增加吉他弦数特性原始程序需要的变化: 1.修改GuitarSpec,构造,成员,getter 2.修改Guitar,构造, ... 
- 第一周:设计一个简易ATM取款机简易程序(2)
		1.了解用户对ATM取款机功能需求如下: 2.新建一个login函数使用for循环方法和if选择方法编写登陆界面用来及设置ATM内用户的金额和取款机内的金额: 3.使用新建函数方法及if选择方法编写登 ... 
- 大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)
		一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时 ... 
- 用例设计之APP用例覆盖准则
		基本原则 本文主要讨论APP功能用例的覆盖,基本原则: 用户场景闭环(从哪来到哪去) 遍历所有的实现逻辑路径 需求点覆盖 覆盖维度 APP功能用例设计主要使用传统的黑盒用例设计方法.同时,作为移动AP ... 
- 服务端用例设计的思(tao)路!
		服务端的测试简单来说就是除了前端以外的的测试. 总的来说可以分为以下两类: 1. WEB或者APP的提供业务逻辑的服务端接口测试 2. 数据库.缓存系统.中间件..jar包依赖.输入输 ... 
- mysql数据库优化课程---3、数据库设计是什么
		mysql数据库优化课程---3.数据库设计是什么 一.总结 一句话总结: 就是设计各个字段及各个字段类型 1.char,varchar,text同存'ABC'的存储空间为多少? char(255): ... 
- Oracle实战训练——ATM取款机业务
		ATM取款机的数据库模拟开发和实战总结 一.ATM实战开发的简介. 学习了几天的Oracle,开始着手用数据库PL/SQL语言做一个简单的ATM取款机业务,主要是为了巩固数据库的知识,并非真正的去实现 ... 
- php : 单例设计演示
		单例 : 保证只有一个实例 <?php /* * 单例设计 */ // 单例: 只能"创造"出它的一个对象实例 class Single{ // 第一步: 私有化构造方法 p ... 
- Spring容器-ApplicationContext的单例设计
		Spring容器-ApplicationContext的单例设计 每次通过new创建一个ApplicationContext容器,都会执行refresh方法,看源代码了解到这个refresh方法会 ... 
随机推荐
- 重置networker9.0密码
			一.重置Networker 9.0密码 下面所有步骤在Networker服务器上操作 1.创建"mypassword_in.txt"文件 在服务器C盘根目录下创建一个 " ... 
- java基础---设计模式(2)
			结构型模式 出处:https://blog.csdn.net/zhangerqing/article/details/8239539 一.适配器模式 适配器模式将某个类的接口转换成客户端期望的另一个接 ... 
- java+selenium UI自动化001
			selenium是一个用于Web应用程序测试的工具,可以用来模拟用户在浏览器上的操作. 支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Googl ... 
- 传统.NET 4.x应用容器化体验(2)
			上一篇我们基于Windwos Server 2019 with Container初步跑了一个ASP.NET WebForm应用程序.本篇我们来自己编译部署一个ASP.NET MVC应用程序到Wind ... 
- C语言:printf*("%x")
			#include <stdio.h> int main(){ int a = 100; char str[20] = "hello world!"; char *zza ... 
- 2018年成为Web开发者的路线图
			本文通过一组大图展示了Web开发技能图谱,给出了作为Web 开发者可以采取的路径,以及总结了想要成为Web工程师的朋友们.希望和大家一起交流分享 介绍 Web 开发的角色一般说来,包括前端.后端和de ... 
- 达梦数据库(DM8)大规模并行集群MPP 2节点安装部署
			达梦数据库大规模并行集群MPP 2节点安装部署 1.环境准备 os 数据库版本 ip mpp角色 centos7.x86 DM8 192.168.30.100 mpp1 centos7.x86 ... 
- Qt 入门 ---- 如何在程序窗口显示图片?
			步骤: 1. 选择资源(准备图片) 2. 加载资源(导入图片) 3. 使用资源(显示图片) 具体操作流程: ① 从网上寻找合适的图片素材,下载到本地,在项目根目录下创建一个images文件夹存储程序中 ... 
- Vue 2升级 Vue 3初探小细节
			前言 嗯,偶尔看看学习Vue 3技能啦,此前用过Vue 2做过一点东西,Vue 3已面世一段时间,于是乎,我来看看所遇到的问题是否在Vue 3中得到解决,首先,我们来讲讲一个例子在Vue 2中的实现, ... 
- 剖根问底:Java 不能实现真正泛型的原因是什么?
			大家好,我是二哥呀! 今天我来给大家讲一下,Java 不能实现真正泛型的原因是什么? 本文已同步至 GitHub <教妹学 Java>专栏,风趣幽默,通俗易懂,对 Java 初学者亲切友善 ... 
