wp做网站需要多久,广告传媒公司,做文献综述用什么网站,设计君1 系统背景
随着互联网技术的快速发展#xff0c;外卖订餐服务逐渐成为人们生活中的一部分。传统的电话订餐方式面临诸多不便和限制#xff0c;而基于互联网的外卖订餐系统则提供了更加便捷、快速和高效的订餐服务。这种系统通过将餐厅、顾客和配送人员连接起来#xff0c;…
1 系统背景
随着互联网技术的快速发展外卖订餐服务逐渐成为人们生活中的一部分。传统的电话订餐方式面临诸多不便和限制而基于互联网的外卖订餐系统则提供了更加便捷、快速和高效的订餐服务。这种系统通过将餐厅、顾客和配送人员连接起来实现了点餐、支付、配送等关键环节的无缝协作。
外卖订餐系统的目标是简化人们的订餐过程提供便捷的外卖服务。系统允许顾客通过网页或手机应用平台进行在线订餐浏览菜单、选择餐品、定制口味并可选择不同的支付方式完成支付。餐厅方面可以通过系统管理菜单、接受新的订单、派发配送任务并对订单进行统计和分析。配送人员可以通过系统接受配送任务并实时更新配送进度。
外卖订餐系统的需求来源于顾客对于更加方便快捷的订餐方式的期望以及餐厅和配送人员对于提升效率和客户满意度的追求。因此通过设计和实现一个高效、可靠、易用的外卖订餐系统可以提升整个订餐服务的质量和效率实现顾客、餐厅和配送人员的共赢。
2 系统开发环境
2.1 硬件环境
项目最低配置推荐配置内存淮海晚报2GCPU单核四核硬盘10G500G带宽512K10M
表2-1 硬件环境表
2.2 软件环境
1操作系统Windows 11
2数据库软件
MySQL8.0 用于支持数据库
Navicat Premium: 用于专业人员管理数据库数据
3Java环境
java version “1.8.0_201”
Java™ SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot™ 64-Bit Server VM (build 25.201-b09, mixed mode)
配置环境
IDEA 2019.3.3 x64
Node v14
网络100Mbps的无线网络
2.3 相关技术 编程语言系统将使用Java作为主要开发语言以实现系统的功能和逻辑。 开发框架系统将采用Spring、ASP.NET等作为开发框架以提供开发所需的基础设施和工具。 数据库系统将使用MySQL作为数据存储和管理的技术以支持数据的持久化存储和高效查询。 前端技术系统的用户界面将采用HTML、CSS、JavaScript等进行开发以实现用户友好的交互体验和界面设计。 云平台服务系统的部署和运行将基于Azure提供的云计算服务以实现系统的可用性、可扩展性和灵活性。 版本控制系统开发过程中将使用Git进行代码版本管理以确保开发团队的协作和代码的版本控制。
3 需求分析
3.1 可行性分析
这个系统是基于Java并结合MySQL语言开发的外卖点餐系统。
在Java开发方面我已经具备一定的基础并在实践中深入研究了Java进阶教程掌握了Windows图形化界面和Java面向对象等操作。
在数据库方面我专注于MySQL关系型数据库在实现外卖点餐系统中的数据操作时严谨地运用各种MySQL关系型语句并将其与Windows GUI界面相结合。
3.2 功能需求
1.系统组成系统管理、订单管理、商家、订餐者、配送员。每个部门都有专门人员进行
管理执行不同的功能。
2.登录模块用户使用自己的账号密码登录相应端系统从而进行订餐、评论等操作。管理员使用自己的账号密码登录相应端系统从而进行订单管理、评论、餐品管理等操作。其中用户可为订餐者配送员商家管理员
3.评论模块商家、配送员查看用户评价。
4.订餐模块订餐者选择相应商家在相应商家选择自己想要的菜根据自己需求下订单商家级配送员根据情况进行接单。订餐者可对自己的订单进行删除、添加等订餐管理员可对订单进行查看、更新订单等。
5.店铺管理模块商家根据店铺对商家名商家介绍及其相关菜品种类价格进行修改、删除等操作以及申请成为外卖商家店铺操作。
6.订单管理模块用户可对自己的订单进行删除、添加等餐厅管理人员可对订单进行查看、更新订单等。
7.维护管理模块管理员系统进行测试、修复及其相关用户管理。
3.3 性能需求 并发处理系统应能够处理大量用户同时访问、点餐和支付的需求保证并发用户的正常操作。 响应时间系统应能够在合理的时间内响应用户的请求包括菜单浏览、搜索、点餐和支付等功能的响应时间。 可用性系统应具备高可用性保证24小时稳定运行避免因系统故障或维护而导致的长时间无法使用。 安全性系统应保护用户信息的安全性采用合适的加密和身份验证机制防止未授权访问及数据泄露。 扩展性系统应具备良好的扩展性能够根据用户量的增加灵活地扩展服务器和网络资源以保证系统的性能和稳定性。 容错性系统应具备容错能力能够处理和恢复部分系统故障保证系统的连续性和可靠性。
以下是性能处理方面
1并发度1000Tomcat
2响应时间5s
3事务处理2分钟
4可扩展性基于接口的MVC架构
5安全性基于角色的权限管理
3.4 系统用例
1.参与者①管理员②商家③订餐者④配送员
3.4.1顶层用例图
介绍个用例之间相互关系。 图1顶层用例图
3.4.2查看评价用例图
商家、配送员查看用户评价 图 2查看评价用例图
3.4.3登录用例图
用户使用自己的账号密码登录相应端系统从而进行订餐、评论等操作。管理员使用自己的账号密码登录相应端系统从而进行订单管理、评论、餐品管理等操作。其中用户可为订餐者配送员商家管理员
图 3登录用例图
3.4.4订餐用例图
订餐者选择相应商家在相应商家选择自己想要的菜根据自己需求下订单商家级配送员根据情况进行接单。订餐者可对自己的订单进行删除、添加等订餐管理员可对订单进行查看、更新订单等。
图 4订餐用例图
3.4.5店铺管理用例图 图 5店铺管理用例图
3.4.6订单管理用例图
用户可对自己的订单进行删除、添加等餐厅管理人员可对订单进行查看、更新订单等 图6 订单管理用例图 图7配送订单管理用例图
3.4.7维护系统用例图
管理员系统进行测试、修复及其相关用户管理。 图8维护系统用例图
3.4.8一级用例图 图9一级用例图
4 系统概要设计
4.1 系统运行原理
用户注册与登录
用户通过注册账号并登录系统可以使用系统的各项功能。系统在用户注册时进行账号信息的有效性验证并将用户信息保存在用户数据库中。
餐厅信息管理
管理员可以添加、编辑和删除餐厅信息包括餐厅名称、地址、联系信息等。用户可以根据餐厅名和位置等信息查询餐厅以选择合适的餐厅进行订餐。
菜单管理
餐厅管理员可以在系统中添加、编辑和删除菜单项包括菜名、价格、描述等。用户可以浏览餐厅的菜单并选择自己想要的菜品进行订购。
订单管理
用户选择菜品后系统会根据用户的选择生成订单。订单包括用户信息、餐厅信息、菜品信息和订单状态等。系统会实时更新订单状态例如待付款、正在配送和已完成等状态。
支付与配送
用户在系统中选择合适的支付方式完成付款并填写配送地址和联系方式。系统将根据订单状态进行配送并及时更新订单状态。用户可以通过系统追踪订单状态以了解订单的配送进度。
评价与反馈
用户可以对已完成的订单进行评价和反馈。系统会显示用户的评价和餐厅的评分以帮助其他用户选择餐厅和菜品。
管理与维护
系统管理员可以对系统进行管理和维护包括用户管理、餐厅管理、订单管理等。管理员还可以分析和统计系统的运行情况例如用户使用情况、菜品销量等以便优化系统的性能和用户体验。
4.2 系统框架结构图
本系统采用了前后端分离的方式在后端框架中我们可将其看成三层结构Web服务层、业务逻辑服务层和持久层前端则是用Vue搭建的HTML页面前后端通过Axios封装的Ajax技术跨域传值数据则用Json格式封装在这里前后端分离架构图如图4-1所示
图4-1 前后端分离架构图
5 数据库设计
5.1需求分析
分析用户的需求包括数据、功能和性能需求
5.1.1. 数据需求分析 用户需要存储和管理餐厅的菜单信息包括菜名、描述、价格、类别等。 用户需要存储和管理用户信息包括用户名、密码、联系方式等。 用户需要存储和管理订单信息包括订单号、用户信息、菜单项、订单状态、订单金额 用户需要存储和管理配送地址信息包括用户ID、收货人姓名、电话号码、地址等。 用户需要存储和管理支付信息包括订单号、支付方式、支付状态、支付金额等。
5.1.2. 功能需求分析 用户需要能够通过系统浏览餐厅的菜单并查看菜品的详细信息。 用户需要能够将菜品加入到购物车并进行添加、编辑和删除操作。 用户需要能够下单并选择配送地址和支付方式。 用户需要能够查看订单状态和支付状态并进行相应的操作如取消订单、确认收货等。 用户需要能够查看历史订单并进行评价、投诉等操作。 管理员需要能够管理菜单包括添加、编辑、删除菜品。 管理员需要能够管理用户包括查看用户信息、冻结用户等操作。 管理员需要能够处理订单包括接单、派送等操作。
5.1.3. 性能需求分析 系统需要能够处理大量用户的并发访问保证用户的响应时间在可接受范围内。 数据库需要能够存储大量的菜品、用户、订单等数据保证数据的读写操作的及时性和准确性。 系统需要具备良好的稳定性和可靠性确保数据不会丢失或意外损坏。 数据库查询和索引设计需要优化以提高系统的性能和响应速度。
5.2概念结构设计
主要采用E-R模型进行设计包括画E-R图 图5.1 E-R图设计1
抽象出系统的实体并设计部分E-R图如下。
用户信息用户编号、姓名、手机号、性别、身份证号、头像、状态如图5. 2 图5.2 用户信息实体图
菜品信息菜品编号、菜品名称、菜品分类id、菜品价格、商品码、图片、描述信息、状态、顺序、创建时间、更新时间、创建人、修改人如图5.3 图5.3 菜品信息实体图
订单信息订单编号、订单名、订单状态、下单用户、地址id、下单时间、结账时间、支付方式、实收金额、备注、手机号如图5.4 图54 订单信息实体图
地址信息编号、用户id、收货人、性别、手机号、省级区划编号、省级名称、市级区划编号、市级名称、区级区划编号、区级名称、详细地址、标签如图5.5 图5.5 地址信息实体图
订单明细编号、名字、图片、订单id、菜品id、套餐id、口味、数量、金额如图5.6 图5.6 订单明细实体图
5.3逻辑结构设计
通过将E-R图转换成表实现从E-R模型到关系模型的转换
据数据库概念结构设计中的实体及属性描述、以及数据库的规范化理论设计管理员信息表、分类信息表、菜品管理信息表、订单信息表、订单明细表、、购物车信息表和用户信息表、表5.7至表5.12是各个数据库表的逻辑结构。
表5.7 管理员信息表
字段名列类型与长度描述备注numvarchar(255)工号主键namevarchar(32)姓名非空usernamevarchar(32)姓名非空passwordvarchar(64)密码非空
表5.8分类信息表
字段名列类型与长度描述备注idbigint(20)编号主键typeint(11)类型非空namevarchar(64)分类名称非空sotrint(11)顺序非空Create_timedatetime创建时间非空Update_timedatetime更新时间非空Create_user bigint(20)创建人非空Update_user bigint(20)修改人非空
表5.9 菜品管理信息表
字段名列类型与长度描述备注idbigint(20)编号主键namevarchar(64)菜品名称非空category_idbigint(20)菜品分类id非空pricedecimal(10,2)菜品价格非空codevarchar(64)商品码非空imagevarchar(200)图片非空description varchar(400)描述信息非空status int(11)0 停售 1 起售非空sortint(11)顺序非空Create_timedatetime创建时间非空Update_timedatetime更新时间非空Create_user bigint(20)创建人非空Update_user bigint(20)修改人非空is_deletedint(11)是否删除非空
表5.10 订单信息表
字段名列类型与长度描述备注idbigint(20)编号主键numbervarchar(50)订单号非空statusint(11)订单状态 1待付款2待派送3已派送4已完成5已取消非空user_id bigint(20)下单用户非空address_book_idbigint(20)地址id非空order_timedatetime 下单时间非空checkout_timedatetime结账时间非空pay_methodint(11)支付方式 1微信,2支付宝非空amountvarchar(255)实收金额非空remarkvarchar(255)备注非空phone varchar(11) 电话非空addressvarchar(255)地址非空user_namevarchar(32)用户名非空consigneevarchar(50) 收货人非空
表5.11 订单明细表
字段名列类型与长度描述备注id bigint(20)编号主键namevarchar(50)名字非空imagevarchar(100)图片非空order_idbigint(20)订单id非空dish_idbigint(20)菜品id非空setmeal_idbigint(20)套餐id非空dish_flavorvarchar(50)口味非空number int(11)数量非空amountdecimal(10,2)金额非空
表5.12 用户信息表
字段名列类型与长度描述备注idbigint(20)编号主键namevarchar(50)姓名非空phone varchar(100)手机号非空sexvarchar(2)性别非空id_numbervarchar(18)身份证号非空avatarvarchar(500)头像非空statusint(11)状态0:禁用1:正常非空
5.4数据库物理设计
主要是为所设计的数据库选择合适的存储结构和存取路径
1. 创建数据库-- 如果已有该数据库则删除DROP DATABASE IF EXISTS OnlineFoodOrdering;-- 创建数据库CREATE DATABASE OnlineFoodOrdering CHARSETUTF8;2. 创建数据库表-- 使用数据库USE OnlineFoodOrdering;-- table 1: SystemManagementDROP TABLE IF EXISTS SystemManagement;CREATE TABLE SystemManagement (id INT(20) UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,username VARCHAR(20),password VARCHAR(20),role VARCHAR(20));-- table 2: OrderManagementDROP TABLE IF EXISTS OrderManagement;CREATE TABLE OrderManagement (id INT(20) UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,order_id VARCHAR(20),customer_id INT(10),restaurant_id INT(10),delivery_person_id INT(10),status VARCHAR(20),total_price DECIMAL(10, 2),order_date TIMESTAMP);-- table 3: RestaurantDROP TABLE IF EXISTS Restaurant;CREATE TABLE Restaurant (id INT(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,name VARCHAR(50),location VARCHAR(100),contact_number VARCHAR(20));-- table 4: CustomerDROP TABLE IF EXISTS Customer;CREATE TABLE Customer (id INT(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,name VARCHAR(50),address VARCHAR(100),contact_number VARCHAR(20));-- table 5: DeliveryPersonDROP TABLE IF EXISTS DeliveryPerson;CREATE TABLE DeliveryPerson (id INT(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,name VARCHAR(50),contact_number VARCHAR(20),vehicle_number VARCHAR(20));数据存储 图5.13 数据存储图
java/com/example/order/dao/DatabaseHelper.java
public class DatabaseHelper extends SQLiteOpenHelper { public DatabaseHelper(Nullable Context context, int version) { super(context, “OrderStore.db”, null, version); } Override public void onCreate(SQLiteDatabase db) { String createOrders “create table orders (” “id integer primary key autoincrement,” “name text,” “image integer,” “money real,” “time text,” “username text)”; db.execSQL(createOrders); }
java/com/example/order/dao/OrderDao.java
public static void saveOrder(List orders) { SQLiteDatabase db dbHelper.getWritableDatabase(); for (Order order : orders) { ContentValues values new ContentValues(); values.put(“name”, order.getName()); values.put(“image”, order.getImage()); values.put(“money”, order.getMoney()); values.put(“time”, order.getTime()); values.put(“username”, order.getUsername()); db.insert(“orders”, null, values); }
5.5数据库的实施
包括编程、测试和试运行
6 系统功能模块实现
[描述对系统功能模块的实现包括实现功能需求描述、流程图、类图、核心代码不能超过一页、运行效果图等]
6.1 所有模块的实现类图
综合运动识别对象和类的方法按照需求陈述中出现的内容得到“外卖点餐管理系统”的候选类有商家、订餐者、配送员、系统管理员、订餐管理员、订餐者订餐下单、商家接单、配送员配送、订餐者评价、商家、配送员查看评价、商家申请成为外卖店铺、申请成功等内容。
店铺管理类 图6-1 店铺管理类图
订餐类 图6-2 订餐类图
源代码部分示例 sqlsqlpython
font stylecolor:#CC7832;class_attributes
(list class_attribute_list/fontfont stylecolor:#CC7832; (object ClassAttribute ID/fontfont stylecolor:#CC7832;
quid 5DFB76720278)/fontfont stylecolor:#CC7832; (object ClassAttribute pwd/fontfont stylecolor:#CC7832; quid 5DFB7676029F)))/fontfont stylecolor:#CC7832; (object Class Merchant/fontfont stylecolor:#CC7832;
quid 5DFB750C025F/fontfont stylecolor:#CC7832; stereotype entity/fontfont stylecolor:#CC7832;
superclasses (list inheritance_relationship_list/fontfont stylecolor:#CC7832; (object Inheritance_Relationship/fontfont stylecolor:#CC7832;
quid 5DFC96D20128/fontfont stylecolor:#CC7832;
supplier Logical View::Entity::USER/fontfont stylecolor:#CC7832; quidu 5DFB74FC034C))/fontfont stylecolor:#CC7832;
used_nodes (list uses_relationship_list/fontfont stylecolor:#CC7832; (object Uses_Relationship/fontfont stylecolor:#CC7832; quid 5DFC96D9038A/fontfont stylecolor:#CC7832; supplier Logical View::Entity::Shop/fontfont stylecolor:#CC7832; quidu 5DD253F800AC)/fontfont stylecolor:#CC7832; (object Uses_Relationship/fontfont stylecolor:#CC7832;
quid 5DFC96DC0396/fontfont stylecolor:#CC7832;
supplier Logical View::Entity::Food/fontfont stylecolor:#CC7832;
quidu 5DD253EE02B1))/fontfont stylecolor:#CC7832; operations (list Operations/fontfont stylecolor:#CC7832; (object Operation getShopName/fontfont stylecolor:#CC7832; quid 5DFB7732034E/fontfont stylecolor:#CC7832; concurrency Sequential/fontfont stylecolor:#CC7832; opExportControl Public/fontfont stylecolor:#CC7832; uid 0)/fontfont stylecolor:#CC7832; (object Operation setShopName/fontfont stylecolor:#CC7832; quid 5DFB774702E8/fontfont stylecolor:#CC7832; concurrency Sequential/fontfont stylecolor:#CC7832; opExportControl Public/fontfont stylecolor:#CC7832; uid 0))/font用户登录部分代码
font stylecolor:#CC7832;
public void index() throws IOException{/fontfont stylecolor:#CC7832; User user1 userService.getUser(user);/fontfont stylecolor:#CC7832; if (user1 ! null){/fontfont stylecolor:#CC7832; if (user1.getIsSh() 1){/fontfont stylecolor:#CC7832; if (user1.getRole().getEnName().equals(admin)){/fontfont stylecolor:#CC7832; ActionContext.getContext().getSession().put(user, user1);/fontfont stylecolor:#CC7832; }/fontfont stylecolor:#CC7832; if (user1.getRole().getEnName().equals(js)){/fontfont stylecolor:#CC7832;
ActionContext.getContext().getSession().put(user1, user1);/fontfont stylecolor:#CC7832; }/fontfont stylecolor:#CC7832; if (user1.getRole().getEnName().equals(xs)){/fontfont stylecolor:#CC7832; ActionContext.getContext().getSession().put(user2, user1);/fontfont stylecolor:#CC7832; }/fontfont stylecolor:#CC7832; map.put(flag, 1);/fontfont stylecolor:#CC7832;
map.put(url, login_indexs.do);/fontfont stylecolor:#CC7832; map.put(id, user1.getId());/fontfont stylecolor:#CC7832; JsonUtils.toJson(map);/fontfont stylecolor:#CC7832; }else {/fontfont stylecolor:#CC7832; map.put(flag, 2);/fontfont stylecolor:#CC7832; JsonUtils.toJson(map);/fontfont stylecolor:#CC7832;
}/fontfont stylecolor:#CC7832; }else {/fontfont stylecolor:#CC7832; map.put(flag, 3);/fontfont stylecolor:#CC7832; JsonUtils.toJson(map);/fontfont stylecolor:#CC7832;
}/fontfont stylecolor:#CC7832; }/font6.1.3 功能需求
流程图
系统流程图 图6-3 系统流程图
6.1.3 模块设计
[利用软件工程类图和时序图进行表述]
1订餐顺序图 图6-4订餐顺序图
2商家顺序图 图6-5商家顺序图
6.1.4 详细设计
项说明方法名称及类型下单 (POST)方法功能描述此方法允许顾客通过网页或手机应用平台进行在线订餐。顾客可以浏览菜单、选择餐品、定制口味并选择不同的支付方式完成订单。Input输入参数输入参数包括顾客详细信息、所选菜品、定制选项和支付信息。Return返回值成功下单后该方法将返回订单确认消息或订单号Exception抛出异常如果支付过程出现问题或任何必需的输入参数缺失或无效该方法将抛出下单异常。
项说明方法名称及类型管理订单 (GET/POST)方法功能描述该方法允许餐厅工作人员管理菜单、接受新订单、分配配送任务并对订单进行统计分析。Input输入参数输入参数可能包括订单状态过滤器、统计分析的日期范围和其他订单管理的条件。Return返回值根据具体操作该方法可能返回更新后的订单详情、统计报告或确认消息。Exception抛出异常如果尝试修改不存在的订单或存在未经授权的访问尝试该方法将抛出订单管理异常。
6.1.5 数据库
数据库触发器
触发器是用户定义在关系表上的一类由事件驱动的特殊过程。一旦定义任何用户对表的增、删、改操作均由服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制。由于本系统的触发器比较多在这里我只写出了其中的一部分触发器。
代码实现
Private Sub bjcx_ClickIndex As Integer)If qxstra 0” ThenMsgBox 你没有权限进行操作!”, vbExclamation vbOKOnly, ”警告Exit SubEnd If订单查询.ShowEnd SubPrivate Sub bjkcsz_ClickIndex As IntegerIf qxstra ”0 ThenMsgBox 你没有权限进行操作! vbExclamation vbOKOnly ”警告Exit SubEnd If订单设置.ShowEnd SubPrivate Sub bjll_ClickIndex As Integer)订单浏览。ShowEnd SubPrivate Sub bjsc_Click(Index As Integer)If qxstra ”0” ThenMsgBox ” 你没有权限进行操作!”, vbExclamation vbOKOnly ”警告Exit SubEnd If订单删除.ShowEnd SubPrivate Sub bjtj_Click(Index As IntegerIf qxstra ”0” ThenMsgBox ” 你没有权限进行操作!, vbExclamation vbOKOnly通过上述对外卖点餐系统管理-管理员端的设计与实现可以得出实现该系统需要使用的数据实体从而得知该系统的类图如图6-6所示。 图6-6 类图
1建立构件图 图6-7 构建图
2建立部署图 图6-8 部署图
6.1.6 界面原型/实现效果图 图6-9 界面实现图1 图6-10 界面实现图2
7 测试
单元测试用例
模块测试 - 用户注册功能
测试目的验证用户注册模块的功能是否符合需求。
测试步骤输入有效的用户信息用户名、密码、联系方式点击注册按钮。
预期结果系统应成功创建新用户并且在数据库中存储该用户的信息。
性能测试 - 菜品搜索响应时间
测试目的评估菜品搜索功能的响应时间和性能。
测试步骤进行多次菜品搜索操作记录每次搜索的响应时间。
预期结果平均响应时间应符合性能要求能够在合理时间内返回搜索结果。
接口测试 - 支付接口验证
测试目的验证支付接口与第三方支付服务的交互是否正常。
测试步骤模拟支付过程包括选择菜品、填写支付信息、模拟付款。
预期结果支付接口应正确调用第三方支付服务返回支付结果并更新订单状态。
集成测试用例
模块间接口测试 - 用户登录与订单管理模块
测试目的验证用户登录后能否顺利进行订单管理操作。
测试步骤用户登录后尝试创建、修改和取消订单。
预期结果用户能够成功登录并且订单管理模块能够正确识别已登录用户的身份并允许其进行订单管理操作。
系统测试用例
系统连接验证 - 前台下单与后台订单管理协同测试
测试目的验证前台用户下单后是否能够被后台订单管理系统正确接收并处理。
测试步骤模拟用户在前台下单同时检查后台订单管理系统是否能正确接收到订单信息并进行相应处理。
预期结果后台系统应正确处理并管理前台下单的订单信息确保订单状态和内容一致。
确认测试用例
内部确认测试 - 系统需求与实现的一致性验证
测试目的验证系统实现是否符合内部制定的需求规格。
测试步骤针对各项系统需求逐一验证系统实现是否符合需求描述。例如用户注册、菜品浏览、订单管理等方面的需求。
预期结果系统实现应符合需求规格满足预期的功能和性能要求。
测试流程
7.1单元测试
以管理员admin 用户、身份从登录界面登录测试系统的登录功能以及管理员用户是否成功建立连接。
管理员登录测试结果如表7.1。
测试用例用户名、密码预期结果测试结果“”“”用户名不能为空提示输入用户名“admin”“”密码不能为空提示输入密码“admin”“123456”密码错误提示输入正确密码“admin”“123123”登录成功登录成功跳转到外卖管理页面
表 7.1 测试结果表一
7.2.餐品管理测试
测试流程
以超级管理员admin 用户从登录界面登录管理员测试系统的套餐管理功能测试结果如表 7.2。
测试用例名称、价格、库存、描述图标分类、状态预期结果测试结果添加套餐“精品四人餐”、“四人餐”、“254”菜品两道图片一张“好吃划算”添加成功返回套餐列表显示套餐的信息。添加成功返回套餐列表显示套餐的信息。添加用户“”、“四人餐”、“254”菜品两道图片一张“好吃划算”添加失败提示框“请输入套餐名称”删除套餐(ids:1594972446119768066删除失败删除失败弹出提示框显示“套餐正在售卖中不能删除”修改员工“精品四人餐”修改为“超值四人餐”修改成功套餐名称“精品四人餐”改为“超值四人餐”
表 7.2 测试结果表二
7.3 系统测试
测试流程
测试管理员用户的登录系统性再测试不是本系统用户是否能登录成功。管理员用户登录测试结果如表7.3。
测试用例学号/工号、用户名、密码测试结果管理员登录admin、123456登录成功跳转到外卖系统管理主页管理员登录admin、123456登录失败提示“登录失败”用户登录xiaoming123456登录成功跳转到点餐主页用户登录xiao12345678登录失败提示“登录失败”非本系统用户登录(xiaohao123456)登录失败提示“登录失败”
表7.3 测试结果表三
8 总结
在系统设计过程中我大致实现了这些功能
基于分类信息的管理。分类信息管理的功能包括添加分类、修改分类、删除分类等功能。
基于菜品和套餐信息的管理。菜品和套餐信息管理的功能包括添加菜品和套餐、修改菜品和套餐、删除菜品以及套餐起售禁售菜品和套餐等功能。
基于订单信息的管理。订单信息管理的功能包括查看、派送订单、完成订单和订单的模糊查询等功能。
根据了解Redis数据读写速度非常快因为它是基于内存操作的单线程避免了多个线程直接的来回切换底层采用了Hash算法而且Redis是用C语言编写的是最“接近”操作系统的语言所以执行速度相对较快。我们利用Redis的这些特行将商品信息和商品分类信息存储到Redis中极大的提高了系统的性能使客户得到了更好的使用体验。
在整个开发和测试过程中通过该平台的正常运行加强了平台的功能与评测并对部分功能进行了优化提高了平台使用效果。该平台可用于多种人群和各种餐饮行业的商家商家可以自定义菜品来进行运营。也可以发布到云平台具有较强的应用性。
在系统设计完成后我发现在开发过程中我对于UML的掌握程度得到了很大的提升。我能够更加熟练地运用不同的UML图表来描述系统的不同方面如用例图、类图、时序图等。这使得我能够更好地将需求转化为系统设计并将设计转化为代码。通过这个项目我也深刻理解了系统设计的重要性只有进行充分的设计才能确保系统具备良好的扩展性、可维护性和可靠性。
在对系统设计的总结中我注意到了一些问题。首先是需求的变化。在项目过程中需求可能会发生变化为了应对这种情况我需要及时地更新设计并与团队成员共享变更。其次是模块之间的交互我发现在设计中会涉及到不同模块之间的交互需要充分考虑各模块的接口设计和信息传递方式。最后是系统性能的考虑我需要在设计中考虑系统负载、响应时间等因素以确保系统能够满足用户的需求。
在后期进一步工作中我计划进行系统的测试和优化。通过各种测试方法如单元测试、集成测试和系统测试我将确保系统在各种情况下能够正常运行。同时我还会进行系统的性能优化根据测试结果对系统进行调整和改进以提高系统的效率和稳定性。通过这个项目我不仅在UML的运用上取得了进一步的提升还学到了系统设计的重要性和设计的关键考虑因素。在后期工作中我将继续努力通过测试和优化来完善系统以不断提高系统的质量和用户体验.
用户登录
**ID**UC01
**名称**用户登录系统
**用例属性**基本功能
**参与者**订餐者、配送员、商家、管理员
**描述**不同类型的用户使用自己的账号密码登录相应的系统端以进行后续操作。
**优先级**高
**触发条件**用户打开外卖系统希望进行订餐、管理等操作。
**前置条件**用户已注册账号。
**后置条件**用户成功登录系统进入相应的操作界面。
正常流程
用户打开外卖系统登录页面。
输入账号和密码。
系统验证账号密码的正确性。
验证通过后根据用户类型进入相应的系统界面。
订餐者订餐
**ID**UC02
**名称**订餐者下单
**用例属性**核心功能
**参与者**订餐者
**描述**订餐者选择商家并下单购买菜品。
**优先级**高
**触发条件**订餐者有订餐需求。
**前置条件**订餐者已登录系统。
**后置条件**生成订单商家和配送员可查看订单。
正常流程
订餐者登录系统后进入订餐模块。
浏览可选择的商家列表。
选择一个商家进入其菜品页面。
挑选自己想要的菜品加入购物车。
确认订单信息后提交订单。
订餐者订单管理
**ID**UC03
**名称**订餐者管理订单
**用例属性**基本功能
**参与者**订餐者
**描述**订餐者对自己的订单进行管理操作如删除、添加菜品等。
**优先级**中
**触发条件**订餐者需要修改订单或查看订单状态。
**前置条件**订餐者已登录系统且有订单存在。
**后置条件**订单状态更新或菜品信息修改。
正常流程
订餐者登录系统后进入订单管理模块。
查看自己的订单列表。
可以选择对订单进行删除、添加菜品等操作。
商家店铺管理
**ID**UC04
**名称**商家管理店铺
**用例属性**基本功能
**参与者**商家
**描述**商家对自己的店铺信息和菜品进行管理。
**优先级**中
**触发条件**商家需要修改店铺信息或菜品信息。
**前置条件**商家已登录系统。
**后置条件**店铺信息或菜品信息更新。
正常流程
商家登录系统后进入店铺管理模块。
可以修改商家名、商家介绍。
对店铺的菜品种类、价格进行修改、删除等操作。
可以申请成为外卖商家店铺。
订单管理管理员
**ID**UC05
**名称**管理员管理订单
**用例属性**管理功能
**参与者**管理员
**描述**管理员对所有订单进行查看和更新操作。
**优先级**高
**触发条件**管理员需要监控订单状态或进行订单调整。
**前置条件**管理员已登录系统。
**后置条件**订单状态更新或问题订单得到处理。
正常流程
管理员登录系统后进入订单管理模块。
查看系统中的所有订单列表。
可以根据实际情况对订单进行更新操作如修改订单状态等。
系统维护管理
**ID**UC06
**名称**系统维护
**用例属性**管理功能
**参与者**管理员
**描述**管理员对系统进行测试、修复和用户管理等维护操作。
**优先级**高
**触发条件**系统出现问题或需要进行定期维护。
**前置条件**管理员已登录系统。
**后置条件**系统稳定运行用户信息得到有效管理。
正常流程
管理员登录系统后进入维护管理模块。
对系统进行测试检查系统的稳定性和性能。
发现问题时进行修复操作。
对用户进行管理如添加、删除用户等。