版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
背景:昨天元宵佳节同事聚餐,大家聊起今年的网上订票系统,毁誉参半呀。从程序员的角度我们是怎么看这个铁老大斥资几千万的大系统的,这里我就不说了。要写的是如果我是这个系统的架构师(呵呵夸口了,如果也许假设是,然而未必不见得,嘿嘿),我会如何设计这个系统。2月我会利用零星的时间,就这个系统演练下系统设计的能力,作为这个月送给自己的玩具,呵呵,不足之处欢迎大家批评指正踊跃拍砖。目标:本系统主要实现对火车车次的查询、车票预订功能。关注在大用户量集中访问情况下,比如春运订票高峰期,系统承载能力。当然细节方面也要注意系统的易用性、用户体验,比如在查询两车站间没有直达车时给出中转站,输入车站名简称时有提示,管理员可修改预售期、增减车次信息等。功能:两站之间的车次查询•具体某车次的查询•进出某车站所有车次的查询•车票预订(车票预定后,所需的座位被声明,其余座位解锁)•乘客取票(首先根据身份证号查询订单,然后修改订单状态)•用户的注册和登录,修改密码订单管理(订单的查询和撤销等)•后台管理员系统(编辑列车、车票、预售期等相关信息)系统设计:确定关键需求一、分析阶段(1)需求分析业务需求:本系统主要的业务需求包括车次查询、车票预订
•用户需求(用例图描述):•行为需求(用例规约描述)•用户需求(用例图描述):•行为需求(用例规约描述)芸要正弱士题钥允许购票人泛捋彳与期内火车买的浸订、克茨.安治彳订・..2.亭弁流..2.1釜本事件旅..1.1停约订案.,二助家人在泉累查透瓦宜检援年次.左丰日抵查说缺会半密・.,2曲荻人点主彳订技芯.芝捧荐别、埃写弦我-点击捉文技W・.・3按:辰子逢!S庄定意别挝定米数的半碇a法迭・.,4创建订单..5提示早户?3订或:S..,2.1.2谯.・N曲瘀人君个人为莅五件交会欺拜点人员..2裒票点人员在渎土彼富上渎入狂号传M・.•m玄荻点人戾梅遂云件信息寻订单传息・..4斐票W人员*.在“出票泞按还.系旻含泓有袤企寿骨息补克到车卷信息牛.#毒车袤的凉道技柩云为已出褰.醪改订单次志为交房成对..5玄荻成为..2.1.3.袤湾W订,I购素人在我的订年灵豆垮圭某个订单点击家拦M订技还..■2柔安诲该订牟关素的所有左京求恋的车票拳宏.即翊状态互为代台状态共遂订单狭态云为已取湾・.,一2.N备毋事件流-2-2.1.13配景支喜簇枭奉察或不呈示珥订接近.b如汞胡人由志鼓大于新宏车簇蠢・提示、紊人…2.2.2..♦磁肃不出正■件信札制墨无痞盍人责芋血八我件信息.“b如枭:童有以藐.或占子订K订单律甚,嘉云惠袤票配差.■2.2.3..a立果过于配德车痿和韦渲1策重我个蜜H它不能在一个孕务中主或.亲卷后隹建呈.3.待魏布成..大..「前宣条件“无.・5.后五条祥.(2)领域建模首先按照功能进行模块化的分离。
确定关键需求车票预订是本系统的关键需求概念性架构设计步骤一、鲁棒性分析鲁棒图(静态)
鲁棒顺序图(动态)数据管理以系统交"步骤三、质量属性分析2.实际架构设计(1)逻辑架构车票预订的逻辑架构如下:1\LSpecificationf■RoutirgSer;1ze.RoutingServicB^tt^是构造一个^足Spe咖赚m知鲫;啊!tin即ay.邸RoutingSemiteJZ个制i引擎.可通过玳它糙炸缸瞬第最快的路缱或最便宜命路凯票的状态图如下:开发架构运行架构(4)物理架构(5)数据架构附加:•可增加求购和转让信息发布功能。•恰当使用AJAX技术进行信息的异步传输。•经常查询的数据要设置缓存。•系统可以扩展个makecharge的模块,调用服务商提供的接口,这样就可以增加信用卡或支付宝支付功能,最好还能提供送票服务。•注意半段的车票可以继续出售问题的设计。•注意学生票、军人票等特殊票种的处理情况。准备知识:(1)逻辑架构l思想:逻辑架构的设计着重考虑功能需求,即系统应向用户提供什么服务。规定了软件架构由哪些逻辑元素组成,以及这些逻辑元素之间的关系。逻辑架构的设计往往是从用例分析开始的,然后综合这些用例分析成果,得到整个软件系统的逻辑架构。逻辑架构设计要实现层、子系统、模块等的划分决定交互接口和交互机制(交互机制是指不同软件单元之间交互的手段。交互机制的例子有:方法调用、基于RMI的远程方法调用、发送消息等。)l关注点:功能需求、行为和职责的划分,将不同的职责分配给逻辑层、功能模块、类等不同力度的逻辑单元。l工作任务:0细化功能单元0发现通用机制(机制Mechanism是模式的实例。机制必须进一步细化才能成为特定模型中的协作,因此机制是独特上下文中重复出现的问题的特定解决方案。)0细化领域模型0确定子系统接口和交互机制l描述方式:静态:包图、类图、对象图。动态:序列图、协作图、状态图、活动图。(2)开发架构l思想:开发架构的设计着重考虑开发期质量属性,例如可扩展性、可重用性、可移植性、易理解性、易测试性等。l关注点:软件模块的实际组织方式,具体涉及源程序文件、配置文件、源程序包、编译及打包后的目标文件、第三方库文件等。l工作任务:0确定要开发或直接利用的程序包之间的依赖关系0确定采用的技术0确定采用的框架等l关系:开发架构和逻辑架构是什么关系?开发架构和逻辑架构之间存在一定的映射关系:比如逻辑架构中的逻辑层一般会映射到开发架构中的多个程序包;开发架构中的源码文件可以包含逻辑架构中的一到多个类。l描述方式:包图、类图、组件图。运行架构l思想:运行架构的设计着重考虑运行期质量属性。l关注点:进程、线程、对象等运行时概念,已经相关的并发、同步、通信等问题。l工作任务:0确定引入哪些进程与线程0确定主动对象、被动对象、以及控制流关系0处理相关问题:进程线程的创建、销毁、通信机制、资源争用等0协议设计(可选,例如基于TCP/IP协议定义本系统的“应用协议”)l关系:开发架构和运行架构是什么关系?开发架构偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,运行架构比较关注的是这些运行时单元的交互问题。运行架构是在开发架构的基础上,从宏观上规划多条控制流的并发和同步。l描述方式:静态方面可用包图、类图、对象图动态方面可用序列图、协作图物理架构l思想:物理架构的设计着重考虑安装和部署需求。规定了软件架构由哪些物理元素组成,以及这些物理元素之间的关系,以及这些物理元素部署到硬件上的策略。物理架构反映出软件系统动态运行时的组织情况。物理元素就是进程、线程、作为类的运行时实例的对象等,而进程调度、线程同步、进程或线程通信等则进一步反映物理架构的动态行为。架构设计中可能需要专门说明数据是如何产生、存储、共享、复制的,这时可以利用物理架构,展示软件系统在运行期间数据是由哪些运行时单元产生、如何产生、数据如何被使用、如何被存储、哪些数据需要跨网络复制和共享等方面的设计决策。软件系统在计算机中运行期间的并发和交互情况(物理架构设计方案中规定了软件系统如何使用进程和线程完成期望的并发处理,进程线程这些主动对象会调用哪些被动对象参与处理,交互机制(如消息)为何等问题,从而为详细设计和编程实现提供了工作目标的动态视图。)l关注点:安装和部署需求。l工作任务:0确定物理配置方案(网络方案)0确定如何将目标程序映射到物理节点l关系:物理架构和运行架构是什么关系?物理架构重视目标程序的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论