文档章节

细化迭代二——2.需求分析[开单]

scaujohn
 scaujohn
发布于 2015/04/15 23:06
字数 2828
阅读 92
收藏 0
点赞 0
评论 3

2.1业务建模

A.业务流程建模

1、使用UML活动图分析目标系统所支持的业务流程

2、文字对流程中每个活动的涉众、业务规则、使用到的单据进行必要的说明。

涉众:客户、店员

业务规则:

使用到的单据:

收款票据,内容包括:店名,店铺地址,开单时间,店员号,商品名,商品单价,商品折扣,商品规格,商品数量,应收金额,实收金额,找零金额等

B. 领域建模

使用UML类图构建领域模型。

2.2需求规格说明

1、系统用例图。绘制整个系统UML用例图

B. 用例详述文本

所有业务活动用例采用详述风格(包括前置条件、后置条件、主事件流,扩展、业务规则等)进行描述。

范围:POS应用

级别:用户目标

主要参与者:收银员

涉众及其关注点:

-收银员:希望能够精准、快速的输入货品信息。希望能够快速的选择折扣权限。

-顾客:希望得到快速的服务。希望便捷、清晰地看到所输入的商品项目和价格。

前置条件:收银员必须经过确认和认证

成功保证:建立新的销售单,准确输入商品信息,准确计算税金,准确计算商品总价。

主成功场景:

1、顾客携带所购商品到收银台通过POS机付款。

2、收银员开始一次新的销售交易。

3、收银员输入商品条码。

4、系统逐条记录出售的商品,并显示该商品的描述、价格和累计额。

收银员重复3~4步,直到输入结束。

5、收银员选择客户可享受的折扣。

6、系统显示总价。

扩展:

*a.店长在任意时刻要求进行超控操作:

  1. 1.   系统进入店长授权模式

  2. 2.   店长执行某一店长模式的操作。如,回复其他登录者中断的销售交易,取消销售交易等。

  3. 3.   系统回复到收银员授权模式。

 

*b.系统在任意时刻失败:

  1. 1.   收银员重启系统,登录,请求恢复上次状态。

  2. 2.   系统重建上次状态

2a.系统在恢复过程中检测到异常:

  1. 1.   系统向收银员提示错误,记录此错误,并进入一个初始状态。

  2. 2.   收银员开始一次新的销售交易。

1a.客户或店长需要恢复一个中断的销售交易。

  1. 1.   收银员执行恢复操作,并且输入ID以提取对应的销售记录。

  2. 2.   系统显示被恢复的销售交易状态及其小计。

2a.未发现对应的销售记录。

1、系统向收银员提示错误

2、收银员可能会开始一个新销售交易,并重新输入所有商品。

  1. 3.   收银员继续该次销售交易。

3a.无效商品ID:

1、系统提示错误并拒绝输入该ID。

2、收银员响应该错误。

2a.商品ID可读(例如通用产品代码):

  1. 1.  收银员手工输入商品ID。

  2. 2.  系统显示商品项目的描述和价格。

2a.无效商品ID:系统提示错误。收银员尝试其他方法。

2b.系统内不存在该商品ID,但是该商品附有价签:

1、收银员请求店长执行超控操作。

2、店长执行相应的超控操作。

3、收银员选择手工输入价格,输入价签上的价格,并且请求对该价目进行标准计税。

2c.收银员通过执行寻找产品帮助以获取正确的商品ID及其价格。

2d.收银员可向其他员工询问商品ID或价格,然后手工输入ID或价格。

3b.当有多个商品项目属于同一类别的时候(如2件相同的上衣),不必记录每个商品项目的唯一标识:

1、收银员可以输入类别的标识和商品的数量。

3-6a.顾客要求收银员从所购商品中去掉一项:

1、收银员输入商品ID并将其删除。

2、系统删除该项目并显示更新后的累计额。

3-6b.顾客要求收银员取消销售交易

1、收银员在系统中取消销售交易。

3-6c.收银员延迟销售交易

1、系统记录销售交易信息,使其能够在任何POS登录中恢复操作。

2、系统显示用来恢复销售交易的“延迟票据”,其中包含商品项目和销售交易ID。

5a.系统检测到与外部税务计算系统服务的通信障碍:

1、系统在POS机节点上重启此服务,并继续操作。

1a.系统检测到该服务无法重启。。

1、系统提示错误。

2、收银员手工计算和输入税金,或者取消该销售交易。

5b.顾客符合打折条件:

1、顾客是会员:

1、输入顾客会员卡号。

2、系统按照打折规则显示折扣总计。

2、顾客符合当季打折要求。

  1. 1.   收银员选择折扣种类。

  2. 2.   系统按照打折规则显示折扣总计。

