# 互联网购票乘车系统软件需求规格文档 | 修改人员 | 日期 | 变更原因 | 版本号 | | -------- | -------- | -------- | -------| | 陈泓雨、金语盼、王骏佳、刘子恒 | 2023.4.30 | 初稿(大概框架) | V1.0 | | 陈泓雨、金语盼、王骏佳、刘子恒 | 2023.5.2 | 完成接口 | V2.0 | | 陈泓雨、金语盼、王骏佳、刘子恒 | 2023.5.4 | 修改、完善接口 | V2.1 | 分工:<br>&emsp;王骏佳:1-2.2及3.2中的个人基本信息管理部分<br>&emsp;金语盼:2.3-3.1及3.2中的购买车票部分和文档的修改整理<br>&emsp;陈泓雨:3.3及3.2中的铁路信息管理部分<br>&emsp;刘子恒:3.4-3.5及3.2中的浏览车票详细信息和车票信息管理部分 [**目录**](#互联网购票乘车系统软件需求规格文档)<br>[1. 引言](#1-引言)<br>&emsp;[1.1 目的](#11-目的)<br>&emsp;[1.2 范围](#12-范围)<br>&emsp;[1.3 参考文献](#13-参考文献)<br>[2. 总体描述](#2-总体描述)<br>&emsp;[2.1 商品前景](#21-商品前景)<br>&emsp;&emsp;[2.1.1 背景与机遇](#211-背景与机遇)<br>&emsp;&emsp;[2.1.2 业务需求](#212-业务需求)<br>&emsp;[2.2 商品功能](#22-商品功能)<br>&emsp;[2.3 用户特征](#23-用户特征)<br>&emsp;[2.4 约束](#24-约束)<br>&emsp;[2.5 假设和依赖](#25-假设和依赖)<br>[3. 详细需求描述](#3-详细需求描述)<br>&emsp;[3.1 对外接口需求](#31-对外接口需求)<br>&emsp;&emsp;[3.1.1 用户界面](#311-用户界面)<br>&emsp;&emsp;[3.1.2 通信接口](#312-通信接口)<br>&emsp;&emsp;[3.1.3 软件接口](#313-软件接口)<br>&emsp;[3.2 功能需求](#32-功能需求)<br>&emsp;&emsp;[3.2.1 个人基本信息管理](#321-个人基本信息管理)<br>&emsp;&emsp;[3.2.2 浏览车票详细信息](#322-浏览车票详细信息)<br>&emsp;&emsp;[3.2.3 购买车票](#323-购买车票)<br>&emsp;&emsp;[3.2.4 铁路信息管理](#324-铁路信息管理)<br>&emsp;&emsp;[3.2.5 车票信息管理](#325-车票信息管理)<br>&emsp;[3.3 非功能需求](#33-非功能需求)<br>&emsp;&emsp;[3.3.1 安全性](#331-安全性)<br>&emsp;&emsp;[3.3.2 可维护性](#332-可维护性)<br>&emsp;&emsp;[3.3.3 易用性](#333-易用性)<br>&emsp;&emsp;[3.3.4 可靠性](#334-可靠性)<br>&emsp;&emsp;[3.3.5 业务规则](#335-业务规则)<br>&emsp;&emsp;[3.3.6 约束](#336-约束)<br>&emsp;[3.4 数据需求](#34-数据需求)<br>&emsp;&emsp;[3.4.1 数据定义](#341-数据定义)<br>&emsp;&emsp;[3.4.2 默认数据](#342-默认数据)<br>&emsp;&emsp;[3.4.3 数据格式要求](#343-数据格式要求)<br>&emsp;&emsp;[3.4.4 数据库形式](#344-数据库形式)<br>&emsp;[3.5 其他需求](#35-其他需求)<br>&emsp;&emsp;[3.5.1 分布式部署](#351-分布式部署)<br>&emsp;&emsp;[3.5.2 多语言支持](#352-多语言支持)<br>&emsp;&emsp;[3.5.3 安全性](#353-安全性)<br>&emsp;&emsp;[3.5.4 移动端适配](#354-移动端适配)<br>&emsp;&emsp;[3.5.5 数据备份](#355-数据备份)<br>&emsp;&emsp;[3.5.6 系统日志](#356-系统日志)<br>&emsp;&emsp;[3.5.7 老年人模式](#357-老年人模式) ## 1. 引言 ### 1.1 目的 随着工作和生活节奏的加快,人们差旅出行的需求迅速提升,但传统的车票预定购买模式有着许多不便之处:<br> 1. 售票效率低:传统售票采用现金支付,火车站售票窗口需要现金收取,给用户带来颇多不便,也影响了售票效率; 2. 信息不及时:铁路传统售票只能提供有限的信息,售票员难以及时更新车票信息,影响用户准确购票; 3. 抢票难度大:传统售票模式下,用户必须提前一段时间到达火车站排队抢票,给用户带来不便;<br> 为了解决上述问题,方便人们购买出行的车票,我们决定开发一个互联网购票乘车系统,主要包括下列功能: 1. 全面地展示每趟列车的详细情况,帮助用户进行选择和比较,更好地购票; 2. 执行信用累计制度,防止恶意订票购票; 3. 让铁路局能及时了解到所有购票订单的变化动态,让系统及时更新票余量情况; 4. 帮助顾客建立历史记录,在顾客预订时发挥历史记录的作用。 ### 1.2 范围 12306网站是balabala小组开发的在线购票网站,开发的目标是帮助用户和铁路部门购买、管理车票,主要的业务包括(管理员)管理车票、(票务员)售票、(个人)购买车票。通过12306网站的应用,期望为用户节省寻找车次信息、购买车票、退换票的时间与精力,使用户出行更加高效便捷;为铁路部门节省线路管理、车票管理、车票售卖的成本,提高运营效率。 ### 1.3 参考文献 1. IEEE标准。 2. 《软件工程与计算(卷二):软件开发的技术基础》刘钦、丁二玉著。 3. CourseLearning学习网站用例文档-迭代三部分。 4. MSCS软件需求规格文档。 5. 互联网购票乘车系统用例文档 ## 2. 总体描述 ### 2.1 商品前景 #### 2.1.1 背景与机遇 &emsp;&emsp;我国交通事业高速发展,铁路里程不断增长,火车的便捷性、舒适性也不断提升,火车成为越来越多人们出行的首选。近来,随着旅游业的复苏,人们纷纷走出家门,火车票往往一票难求。但传统的车票预订模式采用现金支付,火车站售票窗口需要现金收取,给用户带来颇多不便,也影响了售票效率;只能提供有限的信息,售票员难以及时更新车票信息,影响用户准确购票;用户必须提前一段时间到达火车站排队抢票,给用户带来不便。我们的车票系统将改变这一现状,为用户和管理人员提供便捷的平台,全面地展示每趟列车的详细情况,帮助用户进行选择和比较,让铁路局能及时了解到所有购票订单的变化动态,并防止恶意订票购票。这一系统的出现,将为车票市场带来革命性的改变,将极大方便人们的出行。 #### 2.1.2 业务需求 &emsp;&emsp;BR1:在使用系统一周后,用户可以熟练浏览车票信息、购买车票<br> &emsp;&emsp;BR2:铁路管理员可以熟练管理铁路信息、车票信息并及时维护车票信息<br> &emsp;&emsp;BR3:票务员可以熟练掌握售票、退票、换票流程<br> &emsp;&emsp;BR4:余票管理员可以熟练进行余票管理<br> &emsp;&emsp;BR5:在使用系统一个月后,用户可以掌握会员规则及积分抵扣车票规则<br> &emsp;&emsp;BR6:在使用系统一个月后,用户数量达到1000<br> &emsp;&emsp;BR7:在使用系统一年内,铁路部门工作人员工作量减少20%<br> &emsp;&emsp;&emsp;· 度量:正常速度下完成相同工作的工作时间<br> &emsp;&emsp;&emsp;· 最好情况:30%<br> &emsp;&emsp;&emsp;· 最可能情况:20%<br> &emsp;&emsp;&emsp;· 最坏情况:10%<br> &emsp;&emsp;BR8:在使用系统一年内,恶意订票事件减少10%<br> &emsp;&emsp;&emsp;· 范围:每天超过三次预定之后,不付费或者退票;购票数量大于规定限额;通过抢票软件,在1分钟内订票超过3张。<br> &emsp;&emsp;&emsp;· 最好情况:20%<br> &emsp;&emsp;&emsp;· 最可能情况:10%<br> &emsp;&emsp;&emsp;· 最坏情况:5%<br> ### 2.2 商品功能 本阶段产品主要有以下功能,随着版本更新,功能可能会有增删。 <br> SF1: 所有用户可以注册账号、开通会员、管理个人信息<br> SF2: 普通用户可以浏览车票信息并购买车票<br> SF3: 铁路管理员可以管理铁路信息、车票信息并更新车票信息<br> SF4: 票务员可以售票、退票、换票<br> SF5: 余票管理员可以管理余票<br> SF6: 普通用户可以根据积分换购车票<br> SF7: 发生恶意订票事件时,扣除用户信用积分<br> ### 2.3 用户特征 ||| |:------|:------| |客户|购票系统的客户流量会因为时间而有较大的差异,在高峰期可能会出现大量客户同时使用系统、抢票等现象,系统应该有足够的运力可以应对流量高峰,以及可以及时更新余票信息保证抢票过程中不发生错误。客户的年龄分布较广泛,既有熟练运用互联网的年轻人,也有对于网络较陌生但仍希望可以通过互联网购票乘车的老年人,不同客户的计算机操作技能有较大差异,第一次使用该系统的客户或者对互联网并不熟悉的人群可能会因为不知道如何使用购票系统而出现错误或不知所措,因此系统的使用应该尽量用户友好、简单直观、容易上手。| |铁路管理员|每个地方铁路局都配备足够的铁路管理员。他们负责铁路信息管理、车票信息管理、维护车票信息等。他们每天都要对路线、车票信息进行添加、删除或编辑,既要有较高的线路编排能力,还要能及时地应对处理突发情况。人流流动的高峰期也会给他们带来更多的工作量,他们需要能够在高峰时仍保证铁路系统正常运转。上岗的铁路管理员是经过筛选及培训的专业操作人员,一般具有较高的计算机操作技能和网络安全意识,能够熟练掌握购票系统的使用方法,并确保系统安全和稳定运行。希望系统可以让他们操作起来更加方便简洁,减少不必要的工作量。| ### 2.4 约束 CON1:系统将运行在Web界面上。<br>CON2:项目要使用持续集成方法进行开发。<br>CON3:在开发中,开发者要提交软件需求规格说明文档、设计描述文档 和测试报告。<br>CON4:开发时间较为紧张。 ### 2.5 假设和依赖 AE1:用户已经有了一台能够访问互联网的设备,如联网的电脑。<br>AE2:网络通畅,不会发生故障。<br>AE3:用户已经有了一个有效的支付方式,如支付宝、微信支付等。<br>AE4:用户已经了解了如何使用互联网购票系统,包括如何查询车票、填写订单信息、付款等。<br>AE5:用户已经了解了购票系统信用积分的增减规则和使用规则。<br>AE6:互联网购票系统有足够的服务器和数据存储空间,以支持用户的访问和用户信息、订单信息等的存储。<br>AE7:所有操作任务的完成时间不会超过1小时,即使用、暂停与中断不会超过1小时。 ## 3. 详细需求描述 ### 3.1 对外接口需求 #### 3.1.1 用户界面 用户界面应该简洁明了,易于用户操作。采用现代化、扁平化的设计风格,避免过多的装饰和繁琐的效果。界面排版应该清晰,可以采用层次分明的布局方式,避免过于复杂的页面结构。界面字体、图标、按钮等大小应该适中,正常情况下可以适应大多数人群的使用要求,而特殊要求的人群也可以通过手动放大来获得良好体验。整个网站的颜色风格应该统一,避免太多色彩导致页面过于杂乱。 #### 3.1.2 通信接口 后端使用RESTful的接口,由前端AXIOS调用并向前端返回结果。 #### 3.1.3 软件接口 使⽤MySQL作为底层数据库存储各类数据。 ### 3.2 功能需求 #### 3.2.1 个人基本信息管理 ##### 3.2.1.1 特征描述 ##### 用户进入系统后登录或注册账号,系统维护基本信息(姓名,联系方式、身份证、积分等信息),并支持用户修改信息、查询信息。 ##### 优先级=高 ##### 3.2.1.2 刺激/响应序列 ##### 刺激:用户进入系统后登录账号 ##### 响应:系统提供输入框并登录用户账号 ##### 刺激:用户进入系统后注册账号 ##### 响应:系统提供输入框并创建用户账号 ##### 刺激:用户点击查询个人信息 ##### 响应:系统显示用户姓名,联系方式、身份证、积分等信息 ##### 刺激:用户点击修改个人信息 ##### 响应:系统提供输入框供用户修改并更新用户信息 ##### 刺激:用户积分产生变动 ##### 响应:系统自动更新用户积分 ##### 刺激:用户选择登录但尚未注册 ##### 响应:系统提示用户注册 ##### 刺激:用户输入信息不合法 ##### 响应:系统提示错误并要求用户重新输入 ##### 刺激:用户退出登录 ##### 响应:系统退出用户账号 ##### 刺激:用户放弃登录或修改信息 ##### 响应:系统取消输入框 ##### 3.2.1.3 相关功能需求 ||| |:------|:------| |1.Info.Change.Input<br>2.Info.Change.Input.Cancel<br>3.Info.Change.Input.Invalid<br>4.Info.Change.ChangeCredit|1.用户点击修改个人信息,系统应应允许客户进行鼠标选择或键盘输入,更新用户信息<br>2.在客户放弃修改时,系统要取消当前修改任务<br>3.在客户输入信息不合法时,系统显示输入无效,要求重新输入<br>4.在用户积分产生变动时,系统自动更新用户积分| |1.Info.Login.Input<br>2.info.Login.Input.Cancel<br>3.info.Login.Input.Invalid<br>4.info.Login.Input.Null|1.用户进入系统后选择登录账号,系统应允许客户进行鼠标选择或键盘输入,登录账号<br>2.在客户放弃登录时,系统要取消当前登录任务<br>3.在客户输入信息不合法时,系统显示输入无效,要求重新输入<br>3.在客户选择登录但尚未注册时,系统提示用户注册| |1.Info.Logout|1.用户选择退出登录账号,系统应退出用户账号| |1.Info.Query|1.用户点击查询个人信息,系统应显示用户信息| |1.Info.Register.Input<br>2.info.Register.Input.Cancel<br>3.info.Register.Input.Invalid|1.用户进入系统后注册账号,系统应允许客户进行鼠标选择或键盘输入,创建用户账号<br>2.在客户放弃注册时,系统要取消当前注册任务<br>3.在客户输入信息不合法时,系统显示输入无效,要求重新输入| ||| #### 3.2.2 浏览车票详细信息 ##### 3.2.2.1 特征描述 ##### 用户可以通过检索车票的出发地、目的地、出行日期等查看所有可购买车票信息,包括起点、终点、出发时间、票价、余票数量等信息。 ##### 优先级=高 ##### 3.2.2.2 刺激/响应序列 ##### 刺激:用户进入车票浏览页面 ##### 响应:系统提示用户输入筛选条件 ##### 刺激:用户选择筛选条件(如日期、起点、终点、价格) ##### 响应:系统根据选择的条件显示相应的车票列表 ##### 刺激:用户选择购买某一张车票 ##### 响应:系统跳转到车票购买页面显示车票的详细信息 ##### 3.2.2.3 相关功能需求 ||| |:------|:------| |1.Browse.Filter<br>2.Browse.Filter.Apply<br>3.Browse.Filter.Sort<br>4.Browse.Filter.Reset|1.系统允许用户根据特定条件进行车票筛选<br>2.当用户输入筛选条件时,系统应用用户选择的筛选条件并显示相应的车票列表<br>3.当用户选择排序条件时,系统可以按照价格、时间等条件对车票信息进行排序<br>4.用户选择重置筛选条件时,系统清空用户已填的信息| |1.Browse.Pagination|1.如果车票信息数量过多,系统可以分页显示车票信息| |1.Browse.View.Ticket<br>2.Browse.View.Back|1.系统显示车票列表中的车票起点、终点、时间等信息<br>2.当用户点击返回时,系统返回上一页| |1.Browse.Select|1.用户点击某个车次车票时,系统进入车票购买页面,展示更多车票相关信息| ||| #### 3.2.3 购买车票 ##### 3.2.3.1 特征描述 ##### 已经登录的客户在车票列表点击车票进入购买页面,选择一二等座、票数、座位,填写乘车人信息,进行付款完成交易,并更新系统余票数量、客户信用积分和购票记录。 ##### 优先级=高 ##### 3.2.3.2 刺激/响应序列 ##### 刺激:客户点击车票 ##### 响应:系统显示车票详细购买页面 ##### 刺激:客户选择一二等座 ##### 响应:系统显示余票数量提示用户选择购票数量 ##### 刺激:客户选择购票数量 ##### 响应:系统显示可选座位提示用户选择 ##### 刺激:客户选择座位 ##### 响应:系统提示填写乘车人的姓名、身份证号、联系方式等信息 ##### 刺激:客户提交订单 ##### 响应:系统计算价格,显示账单,并更新余票数量 ##### 刺激:客户用积分抵扣车票金额 ##### 响应:系统将车票价格清零,显示要扣除的积分数,显示新帐单 ##### 刺激:客户取消使用积分 ##### 响应:系统重新计算价格,显示账单 ##### 刺激:客户在下单前取消购买 ##### 响应:系统关闭购买任务 ##### 刺激:客户未付款退出 ##### 响应:系统为客户预留车票 ##### 刺激:客户预定车票超时未付款或取消订单 ##### 响应:系统取消订单并放出车票,更新客户购票记录 ##### 刺激:客户恶意订票 ##### 响应:系统更新用户信用积分,放出车票 ##### 刺激:客户完成付款 ##### 响应:系统更新客户信用积分、购票记录 ##### 3.2.3.3 相关功能需求 ||| |:------|:------| |1.Purchase.Start|1.客户在车票列表选择车票后,系统显示详细购买页面,执行购买任务,参见Purchase.Input| |1.Purchase.Input<br>2.Purchase.Input.Cancel<br>3.Purchase.Input.Invalid<br>4.Purchase.Input.Payment|1.系统应该允许客户在购买任务中进行鼠标选择或键盘输入<br>2.在客户输入取消购买车票的命令时,系统要取消当前购买任务,参见Purchase.Cancel<br>3.当用户输入不合法信息时,系统显示输入无效,要求重新输入<br>4.当客户提交订单时,系统要执行显示账单任务。参见Purchase.Payment| |1.Purchase.Payment.Null<br>2.Purchase.Payment.Comfirm<br>3.Purchase.Payment.Sellout<br>4.Purchase.Payment.Ticket<br>5.Purchase.Payment.Check<br>6.Purchase.Payment.Invalid<br>7.Purchase.Payment.Success|1.在客户未填写完所有信息时,系统不允许客户提交订单<br>2.系统向客户确认车票信息,询问是否提交订单<br>3.若客户提交订单时已无余票,系统返回车票列表页面<br>4.当客户填写完整每一张票的信息之后成功提交订单,系统要显示购票信息,参见Purchase.Ticket<br>5.系统要显示账单信息,参见Purchase.Check<br>6.当客户存在恶意购票行为时,系统取消交易,放出车票<br>7.客户付款成功时,系统提示购买成功,系统执行结束购买任务处理,参见Purchase.Success| |1.Purchase.Check<br>2.Purchase.Check.Credit<br>3.Purchase.Check.Reservation|1.系统显示购票的账单信息<br>2.当客户选择使用积分时,系统执行积分处理任务,参见Purchase.Credit<br>3.客户点击退出账单页面时,系统跳转到客户购票记录中的待付款页面,为客户保留车票,参见Purchase.Reservation| |1.Purchase.Ticket<br>2.Purchase.Ticket.List.Calculate<br>3.Purchase.Ticket.Update|1.系统显示所选的车票信息<br>2.系统计算所有车票的总价<br>3.客户提交订单成功后,系统需要更新余票信息| |1.Purchase.Credit.Member<br>2.Purchase.Credit.Invalid<br>3.Purchase.Credit.Update|1.客户选择使用积分时,系统检查客户是否是会员,如果不是,系统提醒用户注册<br>2.如果客户的积分不可用,提示用户<br>3.客户积分可用,系统更新账单信息| |1.Purchase.Reservation<br>2.Purchase.Reservation.Cancel<br>3.Purchase.Reservation.Success<br>4.Purchase.Reservation.Invalid.Update|1.系统显示客户预定的车票<br>2.当客户取消订单或超时未付款,系统取消该订单,参见Purchase.Cancel<br>3.客户付款成功时,系统提示购买成功<br>4.当客户不合法预定票超过三次,则更新用户信用积分| |1.Purchase.Cancel<br>2.Purchase.Cancel.Update|1.系统应该允许客户要求取消购买任务,返回车票列表页面<br>2.如果客户是在提交订单后结束购买任务,系统需要更新数据,放出车票,参见Purchase.Update| |1.Purchase.Success<br>2.Purchase.Success.Update|1.客户购买成功时,系统要结束购买任务<br>2.客户完成购买任务后,系统更新数据,参见Purchase.Update| |1.Purchase.Update.Remain<br>2.Purchase.Update.Payment<br>3.Purchase.Update.Credit<br>4.Purchase.Update.History|1.系统更新余票数量<br>2.系统更新账单信息<br>3.系统更新客户信用积分<br>4.系统更新客户购票记录| ||| #### 3.2.4 铁路信息管理 ##### 3.2.4.1 特征描述 ##### 管理员登录后进入信息管理界面,编排铁路信息,增加铁路线路、删除铁路线路或者修改铁路线路,系统更新信息并保存。 ##### 优先级=中 ##### 3.2.4.2 刺激/响应序列 ##### 刺激:管理员进入信息管理页面 ##### 响应:系统提示增加路线或者编辑路线 ##### 刺激:管理员选择增加路线 ##### 响应:系统显示输入界面 ##### 刺激:管理员填写铁路路线信息并提交 ##### 响应:系统向管理员进行确认 ##### 刺激:管理员选择删除路线 ##### 响应:系统确认删除 ##### 刺激:管理员选择编辑已有路线 ##### 响应:系统显示需要编辑的铁路路线 ##### 刺激:管理员修改铁路路线并提交 ##### 响应:系统向管理员进行确认 ##### 刺激:管理员确认操作 ##### 响应:系统保存并更新信息 ##### 刺激:管理员输入不合法 ##### 响应:系统提示管理员 ##### 刺激:管理员关闭页面 ##### 响应:系统发送成功提示 ##### 3.2.4.3 相关功能需求 ||| |:------|:------| |1.Manage.Line.Choose.Change<br>2.Manage.Line.Choose.Add<br>3.Manage.Line.Choose.Delete|1.管理员选择编辑线路信息时,系统执行编辑线路任务,参见Manage.Line.Change<br>2.在管理员选择增加线路时,系统执行增加线路任务,参见Manage.Line.Add<br>3.在管理员点击删除线路时,系统执行删除线路任务,参见Manage.Line.Delete<br>| |1.Manage.Line.Change.Input<br>2.Manage.Line.Change.Input.Invalid<br>3.Manage.Line.Change.Cancel<br>4.Manage.Line.Change.Confirm|1.管理员进入系统后选择修改铁路信息,系统应允许管理员进行鼠标选择或键盘输入<br>2.在管理员输入信息不合法时,系统显示输入无效,要求重新输入<br>3.在管理员放弃修改时,系统要取消当前任务<br>4.管理员提交更改后,系统向管理员进行确认,参见Manage.Line.Confirm| |1.Manage.Line.Add.Input<br>2.Manage.Line.Add.Input.Invalid<br>3.Manage.Line.Add.Cancel<br>4.Manage.Line.Add.Confirm|1.管理员进入系统后选择增加铁路信息,系统应允许管理员进行鼠标选择或键盘输入<br>2.在管理员输入信息不合法时,系统显示输入无效,要求重新输入<br>3.在管理员放弃增加时,系统要取消当前任务<br>4.管理员提交增加线路后,系统向管理员进行确认,参见Manage.Line.Confirm| |1.Manage.Line.Delete<br>2.Manage.Line.Delete.Confirm|1.系统允许管理员进入页面后点击删除铁路线路<br>2.管理员点击删除后,系统向管理员进行确认| |1.Manage.Line.Confirm<br>2.Manage.Line.Confirm.Save|1.管理员确认保存信息,系统收到确认,提示管理员操作成功<br>2.系统保存信息| |1.Manage.Line.Close|1.关闭页面| ||| #### 3.2.5 车票信息管理 ##### 3.2.5.1 特征描述 ##### 已登录的管理员可以管理车票信息,包括添加新车票、查询车票列表等。 ##### 优先级=中 ##### 3.2.5.2 刺激/响应序列 ##### 刺激:管理员进入车票信息管理页面 ##### 响应:系统显示所有车票信息 ##### 刺激:管理员选择添加新车票 ##### 响应:系统跳转到添加新车票页面 ##### 刺激:管理员填写新车票信息并提交 ##### 响应:系统向管理员确认 ##### 刺激:管理员确认操作 ##### 响应:系统保存信息并返回车票信息管理页面 ##### 刺激:管理员输入不合法 ##### 响应:系统提示管理员 ##### 3.2.5.3 相关功能需求 ||| |:------|:------| |1.Manage.Ticket<br>2.Manage.Ticket.Add|1.管理员进入车票管理页面后,系统展示所有车票<br>2.在管理员选择增加车票时,系统执行增加车票任务,参见Manage.Ticket.Add| |1.Manage.Ticket.Add.Input<br>2.Manage.Ticket.Add.Input.Invalid<br>3.Manage.Ticket.Add.Cancel<br>4.Manage.Ticket.Add.Confirm|1.管理员进入系统后选择增加车票信息,系统应允许管理员进行鼠标选择或键盘输入<br>2.在管理员输入信息不合法时,系统显示输入无效,要求重新输入<br>3.在管理员放弃增加时,系统要取消当前任务<br>4.管理员提交增加车票后,系统向管理员进行确认,参见Manage.Ticket.Confirm| |1.Manage.Ticket.Confirm<br>2.Manage.Ticket.Confirm.Save|1.管理员确认保存信息,系统收到确认,提示管理员操作成功<br>2.系统保存信息| |1.Manage.Ticket.Close|1.关闭页面| ||| ### 3.3 非功能需求 #### 3.3.1 安全性 Safety1:系统应该只允许经过验证和授权的用户访问<br> Safety2:系统应该按照用户的身份验证用户相应的操作权限<br> Safety3:系统中有默认的管理员账户,该账户只允许管理员用户修改口令<br> Safety4:用户只能查看和维护自己的信息<br> Safety5:为防信息泄露,用户的账号、密码、姓名(名称)、联系方式必须密文存储 #### 3.3.2 可维护性 Modifiability1:如果系统要修改铁路线,需要能够在1人一天内完成<br> Modifiability2:如果系统要增加铁路线,要能够在1人一天内完成<br> Modifiability3:如果系统要修改车票信息,需要能够在1人一天内完成<br> Modifiability4:如果系统要增加车票信息,要能够在1人一天内完成 #### 3.3.3 易用性 Usability1:所有类型人员不需要额外的培训,对于任意操作可以在10分钟内完成<br> Usability2:使用系统一个月的管理员进行票务处理的效率要达到10条铁路线/分钟 #### 3.3.4 可靠性 Reliability1:当客户端与服务端通信时,如果⽹络出现故障,系统不能出现故障<br> &emsp;&emsp;Reliability1.1:客户端应该检测到故障,并尝试重新连接网络3次,每次15秒。<br> &emsp;&emsp;&emsp;&emsp;Reliability1.1.1:重新连接后,客户端应该继续之前的工作。<br> &emsp;&emsp;&emsp;&emsp;Reliability1.1.2:如果重新连接不成功,客户端应该等待5分钟后再尝试重新连接。<br> &emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;Reliability1.1.2.1:重新连接后,客户端应该继续之前的工作。<br> &emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;Reliability1.1.2.2:如果重新连接仍然不成功,客户端报警。 #### 3.3.5 业务规则 BR1:积分兑换规则,该规则可能变化 &emsp;&emsp;100积分=1元人民币 #### 3.3.6 约束 IC1: 系统要在网络上分布为⼀个服务器和多个客户端<br> IC2: 系统要为不同的⼈员提供各自的部署。<br> IC3: 系统后端使用Java,MySQL,springboot进行开发,前端使用Vue进行开发。 ### 3.4 数据需求 #### 3.4.1 数据定义 DR1:系统需存储的数据实体以及关系见概念类图<br> DR2:系统需永久存储客户和管理员的账号信息<br> DR3:系统需永久存储客户的积分和购票记录<br> DR4:系统需存储1年内的交易记录<br> DR5:系统需存储1年内所有车票信息<br> DR6:系统需永久存储所有铁路路线信息<br> DR7:系统需永久存储兑换策略<br> DR8:系统需存储一天内所有车票的余票数量 #### 3.4.2 默认数据 默认数据用于以下两种情况: - 系统中新增数据时 - 编辑数据时不小心将相关内容清空时 Default1: 时间默认为当前时间<br> Default2: 订单id默认为000000<br> Default3: 积分数据默认为0<br> Default4: id默认为000000<br> Default5: 姓名默认“XXX”<br> Default6: 身份证号默认000000000000000000<br> Default7: 电话号默认00000000000<br> Default8: 用户购票记录默认为0<br> Default9: 积分兑换策略默认为100积分=1元人民币<br> Default10: 出发站、到达站、途径站默认为“XX站”<br> Default11: 车厢默认为“01车”,座位号默认为“01A”,座位等级默认为“二等座” <br> Default12: 余票数量默认为0<br> #### 3.4.3 数据格式要求 Format1: 订单id格式为000000<br> Format2: ⽇期的格式必须是yyyy-mm-dd<br> Format3: 出发站、到达站、途径站为“XX站”<br> Format4: 车厢为“XX车”,座位号为“XXA”-“XXF”,座位等级默认为“二等座” <br> Format5: 所有价格必须为自然数,积分必须为自然数<br> Format6: 一切输入字符串形式的输入必须满足字符数小于20<br> #### 3.4.4 数据库形式 Format1: 用户信息使用JSON格式,包含键值对:姓名、性别、年龄、联系方式、电子邮件地址等基本信息<br> Format2: 订单信息:使用CSV格式,包含列:订单号、下单时间、订单状态、订单金额<br> Format3: 车票信息使用CSV格式,包含列见概念类图<br> Format4: 交易信息使用JSON格式,包含键值对:客户id、支付金额、支付时间<br> ### 3.5 其他需求 #### 3.5.1 分布式部署 用户和铁路局工作人员分布在不同的地方,所以要提供各自的web应用部署。 #### 3.5.2 多语言支持 要求系统支持多语言显示,包括中文和英文。用户可以在系统设置中选择所需的语言。 #### 3.5.3 安全性 系统要求具备一定的安全性保障措施,包括但不限于: - 用户注册时需提供有效的手机号码和邮箱地址,并通过短信或邮箱验证,确保用户身份真实; - 系统对用户的密码进行加密存储,保证用户信息安全; - 系统设置访问权限控制,确保用户只能访问其所拥有的权限范围内的信息。 #### 3.5.4 移动端适配 系统需要能够适配移动端设备,支持在手机和平板电脑等移动设备上正常访问和使用。 #### 3.5.5 数据备份 系统需要定期进行数据备份,确保数据安全,避免因系统故障或其他意外情况导致数据丢失的风险。数据备份频率和存储位置需在系统设置中可配置。 #### 3.5.6 系统日志 系统需要记录用户操作日志,包括但不限于登录、注册、数据修改等操作。系统管理员可以查看日志,及时发现并解决系统中的异常情况。日志记录方式需在系统设置中可配置。 #### 3.5.7 老年人模式 系统需要提供老年人模式。该模式下,系统将采用更大号、更清晰的字体显示,并且减少过多的动态效果,以降低老年人用户对系统界面的适应难度。老年人模式可在系统设置中进行开启和关闭,并且该设置需要可以保存用户选择,以方便下次使用。