铁路售票系统架构评审文档
- 格式:doc
- 大小:353.86 KB
- 文档页数:22
售票系统设计⽅案1.架构设计1. 系统架构选型从软件架构⾓度,本系统采⽤了MVC分层的设计思想,各层级只需要关注本⾝的设计,⽽不需要关注其他层级的内部细节,层与层之间定义了良好的交互⽅式。
具体⽽⾔,本系统可以分为三个⽔平层,分别是展⽰层,业务服务层和数据库层;系统总体结构如下图所⽰。
2. 软件架构风格本系统采⽤浏览器-服务模式(B/S模式),该模式是Web兴起后的⼀种⽹络结构模式。
相⽐较传统的C/S模式,B/S结构的重要特征就是分布性强、开发简单、共享性强、总体拥有费⽤低。
这种模式统⼀了客户端,将系统功能实现的核⼼部分集中到服务器上,简化了系统的开发、维护和使⽤。
BS架构优势总结如下:● 分布性强,客户端零维护。
只需有⽹络、浏览器,能够随时随地实⾏查询、浏览等业务处理。
● 业务扩展简单便利,通过添加⽹页就可以添加服务器功能。
● 维护简单便利,只须要更改⽹页,就可以完成全部⽤户的同步更新。
● 开发简单,共享性强。
2. 业务概念原型1. ⽤例设计⽤户主要功能:⽤户注册、⽤户信息维护、查找车票、购买车票、改签及退票后台管理员主要功能:列车信息维护、站点信息维护、车次设置2. UML类图设计根据业务需求描述,结合⾯向对象的思想,抽象出类、属性、⽅法,同时确定概念之间的关系,构建UML类图:3. 数据库设计采⽤关系数据库mysql进⾏设计(1)⽤户表(2)⾓⾊表(3)⽤户⾓⾊关联表(4)车次表(5)列车表字段名称字段类型字段描述userId int主键account varchar账号password varchar密码name varchar姓名sex varchar性别phonenum number电话号码certificate_type varchar证件类型certificate_num number证件号码authority varchar权限info varchar其它信息字段名称字段类型字段描述roleId int主键role_type varchar⾓⾊类型authority varchar权限descr varchar描述字段名称字段类型字段描述urId int主键userId int⽤户主键【外键】roleId int⾓⾊主键【外键】字段名称字段类型字段描述trainSequenceId int主键trainNum number车次号trainId int列车号start_station varchar起点站end_station varchar终点站launch_time datetime启动时间字段名称字段类型字段描述trainId int主键(6)车厢表(7)座位表(8)站点表(9)车次站点表(10)订单表trainName varchar列车名称【外键】type varchar列车类型carriage_num int车厢数status int状态字段名称字段类型字段描述carriageId int主键trainId int列车主键【外键】carriage_number int车厢号carriage_type int车厢类型price_coef int价格系数字段名称字段类型字段描述seatId int座位主键carriageId int车厢主键【外键】trainId int列车主键【外键】seat_number int座位号bitmap int座位站点状态位图字段名称字段类型字段描述stationId int站点主键name varchar站点名称descr varchar站点级别字段名称字段类型字段描述train_sta_Id int车次站点主键trainSequenceId int车次主键【外键】station_sequence int站点序列arrive_time datetime到达时间lanch_time datetime启动时间字段名称字段类型字段描述orderId int订单主键userId int⽤户主键【外键】seatId int座位主键【外键】order_time datetime时间status varchar订单状态(11) 字典表4. 分解视图针对业务模块进⾏分解5. 实现视图项⽬的⽬录结构设计本项⽬采⽤MVC 分层架构,其中,主流的⽬录结构设计是按照controller 、service 、dao 层来进⾏分包。
软件工程课程设计报告专业班级:信息与计算科学0901班项目名称:铁路售票管理系统项目组长:成员:2012.1.5铁路售票管理系统软件需求规格说明书目录铁路售票管理系统软件需求规格说明书 (2)1.前言 (3)1.1 目的 (3)1.2范围 (3)1.3术语表 (3)1.4参考文献 (4)2.整体描述 (4)2.1 产品描述 (4)2.2产品功能概述 (4)2.3用户分类及其特征 (5)2.4设计与实现上的约束 (6)2.5运行环境 (6)2.6假设和依赖 (6)3需求描述 (6)3.1功能需求 (6)3.1.1 铁路售票管理系统各子系统用例图 (6)3.1.1.1 列车及车票信息查询子系统 (8)3.1.1.2 登录系统及信息管理子系统 (11)3.1.1.3 车票的销售与退票子系统 (14)3.1.1.4 列车及车票管理子系统 (15)3.1.2 铁路售票管理系统各子系统类图,次序图及协作图 (17)3.1.2.1列车及车票信息查询子系统 (17)3.1.2.2 登录系统及信息管理子系统 (20)3.1.2.3火车票的销售及退票子系统 (23)3.1.2.4.列车及车票管理子系统 (24)3.2外部接口需求 (26)3.2.1用户界面 (26)3.2.2硬件接口 (26)3.3.3 软件接口 (27)3.3.4 通讯接口 (27)3.3非功能需求 (27)组长:张银分工情况:张银子系统1 :列车及车票信息查询子系统子系统2 :登录系统及信息管理子系统子系统3 :车票的销售与退票子系统子系统4 :列车及车票管理子系统1. 前言1.1 目的本文档的目的在于明确项目的具体需求,让客户及设开发者均有据可依,遵从这个需求报告来组织开发整个系统。
通过对目标用户需求的细化,分析由具体场景中的用例所驱动的事件及其处理流程。
1.为编制后续各阶段的文档提供基本依据;2.提供给用户确认或本地化修改的基本文件;3.作为日后软件确认测试和系统验收之参考依据;4.作为日后系统维护工作基准文件。
火车票预订系统总体设计说明书2013年10月31日1.引言1.1编写目的通过此说明书让用户更加清晰的了解本系统的功能,通过模块的形式将各项功能向用户展示。
对接口的描述让用户知道相关的数据输入与输出,体现了一定的人机交互理念。
数据库的逻辑与物理设计将需求分析中数据库设计更加详细具体化。
最后指出本系统的开发运行环境,为用户提供的参考依据。
1.2背景●待开发软件系统的名称:火车票预订系统●开发者:施丹昊施季春1.3定义提供了迄今为最先进的Web开发平台。
它是一个已编译的、基于.NET的开发环境,可以用任何与.NET的语言(本系统采用C#)开发应用程序,而不仅仅是使用JavaScrip t和VBS crip。
可以无缝地与WYSIWYG HTML编译器和其他编程工具一起工作。
另外,任何ASP .NET应用程序都可以使用整个.NET Framew ork。
2.系统功能结构设计2.1模块的划分和描述火车票预订系统可分为五个模块:顾客查询模块,网点售票员模块,车站售票员模块,信息修改模块和系统管理员模块。
顾客查询模块:主要是提供顾客在购买出行的火车票前,可以登录系统,通过方便自己的查询方式,来查询到满足自己要求的火车,并可以确定出自己需要的某个日期是否有票可以出售。
网点售票员模块:主要提供其注册及登陆,查询和售票三个功能。
网点售票员是通过在网络中注册自己的信息,来获得售票的权限的,要注册过并通过系统管理员审核成功。
登录系统后,系统会显示出网点售票员可以获得查询和售票的权限。
车站售票员模块:主要提供其登陆,查询,售票和退票功能。
车站售票员登录后,系统会显示出车站售票员所具有的所有操作权限。
其中退票的功能只有车站售票员才有退票的权限。
课程设计名称:数据库应用课程设计专业班级:学生姓名:学号:指导教师:课程设计时间:计算机应用技术专业课程设计任务书目录1.需求分析 (2)(1)功能需求 (2)(2 )数据流图 (3)2. 概念结构设计 (5)3. 逻辑结构设计 (6)(1)关系模式 (6)(2)外模式: (6)4. 物理结构设计 (8)(1)实验环境: (8)(2)系统软件结构图: (8)5. 数据库实施和维护 (9)6. 数据库的操作界面 (13)7. 课程设计的过程、体会及建议 (14)参考文献........................................... 错误!未定义书签。
1.需求分析系统应具有售票、查询、管理和维护等功能,系统管理员可以进行对车次的更改、票价的变动及调度功能,票价的修改可以通过修改运价来进行,车次调度可通过对发车时刻表的修改来进行,维护功能即可对表进行修改。
(1)功能需求经过分析后确定系统应具备以下功能:(1)售票功能1.销售车票任一售票员均可以售权限范围内车次的客票,权限可按班次、车属等属性由管理员设置。
可售全票、半票2.预订车票预订票可在任一未停止售票的车次上进行操作,预订数量仅受剩余位数量限制。
预订的客票售票员不能售出。
预订的客票也可取消预订,取消预订的客票售票员可以售出。
在订票人来取票时,售票员可将预订的客票从电脑上售出3.退票退票时由退票员输入客票的编号,计算机将根据退票时的时间,自动确定退票手续费的比例,也可由系统管理员指定手续费比例。
对不合法的客票(如已办理退票手续的客票、超过规定时间的客票、没有售出的客票、已经作废的客票、不属于权限范围内售出的票等),计算机将自动识别,不予退票。
(2)查询功能①车次查询,可以查询各个班次和票情况。
②时刻表查询:查询任一时刻的班次和票情况。
③售票情况查询:查询已售票和剩余票数的情况。
(3)、调度功能①运价修改:只有管理员有这一权限,根据各种调整票价。
12306流程架构设计1.引言1.1 概述12306是中国国家铁路局开发的在线订票系统,为乘客提供便捷的火车票购买和查询服务。
作为中国最大的铁路客运服务平台,12306的流程架构设计至关重要。
本文旨在探讨12306的流程架构设计要点,并为该系统的优化提供参考。
在进行12306流程架构设计之前,我们需要对该系统的概述进行了解。
12306系统一般包括用户界面、业务逻辑、数据库和外部接口等组件。
用户界面提供给用户进行查询、订购、退票等操作的页面,业务逻辑处理用户操作的请求并进行相应的业务处理,数据库储存用户信息、车票信息等数据,外部接口用于与其他系统进行交互。
12306的流程架构设计需要考虑以下几个重要因素。
首先,在用户界面方面,应该注重用户友好性和易用性,确保用户能够轻松地进行操作。
其次,在业务逻辑方面,需要设计合理的流程以满足用户的需求,同时考虑系统的性能和稳定性。
此外,数据库的设计应考虑数据的安全性和可扩展性,以便应对不断增长的用户数量和数据量。
最后,外部接口的设计需要与其他系统进行无缝集成,确保数据的准确和及时交换。
12306的流程架构设计的目的主要是为了提供高效、稳定和安全的服务。
通过合理的架构设计,可以提高系统的性能,并能应对高并发的请求。
此外,良好的架构设计还可以降低系统的维护成本,便于功能的扩展和更新。
综上所述,12306的流程架构设计是一个复杂而重要的任务,需要综合考虑用户界面、业务逻辑、数据库和外部接口等各个方面的因素。
只有通过科学、合理的架构设计,才能为用户提供更好的服务体验,并为系统的优化和发展提供支持。
1.2 文章结构文章结构部分是为了让读者可以清楚地了解整篇文章的组织结构和内容安排。
本文的文章结构如下所述:首先,在引言部分,我们将概述本文的背景和目的,以及阐明文章的重要性和意义。
接着,在正文部分,我们将详细介绍12306流程架构设计的要点。
这些要点将涵盖12306流程的各个方面,包括流程的整体架构和关键环节的设计。
FheeFor personal use only in study and research; not for commercial useFor personal use only in study and research; not for commercial useFor personal use only in study and research;not for commercialuse火车网上售票系统需求规格说明书1. ....................................... 弓丨言3编写目的 (3)背景 (3)2. ....................................... 任务概述42.1 目标 (4)2.2 用户特点 (4)3 功能需求 (5)功能流图 (5)数据流图 (6)数据字典 (7)4 性能需求 (8)4.1 精度需求 (8)a) 时间特性要求 (8)5.输入输出格式要求 (9)6.数据管理能力要求 (9)7.故障处理要求 (9)8.其他专门要求 (9)9.运行环境规定 (9)10.附录 (10)1. 引言《火车网上售票系统需求规格说明书》旨在详尽描述系统功能需求和一些非功能需求,明确系统边界。
文章分为四个部分:概述部分描述了项目目的和范围,并对文档中使用的术语进行了说明;系统说明部分对系统进行了简要的描述;需求说明部分对系统从功能要求、安全性、性能等几方面进行了阐述;验收标准则描述了系统最终验收通过的准则。
编写目的:《火车网上售票系统需求规格说明书》的目的是明确《火车网上售票系统》中各项功能和非功能需求,确定系统功能模块,同时为概要设计和详细设计人员提供设计依据,也可供本项目的其他开发人员参阅。
《火车网上售票系统需求规格说明书》的阅读对象为:4.1 对相关业务技术和总体方案作出决策和管理人员和质量管理人员;4.2 对本《需求规格说明书》进行评审和确认的有关业务和技术人员;4.3 参加概要设计和详细设计阶段工作的全体设计人员;4.4 《火车票网上售票系统》项目组;背景软件名称:《火车网上售票系统》用户:广大人民群众项目与系统、软件的关系:该系统所需数据要与其他系统数据兼容,系统采用B/S,服务器端采用Microsoft Server 2008为操作系统的工作站,采用Microsoft Server 2005为开发软件的数据库服务程序。
票务系统架构分析报告1.概述该报告用于完成课程设计,旨在了解对构架的分析,以及各种战术的运用。
本文档包含四个方面的内容:案例背景、构架商业周期、质量属性需求和功能需求、架构解决方案。
2.案例背景以目前的市场形势来说,在机票、火车票以及其它旅游票中有着不同的票务系统,票务系统的出现大大降低了买票、查票、退票、改签等活动的难度系数,在日常生活中有着不可替代的作用。
一个良好的票务系统,最基本应具有的质量应该是高性能,高可用,安全性高,易用性强的特征。
本分析报告研究的是一个火车票票务系统的构架。
3.构架商业周期构架MVC 模型票务系统客户在线订票的人开发组织技术环境 Eclipse 设计师经验 Java web 开发经验需求(质量属性) 高可用性 高性能 易用性 高安全性设计师(小组)4.质量属性需求和功能需求4.1 质量属性需求项目经理从开发组织和客户角度,可以将目标简化为如下:A.从开发组织角度:开发一个模块性强、实时性高、界面良好、与外部其它系统兼容良好的系统,这使得开发组织能够把整个产品或者某个木块卖给其他客户,同时由于良好的界面和业务处理效率而受市场的欢迎。
B.从客户的角度:系统容易操作,可维护性号、系统稳定、可以及时准确的处理用户的在线订票或查询业务。
根据上述的目标,将系统质量属性可以划分为两类:优先级较高的质量属性:1.性能2.安全性3.易用性4.可用性重要但是优先级较低的属性:1.模块性2.可维护性3.可修改性4.可测试性4.1 功能需求根据质量属性场景导出一定的功能需求以及对功能的一些规格,针对各质量属性,可以查看下表:质量属性属性求精场景性能响应时间在系统处于高峰时期,保证登陆的每个用户发出的买票或者查询要求在3S以内,如果需要等待,则给出友好的提示。
吞吐量系统可以保证同事响应3000个客户。
易用性界面友好,操作简单要求具有基本电脑操作的人,可以根据友好的界面迅速的学会使用方法。
并且熟手还能够使用快捷键。
概要设计说明书目录1.引言 (1)1.1编写目的 (1)1.2项目背景 (2)1.3定义 (2)1.4参考资料 (3)2.任务概述 (3)2.1目标 (3)2.2运行环境 (4)2.3需求概述 (4)2.4条件与限制 (5)3.总体设计 (6)3.1处理流程 (6)3.2总体结构和模块外部设计 (9)3.3功能分配 (10)4.接口设计 (11)4.1外部接口 (11)4.2内部接口 (11)5.数据结构设计 (12)5.1逻辑结构设计 (12)5.2物理结构设计 (14)5.3数据结构与程序的关系 (15)6.运行设计 (16)6.1运行模块的组合 (16)6.2运行控制 (16)6.3运行时间 (17)7.出错处理设计 (17)7.1出错输出信息 (17)7.2出错处理对策 (17)8.安全保密设计 (18)9.维护设计 (18)1.引言1.1编写目的该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的概要设计并明确数据结构与软件体系结构。
主要是把一个软件需求转化为软件表示的过程。
本文档的目的旨在推动软件工程的规范化,使设计人员遵循统一的概要设计书写规范,节省制作文档的时间,降低系统实现的风险,做到系统设计资料的规范性与全面性,以利于系统的实现、测试、维护、版本升级等。
为这个项目以后的扩展和其他功能开发人员提供背景资料和参考。
完成:1.将系统划分成物理元素,即程序、文件、数据库、文档等。
2.设计软件结构,即将需求规格转换为体系结构,划分出程序的基本模块组成,确定模块的相互关系,并确定数据结构与算法。
读者对象:程序员、测试员。
1.2项目背景火车票出售管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
本项目适用于Windows 操作系统,使用SQL Server 2005数据库,利用JAVA开发语言开发系统。
1.3定义1.Windows:微软公司推出的视窗电脑操作系统名为windows,随着电脑硬件和软件系统的不断升级,微软的windows操作系统也在不断升级,从16位、32位到64位操作系统。
铁路客票系统架构设计前言什么才是12306最需解决的问题?1、重大节假日前期,系统登陆难。
2、抢票环节的并发处理能力。
3、余票查询的响应速度。
人们往往有先入为主的观念,导致了解决问题的思维方式收到束缚,难以跳出既定的圈子。
谁能说现在的购票系统的业务逻辑和用户体验是最合理的呢?它的设计合理之处又在哪里呢?我想完全不懂技术的人做产品经理,可以比技术出身的人做的更好,因为不懂技术的产品经理提出的需求不会受技术的束缚,更加注重用户体验。
12306的余票查询的用户体验太糟糕了,为什么非要有帐号才可以查询-_-购票系统的功能架构和技术架构,势必要考虑到峰值的处理能力,尤其是超大规模并发的处理能力。
12306虽说是非盈利性的,但是这毕竟关乎到民生,为何不公开技术架构,让更多的人参与改进呢?以上内容可以忽略。
以下是我的设计思路,主要采用功能适度分离的思想进行设计。
1、余票查询的优化方案将余票查询系统与抢票系统功能分离,余票查询系统部署到镜像站点CDN上,抢票系统应用单独部署,支付和退票应用单独部署。
(这点很关键)数据库的读写分离,主数据库只做写操作,写入购票记录和更新实时余票信息,余票查询库可以通过异步更新获取余票信息。
余票查询功能可以基于部署到CDN上,建议免登陆,建议向社会开放余票资源和API。
(解决查票问题)余票查询系统的系统架构。
我们需要什么级别的实时性?毫秒级?不需要!余票查询的操作远大于抢票,每1秒内信息的变化都难以想象,所以在余票查询上实时性太高意义不大,只能作为抢票前的参考,所以也没必要一定要用关系数据库,NOSQL其实很合适。
系统只要保证购票者在信息获取是平等的,抢票环节是公平的(按照先购先得的原则),然后进行适度优化设计。
余票查询的系统架构,我有2个设计方案1) 内存数据为主、数据库为辅方案。
写一个分布式数据分发系统(主站为SApp,镜像站点为CApp),支持远程调用更新,设计特定的类或数据结构,将所有待出售的车票余票信息存储在特定的类或数据结构中(也可以是数据缓存),常驻内存。
12306网络订票系统分析报告班级2011211306学号**********姓名门鑫摘要由于市场客运的刚性需求和互联网的普及以及信息化时代的到来,12306网络订票系统在铁路客运系统中扮演着越来越重要的角色,成为了越来越多的人的订票方式,该系统的稳定运行也是人们能够方便出行的保障。
而由于铁路运力的限制,越来越多的人不得不“抢票”。
据统计,12306网站最高有日均14亿的点击量,这“12306”迅速也使得12306成长为网界上最繁忙的网站之一,14亿次的点击大军,直接导致了12306系统的崩溃。
对12306系统的分析和研究,有助于我们吸取其经验教训,总结成功经验。
对网络订票系统进行优化,构建一个可靠的网络订票系统满足市场的需求,为用户提供一个方便可靠的订票平台。
目录摘要……………………………………1 12306系统概述………………………………2用户特点分析……………………………………3 系统架构分析………………………………4常见问题及解决方案分析………………………………5 经验及教训…………………………………………6 总结…………………………………………1.12306系统概述中国铁路客户服务中心(英语:Sinorail Customer Service Center),俗称12306网站,是中国铁路总公司下属的信息服务网站,基于中国铁道科学研究院所设计的“铁路客票发售及预订系统”创建。
客户通过登录本网站,可以查询旅客列车时刻表、票价、列车正晚点、车票余票、售票代售点、货物运价、车辆技术参数以及有关客货运规章。
铁路货运大客户可以通过本网站办理业务。
该网站于2010年1月30日(2010年春运首日)开通进行试运行。
用户在该网站可查询列车时刻、票价、余票、代售点、正晚点等信息[2]。
售票系统在北京时间每天23:00至次日7:00进入维护,期间不提供服务。
2011年1月19日(2011年春运首日),中华人民共和国18个铁路局(公司)所在地也分别成立了铁路客户服务中心,并公布了服务热线。
铁路售票系统第一篇:铁路售票系统铁路售票系统应用软件需求分析报告前言:(1)需求分析报告的编写目的本需求分析报告的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本铁路售票系统的软件开发过程,便于程序员与客户之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用。
(2)产品背景明细软件名称:铁路售票系统软件开发者:(3)缩写及缩略语铁路售票应用系统软件:基本元素为构成铁路售票及相关行为所必须的各种部分。
需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。
需求分析:包括提炼,分析和仔细审查已收集到的需求,以确保所有的风险承担者都明其含义并找出其中的错误,遗憾或其它不足的地方。
模块的独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。
本工程描述:(1)软件开发的目标:完善目前铁路售票系统,使之能跟上时代的发展。
同时通过实践来提高自己的动手能力。
(2)应用范围:理论上能够实现于铁路部门的售票系统,其目的在于在原有的系统基础使得铁路售票实名化,以期实现完善日常生活中铁路售票的各种缺陷。
(3)硬件配置要求:硬件外部设备需奔腾133以上的pc机,内存需16兆以上。
(4)子集说明:软件分别有五个模块组成,每个模块各有不同的功能。
但都能完成查询和存储功能,各模块的数据都存放在数据库中。
数据的调用和连接都有程序来完成。
(5)软件功能描述:外部功能:实现可视化窗口,查找及存储内部功能:同步,过滤,定位,识别软件功能描述图:赔偿信息车次信息列车明细日志维护个人信息主界面同步过滤数据库定位(6)软件操作人员的要求:软件要求操作人员具有初步的相关知识(7)在其他方面的要求:由于本系统为即时软件,对数据的同步要求较高,建议配置网络时使用可靠性较高的相关网络硬件设施。
目录《数据库课程设计》论文...................................................................................................................................................铁路网上售票系统项目开发背景: (1)铁路网上售票系统的总目标是: (1)项目开发的意义: (1)1.需求分析 (2)1.1 需求分析阶段目标和任务 (2)1.1.1 需求分析阶段目标 (2)1.1.2 需求分析阶段任务 (2)1.2 需求分析成果 (3)1.2.1 流程图 (4)1.2.2 数据字典 (5)2.数据库结构设计 (5)2.1 概念设计 (5)2.1.1 分E-R图建立 (6)2.1.2 全局/整体E-R图 (6)2.2 逻辑设计 (6)2.2.1 建立关系模式 (7)2.2.2 关系模式规范化处理 (7)2.2.3 用户子模式建立 (7)2.2.4 关系模式逻辑结构定义 (7)3.数据库物理设计 (7)3.1 物理设计阶段目标和任务 (7)3.2数据存储方面 (7)3.2.1 建立索引的原则 (7)3.2.2 建立索引 (8)3.2.3 系统功能模块图 (8)4.数据库实施与测试 (8)4.1 数据库实施 (9)4.1.1 数据库及数据库对象建立 (9)4.1.2 数据入库 (11)4.2 数据库测试 (11)5.总结 (11)6.附录 (12)附录1: (12)附录2 (16)附录3: (18)铁路网上售票系统项目开发背景:信息时代的到来,互联网对于企业和事业单位的运营和发展日益重要,网上交易也逐渐被人们认可,并成为未来交易的发展方向。
铁路售票系统也不例外。
铁路网上售票系统是铁路旅游服务信息系统的一个重要组成部分,为旅客提供优质便捷的服务。
为了提高铁路客运的售票效率,丰富铁路客运的营销手段,火车站售票总站及其下属代售点可以通过公用的互联网资源,实现网上的售票,查询及管理工作。
铁路售票系统架构评审文档虚拟的一人多角色的评估小组,成员列表如下:表1:评估小组成员列表目录铁路售票系统架构评审文档 (1)引言 (3)编写目的: (3)背景: (3)定义: (3)三层架构软件设计 (3)ATAM架构评审模式 (3)参考资料: (4)第0阶段:合作关系及准备工作 (4)第1阶段:评估阶段 (5)工程产品立项表述: (5)架构方法分类: (5)架构表述: (6)初步架构类图: (7)质量属性及采用的战术: (7)生成质量属性效用树: (8)初步分析架构方法: (9)性能 (9)可用性 (10)平安性 (10)战术采用 (10)第2阶段:评估阶段 (11)集体讨论并确定场景的优先级: (11)再次分析架构方法: (12)三层结构选择 (12)LRU缓冲技术分析 (12)MD5加密存储分析 (12)备份数据库 (12)改良架构类图 (13)结果表述 (14)第3阶段:后续阶段 (14)附录 (14)拟采用架构评审方法中的ATAM方法 (14)引言编写目的:本文档的编写目的是对铁路售票系统架构设计进行简略的评审,为后继的详细工程设计等工作提供参考和依据,本文档主要描述的内容有:●表述●调查和分析●测试●形成报告本文档的预期读者为:系统设计人员、测试人员、用户及其它有权限查阅本文档的相关人员。
背景:●系统名称:铁路售票系统●任务提出者:黄东鹏、张付俊、孙帅●开发者〔承接单位〕:开发小组●用户:网上订购铁路车票的人定义:三层架构软件设计所谓三层体系结构,是在客户端与数据库之间参加了一个中间件层,也叫组件层。
这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。
三层体系的应用程序将业务规那么、数据访问、合法性校验等工作放到了中间层进行处理。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交换。
某火车站售票系统的详细设计(高鑫刘君)一、组织机构和功能业务财务部:对系统开发过程中的财务状况进行预测,核算。
系统运行实施后对各项的财务的进出进行统计。
办公室:负责上级机关和有关单位的来文的接受登记,管理和归档工作,根据领导指示参加有关会议,必要时做好保密工作,以及配合其他部门做好各项工作等。
人力资源部:主要是针对系统的使用人员进行管理,规定不同的身份的人登录系统时不同的操作权限来确保系统数据的统一。
市场营销部:面向的人群是顾客,根据顾客的要求提供相关的票务。
建设管理部:负责对系性进行日常维护,发现系统漏洞进行修复,并对系统进行及时更新和升级。
信息管理部:协助部门经理根据上级要求制定管理制度,协助建设管理部做好开发项目的确定和项目管理。
二、组织目标和发展战略(一)组织目标火车站售票管理系统,可以高效地存储和查询数据,从而保证车站售票工作的正常进行,提高运行效率。
总体的组织目标如下:1.界面简洁、友好,易于用户操作。
使用了大量控件,缩短了代码长度。
Visual 2005提供了可视化的编程,所以,系统中大部分功能通过控件实现,使得运行界面十分简洁,用户可以方便地完成查看、修改和统计各类操作。
2.分权限管理,满足不同用户的需求。
系统用户包括:用户、售票员和管理员,所以在分析设计初期,就分别为三类用户分配了相应权限,用户登录系统时,会根据权限跳转至不同的界面。
3.各类信息及时发布,便于调度车辆,提高效率。
各类信息(包括:车票信息、人员管理信息、车站信息和时刻表信息等)由管理员及时发布,并提供了相应的查询统计模块,从而方便管理员统计和存档。
(二)发展战略随着互联网技术的不断发展,用信息技术改造传统行业,是国家实现铁路现代化战略任务的迫切要求。
铁路信息化是铁路信息化的重要标志,将信息技术运用到铁路生产经营与各项管理决策中,提高市场竞争力和经济效益,所以,开发出一款基于web的火车站售票管理系统就显得尤为重要了。
铁路售票系统架构评审文档虚拟的一人多角色的评估小组,成员列表如下:表1:评估小组成员列表目录铁路售票系统架构评审文档 (1)引言 (3)编写目的: (3)背景: (3)定义: (3)三层架构软件设计 (3)ATAM架构评审模式 (4)参考资料: (5)第0阶段:合作关系及准备工作 (5)第1阶段:评估阶段 (6)项目产品立项表述: (6)架构方法分类: (6)架构表述: (8)初步架构类图: (9)质量属性及采用的战术: (9)生成质量属性效用树: (10)初步分析架构方法: (12)性能 (13)可用性 (14)安全性 (14)战术采用 (15)第2阶段:评估阶段 (16)集体讨论并确定场景的优先级: (16)再次分析架构方法: (17)三层结构选择 (17)LRU缓冲技术分析 (18)MD5加密存储分析 (18)备份数据库 (18)改进架构类图 (19)结果表述 (20)第3阶段:后续阶段 (20)附录 (20)拟采用架构评审方法中的ATAM方法 (20)引言编写目的:本文档的编写目的是对铁路售票系统架构设计进行简略的评审,为后继的详细项目设计等工作提供参考和依据,本文档主要描述的内容有:●表述●调查和分析●测试●形成报告本文档的预期读者为:系统设计人员、测试人员、用户及其它有权限查阅本文档的相关人员。
背景:●系统名称:铁路售票系统●任务提出者:黄东鹏、张付俊、孙帅●开发者(承接单位):开发小组●用户:网上订购铁路车票的人定义:三层架构软件设计所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交换。
ATAM架构评审模式1.概述Architecture Tradeoff Analysis Method(构架权衡分析方法)。
他是评价软件构架的一种综合全面的方法。
这种方法不仅可以揭示出构架满足特定质量目标的情况,而且(因为它认识到了构架决策会影响多个质量属性)可以使我们更清楚地认识到质量目标之间的联系——即如何权衡诸多质量目标。
ATAM评估方法的主要目的:1) 提炼出软件质量属性需求的精确描述;2) 提炼出构架设计决策的精确描述;3) 评估这些构架设计决策,并判定其是否令人满意的实现了这些质量需求。
ATAM评估方法并非把每个可以量化的质量属性都进行详尽的分析,而是使众多的风险承担者(包括经理、开发人员、测试人员、用户、客户等等)都参与进来,由此而达到上述目标的。
ATAM是一种挖掘潜在风险,降低或者缓和现有风险的软件构架评估方法。
因此,以下三点是评估中要特别注重的:风险、敏感点和权衡点。
2构架涉众普通用户、用户管理员、票务管理员、开发人员、测试人员参考资料:Software ArchitectureinPractical(第三版)第0阶段:合作关系及准备工作此次对项目的评估方法经小组协商讨论是采用ATAM架构评估综合方法。
待评估的项目系统为铁路售票系统。
这是一个基于B/S的体系的常见应用,基于网络连接实现铁路票务的相关业务。
对其进行架构评估主要有如下几个原因:1.在架构搭建的过程中一定会碰见许多一致或者未知的问题和困难,如果在核心功能模块或者架构本身的设计根本上出现缺陷,尽早的发现对于晚发现,甚至完成项目后才发现的综合成本要低得多;2.由于该架构面向多个用户多平台,因此要有足够的健壮性,稳定性,可拓展性以及可修改性;3.由于该系统借助了网络的传播性,可以随时随地的对系统进行管理和维护,但是网络的泛滥使得网络环境总是充斥着有意无意的攻击,为了避免系统所部属的服务器沦为肉鸡的下场,或者内部数据被恶意破坏造成重大损失,所以系统应保证相对的安全性,使得入侵者所花费的入侵成本>入侵系统的获利成本或客户损失。
第1阶段:评估阶段项目产品立项表述:随着现代交通的发展,在基于经济以及便利的考虑基础上,铁路出行成为广大人民首选的性价比最高的交通方式。
但随着经济的发展,人工售票逐渐不能满足庞大人口数量的基本购票需求。
随着互联网的发展,网络购票的普及解决了这个主要矛盾。
根据上述目标,质量属性可以划分为两类:1.高优先级质量属性:1) 性能2) 安全性3) 易用性4) 兼容性2.重要但优先级较低的属性:1) 可扩展性2) 可维护性3) 可靠性4) 可扩充架构方法分类:进行了架构表述后,评估小组列出他们曾听到的架构方法,以及那些在对文档进行评估前的评审中所了解到的方法:一、分层架构这种架构将软件分成若干个水平曾,每一层都有清晰的角色和分工,不需要知道其他层的细节,层与层之间通过接口通信。
二、事件驱动架构事件是状态发生变化时,软件发出的通知。
事件驱动架构就是通过事件进行通信的软件架构。
分为:事件队列、分发器、事件通道、事件处理器。
三、微核架构又称为“插件架构”,指的是软件的内核相对较小,只要功能和业务逻辑都通过插件实现。
内核通常只包含系统运行的最小功能。
插件则是相互独立的,插件之间的通信,应该减少到最低,避免出现相互依赖的问题。
四、微服务架构是服务导向的架构的升级。
每一个服务都是一个独立的部署单元。
这些单元都是分布式的,互相解耦,通过远程通信协议联系。
五、云架构云架构主要解决扩展性和并发问题,是最容易扩展的架构。
它的高扩展,主要原因是没使用中央数据库,而是把数据都复制到内存中,变成可复制的内存数据单元。
然后,业务处理能力封装成一个个单元。
比如访问量增加,就新建单元处理;访问量减少,就关闭但处理单元。
由于没有中央数据库,所以扩展性的最大瓶颈消失了。
由于每个处理单元的数据都在内存里,最好要进行数据持久化。
这个模式主要分成两部分:处理单元和虚拟中间件。
架构表述:软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。
软件架构是一个系统的草图。
软件体系结构是构建计算机软件实践的基础。
考虑到票务系统的特点,将使用三层结构进行系统的架构。
初步架构类图:质量属性及采用的战术:生成质量属性效用树:下表给出了在对铁路售票系统评估期间生成的质量属性效用树,有几个质量属性求精没有与之相关的场景。
这种情况经常出现,这并不是问题,对于某个质量属性,人们有时能够想出一个合理的求精,但当让他们在自己的系统的上下文中对该质量属性的用例进行说明时,却发现该求精实际上并不适用。
表2:对铁路售票系统进行ATAM评估的效用树表格质量属性属性求精场景性能最大负载响应时间吞吐量当开票时,用户量剧增,能够同时负载至少500的用户同时访问(H,H)用户输入数据后在网络畅通的情况下应能在s内给出相关信息(H,M)日最高订票量500万张(按目前网络订票系统工作18小时算,每秒处理订单量为78张)(H,H)安全性数据存储注册验证登录验证密码强度当用户注册时,系统将用户的信息加密后存入数据库;当用户登录时,系统将数据加密后再与数据库的内容进行比较,防止传输过程被窃取泄露。
(H,L)当用户注册时,为确认为真人操作,存在手机信息验证码验证,并且60s内不允许重复获取验证码。
(H,L)当用户登录时,连续输入两次错误密码后,再次登录需要根据系统给出图片验证码输入正确的验证码才能完成登录,图片验证内容随机生成,并且随机生成条纹遮挡字符,防止机器验证。
(H,L)当用户注册时系统根据用户的密码显示相应的密码强度以提示用户增强密码强度。
密码强度根据密码内容字符类型以及长度确定。
为了确保基本的安全性以及防止用户遗忘密码,用户密码长度范围限制为6-16位。
(H,L)易用性用户通过输入简单的查询信息就能够得到对应的相关数据并让用户轻易完成购买(H,M)兼容性多系统支持在相同平台的不同系统上也能够正常运行(H,H)可维护性管理员功能维护管理系统自动报错管理员能够在铁路信息、用户信息需要更新时进行及时更新,并同步数据给用户(H,M)当出现了不可避免的错误时,可以及时进行维护修复(H,M)可以定位出系统报错内容、报错位置(M,L)可扩展性添加新功能在出现新需求时能够添加新功能,如支付渠道的增加支付渠道的选择(M,L)可扩充性功能业务的子模块随着发展和意见的收集,能够根据情况添加新的业务功能,如外卖预定(M,M)可靠性不易出错在程序的使用过程中出错概率要尽量小,出错了要能够及时修复(H,H)表中的场景给出了决策者所分配的优先级。
在每一对有序的字母中,第一个代表能力的重要性,第二个代表设计师对实现该质量属性的难度的估计。
我们需要注意到,一些场景已经很完备了,具备了刺激、环境和响应三个部分;一些场景没有刺激,还有一些场景没有响应。
在这个阶段,只要涉众能够理解场景的含义,不明确的场景说明是允许的。
如果所选择的场景用于进行分析,那么该场景中的刺激和响应必须得到足够的明确。
初步分析架构方法:评估小组首先分析最重要而且最难实现的场景,每次分析一个最高优先级的场景,同时我们的设计师详细地解释了构架如何支持每个场景。
小组成员探查设计师用来实现场景的架构方法,把相关架构决策编成文档,一共确定了个8敏感点,4个风险点,3个无风险决策。
性能可用性安全性战术采用第2阶段:评估阶段集体讨论并确定场景的优先级:下表给出了在本步骤中提出的某些部分感兴趣场景进行重点分析。
按重点次序罗列,由于篇幅有限,有些细微场景没有列出,只列出了认为重要场景。
表1:集体讨论确定的场景场景号场景1 为了防止软件抢票,应在对一个相同的用户的多次请求进行分析。
如:验证码两次输入错误之间的之间间隔。
当判定不是软件抢票时,应当随着验证错误次数的增加降低验证难度2 用户账户与付款的绑定、多种支付方式、以及安全性的要求。
在保证安全性的前提下应该能够让用户通过最简洁的流程选择自己合适的支付流程。
3 信息密传输4 突然激增的流量导致服务器处理缓慢,甚至崩溃异常,要求对有害信息进行过滤,使用LRU缓冲计数减少服务器负担,增加服务器工作效率。
5 用户访问的相关车次查询、买票、下订单、付款、改签、退款的流程应直观、简洁。
6 支持新车次添加、旧车次删除、用户信息修改操作等。
7 如果存在多个管理员时怎么并发管理系统,如果多个管理员对同一数据进行修改时应如何保护数据不被多次修改。
这里考虑到参考锁机制。
再次分析架构方法:三层结构选择由于票务数据以及用户数据量庞大,而三层结构的特点将数据层、逻辑层以及表现层分隔开,在开发上降低了复杂度。
并且考虑到系统的开发效率,三层结构使项目结构更清楚,分工更明确。
考虑到用户数量多,并且票务信息随时都有可能发生变化,使用三层结构有利于后期的维护、更新和升级。