特殊需求:

  • 使用大尺寸平面显示器触摸屏UI。文本信息课件距离为1米。

  • 在访问远程服务失败的情况下具有比较强的恢复功能。

  • 支持文本显示的语言国际化。

技术与数据变元表:

*a.店长超控需要刷卡(由读卡器读取超控卡)或在键盘上输入授权码。

3a.商品ID可以用条码扫描器或键盘输入。

3b.商品ID可以使用UPC、EAN、JAN或SKU等任何一种编码方式。

5a.顾客的会员号可用刷卡读取或在键盘上输入。

发生频率:可能会不断地发生。


2.3 补充性规格说明

   补充性规格说明补货并确定其他类型的需求,如可靠性(如10000人并发访问)、可用性(如1米外轻松看到文本)、接口(如支持钱箱、支持网银支付接口)等。也可以包括其他跨越多个用例的功能性需求如报表、安全性、日志和错误处理、数据备份、数据导入导出等。

        简要描述本项目最终系统数据查询与报表,系统权限管理的功能需求。也可以描述项目组计划实现的其他需求。

功能性

1、日志和错误处理

在持久性存储中记录所有错误。

2、可插拔规则

在几个用例的不同场景点执行任意一组规则,以支持对系统功能的定制。

3、安全性

任何使用都需要经过用户认证。

可用性

1、店员能够看到POS屏幕显示器的显示:

1米外能够轻松的看到显示器上的文本。

避免使用一般色盲人群难以辨认的颜色。

2、快捷、准确的销售交易处理及其重要,因为购买者希望快速结束支付过程,否则会给他们的购买体验带来负面影响。

3、店员的视线通常停留在顾客或商品,而不是计算机显示器上,因此,提示和告警应该通过声音传递而不仅仅是通过图像传递。

可靠性

1、可恢复性

如果在使用外部服务(支付授权、账务系统等)时出现错误,为了完成销售交易,需要尝试才用本地方案(如存储和转发)加以解决。

2、性能

购买者希望非常快速的完成销售处理过程,因此,外部的支付授权是瓶颈之一,我们的目标是:90%的情况下,能够在1分钟之内完成授权。

3、数据备份

系统支持定时或实时的对数据进行备份,避免数据的破坏或者丢失,如处理销售交易过程中,系统出现闪退或者奔溃情况下导致的数据丢失或者需要重新录入。

可支持性

1、可适应性

不同客户在处理销售时有其特有的业务规则和处理需求。因此,在场景中的几个预定之处(如开始新的销售交易时,增加新的商品时),需要能够启用可插拔的业务规则。

2、可配置性

系统具备一定的可配置能力以适应该店对其POS系统的不同的网络配置需求。

实现约束

使用的程序设计语言为java,其具备易于开发,能够提高远期的移植和可支持性能力。

购买构件

税金计算器,必须支持用于不同国家的可插拔计算器。

免费开源构件

尽可能的使用免费的java 技术开源构件,如:

Maven

easyui

ssh

jquery

jeecg

接口

1、重要硬件和接口

显示屏(显示POS系统)。

条形码激光扫描仪(通常附加在一种特殊键盘上,扫描输入在软件中视为键盘输入)。

票据打印机

信用卡、借记卡读卡器

2、软件接口

由于存在众多外部协作系统,如税金计算器,账务,库存等,我们需要采用不同的接口,接入不同的系统。

所关注领域内的信息

1、信用卡和借记卡支付处理

当支付授权服务批准了信用卡或借记卡支付后,将由支付授权服务而不是买方来负责对卖方的支付。因此,对于每笔支付,卖方都需要将授权服务的未付金额记录于其应收账户下。通常,授权服务在每晚执行电子转账操作,将卖方当天的应收总额转入其账户下,同时对每笔交易扣除(少量的)服务费。

2、销售税

对税金计算采用税金计算器计算。

3、商品标识:UPCEANSKU、条形码和条形码读取装置

UPCEANSKU是常用的三种商品销售标识系统

2.4 系统顺序图与操作契约

系统顺序图(SSD)针对用例的一个特定场景,阐述从参与者到系统的跨越系统边界的事件制品,便于设计阶段为类分配职责。操作契约(Contract of Operation)定义了重要系统事件对领域模型内对象状态的变化。

A. 系统顺序图。使用UML顺序图,选择1个业务活动用例绘制系统顺序图。

B. 操作契约。选择系统顺序图中复杂的系统事件编写操作契约。

如有需要,使用UML状态图对某些关键对象(如订单)状态转换进行建模分析。


© 著作权归作者所有

共有 人打赏支持
scaujohn
粉丝 10
博文 11
码字总数 2821
作品 0
广州
加载中

评论(3)

