专业系统设计之火车票预订系统.docx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
背景:昨天元宵佳节同事聚餐,大家聊起今年网上订票系统,毁誉参半呀。从程序员角度我们是怎么看这个铁老大斥资几千万大系统,这里我就不说了。要写是假如我是这个系统架构师(呵呵夸口了,假如可能假设是,然而未必不见得,嘿嘿),我会怎样设计这个系统。2月我会利用零星时间,就这个系统演练下系统设计能力,作为这个月送给自己玩具,呵呵,不足之处欢迎大家批评指正踊跃拍砖。 目标: ???????????本系统关键实现对火车车次查询、车票预订功效。 ?????????? 关注在大用户量集中访问情况下,比如春运订票高峰期,系统承载能力。 ?????????? 当然细节方面也要注意系统易用性、用户体验,比如在查询两车站间没有直达车时给出中转站,输入车站名简称时有提醒,管理员可修改预售期、增减车次信息等。 功效: 两站之间车次查询 具体某车次查询 进出某车站全部车次查询 车票预订(车票预定后,所需座位被申明,其它座位解锁) 乘客取票(首先依据身份证号查询订单,然后修改订单状态) 用户注册和登录,修改密码 订单管理(订单查询和撤销等) 后台管理员系统(编辑列车、车票、预售期等相关信息) 系统设计: 一、分析阶段 ???? (1)需求分析 业务需求:本系统关键业务需求包含车次查询、车票预订 用户需求(用例图描述): ? 行为需求(用例规约描述) ? ??? (2)领域建模 ????????首先根据功效进行模块化分离。 ??????? 然后对分离出来模块进行抽象。下面以查询和预订模块为例: 二、架构设计阶段 1.??概念型架构设计 (1)确定关键需求 车票预订是本系统关键需求。 (2)概念性架构设计 步骤一、鲁棒性分析 ? 鲁棒图(静态): ? ? ? 鲁棒次序图(动态): ? 步骤二、?引入架构模式 步骤三、?质量属性分析 ? 2.??实际架构设计 ? (1)? 逻辑架构 ? 车票预订逻辑架构以下: ? ? 车票查询逻辑架构以下: ? 票状态图以下: (2)? 开发架构 (3)? 运行架构 (4)? 物理架构 (5)? 数据架构 ? ? ??????? 附加: 可增加求购和转让信息公布功效。 合适使用AJAX技术进行信息异步传输。 常常查询数据要设置缓存。 系统能够扩展个make charge模块,调用服务商提供接口,这么就能够增加信用卡或支付宝支付功效,最好还能提供送票服务。 注意半段车票能够继续出售问题设计。 注意学生票、军人票等特殊票种处理情况。 准备知识: (1)? 逻辑架构 l? 思想: 逻辑架构设计着重考虑功效需求,即系统应向用户提供什么服务。 要求了软件架构由哪些逻辑元素组成,和这些逻辑元素之间关系。 逻辑架构设计往往是从用例分析开始,然后综合这些用例分析结果,得到整个软件系统逻辑架构。 逻辑架构设计要实现层、子系统、模块等划分决定交互接口和交互机制(交互机制是指不一样软件单元之间交互手段。交互机制例子有:方法调用、基于RMI远程方法调用、发送消息等。) l? 关注点:功效需求、行为和职责划分,将不一样职责分配给逻辑层、功效模块、类等不一样力度逻辑单元。 l? 工作任务: ?? 细化功效单元 ?? 发觉通用机制(机制Mechanism是模式实例。机制必需深入细化才能成为特定模型中协作,所以机制是独特上下文中反复出现问题特定处理方案。) ?? 细化领域模型 ?? 确定子系统接口和交互机制 l? 描述方法: 静态:包图、类图、对象图。 动态:序列图、协作图、状态图、活动图。 ? (2)? 开发架构 l? 思想:开发架构设计着重考虑开发期质量属性,比如可扩展性、可重用性、可移植性、易了解性、易测试性等。 l? 关注点:软件模块实际组织方法,具体包含源程序文件、配置文件、源程序包、编译及打包后目标文件、第三方库文件等。 l? 工作任务: ?? 确定要开发或直接利用程序包之间依靠关系 ?? 确定采取技术 ?? 确定采取框架等 l? 关系: 开发架构和逻辑架构是什么关系?开发架构和逻辑架构之间存在一定映射关系:比如逻辑架构中逻辑层通常会映射到开发架构中多个程序包;开发架构中源码文件能够包含逻辑架构中一到多个类。 l? 描述方法:包图、类图、组件图。 ? (3)? 运行架构 l? 思想:运行架构设计着重考虑运行期质量属性。 l? 关注点:进程、线程、对象等运行时概念,已经相关并发、同时、通信等问题。 l? 工作任务: ?? 确定引入哪些进程和线程 ?? 确定主动对象、被动对象、和控制流关系 ?? 处理相关问题:进程线程创建、销毁、通信机制、资源争用等 ?? 协议设计(可选,比如基于TCP/IP协议定义本系统“应用协议”) l? 关系: 开发架构和运行架构是什么关系?开发架构偏重程序包在编译时期静态依靠关系,而这些程序运行起来以后

文档评论(0)

159****1748 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档