无人超市管理系统的设计与实现
无人超市管理系统的设计与实现
1.软件开发绘图工具visio
借助Microsoft visio2003来设计无人超市管理系统的基本流程图模型
1) 熟悉visio的工作环境及组成;
2) 掌握visio软件绘制图变的基本操作;
3) 熟练使用visio的图形模版绘制出专业图表。
步骤说明
1) 通过打开模版并向图表添加形状来开始创建图表
2) 在图表中移动形状并调整形状的大小
3) 向表中添加文本
4) 连接图表中的形状
5) 设置图表中形状的格式
6) 保存图表以完成
实验过程
1.visio 软件的功能与特点
visio 软件是Microsoft公司开发的图表设计软件,可以让用户在软件上设计流程图,设计甘特图,设计逻辑图,设计思维图,内置丰富的设计工具,结合大部分office的功能,让这款软件更加适合办公使用,让企业员工可以在自己熟悉的界面继续工作,内置的功能很多,集成的office组件也很多
其主要功能有如下:
- 创建专业图表
借助熟悉的 Office 体验,通过visio2019可以轻松直观地创建流程图、图表、组织结构图、平面布置图、工程设计图以及其他使用现代形状和模板的内容。
- 协作共赢
协作处理 Visio 流程图,以包括所有利益干系人的见解。使用 Office 365,多个团队成员可以同时处理图表
- 获取实际见解
将流程图和图表连接到实时数据。在 Visio 中或者利用 Office 365,应用的形状格式可自动更新流程图,以反映基础数据的更改
其具备以下特点:
提供图形查找功能在, 并支持将项目保存到云端,可以直接上传云盘保存
支持绘图功能,可以打开一个绘图作品到软件修改
支持浏览功能,可以将本地的图像添加到软件查
支持限制对此关系图的权限
设置浏览器视图选项并检查数据连接
可以设置单个页面的可见性,并为保存到Web的关系图配置数据刷新
选择可查看的页面和可刷新的数据源,当在Web上查看关系图时,将可以使用这些页面和数据源
所有页面和数据源在 Visio中都保持可用
删除个人信息:可以删除可能不需要共享的隐藏信息或个人信息
检查辅助功能:检查关系图中是否有残疾人士阅读困难的内容
缩减文件大小:通过让 Visio删除此文件中不使用的项可以减小文件大小
2.visio软件绘制的流程图如下:
基于“无人超市管理系统”设计概念及实验步骤参考,此处借助visio2003软件简单构建“无人超市管理系统”的设计和实验分析的流程图,具体实验步骤和说明如下所示:
“无人超市管理系统”实验设计流程参考说明:开始->visio软件安装与配置->“无人超市管理系统”选题->软件需求分析->软件概要设计->软件详细设计->软件测试和调试
通过打开模版并向图表添加形状来开始创建图表
创建流程图模板->构建基本流程图
创建完成,指定文件保存的基本路径,随后进入下一个步骤进行画图
在图表中移动形状并调整形状的大小
流程图构建:基本流程图形状引入(通过选中、拖拽的方式)
向表中添加文本
依据流程说明填充文本
连接图表中的形状
借助图标的箭头形状将图标的各个节点进行连接
设置图表中形状的格式
图标中形状的格式通过自定义调整,此外还可调整相关的背景样式和文本设定
选定流程图形状,其可在绘制过程中根据实际需求调整为相应的状态,适用于不同场景切换(进程、判定、数据、文档等)
保存图表以完成
保存图表,展示成果如下所示
3.实验小结
本次实验掌握了visio2003软件的安装配置,熟悉软件相关操作及功能的应用。由于visio版本更新迭代,功能和相关设计的扩展也在不断地迭代和变化,对比2003版本的visio,高版本引入了更为丰富的图形模板和设计概念,便于我们在实践中更好地通过图表去阐述我们的设计理念。主要是涉及到visio软件的基本功能应用,了解不同绘图类型的相关组件和设计,为后续开展“无人超市管理系统”的设计与实现奠定相应的基础。
实验二 软件需求分析
实验项目名称:软件需求分析
一、实验目的
1) 掌握系统的功能描述、性能描述方法;
2) 掌握需求分析工具数据流程图、数据字典等;
3) 掌握系统需求分析的步骤和方法。
二、实验内容
用结构化数据流分析技术进行软件系统需求分析,得出系统的数据流程图和数据字典。
三、实验步骤
到相关单位进行需求分析
综合利用Internet网和相关书籍整理并完善需求分析。
画出系统数据流图(分析系统是事务型还是变换型)
得出系统数据字典
四、实验过程
1.软件系统需求描述:(从功能,性能上进行描述)
随着时代的发展和变化,人们对于无人超市的需求也越来越大。于2016年初次提出亚马逊Amazon Go无人便利店,颠覆了传统便利店、超市的运营模式,使用计算机视觉、深度学习以及传感器融合等技术,彻底跳过传统收银结帐的过程,“无人超市概念”正式现世。于2017年,顺延科技的迭代和发展,天猫无人超市(淘咖啡)主打“即拿即走,无需掏出手机”的支付体验也获得一众好评,引得京东无人超市、缤果盒子、F5未来商店、Easy Go便利店也纷纷效仿并取得良好的效益。无人售货自助服务+24小时服务,让消费者有不同的消费体验,提供了方便快捷的购物方式;管理者节省精力和一部分经营成本。
基于上述背景,本次实验以“无人超市管理系统”为主题进行相应的概念设计和扩展,参考现有无人超市的设计模块和内容勾勒本次系统的基本设计,将主要的功能模块划分为用户信息管理模块、商品信息管理模块、付款(收银)模块、寄存物件管理模块以及基于安全考虑的监控模块概念
用户信息管理
用户信息管理模块主要是对操作系统的管理员信息以及相关客户信息进行维护。针对不同职位的管理员,限定不同的管理员操作权限和数据访问权限;针对不同消费等级的客户,设定相应的等级维护概念,对客户的人脸信息进行采集,用于人脸识别购物进行比对。
商品信息管理
商品信息管理主要是针对商品进销存相关维护进行扩展,该模块主要面向对象由相应的员工进行相关的商品维护(进货、补货、处理库存等操作),在无人超市管理系统的迭代和发展中,一部分的人力工作也逐渐被“物联化”,取而代之的是形形色色的机器人(例如导购机器人、清洁机器人、配货机器人等)。由于商品信息管理涉及的人为干涉因素较大,传统机器人无法完全取代人工操作,因此此处设计还是基于员工手工维护信息进行考虑
付款(收银)模块
无人超市管理系统采取的是无人售货自助服务概念,在付款模块中引入“人脸识别”和“自助收银”功能,由客户自助进行验码,系统自动结算数据,随后调用人脸识别校验客户身份信息并进行相应的扣款操作
寄存物件管理
考虑到实际场景应用,引入自助寄存物件管理模块,客户可根据自身的需求自助进行寄存物件操作,以充分保证客户在娱乐之际的个人财产安全
监控模块
由于无人超市缺乏人为监管,出于对超市安全机制的考虑,引入相应的监控模块,用以规避一些偷盗现象
2.软件系统数据流程图(由加工、数据流、数据存储、源点和终点四种元素组成):
此处主要针对核心模块客户购物相关的流程进行数据流程图分析(子模块作简单扩展说明)
1) 顶层数据流图
说明
顶层图汇中将“无人超市管理系统”当做一个大的加工站点,然后根据数据实体从哪些外部实体接收数据流,以及系统发送哪些数据流到外部实体,就可以画出输入输出图。此处将“无人超市管理系统”当做是一个大的加工,
从客户、管理员这些外部实体接收、转化、输出数据流,勾勒其简单的输入输出图
2) 1层数据流图
说明
一层数据流图对顶层图进行了系统拆分,将其分为“用户管理、商品管理、寄存物件管理、付款处理”四个加工站点,在此基础上细化了与外部实体交互输入输出流
3) 2层数据流图
说明
二层数据流图在一层数据流图的基础上将每个功能模块中的功能点进一步细化,并可标注相应的编号用于标示流程处理步骤
商品管理中由管理员填充商品信息生成相应的商品记录,并进行处理(上下架、库存管理等),处理完成生成相应的商品信息视图,一方面供客户选购,一方面用于管理员实时跟踪商品库存信息
用户信息管理中客户输入注册信息,随后生成相应的数据记录,经过系统处理之后生成相应的用户信息视图供客户查阅(个人基本信息、VIP等级信息、购物信息等)
存取物品管理中客户根据自身需求填充物品信息进行相应的存取操作
购物模块(拆分为购物、结算、付款、购物信息处理四个小加工点细化流程实现),用户物色指定商品之后将商品加入购物车,随后进行结算,结算生成相应的账单信息供客户查阅,查阅无误之后进入付款模块,用户通过人脸识别进入付款界面,付款成功之后生成相应的付款记录,经由处理之后将购物信息反馈给指定客户和管理员
可以看到对比一层数据流图中所示,二层数据流图引入了“数据存储文件“概念,替换了部分”外部实体“的概念,将指定数据加工处理后的内容固化存储为相应的记录,且在数据加工的过程中引入了额外的外部实体用于扩展数据展示的多样性,针对每个功能模块细化了实现细节,基本对相应的数据加工做了最小化的分解,由每个模块的dfd组合成整体的dfd结构
3.软件系统数据字典
结合上述流程和功能图示分析,此处分析“无人超市管理系统”数据字典如下所示
1) 数据流条目
数据流条目可有:用户信息、管理员信息、商品信息、账单信息、付款记录、个人物品存取记录信息
简述相关数据流属性如下所示
序号 | 数据流 | 属性 |
---|---|---|
1 | 用户信息 | 用户id、姓名、性别、电话号码、身份证号码 |
2 | 管理员信息 | 管理员id、姓名、性别、电话号码、身份证号码 |
3 | 商品信息 | 商品id、商品编号、商品分类、商品名称、库存、供货商、创建时间、修改时间 |
4 | 账单信息 | 账单id、账单编号、账单详情、账单备注、关联客户、账单生成机器编号、生成时间 |
5 | 付款记录 | 付款记录id、记录编号、关联账单、付款备注、付款方式、付款时间 |
6 | 个人物品存取记录 | 存取记录id、物品信息、物品备注、存取标识、记录创建时间、记录更新时间 |
- 用户信息
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
user_id | varchar(40) | 否 | 用户id |
user_name | varchar(40) | 否 | 姓名 |
sex | varchar(2) | - | 性别 |
phone | varchar(18) | - | 电话号码 |
id_card | varchar(20) | 否 | 身份证号码 |
- 管理员信息
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
admin_id | varchar(40) | 否 | 管理员id |
admin_name | varchar(40) | 否 | 姓名 |
sex | varchar(2) | - | 性别 |
phone | varchar(18) | - | 电话号码 |
id_card | varchar(20) | 否 | 身份证号码 |
- 商品信息
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
product_id | varchar(40) | 否 | 商品id |
product_num | varchar(40) | 否 | 商品编号 |
classify | varchar(2) | - | 商品分类 |
product_name | varchar(18) | 否 | 商品名称 |
stock | number(20) | 否 | 库存 |
vendor | varchar(18) | / | 供货商 |
create_time | datetime | - | 创建时间 |
modify_time | datetime | - | 修改时间 |
- 账单信息
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
bill_id | varchar(40) | 否 | 账单id |
bill_num | varchar(40) | 否 | 账单编号 |
bill_detail | varchar(200) | 否 | 账单详情 |
bill_descr | varchar(200) | - | 账单备注 |
relate_cust | varchar(40) | 否 | 关联客户 |
relate_print | varchar(40) | 否 | 账单生成机器编号 |
create_time | datetime | 否 | 生成时间 |
- 付款记录
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
pay_id | varchar(40) | 否 | 付款记录id |
pay_num | varchar(40) | 否 | 记录编号 |
relate_bills | varchar(40) | - | 关联账单 |
pay_descr | varchar(200) | - | 付款备注 |
pay_method | varchar(2) | 否 | 付款方式 |
pay_time | datetime | 付款时间 |
- 个人物品存取记录
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
record_id | varchar(40) | 否 | 存取记录id |
goods_info | varchar(200) | 否 | 物品信息 |
goods_descr | varchar(200) | - | 物品备注 |
oper_flag | varchar(2) | - | 存取标识 |
create_time | datetime | 否 | 记录创建时间 |
modify_time | datetime | 记录更新时间 |
2) 加工条目
加工条目可有:用户信息视图、商品信息视图、购物车信息、账单反馈
简述相关加工条目属性如下所示
序号 | 数据流 | 属性 |
---|---|---|
1 | 用户信息视图 | 用户id、姓名、性别、电话号码、身份证号码、vip等级信息、消费记录信息 |
2 | 商品信息视图 | 商品编号、商品分类、商品名称、销量信息、库存 |
3 | 购物车信息 | 商品id、商品名称、购买数量、打折促销信息 |
4 | 账单反馈 | 账单id、账单编号、账单详情、账单备注、关联客户、账单生成机器编号、生成时间 账单购物详情、付款详情 |
3) 文件条目
文件条目:上述功能主要涉及数据操作概念,文件处理相关需结合实际场景再进行扩展,此处不作赘述
例如基于某些场景需要对商品及顾客相关信息统计等
4.实验小结
本次实验掌握系统的功能描述、性能描述相关方法,基于相关内容构建无人超市管理系统的功能设计。与此同时,结合visio提供的软件模块中的数据流图勾勒基于无人超市系统的数据流图分析,基于分层设计的理念一步步细化系统实现。在进行数据流构图的时候,主要先掌握数据流构图的基本图形元素(数据加工(数据变换)、数据源或者终点(外部实体)、数据流、数据存储文件),了解数据流与数据加工两者之间的关系(通过不同运算符串接标识的关系含义)。采用分层数据流图的设计方法,先勾勒出大的加工模型,随后根据功能交互和需求分析对加工进行分解,画出每个“小系统”的DFD图再进行合并。
实验三 软件概要设计
实验项目名称:软件概要设计
一、实验目的
1)掌握系统总体结构的设计;
2)掌握系统接口设计、数据结构设计等;
3)掌握系统概要设计的步骤和方法。
二、实验内容
主要解决实现该系统需求的程序模块设计问题(包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等)
三、实验步骤
1) 首先确定系统总体设计方案(分清系统是事物型还是加工型)。
2) 完成系统的模块结构图及模块的功能说明。
3) 完成系统的接口设计
4) 完成系统的数据结构设计
四、实验过程
1. 软件系统模块结构图:
无人超市管理系统功能模块结构图参考如下所示:
2.接口设计
此处针对各个模块交互的业务功能以图表的方式列举相关的接口设计(主要接口设计内容包括:输入、输出、交互方式、交互地址等参数,可结合实际的接口交互需求进行额外扩展),由于涉及到的接口内容比较多,主要是基于核心模块进行说明,具体接口的实现和参数说明要结合实际系统设计实现进行相应的扩展
- 用户管理模块
接口说明 | 输入 | 输出 |
---|---|---|
添加用户信息 | 用户信息实体 | 处理状态 |
修改用户信息 | 用户信息实体 | 处理状态 |
删除用户信息 | 用户id | 处理状态 |
查询用户信息 | 查找参数 | 用户信息实体列表 |
- 商品管理模块
接口说明 | 输入 | 输出 |
---|---|---|
添加商品信息(单条、批量操作) | 商品信息实体 | 处理状态 |
修改商品信息 | 商品信息实体 | 处理状态 |
删除商品信息 | 商品id | 处理状态 |
查询商品信息 | 查找参数 | 商品信息实体列表 |
库存管理 | 商品id、操作类型、操作数量 | 处理状态 |
上下架处理 | 商品id、操作类型、操作数量 | 处理状态 |
- 寄存物件管理
接口说明 | 输入 | 输出 |
---|---|---|
寄存 | 寄存记录实体 | 处理状态 |
取出 | 寄存记录id(或者是记录编号对照) | 处理状态 |
挂失 | 物品描述、个人信息 | 处理状态 |
- 付款模块
接口说明 | 输入 | 输出 |
---|---|---|
人脸识别 | 人脸识别信息 | 验证状态 |
商品扫描 | 商品信息 | 验证状态 |
账单处理 | 商品信息、数量 | 生成账单 |
账单支付 | 支付渠道、支付金额、支付备注 | 生成支付记录并输出账单详情 |
监控管理
监控管理模块中涉及到的主要基于物联监控,信息触发,此处主要是监控异常状态随后反馈给系统,因此暂时设定接口用于传输监控信息(警报相关处理等)
接口说明 | 输入 | 输出 |
---|---|---|
监控信息传输 | 监控信息 | 传输状态 |
预警处理 | 异常信息 | 预警状态 |
3.数据结构设计
序号 | 数据表 |
---|---|
1 | 用户信息(用户id、姓名、性别、电话号码、身份证号码) |
2 | 管理员信息(管理员id、姓名、性别、电话号码、身份证号码) |
3 | 商品信息(商品id、商品编号、商品分类、商品名称、库存、供货商、创建时间、修改时间、处理人) |
4 | 账单信息(账单id、账单编号、账单详情、账单备注、关联客户、账单生成机器编号、生成时间) |
5 | 付款记录(付款记录id、记录编号、关联账单、付款备注、付款方式、付款时间) |
6 | 个人物品存取记录(存取记录id、物品信息、物品备注、存取标识、关联客户、记录创建时间、记录更新时间) |
逻辑结构设计图示
物理结构设计要点
- 用户信息
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
user_id | varchar(40) | 否 | 用户id(主键) |
user_name | varchar(40) | 否 | 姓名 |
sex | varchar(2) | - | 性别 |
phone | varchar(18) | - | 电话号码 |
id_card | varchar(20) | 否 | 身份证号码 |
- 管理员信息
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
admin_id | varchar(40) | 否 | 管理员id(主键) |
admin_name | varchar(40) | 否 | 姓名 |
sex | varchar(2) | - | 性别 |
phone | varchar(18) | - | 电话号码 |
id_card | varchar(20) | 否 | 身份证号码 |
- 商品信息
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
product_id | varchar(40) | 否 | 商品id(主键) |
product_num | varchar(40) | 否 | 商品编号 |
classify | varchar(2) | - | 商品分类 |
product_name | varchar(40) | 否 | 商品名称 |
stock | number(20) | 否 | 库存 |
vendor | varchar(40) | / | 供货商 |
handler | varchar(40) | 处理人(外键-关联管理员id) | |
create_time | datetime | - | 创建时间 |
modify_time | datetime | - | 修改时间 |
- 账单信息
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
bill_id | varchar(40) | 否 | 账单id |
bill_num | varchar(40) | 否 | 账单编号 |
bill_detail | varchar(200) | 否 | 账单详情 |
bill_descr | varchar(200) | - | 账单备注 |
relate_cust | varchar(40) | 否 | 关联客户(外键-关联客户id) |
relate_print | varchar(40) | 否 | 账单生成机器编号 |
create_time | datetime | 否 | 生成时间 |
- 账单详情
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
bd_id | varchar(40) | 否 | 详情记录id |
oper_num | number | 否 | 交易数量 |
relate_bill | varchar(40) | 否 | 关联账单(外键-关联账单记录id) |
relate_product | varchar(40) | 否 | 关联产品(外键-关联产品id) |
create_time | datetime | 否 | 处理时间 |
- 付款记录
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
pay_id | varchar(40) | 否 | 付款记录id(主键) |
pay_num | varchar(40) | 否 | 记录编号 |
relate_bills | varchar(40) | - | 关联账单(外键-关联账单id) |
pay_descr | varchar(200) | - | 付款备注 |
pay_method | varchar(2) | 否 | 付款方式 |
pay_time | datetime | 付款时间 |
- 个人物品存取记录
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
record_id | varchar(40) | 否 | 存取记录id(主键) |
goods_info | varchar(200) | 否 | 物品信息 |
goods_descr | varchar(200) | - | 物品备注 |
oper_flag | varchar(2) | - | 存取标识 |
relate_cust | varchar(40) | 否 | 关联客户(外键-关联客户) |
create_time | datetime | 否 | 记录创建时间 |
modify_time | datetime | 记录更新时间 |
4. 出错处理设计
考虑系统异常情况处理,此处通过设定“系统日志表”、“推送信息错误日志表”用于记录系统日常的工作状态和信息,及时捕获系统异常。
- 系统日志表
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
log_id | varchar(40) | 否 | 日志id(主键) |
code | varchar(200) | 否 | 处理代码 |
module | varchar(200) | 否 | 关联模块 |
content | varchar(2000) | 否 | 处理内容 |
create_time | datetime | 否 | 记录创建时间 |
modify_time | datetime | 记录更新时间 |
- 推送信息错误日志表
字段名称 | 数据类型 | 是否为空 | 备注 |
---|---|---|---|
error_log_id | varchar(40) | 否 | 错误日志ID(主键) |
code | varchar(200) | 否 | 处理代码 |
module | varchar(200) | - | 关联模块 |
content | varchar(2000) | - | 处理内容 |
oper_flag | varchar(10) | 否 | 处理状态 |
descr | varchar(2000) | 否 | 备注信息 |
push_time | datetime | 否 | 记录推送时间 |
5.实验小结
本次实验掌握系统总体结构的设计,进一步细化系统功能说明和相关模块的实现,根据需求开发的结果,对产品的技术实现由粗到细进行设计。概要设计主要包括定义实现需求的工作产品技功能、技术构架,定义设计准则及共通处理方针,分解划分功能模块,定义各功能模块的功能和业务处理,定义模块间的接口关系。本次实验结合系统功能和交互分析系统接口设计和数据结构设计,基于visio构建无人超市管理系统的基本模块设计和数据结构设计,并针对系统异常处理相关的内容提出相应的处理方案。
实验四 软件详细设计
实验项目名称:软件详细设计
一、实验目的
1)掌握模块的程序描述;
2)熟练使用流程图、PDL等详细描述工具
3)掌握详细设计的步骤和方法。
二、实验内容
进行软件系统的结构设计、逐个模块的描述(包括各模块的功、性能、输入、输出、算法、程序逻辑、接口等等)
三、实验步骤
1)首先进行程序系统的结构设计。
2)然后对主要程序进行描述。
注:应该同时进行用户界面设计。
1.软件系统其中的3个模块的详细设计(画程序流程图)
针对无人超市管理系统,此处管理员和客户角度出发摘取“管理员管理商品信息”、“用户登录注册”、“模拟购物流程”三个核心的模块功能进行详细设计,并借助visio画出相应的业务交互流程说明。在详细设计部分定义各功能模块的功能单元的详细实现,包括接口的物理定义,明确数据库*/*数据文件的物理定义等。
- 系统接口设计
接口主要用于子系统*/*模块之间或内部系统与外部系统进行各种交互,应根据制定各种方针,结合业务特点,并使用相应的设计方法。其内容应包含:接口的名称、功能描述、接口的输入输出定义、接口的使用方法、接口的数据处理流程、输入输出的数据结构定义、异常处理机制、错误处理机制、日志记录方法及格式等;
接口设计的基础概述在概要设计中有所体现,列举了各个模块的基础接口说明,此处暂不作额外扩展
- 数据库设计
根据业务的复杂程度和设计实现的需要,对核心和重要的数据生成数据字典,对于复杂的操作流程,进行适当的流程说明并核心和重要库表的逻辑设计;
数据库设计的逻辑结构和物理结构说明在概要设计中做了简单梳理和定义,在详细设计部分需将相关的概念转化为物理实现,则需要借助相关的数据库处理工具进行应用
- 程度设计
结合系统功能针对核心模块的交互进行流程分析,下述通过借助visio勾勒“无人超市管理系统”核心业务流程的设计思路并分析
2.程序描述
“管理员管理商品信息”
说明
管理员可日常查看商品信息并进行维护,则执行商品新增、补仓、上下架等库存处理(商品的库存信息预警可由监控系统和相关进销存模块联动触发)。当检查商品库存不足的时候,管理员可采取相关的措施从供应商处进行下单补货操作,进而及时补足商品数量,并将相关的处理反馈以日志或者公告的形式通知到对应的系统主页或者客户端,以和客户需求及时联动
PDL语言说明
Procedure PRODUCT_MANAGER is
begin
read 选择操作
if 新增 then {
录入商品信息
if 商品信息校验通过 then 进入维护流程
else if 校验信息不通过 then 反馈异常信息到后台
}
else if 维护 then {
检查商品库存
if 库存充盈 then {
进入上下架处理流程
处理反馈
更新超市信息
}
else if 库存不足 then {
进入补仓流程操作
if 补仓成功 then 进入上下架处理流程
else 补仓失败 then 反馈异常信息到后台
else {其他状态校验待后续扩展}
}
}
else{
其他状态待扩展
}
end
“用户登录注册”
说明
用户在客户端可登录注册无人超市系统用户端,查看个人账户信息和相关的交易流水记录。如果用户没有关联的账号信息,则根据用户需求注册用户账号信息并为其绑定相关的账号
PDL语言说明(通过伪代码及中文描述简述程序结构)
Procedure USER_LOGIN_REGISTER is
begin
read 用户信息
if 用户信息已存在 then {
进入登录页面
可选择查看个人信息、购物等子流程操作
}
else if 用户信息不存在 then {
进入注册页面
if 注册信息校验通过 then 进入登录流程
else if 校验信息不通过 then 反馈异常信息到后台
}
else{
其他状态校验失败
反馈异常信息到后台
}
end
“模拟购物流程”
说明
客户开始选购商品,选购完成随后进入商品自助结算环节,系统检测所有参与结算的商品信息是否校验完成,如果没有完成则提示客户检查相关信息;如果结算完成则自动生成相应的账单待客户确认,客户确认完毕则进行付款流程,如果账单生成异常则可尝试重新生成账单信息。付款流程需验证客户身份,如果客户身份校验异常可尝试多次重复校验,如果多次校验失败则反馈异常信息到后台,由人工介入进行辅助校验。如果校验通过则进一步进行支付操作并确认付款,付款成功则可结束整个购物流程,如果付款失败则相应尝试再次发起付款,并由后台记录相关的异常操作信息。
PDL语言说明
Procedure SHOPPING_MOD is
begin
read 自助购物
while(购物未完成){
自助购物
}
if 购物完成 then {
进入商品自助结算,检测所有要购买的物品是否参与结算?
if 校验信息通过 then {
等待账单生成
进入账单确认流程
if 账单确认无误 then {
进入付款流程
进行人脸识别
if 身份校验通过 then {
付款确认
if 付款成功 then 结束购物流程(exit)或继续购物
else if 付款失败 then {loop 重新发起校验 while(付款失败)}
else 其他状态处理待扩展
}
else if 身份校验不通过 then 操作失败反馈异常信息到后台
}
else if 账单存在异常 then {
loop 检查并重新生成账单 while(账单异常)
}
}
else if 校验信息不通过 then 重新结算直至账单生成或程序终止
}
read 是否继续购物
if 是 then {loop 购物流程 while(选择继续购物)}
else if 否 then 结束购物流程
else 其他状态待扩展
end
3.实验小结
本次实验对“无人超市管理系统”进行结构设计、模块功能的描述,借助visio构建模块功能的业务流程分析和流程图,并借助PDL语言掌握模块的程序描述,进一步对软件设计的详细设计概念和方法有了更为深入的了解,以便为后续的设计实现奠定相应的基础