目录

软件工程大作业自动售货机系统

目录

软件工程大作业:自动售货机系统

实验题目

自动售货机系统

一、实验目的

分析自动售货机系统的整个开发过程,包括需求分析、数据流图、数据字典、结构图和详细设计,通过分析,明白整个过程需要实现哪些功能,对数据有哪些要求,明确本系统的功能需求和性能需求,对系统的任务进行概述,从而开发出一个比较完善的自动售货机系统。

二、设备与环境

Windows

10 操作系统

三、实验要求

得到自动售货机系统的需求分析,根据需求分析画出数据流图和结构图,列出数据字典,做必要的详细设计。

第一章

引言

第一节 概述

自动售货机系统是一个线下交易平台,买方无需进行账号登陆,它可以根据投入的钱币自动识别金额大小并付货,并且自动售货机不受时间、地点的限制,能节省人力、方便交易,是一种全新的商业零售形式,又被称为24小时营业的微型超市。并且自动售货机销售和管理简单化,使用自动售货机系统取代销售人员的工作,并且高效快速。自动售货机能完成这样的方便操作,其中自动售货机系统尤为重要,相当于大脑,操控着整个机器的运作。

第二节 系统分析

自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的数量、金额。有效的硬币是一元币、五角币。当机器接收了有效的硬币之后,将之送入硬币储藏器。顾客支付的货币根据硬币的面值进行累加。

自动售货机装有货物分配器,每个分配器中包含0 个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果有货,且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将找零返回到退币孔。如果无货,则和顾客支付的货币值相等的硬币将被送到退币孔。如果顾客支付的货币值小于所选货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的硬币将从退币孔中退出。

第二章

需求分析

第一节 功能要求

  1. 商品管理:包括自动售卖机商品库存管理、上货、编辑管理和商品分类管理、商品品牌管理等,管理商品的价格。商品包括饮料、零食、一些小商品等 。管理员还可以将自动售卖机中的硬币取走。

  2. 管理员登陆:通过管理员登陆界面,进行管理员的身份验证,如果验证成功,则以界面的方式模拟自动售卖机仓门打开。

  3. 商品显示:再程序界面中显示商品种类和商品剩余数量,并显示相应的商品价格,并以界面的方式模拟自动售卖机的界面或商品展示窗。

  4. 支付方式:购买人通过投币的方式进行购买商品,通过硬币的种类和数量计算购买者所投硬币的总数量,并将总金额与购买商品总价值进行对比,若小于总价值,则进行退币,如果想重新购买,则重新进行购买步骤。

    第二节 性能要求

    自动售货机系统作为一个线下交易平台为用户提供简单方便的服务,务必保证其能稳定、可靠、准确、高效的运行,因此平台应满足以下相应的性能:

    a. 自动饮料机是一种现代化辅助机器,它通过现代化的芯片技术,将饮料销售和采购管理简化,使用IT集成系统完成销售人员的所有工作,并根据用户的喜好调整自身的运作机制,最大化的满足人们对于饮料的需求。

    b. 能熟练使用电脑的社会各阶段人群。

    c. 只能向自动售货机投入硬币,不接纳纸币,且硬币的大小面额为,0.5元,1元,饮料品种不宜繁杂,不能挤得太满。

    d. 输入:提供所有与本功能有关的输入描述,包括:输入数据类型、媒体、格式、数值范围、精度、单位等。

    e. 业务操作流程

    f. 约束条件/特殊考虑

    g.

    容错性

    h.

    可扩充性

    第三节 安全保密

    安全问题是系统最担心的问题。作为一个安全的购物系统,首先必须具有一个安全、可靠的通信网络,以保证交易信息安全、迅速地传递;其次必须保证数据库服务器绝对安全,防止黑客闯入网络盗取信息。下面介绍系统涉及的安全要素。

1、身份认证

管理员只有登录成功后才可以浏览全面信息以及修改商品信息。

2、对订单记录

根据机密性和完整性的要求,应对购买商品的订单进行记录。并记录订单生成的时间,以便当不安全因素出现时方便查看和跟踪不安全因素的去向。

第三章 数据流图

第一节 顶层图

https://i-blog.csdnimg.cn/blog_migrate/f6fa03d6b95fbfc1ba68bf40b1b8c122.png

顶层图

第二节 0层图

https://i-blog.csdnimg.cn/blog_migrate/ade0b1d2ce6ee687eda27e3287487f70.png

0层图

第三节 1层图

https://i-blog.csdnimg.cn/blog_migrate/129e061fd7acc356d6749936d3b17abd.png

1层图

https://i-blog.csdnimg.cn/blog_migrate/34fddf554cf7749c91632d4f9ed8d755.png

1层图

https://i-blog.csdnimg.cn/blog_migrate/368bca086a26c2f0d29a3321b7f4215a.png

1层图

第五节 功能结构图

https://i-blog.csdnimg.cn/blog_migrate/e05f0c302a0405053b067ed595f52d12.png

第四章

数据字典

第一节 数据条目

管理员表=管理员账号+管理员密码

商品信息表=商品ID+商品名+价格+库存量

售卖机表=售卖机内总钱数+五毛钱总数+一元钱总数

订单表=购买次数+商品名+投入金额+找回金额+购买时间

https://i-blog.csdnimg.cn/blog_migrate/b85b633d55147cd1ea72f38720c8c9a2.png

注解:管理员不能自己添加新的管理员,不能更改密码。

文件名:商品信息表

简述:对商品进行价格和库存量进行更改

写文件的加工:增加库存量和商品价格

读文件的加工:对商品所有信息进行查看

文件组织:,按商品类型划分,关键字为商品ID升序序列

文件组成:商品ID+商品名+价格+库存量

使用权限:管理员:读,写,修改;用户:读。

