XBhighway设计说明书.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
XBhighway设计说明书

设计说明书 一、问题描述 本问题目的是进行西安到宝鸡高速公路运作的仿真。从西安到宝鸡的高速公路上有两种车:沃尔沃和依维柯,车中有两种最主要的属性:速度和容量。汽车每天在一定的时间区间内会在两地间互相行驶。在西安和宝鸡两地每时每刻都会产生乘客,在西安和宝鸡之间有XY, XP, WG, CP, GZ五个中间站,乘客会选择在五个站中的任意一站和终点站下车,中途只许下车不许上车。从西安到宝鸡的车到了宝鸡自动排在从宝鸡到西安的车的车队末尾 经过分析在仿真系统中应至少包括如下功能: (1)始发站控制产生相应的客车(根据预先给定的汽车的属性); (2)始发站控制产生相应的乘客; (3)乘客来到车站以后选择合适的车,上车; (4)汽车到了发车时间,发车; (5)汽车在公路上行驶(包括在中间站停车); (6)汽车到终点站,并准备再次发车,执行(4); (7)乘客到站下车。 二、面向对象分析与设计 1、面向对象分析 通过上一步的问题描述,采用用例建模的方式对此模型进行建立。用例图如下: Use Case Specification: 用例ID:1 用例名:Get On Bus(上车) 参与者:乘客,汽车 用例描述:此用例是在乘客发生上车动作时候发生的,乘客产生并且上车的动作。 事件流:B1.乘客来到车站 B2.找到离现在最近的要出发并且不满的汽车 A2.1若车站里汽车座位全满,则排队等待 A2.2 若车站已经无汽车,则乘客离开车站 B3.乘客上车 B4.乘客通知汽车目的地,注册信息 前置事件:无 后置事件:Start(开车) 用例ID:2 用例名:Get Off Bus(下车) 参与者:乘客,汽车 用例描述:此用例发生于汽车停车(Stop)或中途停车(Pause)之后乘客发生的动作,乘客请求下车并且执行下车的动作。 事件流:B1.乘客请求下车 B2.汽车将乘客注册信息刷新 B3.乘客下车 前置事件:停车(Stop)或中途停车(Pause)发生 后置事件:无 用例ID:3 用例名:Start(开车) 参与者:时钟,汽车 用例描述:此用例发生前提汽车已经安排好发车时间,发生于到了汽车应该发车的时间,时钟触发汽车开车。 事件流:B1.当前时钟等于汽车的发车时间 A1 若车站内无汽车,则什么都不做 B2.时间通知汽车启动 B3.汽车开车 B4.根据乘客信息以及公路信息计算到每一站的时间和停车时间 前置事件:Get On Bus(上车) 后置事件:无 用例ID:4 用例名:Pause(中间站停车) 参与者:时钟,汽车 用例描述:此用例发生于到了中间车站(靠时钟来触发的)时,汽车所做的动作,停车或继续行驶。 事件流:B1.时钟到了中间站停车时刻 B2.通知汽车停车2分钟,同时更新汽车内乘客信息 A2.若无乘客下车则不停车,继续行驶 B3.时钟过了2分钟汽车继续行驶 前置事件:Start(开车) 后置事件:Get Off Bus(下车) 用例ID:5 用例名:Stop(终点站停车) 参与者:时钟,汽车 用例描述:此用例发生于汽车到了终点站时,时钟触发汽车停车,并且更新汽车状态信息,取得再次开车时间,准备再次发车。 事件流:B1.时钟到了汽车到终点站时刻 B2.汽车停车 B3.汽车加入终点站的准备发车队列,同时设置再次发车时间 A3.若时钟已经过了最晚发车时间,则什么都不做。 前置事件:Start(开车) 后置事件:Get Off Bus(下车) 图1为西宝高速的仿真用例图。 图1 西宝高速的仿真用例图 2.面向对象设计 由上的用例分析及Boundary-Control-Entity的分析方法首先由Actor抽象出三个类作为实体类(Entity): Bus类:代表汽车,封装了汽车信息,汽车自身动作 Passenger类:代表乘客,封装了乘客信息,乘客自身动作 Time类:代表时钟,封装了时钟本身和对时钟的一些操作 此外虽然在Actor中没有车站,但是这站本身包括了一定的信息,例如车站与车站间的距离,车站的名字,以及为了后续的功能扩展(例如航线的变化,站点的增加),所以车站也抽象成类。 (4)TheStop类:车站类,作为实体类的一个,封装了车站信息 在这个事务中,会产生很多个Bus类的对象,也会产生很多Passenger类的对象,为了对其操作方便则需要将这些对象聚集起来,则定义了两个队列类,用于对一组的对象进行操作。 BusList:代表汽车的队列,封装了对汽车队列的整体情况的操作。 PassengerList:乘客的队列,封装了对乘客队列的整体情况的操作。 如上(4)(5)为Control类,提供必要的控制。 虽然车站作为实体类

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档