超市收银系统开发文档学习资料.docx
《超市收银系统开发文档学习资料.docx》由会员分享,可在线阅读,更多相关《超市收银系统开发文档学习资料.docx(11页珍藏版)》请在冰豆网上搜索。
超市收银系统开发文档学习资料
超市收银系统开发文档
超市收银系统
作者
发布范围
版本
发布日期
发布日期
版本
说明
作者
一、项目目标
熟悉Java基本语法,面向对象编程思想,JDBC技术,数据库开发,MSSQL2005使用,T-SQL编程,存储过程开发。
二、开发语言
Java
三、开发环境
JDK5.0,MyEclipse5.5,MSSQL2005,Windows2003
四、需求分析文档
1.引言
1.1编写目的
此需求规格说明书对“超市收银系统”做了全面细致的用户需求分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。
本说明书的预期读者为客户、业务或需求分析人员、开发人员、测试人员、用户文档编写者、项目管理人员。
1.2背景
XX超市是一家小型的社区连锁超市,在各个社区都有一家门店,总部向各个门店统一配货,门店负责销售,商品价格由总部制订,门店销售收入统一上缴总部,滞销商品也退还总部。
为了便于管理门店,尤其是对营业情况的及时掌握和分析,调整经营策略,同时减少人为的错误,避免中间环节的贪污行为,每个社区门店的进货,滞销商品退回总部,销售,货物盘点,销售统计,营业分析,会员管理等都由计算机系统来管理,系统具有强制、安全、保密等措施,并且与总部的软件系统相连。
本系统是销售子系统中的收银部分,与进退货,盘点,销售统计,营业分析,会员管理等子系统有关联,使用的是同一个数据库。
本系统的正式名称为“XX超市收银系统”,委托XX开发,其使用者是社区超市的营业员。
1.3定义
(1)商品条形码:
每种商品具有唯一的编号,商品价格由商品条形码确定
(2)交易清单:
包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号。
(4)会员号:
每个会员都有一个唯一的编号
(3)会员价:
对会员的优惠价格,比正常的商品销售价格低,具体价格由总部确定,不是所有的商品同一个折扣
1.4参考资料
厦门市前程无忧职业培训学校实训项目文档撰写模板。
2.任务概述
2.1目标
通过扫描条形码或者直接输入商品条形码(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。
在顾客付款后,自动计算找零,同时保存销售记录,打印交易清单(包括交易的流水账号、每类商品的商品名、数量、总金额、交易的时间、负责本次收银的员工号)。
如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行会员价优惠,并将所购物品的总金额累计到该会员的总消费金额中。
系统还应有登陆、注销、操作锁定等功能。
2.2用户的特点
本系统的用户为门店的营业员,对计算机熟练程序一般,同时为避免出现顾客买单排队等候时间过长的问题,系统界面应尽可能友好,操作简单,最好是一键式操作,以便营业员快速为顾客服务。
同时系统应该有一定的错误识别和预防功能,以防止营业员的错误操作。
2.3假定和约束
已有的约束条件包括:
A.本系统所采用的数据库是现成的(mssql2005,运行于门店数据库服务器上,收银系统通过网络与数据库服务器连接),不能重新设计新的数据库,只能查询或更新现有数据
B.本系统的开发周期为2周
C.因为门店众多,各个门店的计算机设备系统不一致,本系统要具备跨平台的特点
D.本系统不应对门店其他管理系统产生干扰
其他无
3.需求规定
3.1对功能的规定
3.1.1登录
系统启动后,显示欢迎界面,提醒收银注意事项,然后提示营业员输入员工编号和正确的密码。
如果输入错误,则系统停留在欢迎界面,不能进行其他操作,直到输入正确的员工编号和密码为止。
员工编号和密码都是数字类型,不能输入其他字符。
3.1.2顾客买单
首先提示输入会员卡号,对输入的卡号进行检测,如果输入错误提示重新输入,也可以不输入卡号(非会员),以非会员单价结算。
然后逐一输入所购商品的条形码(扫描输入或手工输入等效),输入条形码后及时显示商品的名称和单价(会员显示会员价),如果条形码输入错误,则提示重新输入,直到正确为止。
输入正确的条形码,显示商品名称单价后,提示输入商品的数量,商品数量默认是1。
每一种商品输入后,及时显示商品总数和总金额。
买单过程中可以对已经输入的商品进行退货处理,但是买单结束后不能退货,要退货必须找门店负责人通过其他途径退货,本系统不需支持这类退货功能。
所有商品的条形码,数量输入结束后,提示输入顾客的付款,顾客付款一定要大于或等于应付款,否则应重新输入,直到正确为止。
输入顾客付款后,更改数据库中商品的库存信息,将销售信息保存到数据库的销售表和销售明细表中,将会员的消费金额累计到会员总消费金额中。
以上操作全部正确完成后,显示应付款,顾客付款和找零,并打印销售清单。
如果以上操作中途出现意外,系统应恢复到重新开始买单的初始界面。
不应对数据库有任何更新。
本次销售结束后,即可进行下一次销售。
销售过程中可随时选择终止,直接进行一下次销售,不会更新数据库。
因为顾客都是拿着商品来结帐,不存在实际有商品而数据库中库存没有的情况,系统对此应该有检测机制。
3.1.3挂帐
某一次买单进行过程中,因为顾客的原因(需要临时增加商品或其他原因)暂时无法进行,为不影响后面排队顾客的结帐,系统可以暂时将该次买单挂帐,先处理后面的买单,当前面顾客回来继续买单时,可以将挂帐信息及时调出。
同一时刻只能有一个挂帐。
3.1.4锁定/开锁
营业员可能暂时离开收银台,可以锁定系统,在锁定状态下,系统不能执行任何操作。
营业员可以通过输入自己的密码,解除锁定,解除锁定后,系统回到开始买单的初始界面。
3.1.5营业员注销
营业员结束收银后,可以注销系统,注销前系统将本营业员的员工编号,本次收银开始时间,结束时间,收银次数,销售总数,销售总金额保存在数据库中。
之后系统恢复到欢迎界面。
3.2对性能的规定
3.2.1精度
商品的单价精确到分。
对时间的记录精确到分。
数据库中的数据应始终保持准确,不能因为添加,修改或其他操作而产生错误,不一致的数据。
3.2.2时间特性要求
当输入会员卡号后要及时判断是否正确,时间不超过1秒;
当输入商品条形码后要及时显示商品信息,时间不超过1秒;
当输入顾客付款后,开始更新数据库,生成销售清单,此过程到打印清单开始前时间不超过3秒。
3.2.3灵活性
一般情况下,营业员只需要使用回车键就可以,不需要多余的操作。
其他操作一般一键即可调出,按ESC即可结束。
整个买单过程可随时终止,直接进行下一次买单,不影响数据库中数据的正确性。
3.3输入输出要求
输入员工编号,固定为9位数字,密码为8-12位数字。
输入会员编码,固定为10位数字。
输入商品条形码,为8-13位数字。
时间以数据库的时间为准,不以门店收银的系统为准。
对于不合法的输入,系统应该拒绝。
输出要求按数据库需要的格式进行,打印的销售清单格式如下:
**********************第0701********号*************************
会员:
12345678902007年01月04日14时05分
产品编号产品名称数量单价金额
2345678912345adidas运动鞋12270.03240.0
3345124789765Nike运动T-Shirt3450.01350.0
3545233445345九阳JY3180.0540.0
3424234534232海尔洗衣机1540.0540.0
*****************************************************************
总计:
195670.0RMB
收款:
6000.00元,找零:
330.00元
营业员:
10003
3.4数据管理能力要求
系统使用现有的数据库,只根据需要查询或更新现有数据,本身对数据管理无要求。
3.5故障处理要求
A、在用户输入一些不合理的数据的时候,能够进行一些合理的提示信息,不能因为输入错误而导致系统的错误,或者程序停止运行;
B、程序运行时,对数据库服务器和网络通信故障能够识别并提示,当故障排除后,程序恢复正常运行,不影响数据库中数据的准确性;
C、如果系统本身出现故障,或出现停电等特殊情况,要保证数据库中数据的正确性,并在故障排除后可恢复继续运行。
3.6其他专门要求
A.安全性,除了正常买单之外,不允许对数据库中的数据进行更改,不允许查看数据库中的原始数据,
B.可扩展性,系统应该考虑到未来数据库可能升级到ORACLE,系统本身可能增加的功能包括模糊查询商品信息;销售清单可以任意设定纸张及打印的格式;可自定义操作键,方便营业员的操作习惯;其他功能包括支持各种外设:
条形码扫描枪、客户显示屏、POS小票打印机、钱箱、电子条码称、盘点机等。
C.健壮性,系统应保证一次开机后稳定运行24小时,性能不能下降。
4.运行环境规定
4.1设备
具有PentiumIII处理器且满足以下要求的计算机:
最低512MB内存
最小5GB硬盘
鼠标,键盘,标准显示器
4.2支持软件
Windows2000以上的操作系统,JDK5.0以上
4.3接口
硬件接口:
与打印设备和条形码输入设备的接口
软件接口:
通过JDBC与数据库连接
4.4控制
无
五、系统开发说明
1.系统功能图
⏹营业员登录
⏹顾客买单
◆挂帐
⏹锁定/开锁
⏹营业员注销
⏹系统设置功能
2.各功能开发详细说明
⏹营业员登录
营业员登录后修改数据库,将登录时间记录在数据库(使用数据库服务器的时间)。
为了提高响应速度,系统在登录后,将商品的编号,名称,单价,会员价等信息读入到内存中,保存在HASHMAP集合中,便于买单的时候及时查询,而不是频繁的访问数据库,因为这些信息很少更新,不需要每次都查询数据库。
如果有新的商品入库,只需要调用输入新商品这个功能,把商品编号,名称,单价,会员价追加到MAP中即可。
如果某种商品因为某些原因,现在不能销售,只需要调用删除商品这个功能,把它从MAP中去掉即可,不需要访问数据库。
把会员编号也全部读到内存,保存在HASHSET中,便于及时查询。
以上操作,不会影响到数据库中的数据,所以是安全的。
(注:
在填充MAP前,还应检查是否有未更新到数据库的销售记录,如果有,先更新本地的销售记录到数据库。
见买单功能)
店长登录显示设置功能菜单。
⏹顾客买单
A.为提高响应速度,买单时将销售信息暂时保存在本地,先结帐,然后更新数据库,更新数据库的操作在一个事务中,要么全部成功,要么全部不成功,更新数据库放在一个单独的线程中。
B.更新结束后,将保存在本地的销售记录删除。
为提高响应速度,可以在数据库中设计存储过程。
C.销售清单的流水号由本机的时间(精确到千分之一秒)组成,流水号保存在数据库中,可以通过流水号判断该清单是否被更新到数据库。
D.每一次买单后将本次营业的收银次数加1,总金额追加。
该信息也应该保存到本地,以便发生故障时恢复。
◆挂帐
挂帐信息不需要保存到本地,如果发生故障后,重新开始即可。
⏹锁定/解锁
⏹营业员注销
更新数据库,将营业员结束营业时间,本次共收银次数,总金额等保存到数据库。
⏹系统设置功能
输入店长的信息,可以输入暂时不销售商品的编号,从MAP中删除,不需更新数据库,输入新增加的商品同样操作。
其他的设置功能暂不提供(后续版本可能会扩展)。
3.系统设计思路
⏹数据库设计图
本系统使用现有数据库,不需要设计新的数据库。
现有数据库结构如下:
⏹系统体系结构图
数据库
界面层和控制层
数据处理层
⏹类图
⏹公用模块设计类图:
无
⏹每个具体模块的设计类图:
无
六、开发计划
a)工作分解及进度
阶段
具体内容
里程碑(阶段控制点)
时间
理解需求
看需求说明文档,与项目经理,同事一起讨论,找出技术盲点先学习,并就如何完成该系统形成大致的思路
明确功能需求,并且正式开始项目的设计工作
10天
概要设计
1.将系统按功能划分成模块。
2.确定每个模块的功能。
3.确定模块之间的调用关系。
4.确定模块之间的接口,即模块之间传递的信息。
5.评价模块结构的质量
(本系统无数据库设计部分)
形成概要设计文档
2天
详细设计
1.为每个模块进行详细的算法设计。
用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
2.为模块内的数据结构和函数进行设计。
3.其他设计:
输入/输出格式设计,人机对话设计
(本系统不需要数据库物理设计)
相成详细设计文档
2天
编码实现及单元测试
按照详细设计文档,编写结构体,各函数,并测试函数的正确性(白盒测试)
各模块编码,单元测试完成
10天
测试
根据需求说明测试系统,看功能是否实现(黑盒测试)
系统测试完成
1天
部署
本软件无部署要求
在只有操作系统的情况下部署,数据库再另一台机器上
1天
总结
总结开发过程,各阶段存在的问题,下次改进措施,技术及开发经验的收获
对项目目标中要求的技术已经掌握
1天
b)沟通计划
因本项目是个人开发,不存在相互沟通问题,但可以集中讨论,以便互相借鉴,每天集中沟通1小时,重点解决技术问题。
c)关键问题
在出现故障时,如何保证数据库中数据的正确性及恢复系统
七、注意事项或技术难点
a)面向对象设计思想
b)集合的使用,序列化的意义
c)多线程的使用
d)JDBC技术,支持多种数据库的设计
e)软件部署