注解:管理员可管理商品信息,买家用户只能看到商品信息

文件名:售卖机表

简述:对售卖机内钱数进行查看,添加,修改。

写文件的加工:向售卖机内投放零钱,取钱

读文件的加工:查看售卖机内钱数

文件组织:只有总钱数

文件组成:总钱数

使用权限:管理员:读,写,修改;买家用户:写。

注解:买家用户是买东西时投钱将该文件修改的。

文件名:订单表

简述:对商品订单进行查询,添加

写文件的加工:商品交易成功的订单

读文件的加工:对订单进行查询

文件组织:按订单号进行划分,关键字为订单号升序排列

文件组成:订单号+商品名+投入金钱总数+找回金钱总数+购买时间

使用权限:管理员:读,修改。

注解:每次交易成功订单表内自动添加订单

第三节 数据项条目

名称:管理员编号

别名:userid

数据类型:字符型

取值范围:1…9999999999

与其他数据项的关系:一个userid只能对应一个密码

注释:唯一性

名称:密码

别名:password

数据类型:变长字符

取值范围:<=16

与其他数据项的关系:一个密码只能被一个管理员使用

注解:唯一性

名称:商品ID号

别名:goodsid

数据类型:字符型

与其他数据项的关系:一个ID号只能对应一种商品名、价格和库存量

注解:ID号为主键,唯一性

名称:商品名

别名:goodsname

数据类型:变长字符

取值范围:<=10

注解:一个商品名对应一个ID号

名称:价格

别名:price

数据类型:浮点型

与其他数据项的关系:一种商品有一种价格

计量单位:五毛,一元

注解:每个商品价格可以更改,多种商品可以有相同的价格

名称:库存量

别名:storage

数据类型:整型

与其他数据项的关系:一个商品对应一个库存量

注解:多个商品库存量可以相同

名称:售卖机总钱数

别名:money

数据类型:字符型

与其他数据项的关系:总钱数只与售卖机内总钱数相同

注解:售卖机内只有总钱数这一个属性

名称:订单号

别名:number

数据类型:int

与其他数据项的关系:每个商品可以有多个订单号

注解:订单号从1开始依次增1

名称:投入硬币总额

别名:inmoney

数据类型:浮点型

计量单位:元

与其他数据项的关系:与商品的价格有关

名称:找回硬币总额

别名:outmoney

数据类型:浮点型

计量单位:元

注解:找回硬币总额为投入的金币总额减去商品单价

名称:购买时间

别名:time

数据类型:date

注解:每个订单都有唯一的购买时间

第五章 结构图

第一节 结构图

https://i-blog.csdnimg.cn/blog_migrate/51de5ae68a9c7404263473dd9a71111e.png

第二节 管理员管理

https://i-blog.csdnimg.cn/blog_migrate/fed393184c4ffa6aebec464e2759bf47.png

第三节 购物处理

https://i-blog.csdnimg.cn/blog_migrate/c1476d4d966eaa4315f0aee7ecaa5e1a.png

第四节 商品管理

https://i-blog.csdnimg.cn/blog_migrate/862d248f3126ad499c7801fd5d35a260.png

第五节 售货机管理

https://i-blog.csdnimg.cn/blog_migrate/68fd8a5fa51b0e6569ab0907dfba483b.png

第六节 结构总图

https://i-blog.csdnimg.cn/blog_migrate/c3023c83d1a3746db4ef5f440ed863d5.png

拼下图 https://i-blog.csdnimg.cn/blog_migrate/f9da55573c8e32b40a9210f354923d7e.png

第七章 数据库设计

建立4张表,一张订单表,存放每次交易生成的订单信息,第二张表为商品表,存放商品种类、商品库存量和商品价格等信息,第三张表为售货机内钱数表,存放售货机内剩余的总钱数,第四张表为管理员表,存放管理员的账户和密码,用于管理员登陆管理售货机,防止普通人员对售货机进行不必要的操作。

第八章 编码

程序的文档化:

1.标识符的命名需要遵循标识符的命名规范

(1)见其名知其意,标识符命名必须有意义,代表本标识符的功能

(2)标识符命名不能过长,显得臃肿,应言简意赅

(3)尽量避免标识符的相似情况,会引起名字的混淆,对编码造成不必要的影响

2.编码时必要的地方需要加注释

(1)注释可以帮助其他人理解程序,如果分模块进行编码,合成时有注释,方便理解,方便合成

(2)每个功能模块,重要的变量和参数加上注释,说明其功能,并且注释应加再每个模块的开头

3.编码时需要注意编码的格式

(1)程序中必要的地方加空格,进行分割,使整个程序看着更加有条理,不拥挤

(2)控制每行代码的缩进,使代码规整,更加清晰

(3)嵌套代码时,注意嵌套层次,例如大括号的开头结尾在一列上,这样使代码更规整,容易发现例如少个括号的错误。

4.标识符的命名规范

(1)组成:数字、字母、下划线、$

(2)开头不能是数字

(3)不能是编码的本语言的关键字和保留字

(4)严格区分大小写

(5)类名,接口名采用驼峰式命名法,每个单词首字母大写

(6)方法名,变量名采用小驼峰式,第一个单词首字母小写,其余每个单词首字母大写

(7)常量名,全部大写

(8)包名,全部小写

第九章 测试

测试方法:黑盒测试(划分等价类法)

“购买商品”等价划分表

https://i-blog.csdnimg.cn/blog_migrate/50a927be9c60bb824dafa080968c8124.png

https://i-blog.csdnimg.cn/blog_migrate/d1e0b5a03782172ee59f999f76096cf6.png ![在这里插入图片描述]( https://i-blog.csdnimg.cn/blog_migrate/519b3e398c5ada02c588c42feaf5f56c.png