1 前言超市作为人们日常生活不可或缺的一部分,而且随着经济的发展,超市的规模越来越大,商品的种类也越来越纷杂,一个高效实用的超市管理系统至关重要。
超市管理系统能帮助管理人员快速有效的管理进货,销售,库存,商品进销结算等各项业务,能极大的提高超市管理的高效性,实时性,安全性,科学性和智能化程度,从而降低营业成本和增加收益。
本系统大致可实现以下功能(模块):1.系统管理:包括密码验证和系统的登录与退出,还有密码修改等功能。
2.信息查询:包括进货信息和出货信息的查询,还有商品库存信息,资金结算信息查询等。
3.进出货管理:即超市日常进出货操作,包括进货和前台销售两个子管理系统。
4.商品信息管理:包括商品进出售的信息,销售商品的定价等。
能够执行添加,修改,删除,查询等操作。
本章将简要地说明本文档的目的、范围、参考文件和术语定义。
1.1目的本文档的目的在于给出“超市进销存管理系统”(以下简称本平台)的功能说明。
1)向用户描述“超市进销存管理系统”的功能;2)为编制后续各阶段的文档提供基本依据;3)提供给用户确认或本地化修改的基本文件;4)作为日后软件确认测试和系统验收之参考依据;5)作为日后系统维护工作基准文件。
本文档的内容涵盖了本系统的总体结构设计、软件运行环境设计、处理流程设计和软件功能设计等。
本文档的使用者包括本系统用户、需求分析人员、项目管理人员、软件设计人员、软件质量控制人员以及软件维护人员。
1.2范围软件产品名称:超市进销存管理系统V1.0通过使用本软件产品,能完成如下功能:1.采购员能实时得知库存不足的商品列表,方便进行采购2.经理能得到实时的营业分析,查看商品销售和采购情况,实时调整经营策略3.系统能对销售和采购单据进行有效管理,支持用户随时进行查询和统计4.前台POS系统能对售出的商品进行方便快捷的结算,且能与会员管理系统进行联接,支持会员功能5.管理员(业务员)能实时查看商品的库存动态,实时设置商品信息。
6.能对系统用户进行有效管理,安全性有保障系统不足:1.系统定位小型超市,对商品的库存管理这一块做的不够好,不支持多仓库商品调度2.营业分析模块对营业状况的多维度查询支持不够,功能比较简单。
软件系统应用后能产生的预期收益和目标:1.改变传统的人工管理方式,实现日常管理信息化。
2.通过对库存和销售信息的快速查询和处理,提高商品采购的速度和科学性3.提升超市管理水平,降低经营成本,提高工作效率。
1.3术语表1.4参考文献2 整体描述2.1产品描述背景和起源:随着经济的发展,超市的规模越来越大,传统的人工管理已不能适应当前超市的需要,为了提高超市的超市管理水平,降低经营成本,提高工作效率,实现日常管理信息化,故我们开发了此系统。
目标客户:由于系统功能限制,本系统主要目标客户是各个中小型超市客户业务需求:对本系统的客户(超市)来说,他们希望通过本系统达到以下目标:1.改变传统的人工管理方式,实现日常管理信息化。
2.通过对库存和销售信息的快速查询和处理,提高商品采购的速度和科学性3.提升超市管理水平,降低经营成本,提高工作效率。
由于现有同类系统早已存在,所以我们的系统应该定位为现有程序的替代产品本系统总体框架:2.2用户分类及其功能需求使用本系统的都是超市的工作人员:经理,采购员,收银员,业务员(系统管理员)经理需要通过此系统对超市的经营情况进行统计,从而进行营业分析。
采购员通过查询商品库存信息,再加上系统能自动产生库存不足商品的列表,能实时的把握采购信息。
收银员只要在顾客结账时将商品进行结算,POS前台子系统能够在收银员给出商品的条形码和数量后计算出顾客的应付款额。
系统管理员能对系统的帐户进行管理,还得设置商品信息,同时还可以进行单据查询。
顾客虽然不是系统的保用者,但要求打出的小票能详细,准确。
2.3功能需求超市经理:查询统计报表(包括销售报表,采购报表等),各种数据分析,了解经营状况能随时查询商品信息,了解超市商品动态系统管理人员:信息查询:包括库存信息,各种类商品基本信息,商品销售和采购信息。
商品基本信息设置:商品分类,商品基本信息设置,能进行删除,添加和修改等操作,还能对会员折扣进行设置。
帐户和密码管理:对其他用户的帐户和密码进行管理,包括新建,删除和密码修改等操作。
超市采购人员:采购人员能即时查看库存和销售信息。
系统能自动产生库存不足商品列表,让采购员进行采购。
前台POS机(收银员):收银员在给出待结算商品的信息(包括商品的编号,数目,是否会员信息等)后,系统能给出结算清单(包括商品的详细信息,应付款额等)。
顾客:能得到其选购商品的结算清单,从而进行核对和付款。
2.4非功能需求经理:查询报表和数据分析时响应速度要在20秒钟以内操作界面要简洁,实用,易于操作系统管理人员:系统要简单易用,维护要相对简单响应速度要控制在20秒钟之内登陆帐号和密码要加密传输系统可靠率要控制在99%以上超市采购人员:查询库存等信息时响应速度应在20秒钟之内要随时能对库存不足商品列表进行查询前台POS机(收银员):计算详细清单的时间要在3秒钟之内计算要准确可靠顾客:清单上的内容要尽可能的详细,从而方便进行核对2.5设计与实现上的约束1. 项目管理平台为基于GForge的年度创新项目管理网站。
2. 开发环境为NetBean 6.5(IDE)3.语言使用java4.数据库为Microsoft SQL Sever 20055.必须使用三层架构,以方便以后修改6.平台必须能在Windows操作系统上正常运行7.平台要遵守TCP/IP网络协议8.硬件要求不能超过9.数据转换格式无要求10.与其他系统之间的接口无要求(本平台是独立于其他平台开发的)2.6 运行环境(来源于CP2的“设计约束”)后台服务器端:客户端:2.7 业务规则由于系统的的业务主要是针对顾客,而顾客又分为会员和非会员,一般来说,同一商品可能对会员有一定的折扣,系统能让管理员在商品信息表中为商品设置一个会员折扣,从而在会员顾客结帐时获得优惠。
2.8 未来的需求由于现在的系统不能支持仓库管理,而现实中的大超市一般都是连锁的,有很多的子超市和很多的仓库,所以未来我们可能加上多超市多仓库的连锁管理和商品调度,同时有进行营业分析时也能更细化,支持更多维度查询,可能到时系统改变会很大。
3 需求描述3.1结构化需求分析3.1.1子系统13.1.1.1数据流图(DFD)3.1.1.2外部实体经理3.1.1.3加工过程●输入数据流采购和销售单据●内部处理逻辑(结构化英语、判定树)1.1采购统计:对符合条件的采购单据进行统计if(还有符合统计条件的采购单){采购单数加1;采购数量=原采购数量+这张采购单上的采购商品数量;采购金额=原金额+这张采购单上的总金额;把单据详细信息加入到统计报表中输出;}1.2 销售统计对符合条件的销售单据进行统计if(还有符合统计条件的销售单){销售单数加1;销售数量=原销售数量+这张销售单上的销售商品数量;销售金额=原金额+这张销售单上的销售额;把单据详细信息加入到统计报表中输出;}1.3 库存信息查询对符合条件的商品信息进行查询If (还有符合查询条件的商品){商品种类加1;商品总库库存量=原总量+此种商品库存量;库存商品总价值=原总价+此种商品库存总价值;把详细信息输出;}输出数据流采购统计报表和销售统计报表,库存商品信息3.1.1.4数据流1.采购单数据流名称:采购单别名:无简述:采购部门采购完商品后填写的单据来源:采购记录去向:加工1.1“采购统计”组成:采购单编号+供货商+采购日期+总金额+采购员编号+经办人编号+{商品编号+商品名称+生产厂商+单位+商品数目+单价+总额+备注}采购单编号=年+月+日+“0000”..”9999”供货商={汉字|英文字母|数字}0-10采购日期=年+月+日总金额=浮点数采购员编号=”a”+”00”..”99”经办人编号=”b”+”00”..”99”商品编号={0..9}10商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20单位={汉字|字母}1-2商品数目=整数单价=浮点数总额=浮点数备注={汉字|英文字母|数字}0-30频率:大约20条/天2.销售单数据流名称:销售单别名:无简述:前台POS机销售商品后产生的单据来源:销售记录去向:加工1.2“销售统计”组成:销售单编号+开单日期+总金额+收银员编号+ {商品编号+商品名称+生产厂商+单位+商品数目+单价+总额+备注}销售单编号=年+月+日+“0000”..”9999”开单日期=年+月+日总金额=浮点数收银员编号=”c”+”00”..”99”商品编号={0..9}10商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20单位={汉字|字母}1-2商品数目=整数单价=浮点数总额=浮点数备注={汉字|英文字母|数字}0-30频率:大约3000条/天3.商品信息数据流名称:商品信息简述:用来描述商品来源:商品信息记录去向:加工1.3库存信息统计组成:商品编号+商品类别+商品名称+生产厂商+单位+当前库存+库存下限+上次采购单价+预售单价+会员折扣+备注}商品编号={0..9}10商品类别={汉字}2-5商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20单位={汉字|字母}1-2当前库存=整数库存下限=整数上次采购单价=浮点数预售单价=浮点数会员折扣=[1..100]备注={汉字|英文字母|数字}0-304.销售统计报表数据流名称:销售统计报表来源:加工1.2“销售统计”去向:经理组成:销售单数+销售数量+销售总额+{销售单}销售单数=整数销售数量=整数销售总额=浮点数5.采购统计报表数据流名称:采购统计报表来源:加工1.1“采购统计”去向:经理组成:采购单数+采购数量+采购总额+{采购单}采购单数=整数采购数量=整数采购总额=浮点数6.库存商品信息数据流名称:库存信息来源:加工1.3“库存统计”去向:经理组成:商品种类数+库存总数量+库存商品总金额+{商品信息}商品种类数=整数库存总数量=整数库存商品总金额=浮点数3.1.1.5数据存储1.采购记录数据存取名称:采购记录简述:用来记录采购单据的信息组成:采购单编号+供货商+采购日期+总金额+采购员编号+经办人编号+{商品编号+商品名称+生产厂商+单位+商品数目+单价+总额+备注}采购单编号=年+月+日+“0000”..”9999”供货商={汉字|英文字母|数字}0-10采购日期=年+月+日总金额=浮点数采购员编号=”a”+”00”..”99”经办人编号=”b”+”00”..”99”商品编号={0..9}10商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20单位={汉字|字母}1-2商品数目=整数单价=浮点数总额=浮点数备注={汉字|英文字母|数字}0-30组织方式:索引文件,以采购单编号为主码查询要求:能随时查询其中的每一张单据2.销售记录数据存取名称:销售记录简述:用来记录商品销售单据的信息组成:销售单编号+开单日期+总金额+收银员编号+ {商品编号+商品名称+生产厂商+单位+商品数目+单价+总额+备注}销售单编号=年+月+日+“0000”..”9999”开单日期=年+月+日总金额=浮点数收银员编号=”c”+”00”..”99”商品编号={0..9}10商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20单位={汉字|字母}1-2商品数目=整数单价=浮点数总额=浮点数备注={汉字|英文字母|数字}0-30组织方式:索引文件,以销售单编号为主码查询要求:能随时对其中的每一张单据进行查询3. 商品信息记录数据存取名称:商品信息记录简述:用来记录商品详细信息组成:商品编号+商品类别+商品名称+生产厂商+单位+当前库存+库存下限+上次采购单价+预售单价+会员折扣+备注}商品编号={0..9}10商品类别={汉字}2-5商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20单位={汉字|字母}1-2当前库存=整数库存下限=整数上次采购单价=浮点数预售单价=浮点数会员折扣=[1..100]备注={汉字|英文字母|数字}0-30组织方式:索引文件,以商品编号为主码查询要求:能随时对其中的每一种商品进行查询3.1.2子系统23.1.2. 1层数据流图(DFD)3.1.2. 2 外部实体(external entity)顾客,收银员3.1.2.3 加工过程(operation process)3.1.2.3.1 输入数据流商品名称与价格信息3.1.2.3.2 内部处理逻辑(结构化英语)2.1会员卡识别:利用刷卡机读取会员卡信息;将该会员卡的折扣数目交给结算系统;2.2 详单结算:While(仍有商品){接收条形码识别器提交的商品名称与价格信息;将商品价格显示在LED上;If(!顾客对商品价格存在疑问并想撤销对当前商品的购买) then{商品价钱总额=商品价钱总额+当前扫描商品价格 * 数量;将商品名称、价格与数量打印在小票上;}Else 收银员将商品收回;}商品价钱总额=商品价钱总额 * 折扣信息;向收银员显示收费总额信息;接收到顾客付款信息;找零金额=付款金额-商品价钱总额;向收银员显示找零总额信息;打印小票;2.3 条形码识别器识别当前条形码;将条形码与数量信息交予商品信息记录库;接收商品信息记录库的商品名称与价格信息;将商品名称与价格信息交与详单结算系统;3.2.3.3 输出数据流商品条形码与数量信息销售单据/小票3.1.2.4 数据流(data entity)1.商品名称与价格信息数据流名称:商品名称与价格信息别名:无简述:商品信息记录库根据条形码向条形码识别器提交的商品信息,条形码识别器向详单结算系统提交的商品信息来源:商品信息记录库,条形码识别器去向:条形码识别器,详单结算系统组成:商品名称+商品价格商品名称={汉字|英文字母|数字}2-102. 商品条形码与数量信息数据流名称:商品条形码与数量信息别名:无简述:条形码识别器向商品信息记录库提交的商品条形码与数量信息来源:条形码识别器去向:商品信息记录库组成:商品条形码+商品数量商品条形码={数字}103. 销售单据数据流名称:销售单据别名:小票简述:在所有商品扫描完毕后,结算出总金额,并将详单打印出存入单据记录库和交与顾客核实来源:详单结算系统去向:销售单据记录库,顾客组成:销售单编号+开单日期+总金额+收银员编号+ {商品编号+商品名称+生产厂商+单位+商品数目+单价+总额+备注}销售单编号=年+月+日+“0000”..”9999”开单日期=年+月+日总金额=浮点数收银员编号=”c”+”00”..”99”商品编号={0..9}10商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20单位={汉字|字母}1-2商品数目=整数单价=浮点数总额=浮点数备注={汉字|英文字母|数字}0-303.1.2.5 数据实体(data entity)1.销售记录数据存取名称:销售记录简述:用来记录商品销售单据的信息组成:销售单编号+开单日期+总金额+收银员编号+ {商品编号+商品名称+生产厂商+单位+商品数目+单价+总额+备注}销售单编号=年+月+日+“0000”..”9999”开单日期=年+月+日总金额=浮点数收银员编号=”c”+”00”..”99”商品编号={0..9}10商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20单位={汉字|字母}1-2商品数目=整数单价=浮点数总额=浮点数备注={汉字|英文字母|数字}0-30组织方式:索引文件,以销售单编号为主码查询要求:能随时对其中的每一张单据进行查询2 商品信息记录数据存取名称:商品信息记录简述:用来记录商品详细信息组成:商品编号+商品类别+商品名称+生产厂商+单位+当前库存+库存下限+上次采购单价+预售单价+会员折扣+备注}商品编号={0..9}10商品类别={汉字}2-5商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20单位={汉字|字母}1-2当前库存=整数库存下限=整数上次采购单价=浮点数预售单价=浮点数会员折扣=[1..100]备注={汉字|英文字母|数字}0-30组织方式:索引文件,以商品编号为主码查询要求:能随时对其中的每一种商品进行查询3.1.3子系统33.1.3. 1层数据流图(DFD)3.1.3.2 外部实体(external entity)采购员3.1.3.3 加工过程(operation process)3.3.3.1 输入数据流库存不足商品列表以及当前商品信息3.3.3.2 内部处理逻辑(结构化英语)3.1 统计库存不足商品While(仍有商品未经过检查){读取当前商品的数量;If(当前商品数量<最小应储备量){将该商品加到需采购商品列表中;在需采购商品列表中添加应采购数量等信息;}}打印并交由采购员;3.2 查询库存信息根据当前商品形势确定最小应储备量;For(每种商品){If(当前商品储存量<最小应储备量){将该商品加到需采购商品列表中;在需采购商品列表中添加应采购数量等信息;}}打印并交由采购员;3.3 处理采购单While(仍有未处理采购单){If(采购单撒谎那个的商品购买成功){采购单标记并存档;根据采购单内容更新当前商品信息记录(即库存);}else 重返采购单;}3.1.3.3.3 输出数据流采购信息3.1.3.4 数据流(data entity)1. 商品存储信息数据流名称:商品储存信息简述:用来记录商品储存等详细信息来源:当前商品信息记录即当前库存去向:统计计算组成:商品编号+商品类别+商品名称+生产厂商+单位+当前库存+库存下限+上次采购单价+预售单价+会员折扣+备注}商品编号={0..9}10商品类别={汉字}2-5商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20当前库存={0…….9}2-20库存下限={0…….9}2-20备注={汉字|英文字母|数字}0-302. 库存不足商品数据流名称:库存不足商品信息简述:用来记录库存不足商品信息来源:当前存储信息去向:采购员组成:商品编号+商品类别+商品名称+生产厂商+单位+当前库存+库存下限+需采购数量商品编号={0..9}10商品类别={汉字}2-5商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20当前库存={0…….9}2-20库存下限={0…….9}2-20需采购数量={0……9}2-203.采购单数据流名称:采购单别名:无简述:采购部门采购完商品后填写的单据来源:采购员去向:采购单储存单元组成:采购单编号+供货商+采购日期+总金额+采购员编号+经办人编号+{商品编号+商品名称+生产厂商+单位+商品数目+单价+总额+备注}采购单编号=年+月+日+“0000”..”9999”供货商={汉字|英文字母|数字}2-10采购日期=年+月+日采购员编号=”a”+”00”..”99”经办人编号=”b”+”00”..”99”商品编号={0..9}10商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20商品数目={0……9}2-20单价={0…..9}.{0……9}备注={汉字|英文字母|数字}2-30频率:大约20条/天3.1.3.5 数据实体(data entity)1.采购单记录数据项名称:采购单别名:无简述:采购部门采购完商品后填写的单据储存后以便查询组成:采购单编号+供货商+采购日期+总金额+采购员编号+经办人编号+{商品编号+商品名称+生产厂商+单位+商品数目+单价+总额+备注}采购单编号=年+月+日+“0000”..”9999”供货商={汉字|英文字母|数字}2-10采购日期=年+月+日采购员编号=”a”+”00”..”99”经办人编号=”b”+”00”..”99”商品编号={0..9}10商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20商品数目={0……9}2-20单价={0…..9}.{0……9}备注={汉字|英文字母|数字}2-30频率:大约20条/天组织方式:索引文件,以商品编号为主码查询要求:能随时对其中的每一种商品进行查询2.当前商品信息记录数据存取名称:商品信息记录简述:用来记录商品详细信息组成:商品编号+商品类别+商品名称+生产厂商+单位+当前库存+库存下限+上次采购单价+预售单价+会员折扣+备注}商品编号={0..9}10商品类别={汉字}2-5商品名称={汉字|英文字母|数字}2-10生产厂商={汉字|英文字母|数字}2-20备注={汉字|英文字母|数字}2-30组织方式:索引文件,以商品编号为主码查询要求:能随时对其中的每一种商品进行查询3.1.4子系统43.1.4.1 1层数据流图(DFD)3.1.4.2 外部实体(external entity)管理员3.1.4.3 加工过程(operation process)3.1.4.3.1 输入数据流账户查询条件;更新的账户信息;商品查询条件;更新的商品信息;单据查询条件;3.1.4.3.2 内部处理逻辑(结构化英语)4.1查询账户信息If(收到账户条件查询请求){从文件读入账户信息;按照查询条件组成列表打印给管理员;}4.2设置账户信息If(收到账户设置信息){按照设置条件更新账户记录并将改变写入文件;从文件读入新的账户记录,将其中更改的项目展示给管理员;}4.3查询商品信息If(收到商品条件查询请求){从文件读入商品信息;按照查询条件组成列表打印给管理员;}4.4设置商品信息If(收到商品设置信息){按照设置条件更新商品记录并将改变写入文件;从文件读入新的商品记录,将其中更改的项目展示给管理员;}4.5查询单据信息If(收到商品条件查询请求){If(是采购单据查询){从采购单据文件读入采购信息;按照查询条件组成列表打印给管理员;}Else{从销售单据文件读入采购信息;按照查询条件组成列表打印给管理员;}}3.1.4.3.3 输出数据流符合条件的账户信息列表;更改后的账户信息列表;符合条件的商品信息列表;更改后的商品信息列表;符合条件的单据信息列表;3.1.4.4 数据流(data entity)3.1.4.4.1 数据流类型1.账户查询条件数据流名称:账户查询条件简述:管理员输入的针对账户的条件查询来源:管理员去向:4.1查询账户信息组成:(账户ID)+(账户昵称)+(账户类型)+ (账户是否在线) +(账户年龄) + (账户性别)+ (薪水)账户ID={0..9}10账户昵称={汉字|英文字母|数字|_}2-10账户类型=管理员|经理|收银员|采购员账户是否在线=是|否账户年龄=16..99账户性别=男|女薪水=整数2.更新的账户信息数据流名称:更新的账户信息简述:管理员输入针对某些用户的更新,可能是添加用户,也可能是对已有的用户作修改来源:管理员去向:4.2设置账户信息组成:账户ID +(账户昵称)+(账户密码)+ 账户类型 +(账户年龄) + (账户性别)+ 薪水 +(备注)。