【软件工程导论】软件项目系统设计
【软件工程导论】软件项目系统需求分析说明书——宠物店铺管理系统
现代消费者的众多需求推动着互联网的普及和发展,电子商务平台的日益繁荣也为我们提供了各种便利购物的方式。点餐也不例外。随着餐饮行业的发展,越来越多的餐厅选择在互联网上开发点餐平台,在线点餐服务已经成为现代消费者选择餐厅的重要参考之一。
开发一个功能齐全、可靠安全、交互和视觉体验良好的网上点餐平台,解决线下就餐存在的不便和安全隐患问题,提供更加便捷和智能的用餐选择方式。
1.需求调研和分析 (1周)
在市场进行市场调研、顾客需求分析,梳理需求,进行信息归纳和整合。
2.项目计划和框架搭建 (2周)
制定项目计划并进行框架搭建,包括设计软件架构、搭建开发环境、技术选型等。
3.前端UI设计和开发 (4周)
进行前端UI设计,并实现网页的可视化与交互功能,包括自适应布局、页面效果实现等。
4.后端开发 (8周)
功能模块开发,包括登录注册、购物车、支付、配送、售后服务等等。
5.测试和优化 (2周)
对软件进行测试和优化,包括性能和用户体验等。
上线后对网站进行长期的维护和更新,保证网站的正常运行并不断优化。
图1 系统整体规划
图2 系统生命周期流程图
1.需求调研和分析:项目经理,市场分析师,顾问等。
2.项目计划和框架搭建:技术经理、架构师、系统管理员等。
3.前端UI设计和开发:UI设计师,前端开发工程师等。
4.后端开发:后端开发工程师,数据库管理员、支付服务管理员等。
5.测试和优化:测试工程师、用户体验设计师等。
6.部署上线和维护:技术经理、系统管理员等。
风险管理策略:在项目开发前对以上风险进行充分评估,并且制定相应的措施进行管理。特别要注意对用户个人隐私进行防范和保护,确保平台安全性。同时需要制定合理的计划和预算,在算计好每项投资和费用之后,规避财务风险。
目前市场上有不少公司开发了网上点餐平台并得到不错的收益,市场前景广阔。尤其是在疫情后,线下餐饮行业不景气,网上点餐平台成为新的选择。中国餐饮市场规模不断扩大,点餐平台的发展潜力巨大。根据市场调研结果显示,目前国内各类点餐平台呈现快速增长趋势。
开发网上点餐平台需要独立的服务器、数据库、网站程序和支付接口等技术支持,需要拥有一定的技术能力。同时,随着技术不断更新和发展,还需要不断跟进和更新自己的技术。
有效的营销策略对于网上点餐平台的发展具有至关重要的作用。需要针对不同的客户领域进行营销,包括线上推广、线下推广等各种形式。并且需要时刻关注市场变化和竞争对手的动向。
开发点餐平台需要一定的资金和人力投入,包括服务器租赁、技术人员工资、广告投放、软件维护等成本。另外,支付接口、物流配送、售后服务等的费用也需要考虑进去。需要合理成本估算,为该项目的可行性提供充分的保障。
在市场繁荣、技术基础扎实、市场营销策略到位、成本有保障等方面,开发软件工程网上点餐平台是可行的。但需要实现的难度较高,需要一定的技术基础和资金保证,通过合理的成本控制提高收益来实现商业价值,以达到商业和社会效益共赢的目的。如果能够做到以上几点,该项目将会获得市场认可,并迅速走向成功。
一、注册账户
如果您还没有注册过账户,可以在网站页面点击“注册账户”并填写个人信息来注册账户。注册后即可登录并开始使用该平台了。
二、浏览菜单
在首页上您可以看到推荐的美食,同时您可以输入关键字或选择分类来查找您想要的美食。
三、选择菜品
在商家详情页中您可查看到该餐厅所提供的菜品列表,点击相应菜品可进入详情页查看必要信息并添加至购物车。
四、购物车与下单
在购物车页面上您可以查看并修改菜品数量,查看菜品总价等信息,在确认订单后可点击立即下单并进行下单流程。
五、支付
顾客还需选择支付方式并进行支付,支付成功后订单就会被送到商家的系统,商家会在第一时间确认下单信息,然后开始进行配送操作。
六、查看订单状态
您可在订单页面查看订单详情和配送状态,也可于订单中心进行订单的管理,查看历史订单、申请售后等。
七、售后服务
若对所收到的商品有疑问或异常,您可在订单页面提交售后服务申请。客服会在第一时间与您联系并为您处理售后事宜。
顾客可以在小程序端查看餐厅的座位情况,根据自己的需要,选择座位进行预约,同时,在座位预约时间前可以进行取消预约,如果预约座位在规定的时间内未到店进行签到,则座位会被自动释放。
以上是我们网上点餐平台的基本使用流程。如需更详细的操作,可在导航栏中寻找相应的操作指引。如有任何疑问或问题,欢迎随时联系我们的客服人员,接单问题。
系统管理员即店内员工可以在系统内对小程序用户的信息进行管理,特殊的管理员则可以对店内其他员工的账号进行管理。
管理员可以查看小程序添加的订单信息,查看订单的状态、订单的类型,以及拥有修改、删除、添加订单的操作。
可以通过点击此功能,查看外卖订单的完成情况,以及可以及时联系派送员。
管理员可以直观地看到订单的数据信息,此为一个数据可视化界面,同时,可以单独点击某一个数据块,进行详细数据的查看。
可以处理顾客的预约信息,开启和关闭预约功能,以及对预约的信息进行编辑。
管理小程序页面的菜品,增加,删除,修改,查看相对应的商品信息
管理员可以通过此页面,在小程序端发布商品的活动信息,以及客服为顾客接单的页面。
本系统为餐厅点餐系统,是一个联合线上和线下点餐的系统,线下点餐为桌面扫码,进入小程序端的桌面点餐页面进行浏览和点餐,线上点餐主要为外卖服务。该系统分为两个模块,一个为餐厅的管理端系统,一个为顾客使用的小程序系统。管理端的系统主要功能为:对用户的管理,包括系统用户和顾客小程序账号管理、菜品管理、订单管理、预约管理、外卖订单跟踪管理、订单财务数据统计、运营管理,其中,运营管理有客服服务以及在小程序发布通知的功能。小程序端的主要功能为顾客的个人中心、首页为浏览餐厅的菜单,以及可以对菜品进行点赞和评论,同时,外卖订单也可以改为两个部分,分别为自取和外送服务。
详细功能图如下:
图3 点餐普通功能图
系统使用的用户有两类,分别为商家与顾客,因此用户管理模块分为客户端用户(顾客)管理子模块与管理端用户(商家)管理模块。
图4 用户管理模块图
客户端用户(顾客)管理子模块,这个模块是顾客扫码进入点餐系统进行注册点单操作的入口,主要的功能有用户授权注册账号和自动登录、取消授权注销点餐账号。
图5 用户管理模块图
这个功能是顾客扫描二维码进行点单操作时触发的,主要作用是获取用户信息,包括用户微信账号,然后在系统注册用户信息,生成用户唯一ID,用于方便存储用户昵称、电话号码、订单信息等数据提供点餐服务。
这个功能是顾客需要消除自身数据信息,对账号进行注销操作时使用,在顾客有所需求时进行对其数据信息的清除,包括历史订单、个人信息等内容。
管理端用户管理模块用户商家对点餐系统的进入,功能点都包括用户注册、用户登录、修改用户密码、用户权限设置和注销用户。
图6 管理端用户管理子模块功能点
用户注册功能用于注册一个新的管理端用户,默认注册的是一般用户,管理端用户包括两种类型:高级用户(商家)和一般用户(员工),初始状态下并不具备系统核心的管理权限,需要高级用户对其进行分配权限后才能正常使用。
注册新用户时,进入注册用户界面后,输入必要的用户注册信息后,点击注册按钮完成注册,如输入的信息不符合规范,系统需给出准确的提示,如注册成功则保存用户信息和用户权限信息,并给出注册成功的提示,流程图如下:
图7·注册流程图
注册失败时,需要给出的提示包括:
(1)用户名格式错误
(2)用户密码格式错误
(3)两次输入的密码不一致
(4)其他未列出的错误
注册用户时,需要输入的新用户信息包括:用户名、用户密码(重复验证)和用户类型,其中用户类型默认为“一般用户”。
登录界面的设计为,用户在登录的页面输入账号、密码、验证码,当账号、密码、验证码输入无误后,成功进入系统,否则提示相对应的错误。
因为本系统为内部系统,使用本系统的对象为店内人员,因此用户执行登录操作时,无需注册,只需要在管理模块进行账号的注册即可,高级用户(管理员)会为此账号设置访问权限。
登录流程图:
图8 登录流程图
高级用户(商家)可对一般用户(店员)进行用户账号的权限修改设置。
一般用户修改密码有两种方式:一种为在高级用户处修改密码,另一种为登录账号后,自行修改。用户的修改密码方式为成功登录账号后,方可执行修改密码操作。
一般用户的删除可以在高级用户处进行删除,也可以在一般用户处提交注销账号申请,注销账号申请需要经过高级用户处理。
一般用户注销账户通常为离职时,办理离职手续后,进行账号的注销。
商家菜品管理模块主要是管理商家的商品、菜品信息,包括添加菜品,删除菜品,修改菜品,菜品信息息主要有菜品名称、图片、价格、简介、状态。
图9 菜品管理模块功能点
添加菜品:商家对餐点的供给、菜单的上新。
删除菜品:商家对菜单上的若干个菜品进行下架。
修改菜品:商家对菜品信息进行修改,如原料调整、降价优惠。
这个功能可以帮助企业提高营销效果,通过提供优质的预约服务,吸引更多的消费者关注和参与。点击菜单栏的“ 预约 ”获取菜单列表,先预约座位然后再点餐,商品信息主要有商品图片,商品名称。
店家对于新产生的订单可以进行处理,选择接单或是不接单。可以根据状态(已接单、已发货、已收货)查看订单情况。
查看订单情况:店家可以进行配送管理,记录每一单的配送人员姓名、配送人员电话、配送开始时间、实际送到时间;可以对配送情况进行查询统计。
修改菜品:店家对菜品信息可以进行管理,包括增加、修改、删除菜品信息等。
查询统计:店家可以根据不同的需求进行查询统计,例如根据菜品统计订购情况、评分和反馈情况,根据时间段查询销售情况等。
图10·顾客预约数据流图
管理员可以通过网上平台对平台内各个部分的地方发布通知
用户如果有什么疑问可以点击客服服务询问网上在线客服
在用户下单后商家可以跟踪外卖订单的状态的信息,状态包括:已下单、商家已接单、外卖员已接单、外卖已到达。
主要功能包括:
1、提示用户已经接单
2、通知外卖员接单
3、修改订单信息(根据实际情况和顾客沟通)
图11 外卖跟踪数据流图
在登录管理端系统后,可以进行订单管理,其中有历史订单的查询与删除,订单取消即退款等选项。其中历史订单的删除需要进行历史订单查询之后才可删除。
1、历史订单查询
对历史交易成功和交易失败的订单进行查询
2、历史订单删除
对历史订单进行选择性删除
3、新建订单,即餐厅前台线下点餐
4、取消订单即退款
数据流图如下图所示:
图12 管理端订单管理数据流图
需要登录管理端,进行订单财务信息管理。其中功能有订单收入统计,平台抽成统计。
统计选定订单中的总收入
统计平台对选定订单中的抽成
图13 订单财务统计数据流图
1、浏览页面:顾客打开点餐小程序后,可以在首页进行菜品的浏览。
2、点菜,用户登录成功后,进行菜品的选购,加入购物车,填写收货信息。
3、下单,用户选择好自己想要点的菜品后,可以直接下单,也可以通过购物车直接下单,在下单页面也可以选择是店内就餐还是堂食,并且可以在备注栏备注对菜的一些需求。
4、加菜/退菜:如果用户在堂食过程中发现不够吃或者要退掉还没上的菜,可以扫餐桌上的二维码进行加菜和退菜,而外卖用户则可以和商家联系完后直接退掉或添加,之后在售后进行补差价
5、进行留言和评价,用户登录后,可以通过历史订单对吃过的菜品进行留言或评价。
管理员:
(1)菜单信息管理(菜单的增删改查)。
(2)用户信息管理(用户信息删除与查询)。
(3)留言信息管理(留言删除与查询)。
(4)订餐信息管理(订单的删除与查询)。
图14 顾客就餐数据流图
图15 顾客浏览菜单数据流图
顾客可以使用小程序,根据餐厅发布的座位情况,根据自己的需要对座位进行预约,如果未在规定的时间到店,则预约的座位会被释放即自动取消座位预约。
客户点餐系统客户端功能架构图:
该图描述了用户的个人中心,其功能有个人中心、订单管理、联系客服、评论管理、隐私政策。
个人信息包括收货地址、联系方式、顾客名称、顾客在本店的消费等级信息;订单管理有查看订单和删除订单,其中,查看订单包括查看历史订单和正在执行的订单信息,删除订单包括删除历史订单和退款,退款为在订单状态为未完成的情况下,联系客服进行退款。评价管理为顾客参与评论的信息,包括查看评论、删除评论、查看自己点赞的商品、删除点赞的商品。
图16 客户点餐系统客户端功能架构图
顾客根据客户端提供的表单信息,填写收货地址、联系方式、姓名等其他的个人信息。顾客等级根据在本店的销售情况而定。个人信息管理属于管理端的用户信息管理模块。
图17 顾客个人信息操作数据流图
订单管理包括顾客的历史订单记录和未完成的订单记录。
(1)查看历史订单:顾客查看自己账号下的历史订单记录
(2)删除历史订单:顾客删除自己账号下的历史订单记录
(3)查看未完成的订单:顾客查看自己账号下的未完成的订单记录,其中包括店内扫码点餐记录和线上外卖点餐记录。
(4)退款:当订单为未完成的状态时,可以联系客服申请退款。
退款流程图:
图18 顾客退款流程图
评论管理为顾客查看自己参与的评论和点赞活动
(1)查看评论:查看参与的评论信息
(2)删除评论:删除参与评论的某条信息
(3)查看点赞的菜品:查看自己给菜品点赞的信息
(4)删除点赞:取消某个菜品的点赞
顾客可以联系客服解决下单问题以及解答疑惑。
与其他的软件产品一样,与顾客协定隐私政策,只有同意才能授权登录点餐小程序。
根据充分的调查研究结果,同时也为了保证系统设计开发完成后能够达到既定的效果,系统开发的性能有以下要求:
(1)实用性:开发的系统应该能满足系统设计过程中的各项功能设计,能实实在在的给餐饮行业的各个业务对象带来极大的便利。
(2)美观性:在设计系统的界面的时候,要求界面简洁大方、各模块分工精细、
明确。用户容易懂并且能够轻松完成所需操作[15]。
(3)安全性。本系统是个多用户并行、多种用户并行的基于权限体系的软件系统,所以要求在设计的过程中充分考虑到这一点,加强安全性设计,在保证用户使用体验的兼顾可靠性。
(4)扩展性。自助点餐系统设计虽然是在当前时期,具有一定的时代烙印。但是我们一定把眼光放的长远,考虑到以后餐饮行业的需求,做到有备无患。
点餐系统的大体思路是将功能分为两个方面,一个是餐厅管理端的系统,另一方面的客户端的小程序。餐厅管理端的用户管理、订单管理、预约管理、订单外卖跟踪、订单财务信息管理、菜品管理、运营管理,其中的用户管理分为餐厅内使用系统员工的账号管理和客户账号管理,运营管理包括客服服务和发布通知。客户端小程序的设计有客户预约座位、浏览菜品、外卖、个人中心,其中的浏览菜品可以对菜品进行评论和点赞、外卖服务可以选择自取或者外卖派送,个人中心包括历史订单查询、个人信息管理、参与的评价点赞管理、联系客服。
图19 系统总体设计架构图
顾客个人信息中心的功能主要为:个人基本信息管理、订单管理管理、联系客服、评论管理、隐私政策。
所以,对于个人中心模块的设计为:查看订单信息、查看个人信息、查看评论信息、联系客服、签订隐私政策。
个人中心模块系统结构图:
该图描述了当顾客需要查看订单信息时,首先需要顾客有下单的信息记录,即存储的订单信息,所以,需要在顾客先前在小程序菜品页面进行下单,餐厅接收订单后,完成下单的操作,系统对订单的信息进行存储。当顾客查看评论时,也是需要顾客先前对某一个或者某些菜品进行评论和点赞,系统将评论和点赞的商品信息进行顾客对应账号的存储,查看评论时,调取存储的顾客信息;当顾客需要查看个人信息时,需要顾客先前有填写信息,其中的审核信息为顾客有无按照规定的格式进行填写,由系统自动确认;联系客服,顾客连线客服;隐私政策为用户查看系统设定的隐私条件。
图20 个人中心模块系统结构图
图21 个人中心模块系统H图
顾客进入小程序客户端的个人中心,根据自己的需要,选择需要查看的订单记录,系统根据顾客的选择,显示该订单的详细信息。
图22 查看订单IPO图
顾客进入小程序个人中心,点击评论管理,根据自己的需要,查看自己参与的评论下的商品信息和详细的评论信息。
图23 查看评论IPO图
添加个人信息主要为新添收货信息,顾客根据系统提示的输入要求,填写相
对应的个人信息。
查看信息为顾客查看自己的个人信息。系统根据顾客选择需要查看的信息,详细显示的个人信息记录。
图25 查看个人信息IPO图
5.2.2 用户管理模块
5.2.2.1 客户端用户的管理子模块
客户端用户管理模块设计有用户授权注册和用户取消授权注销账号。
(1)在用户授权注册的功能上,通过用户扫码点单的二维码的方式进入点单程
序,触发登录注册,提供电话号码等授权信息,生成用户唯一ID。同时用户的信息以及订单信息数据存储进数据库中,用户可以查询自身用户信息以及授权的信息权限。
(2)在用户想要取消授权、注销点餐账号的功能上,在顾客有所需求时进行对其数据信息的清除,包括历史订单、个人信息等内容。同时清除数据库中用户数据。
5.2.2.2 管理端用户的管理子模块
管理端用户管理模块设计有用户注册、用户权限管理、用户注销、用户登录、修改用户密码。
在管理端用户管理模块中,新用户(一般为新员工)通过用户注册程序流程进行注册为一般用户;在用户权限管理中,高级用户(一般为店长或合作伙伴)可以通过权限管理将新注册的一般用户授予高级用户的权限,或者进行一些权限的授予和取消;在员工离职等情况中,需要进行用户注销可以通过注销流程递交注销申请,通过高级用户权限同意,即可进行注销并清除账号数据;在用户登录中通过合法的登录流程进行用户的上机登录,修改用户密码需要在用户登录后才可进入程序接口,并且只被允许修改个人账号密码。
5.2.3 菜品管理模块
菜品管理模块有添加菜品、删除菜品、修改菜品三个功能点。
商家可以通过添加菜品的功能点在点餐程序菜单上补充对餐点的供给以及菜单的上新,需要上传新菜品的名称及价格、状态;商家可以通过删除菜品的功能点在点餐程序菜单上进行对若干个菜品进行下架,支持批处理操作;商家可以在修改菜品信息的功能点上对菜品信息进行修改,如配方调整、降价优惠,可以对菜品的名称、图片、简介、价格、状态进行修改。
管理端里面可以进行除了对顾客的历史订单的查看和删除等操作之外,还可以查看订单财务信息统计,如平台抽成和订单收入。如下图所示:
图26 管理端订单管理架构图
菜品管理模块包括两个实体为:菜品和商家。菜品实体的属性包括菜品名称、菜品价格、菜品简介、菜品状态。
菜品和商家属于多对一的关系,其中菜品名称为数据表中结构的主键,不为空以及不重复,具有唯一性。
图27 菜品管理模块ER图
首先将使用网上点餐平台外卖订单跟踪部分的角色转换为实体,由上文分析可知此角色包含客户和管理员,在此次设计中认为只存在一位持有秘钥的管理员且不考虑其管理员信息,故可将管理员实体省略。此外,系统中主要包含对商品的处理,故应将商品作为一实体。其主要联系包括:
客户通过浏览商品购买外卖,并进行提交,申请者通过实名认证下单,管理员对客户信息、商品信息、订单信息进行维护更新和查看。
管理员还要进行定期的商品销售、客户信息以及订单等信息统计与分析。此系统的ER图如图所示:
图28 外卖订单跟踪ER图
订单的属性有:订单内容、配送单号、订单编号、收货地址、联系方式、发货地址、订单收入、平台分成。
用户属性有:用户账号、用户姓名、性别、身份。
图29 订单与用户实体ER图
用实体-联系方法建立数据库概念模型第一部是识别系统涉及的实体,该模块涉及的实体有管理员,顾客,菜单,订单,就餐方式。
图30 顾客下单ER图
图31 顾客预约座位ER图
个人中心模块的实体对象主要有:顾客实体、订单实体、评论实体。
顾客实体包括:顾客名称、账号、性别、出生日期、联系电话、收货地址
订单实体包括:订单编号、订单内容、创建时间、支付方式、支付金额、订单类型、订单完成状态。(其中,订单类型分为外卖订单、店内订单;订单状态分为未完成、已完成、退款)
评论的实体:评论时间、评论内容、评论的菜品名称。
关系的映射,顾客与订单之间的关系为一对多的关系、顾客与评论之间的关系也为一对多的关系。其中,顾客账号、订单编号为主键,不可修改以及不可重复。
顾客(顾客名、账号、性别、出生日期、联系电话、收货地址)
订单(订单编号、订单内容、创建时间、支付方式、支付金额、订单类型、订单完成状态)
评论(评论时间、评论内容、评论的菜品名称)
图32 个人中心模块ER图
物理结构设计主要为将实体转换成数据表的形式即顾客、订单、评论三者之间的ER图构建的数据表结构,将数据以表的形式进行存储。
(1)个人中心处顾客表
字段名 | 数据类型 | 是否为空 | 约束 |
---|---|---|---|
CustomerID(顾客账号) | int | 否 | 主键 |
CustomerName(顾客名称) | Varchar(20) | 否 | |
CustomerBirth(顾客出生日期) | date | 否 | |
CustomerSex(性别) | Char(4) | 否 | |
CustomerAddress(收货地址) | Varchar(30) | 否 | |
CustomerTelephone(联系电话) | int | 否 | |
CustomerAge(顾客年龄) | int | 否 |
表1·个人中心处顾客数据表
(2)个人中心处历史订单表
字段名 | 数据类型 | 是否为空 | 约束 |
---|---|---|---|
OrderID(订单编号) | int | 否 | 主键 |
OrderContent(订单内容) | Varchar(100) | 否 | |
OrderDate(订单创建时间) | date | 否 | |
PayStyle(支付方式) | Varchar(10) | 否 | |
PayCount(支付金额) | double | 否 | |
OrderStyle(订单类型) | Varchar(30) | 否 | |
OrderState(订单状态) | Varchar(30) | 否 |
表2·个人中心处历史订单数据表
(3)个人中心处评论表
字段名 | 数据类型 | 是否为空 | 约束 |
---|---|---|---|
commentContent(评论内容) | Varchar(50) | 否 | |
CommentDate(评论时间) | date | 否 | |
CommentFoodName(评论的菜品的名称) | Varchar(30) | 否 |
表3·个人中心处评论数据表
(4)客户端菜品表
字段名 | 数据类型 | 是否为空 | 约束 |
---|---|---|---|
菜品编号(dishid) | int | 否 | 主键 |
菜品名称(dishname) | Char(8) | 是 | |
菜品单价(dishprice) | float | 是 | |
菜品折扣(dishdiscount) | float | 是 | |
菜品折扣后的单价(dishpay) | float | 是 | |
菜品图片(dishphoto) | image | 是 | |
菜品口味(dishvariety) | int | 是 |
表4·客户端菜品数据表
(5)客户端点菜表
字段名 | 数据类型 | 是否为空 | 约束 |
---|---|---|---|
点菜时间(dishedtime) | Date | 否 | |
桌号(deskid) | int | 否 | |
菜品编号(dishid) | int | 否 | 主键 |
菜品份数(amount) | int | 是 | |
顾客人数(customers) | int | 是 | |
付款(dishpay) | float | 是 |
表5·客户端点菜数据表
(6)管理端系统用户表
字段名 | 数据类型 | 是否为空 | 约束 |
---|---|---|---|
用户账号(userNO) | int | 不为空 | 主键 |
用户姓名(userfName) | Varchar(15) | 不为空 | |
性别(staffSex) | Char(1) | 不为空 | |
身份(user_id) | Varchar(10) | 不为空 |
表6·管理端系统用户数据表
(7)管理端订单财务信息表
字段名 | 数据类型 | 是否为空 | 约束 |
---|---|---|---|
配送单号(order_ID) | Int | 否 | 主键 |
订单内容(order_content) | Char(20) | 否 | |
订单编号(order_num) | Char(10) | 否 | |
收货地址(order_shipaddress) | Char(20) | 否 | 唯一 |
联系方式(order_mobile) | Int | 否 | 唯一 |
发货地址(order_deliaddress) | Char(20) | 否 | 唯一 |
订单收入(Order_money1) | Int | 否 | 唯一 |
平台抽成(Order_money2) | Int | 否 | 唯一 |
表7·管理端订单财务信息数据表
(8)管理端顾客管理信息表
字段名 | 数据类型 | 是否为空 | 约束 |
---|---|---|---|
账号(Client_ID) | Int | 否 | 主键 |
姓名(Client_name) | Char(3) | 否 | |
性别(Client_sex) | Char(1) | 否 | |
名字(Client_virname) | Char(5) | 否 | |
出生日期(Client_birthday) | Char(8) | 否 | |
手机号(Client_mobile) | Int | 否 | 唯一 |
密码(Client_code) | Char(10) | 否 | 唯一 |
预约状态(Client_Booking) | Char(100 | 是 |
表8·管理端顾客管理信息数据表
(9)管理端订单管理表
字段名 | 数据类型 | 是否为空 | 约束 |
---|---|---|---|
商品编号(order_ID) | Int | 否 | 主键 |
下单时间(order_time) | Char(8) | 否 | |
商品单价(order_price) | int | 否 | |
商品数量(order_count) | int | 否 |
表9·管理端订单管理数据表
(10)骑手信息表
字段名 | 数据类型 | 是否为空 | 约束 |
---|---|---|---|
姓名(Rider_name) | Char(20) | 否 | |
性别(Rider_sex) | Char(20) | 否 | |
名字(Rider_virname) | Char(20) | 否 | |
出生日期(Rider_birthday) | Char(20) | 否 | 唯一 |
手机号(Rider_mobile) | Int(20) | 否 |
表10·骑手信息数据表
(11)管理端菜品表
字段名 | 数据类型 | 是否为空 | 约束 |
---|---|---|---|
菜品名称(cp_name) | Varchar(15) | 不为空 | 主键 |
菜品价格(cp_value) | double | ||
菜品简介(cp_profile) | Varchar(15) | ||
菜品状态(cp_state) | Char(1) |
表11·管理端菜品数据表
(1)本系统的硬件环境如下:
客户机: 普通PC
CPU: P41.8GHz以上
内存:256MB 以上能够运行 IE5.0 以上或者 Netscape4.0 以上版本的机器分辨率:推荐使用1024X768 像素
Web 服务器:
CPU: P41.0GHz
内存:1G以上
硬盘: 80GB 以上
网卡: KMb/s 速度
数据库服务器:
CPU: P42.0GHz
内存:1GB 以上
硬盘:80GB 以上
(2)本系统运行软件环境本系统的软件环境如下:
操作系统: UNIX/Linux/Windows2000 或以上版本
数据库: SQL Server 2000
本系统的开发工具包:JDK Version 1.4.2, eclipse, IntelliJ IDEA 2023, visual studio code
Web 服务器: Tomcat
自助点餐系统在设计开发中非常重要的一项内容是创建、连接数据库。数
据库为应用软件提供最基本的数据服务,所有的数据都存储在数据库中,用户
的注册登录、菜品、订单等信息的保存、读取、处理等各项操作都需要底层数
据的支持。
以下是数据库创建 DC 数据库的一个菜品(CP)信息表。
CREATE DATABASE DC;
CREATE TABLE CPTbl(
CPBHCHAR(10) primary key auto_increment,
CPMCCHAR(10) not null,
CPLB CHAR(10)not null,
CMJGFLOAT(10)not null,
ZT CHAR(2)not null,
BZ CHAR(50)not null,
);
创建好数据库后,就需要将数据库与系统进行连接。
class DB_CONNECT {
function construct() {
$this->connect();
$CP[“category”] = $row[“CPCategory”];
$CP[“details”] = $row[“CPDetails”];
array_push($response[“dishes”], $CP);
}
$response[“success”] = 1;
echojson_encode($response);
} else{
$response[“success”] = 0;
$response[“message”] = “没有找到”;
echojson_encode($response);
}
后台管理员登录的界面如下所示,主要是提供给系统管理员用来增删改系
统的后台数据的。这个登录界面没有做的很美观,因为业务对象只是面对系统
管理员。管理员想要增删改菜单,就必须用正确的用户名和密码登录自动点餐
系统的后台。登录后才能进行添加菜品、删除菜品、修改菜品的名字、修改菜
品的图片、修改菜品的价格、修改菜品的介绍等相关操作。如果用户名或密码
不对,将不能执行操作。如图 5.1 所示:
实现登录关键代码如下:
loginBtn.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v)
{ if(validate()){ //通过 validate()判断账号密码是否为空
if(login()){ //通过 login()连接数据库核对是否一致
Intent intent = new Intent(LoginActivity.this,MainMenuActivity.class);
startActivity(intent); //启动 Activity 传递 intent 来跳转页面
} Else { showDialog(“用户名称或者密码错误,请重新输入!”);
} }}});}
当消费者用餐完毕需要结账时,工作人员进入结账界面,为顾客办理结账。
结账关键代码如下:
OnClickListenerpayListener = new OnClickListener() { // 结算监听器
public void onClick(View v) {
String orderId = orderIdEt.getText().toString();// 获得订单编号
String url = HttpUtil.BASE_URL+“servlet/PayMoneyServlet?id=”+orderId; //
请求服务器
url String result = HttpUtil.queryStringForPost(url);// 获得查询结果
Toast.makeText(PayActivity.this, result, // 显示结算结果
Toast.LENGTH_LONG).show();
payBtn.setEnabled(false); // 使结算按钮失效
}}
信息更新的主要功能其实就是使终端系统中的数据库与服务器中的数据库
随时保持一致。此时可通过调用 updateMenu()和 updateTable()这两个方法来保
持数据一致。两个方法代码大致相同,不过一个是保持菜单表的一致,一个是
保持桌号表的一致。
private void confirm(final int item) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(“你真的要更新吗?”).setCancelable(false).
setPositiveButton(“确定”, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if (item == 1) {
updateMenu();
Toast.makeText(UpdateActivity.this,
“菜单表更新成功!”, Toast.LENGTH_SHORT).show();}
else { updateTable(); Toast.makeText(UpdateActivity.this,“桌号表更新成功!”,
Toast.LENGTH_SHORT).show(); } } }).
本测试计划书为网上点餐系统项目的测试计划书,目的在于描述测试环境和定义测试项目以指导测试的过程,预期参与人员为测试人员、开发人员、项目管理者、其他质量人员和需要阅读本报告的高层经理。
测试的主要内容为对项目的各个功能模块和非功能模块进行软件性能测试,采用的测试方法可以黑盒测试和白盒测试。
对于网上点餐系统测试计划中的测试目标,可能包括以下几个方面:
1.功能测试:测试系统是否满足设计和用户要求,包括点餐、下单、支付、订单查询等方面的功能。
2.性能测试:测试系统在负载情况下的稳定性、响应速度、并发处理能力等,确保用户体验流畅。
3.安全测试:测试系统的安全性,包括用户信息的保护、支付安全、数据传输安全等。
4.易用性测试:测试系统的界面设计、操作流程是否简单易用,以及对于用户的反馈是否及时响应。
5.兼容性测试:测试系统在不同的浏览器、操作系统、设备等环境下的兼容性。
6.稳定性测试:测试系统的稳定性,包括系统崩溃、数据丢失等异常情况的处理能力。
微信小程序运行在智能手机上;餐饮管理应用、服务端应用以及推荐系统运行在阿里云的服务器上,商家可以通过浏览器访问餐饮管理应用。服务器上安装着 MySQL 数据库与 Redis数据以及 Java、Python 语言运行所需的环境。下面将简要介绍系统测试的硬件环境与软件环境。
(1)硬件环境
系统所用的服务器为租用的阿里云服务器。微信点餐小程序运行在小米 9SE 手机上,餐饮管理应用通过个人电脑上的浏览器进行访问。
类型 | 基本参数 |
---|---|
智能手机 | CPU:高通骁龙 712 @2.3GHz; 运行内存:6GB; |
个人电脑 | CPU:AMD Ryzen5 2600 @3.40Hz; 运行内存:16GB; |
服务器 | CPU:Intel Xeon E5-2682v4 @2.5GHz 运行内存:2GB; 网络带宽:1Mbps |
表12·系统测试环境硬件参数
微信小程序、餐饮管理应用及系统服务程序所需的的软件环境如表 5.2 所示。微信小程 序需要运行在微信 APP 中,所以手机上需要安装该软件。餐饮管理应用需要使用到浏览器来 对其进行访问,所以通过在个人电脑上安装的 Google Chrome 浏览器对其进行访问并测试。 JDK 是 Java 语言的软件开发工具包,其中包含 Java 的运行环境和 Java 开发工具,Java 应用 程序的运行需要依赖于它。Python 软件选择 3.0 以上的版本,之前的版本会存在兼容问题导 致程序运行出错。MySQL 数据库使用 5.6.0 以上版本,之前版本有些功能不支持。
类型 | 操作系统 | 软件名称 | 软件版本 |
---|---|---|---|
智能手机 | MIUI 11.0.5 (Android9) | 微信 | 7.0.9 |
个人电脑 | Windows 10 专业版 | Google Chrome | 75.0.3770.90 |
服务器 | Linux-Centos 6.8 | JDK | 1.8.0_201 |
Python | 3.6.7 | ||
MySQL | 5.6.22 | ||
Redis | 3.0.0 |
表13·系统测试环境软件参数
1、管理端订单管理测试分析
测试功能 | 操作步骤 | 预期目标 | 测试结果 |
---|---|---|---|
查询历史订单 | 用户登录后,点击页面中的“查询历史订单”按钮 | 点击按钮后正常跳转至订单查询页面 | 通过 |
删除历史订单 | 在查询历史订单后,选择相应的订单,点击“删除”按钮 | 选择相应的订单并点击按钮后,正常删除所选定的订单及记录 | 通过 |
新建订单 | 用户登录后,点击页面中的“新建订单”按钮,并填写相关订单信息 | 点击按钮后,正常跳转至新建订单页面,并在输入订单信息后成功完成订单新建 | 通过 |
取消订单及退款 | 用户登录后,通过查询订单记录,选择相应的订单点击“取消订单”按钮与“退款”按钮 | 点击“取消订单”按钮后成功取消订单,点击“退款”按钮后成功进行该订单的退款 | 通过 |
表14·管理端订单管理测试分析
2、订单财务统计测试分析
测试功能 | 操作步骤 | 预期目标 | 测试结果 |
---|---|---|---|
查询订单财务信息统计 | 管理员登录后,点击“查询订单财务信息统计”按钮 | 点击按钮后正常跳转订单财务信息统计页面 | 通过 |
查询订单收入统计 | 在查询订单财务信息统计后,通过柱状图查看 | 通过柱状图中“查询订单收入统计”相应颜色的柱来查看 | 通过 |
查询平台抽成统计 | 在查询订单财务信息统计后,通过柱状图查看 | 通过柱状图中“查询平台抽成统计”相应颜色的柱来查看 | 通过 |
表15·订单财务统计测试分析
3、管理端预约管理测试分析
测试功能 | 操作步骤 | 预期目标 | 测试结果 |
---|---|---|---|
菜单浏览 | 进入微信小程序,浏览菜品信息;点击分类按钮查看对应菜品信息; | 小程序页面正常显示出菜品的分类、图片、名称、价格信息:正常显示出操作按钮图标等页面组件信息; | 通过 |
预约菜肴 | 点击菜品信息栏中的加号或减号; | 点击加号按钮后显示出所点菜品份数;点击减号菜品份数减 1,若份数为0 则不显示;点击加减号后底部信息栏动态显示出总金额与选择的所有菜品份数; | 通过 |
预约菜肴 | 选择好菜品后,点击预约按钮后选择座位 | 小程序进入选择座位的界面,选好位置后点击确认小程序显示预约成功 | 通过 |
支付 | 点击支付 | 小程序弹出支付页面、支持微信支付宝支付。 | 通过 |
表16·管理端预约管理测试分析
4、运营管理测试分析
测试功能 | 操作步骤 | 预期目标 | 测试结果 |
---|---|---|---|
发布通知 | 进入微信小程序,进入运营管理部分,发布通知 | 小程序页面正常在需要显示通知的地方显示 | 通过 |
客服服务 | 点击小程序内的客服服务按键 | 小程序进入客服服务界面,可以正常与客服聊天 | 通过 |
表17·运营管理测试分析
5、外卖订单跟踪测试分析
测试功能 | 操作步骤 | 预期目标 | 测试结果 |
---|---|---|---|
菜单浏览 | 进入微信小程序,浏览菜品信息;点击分类按钮查看对应菜品信息; | 小程序页面正常显示出菜品的分类、图片、名称、价格信息:正常显示出操作按钮图标等页面组件信息; | 通过 |
预约菜肴 | 点击菜品信息栏中的加号或减号; | 点击加号按钮后显示出所点菜品份数;点击减号菜品份数减 1,若份数为0 则不显示;点击加减号后底部信息栏动态显示出总金额与选择的所有菜品份数; | 通过 |
预约菜肴 | 选择好菜品后,点击外卖按钮后填写外卖的信息,包括电话号码、地址等。 | 小程序进入外卖准备下单的界面,填好相应信息后点击确认小程序显示填写完成 | 通过 |
支付 | 点击支付 | 小程序弹出支付页面、支持微信支付宝支付。 | 通过 |
修改订单信息 | 点击修改订单信息 | 小程序弹出修改订单界面、修改后重新提交订单信息。 | 通过 |
订单跟踪 | 小程序时刻为用户提供订单信息 | 小程序显示外卖员已接单、外卖已送达等信息 | 通过 |
表18·外卖订单跟踪测试分析
6、顾客客户端浏览订单下单测试分析
测试功能 | 操作步骤 | 预期目标 | 测试结果 |
---|---|---|---|
店内就餐 | 顾客进入店内后,就坐于提前预约好的座位;扫描桌面上的二维码进行点餐;提交订单 | 顾客成功根据预约信息入座到正确的座位,并且成功通过二维码进入点餐页面进行点餐下单,成功就餐 | 通过 |
外卖 | 顾客进入店铺微信小程序,在小程序上进行点餐,然后填写配送地址,联系方式和期望送达的时间,等待饭菜送达。 | 进入小程序后,根据菜品分类选择想要吃的菜,会自动添加在购物车中,购物车会显示菜品价格以及相对应的一些价格明细(如打包费,配送费),选择完成后点击提交订单进入确认页面,选好地址和电话确认无误后点击提交订单支付费用后会返回页面显示订单的详细信息 | 通过 |
浏览菜单 | 扫描桌面的二维码或者通过小程序点单时,点击菜品类型浏览查看菜单和菜品详情 | 正常显示出菜单,菜品分类,图片,名称,价格,菜品描述,并且各组件插件能正常显示 | 通过 |
表19·顾客客户端浏览订单下单测试分析
7、顾客个人中心测试分析
测试功能 | 操作步骤 | 预期目标 | 测试结果 |
---|---|---|---|
新用户填写个人信息 | 用户注册成功后,根据小程序页面提示的表单信息,填写个人基本信息 | 用户小程序端能够显示个人信息,并且管理端用户记录系统自动保存用户信息 | 通过 |
新添收货地址 | 用户结合自己的需要,根据地址添加的要求,添加多个外卖收货地址信息 | 顾客个人中心显示新添的信息,并且管理端用户管理处能够记录信息 | 通过 |
修改收货地址 | 用户结合自己的需要,修改外卖收货地址信息 | 顾客个人中心能够显示修改后的信息,并且与管理端同步 | 通过 |
查看收货地址 | 用户在个人中心处,点击查看“我的地址”可以显示详细的地址信息 | 用户点击后,能够显示信息 | 通过 |
删除收货地址 | 用户在地址管理处删除某个收货地址 | 删除后,顾客个人中心没有显示已删除的信息,并且管理端的用户信息与顾客客户端同步 | 通过 |
查看订单信息 | 顾客点击我的订单,查看全部的订单详细信息 | 页面能够显示订单的信息,并且点击某个订单可以查看详细的信息 | 通过 |
删除订单信息 | 顾客在订单管理处删除已完成的订单信息 | 删除后,顾客客户端无显示已删除的订单信息 | 通过 |
取消订单 | 顾客联系客服后,点击“退款”进行退款处理 | 成功退款,并且返回金额 | 通过 |
查看评价/点赞 | 顾客点击“参与评价”查看自己参与的评价活动 | 点击后,页面成功显示顾客参与评价的信息 | 通过 |
删除评价/点赞 | 顾客查看评价后,点击删除该评论/点赞 | 点击后,该评论/点赞从页面消失,重新查看评价后,页面无显示已删除的评论 | 通过 |
联系客服 | 顾客点击连线客服后,系统管理端的用户会与顾客进行连线,顾客和管理端用户通过发送信息进行交流 | 顾客端的信息能够发送出去,并且能够接收到管理端用户发送的信息,同时,管理端的用户能够发送信息并且能够接收到顾客发送的信息 | 通过 |
表20·个人中心测试分析
8、客户端用户管理测试分析
测试功能 | 操作步骤 | 预期目标 | 测试结果 |
---|---|---|---|
用户注册 | 扫码进入点餐页面,提示用户是否授权信息,成功授权信息注册账号,生成唯一ID码 | 扫码成功进入点餐页面,授权信息成功,成功接收用户信息,成功生成唯一ID码 | 通过 |
用户注销 | 点击进入“我的”,点击“账号注销”选项,弹出注销提示信息,点击“我同意,成功删除用户账号及信息” | 成功进入“我的”界面,成功点击“注销账号”,正常弹出提示信息,成功注销账号 | 通过 |
表21·客户端用户管理测试分析
9、管理端用户管理测试分析
测试功能 | 操作步骤 | 预期目标 | 测试结果 |
---|---|---|---|
用户注册 | 点击进入注册页面,输入必要信息,成功接收信息注册账号,生成唯一ID码 | 成功进入注册页面,输入信息成功,成功接收用户信息,成功生成唯一ID码 | 通过 |
用户权限管理 | 高级用户点击进入权限管理页面,选择修改权限的一般用户,点击权限修改 | 成功进入权限管理页面。成功修改一般用户权限 | 通过 |
用户登录 | 点击进入登录页面,输入正确账号及密码,点击账号登录 | 成功进入登录页面,账号密码正常识别,账号成功登录 | 通过 |
修改用户密码 | 登录账号,点击账号管理,点击修改用户密码,填写新密码及旧密码,点击修改密码 | 成功登录账号,进入账号管理页面,成功修改密码 | 通过 |
用户注销 | 点击进入“我的”,点击“账号注销”选项,弹出注销提示信息,点击“我同意,成功删除用户账号及信息” | 成功进入“我的”界面,成功点击“注销账号”,正常弹出提示信息,成功注销账号 | 通过 |
表22·管理端用户管理测试分析
10、菜品管理测试分析
测试功能 | 操作步骤 | 预期目标 | 测试结果 |
---|---|---|---|
添加菜品 | 进入管理端程序,进入菜品管理页面,点击“添加菜品”,填写菜品信息,点击“添加”按钮 | 成功进入菜品管理页面,成功添加菜品 | 通过 |
修改菜品 | 进入管理端程序,进入菜品管理页面,选择要修改的菜品,点击“修改菜品”,对菜品信息进行保存,点击保存 | 成功进入菜品管理页面,成功查询要修改的菜品,成功对菜品信息进行修改 | 通过 |
删除菜品 | 进入管理端程序,进入菜品管理页面,选择要删除的菜品,点击“删除菜品” | 成功进入菜品管理页面,成功查询要删除的菜品,成功对已有菜品进行删除 | 通过 |
表23·菜品管理测试分析