12-opnzd
12-opnzd
贵组是比较超前的,但并不能给你们加分的喔0用例图太简单了,连个扩展都没有,还有税金计算器的那个方框并不代表参与者,所以以后画用例图要注意哈6363
J
JRJerry
132132刚刚给漏了一个,原谅我不懂怎么删掉评论
J
JRJerry
额,这有些不是细化迭代二的任务吧?系统用例图呢?补充性说明那可以写一下课本没有的,比如系统数据查询与报表、用户权限管理等132
MIS开发迭代1

1.1项目设想 A. 系统展望。 1、产品应用场景 (1)顾客携带所购书本到收银处通过POS机付款,收银员将顾客选购的商品逐一录入系统,系统显示最终总额,收银员告知顾客总金额,顾客选择支付方式...

fatwowzb ⋅ 2015/04/03 ⋅ 1

POS 细化迭代二开发文档

一,用例模型 1,系统用例图 2,开单用例分析 用例名:销售开单 主要参与者:收银员 主成功场景: (1),收银员开始新的一次销售 (2),收银员依次录入商品条目,选择数量(默认1) (3),...

Allen_Chou ⋅ 2015/04/17 ⋅ 3

统一软件开发过程——RUP

RUP(rational unified process)是一个面向对象且基于网络的程序开发方法论。它是以面向对象方法为基础的方法,RUP坚持以用例驱动,以架构为中心,迭代和增量的开发方法。 下面以思维导图为...

邵鸿鑫 ⋅ 2014/01/27 ⋅ 0

迭代1:二、开发计划

1.2 开发计划 A. 团队成员 项目经理:吴泽标,负责整个项目的进度安排,分配任务,督促团队进度 架构师:吴泽标,设计软件的体系结构和数据模型、代码编写 分析员:陈璇斐,理解项目需求,业...

fatwowzb ⋅ 2015/04/03 ⋅ 2

Scrum团队实践——流程

过去的一年里不知道你是否有这样的感受: 有时候我们常常会想,我整天瞎比忙,还不挣钱,多TM窝心的上。其实在管理层看来却是另一种景象:你整天的瞎比忙,还不出活。领导注重的是什么,他们...

缪斯的情人 ⋅ 2013/01/06 ⋅ 15

oKit V2.7于2013年2月6日正式发布

需求是研发类项目的重中之重,管好需求就意味着项目成功了一半,oKit V2.7提供了灵活强大的需求管理功能可以为您的项目管理提供鼎力支持。 您可以用oKit V2.7版规划产品线,而且需求、缺陷、...

redmaple ⋅ 2013/02/06 ⋅ 0

年度盘点 | 2016年中国云计算十大新闻

刚刚离去的2016,有太多值得我们思考与感悟,回顾过去的2016,是为了开启更好的2017。为此,中国软件网针对移动办公、CRM、HR、云计算、大数据、信息安全等细分领域以及软件园区2016年的发展...

玄学酱 ⋅ 04/23 ⋅ 0

PM项目经理面试问题

1.范围、时间,成本,这三项中哪些是可以由客户控制的? 范围、时间、成本,是项目管理中常说的三角关系。任何一方改变都可能牵扯到其他两方的变动。项目管理的本质,就是在保证质量的前提下...

-蒋全忠- ⋅ 2015/05/22 ⋅ 0

[铁道部信息化管理]核心业务需求及逻辑架构分析

12306的已知信息、数据及问题 需求分析(一)—— 售票系统领域知识(区间票、订票、预留票) 需求分析(二)—— 涉众、用户体验 核心业务需求及逻辑架构分析 需求分析(三)—— 票仓 票仓...

长征6号 ⋅ 2017/01/29 ⋅ 0

PMI-ACP 敏捷项目管理——模拟试题2

1、在项目的Sprint回顾会后,团队成员指出那是抱怨会,不是非常有效。Scrum主管应该怎么做? A 建议团队尊重敏捷宣言原则,解释其属于回顾会的组成部分 B 建议团队成员将他们的观察列入产品待...

隔壁老李头 ⋅ 2017/12/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

解决CentOS6、7,/etc/sysconfig/下没有iptables的问题

一、Centos 6版本解决办法: 1.任意运行一条iptables防火墙规则配置命令: iptables -P OUTPUT ACCEPT 2.对iptables服务进行保存: service iptables save 3.重启iptables服务: service ...

寰宇01 ⋅ 13分钟前 ⋅ 2

数据库备份和恢复

备份:mysqldump -u root -p 数据库>磁盘路径 恢复:mysql -u root -p 数据库<sql脚本的磁盘路径

anlve ⋅ 57分钟前 ⋅ 0

发生了什么?Linus 又发怒了?

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

问题终结者 ⋅ 今天 ⋅ 0

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 今天 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 今天 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部