问答题
阅读以下技术说明,根据要求回答问题1~问题4。
[说明]
某汽车停车场欲建立一个信息系统,已经调查到的需求如下。
1.在停车场的入口和出口分别安装一个自动栏杆、一台停车卡打印机、一台读卡器和一个车辆通过传感器等,其示意图见如图3-21所示。

2.当汽车到达入口时,驾驶员按下停车卡打印机的按钮获取停车卡。当驾驶员拿走停车卡后,系统命令栏杆自动抬起;汽车通过入口后,入口处的传感器通知系统发出命令,栏杆自动放下。
3.在停车场内分布着若干个付款机器。驾驶员将在入口处获取的停车卡插入付款机器,并缴纳停车费。付清停车费之后,将获得一张出场卡,用于离开停车场。
4.当汽车到达出口时,驾驶员将出场卡插入出口处的读卡器。如果这张卡是有效的,系统命令栏杆自动抬起;汽车通过出口后,出口传感器通知系统发出命令,栏杆自动放下。若这张卡是无效的,系统不发出栏杆抬起命令而发出告警信号。
5.系统自动记录停车场内空闲的停车位的数量。若停车场当前没有车位,系统将在入口处显示“车位已满”信息。这时,停车卡打印机将不再出卡,只允许场内汽车出场。
根据上述描述,采用面向对象方法对其进行分析与设计,得到如表3-11所示的类/用例/状态列表,如图3-22所示的用例图,如图3-23所示的初始类图以及如图3-24所示的描述入口自动栏杆行为的UML状态图。

{{B}}表3-11 类/用例/状态列表{{/B}}

{{B}}用例名{{/B}}
{{B}}说明{{/B}}
{{B}}类名{{/B}}
{{B}}说明{{/B}}
{{B}}状态名{{/B}}
{{B}}说明{{/B}}
Car entry
汽车进入停车场
CentralComputer
停车场信息系统
Idle
空闲状态,汽车可以进入停车场
Car exit
汽车离开停车场
PaymentMachine
付款机器
Disable
没有车位
Report Statistics
记录停车场的相关信息
CarPark
停车场,保存车位信息
Await Entry
等待汽车进入
Barrier
自动护栏
Await Ticket Take
等待打印停车卡
Car entry when full
没有车位时,汽车请求进入停车场
EntryBarrier
入口的护栏
Await Enable
等待停车场内有空闲车位
ExitBarrier
出口的护栏



问答题
[问题1]
根据说明中的描述,使用表3-11给出的用例名称,给出图3-22中U1、U2和U3所对应的用例。
【正确答案】
【答案解析】[问题1] 表3-11中给出了Car entry、Car exit、Report Statistics、Car entry when full等4个用例。在这4个用例中,两个用例表示汽车进入停车场,一个用例表示汽车退出停车场,另一个用例表示记录停车场相关信息。经分析得出,前3个用例的参与者都是驾驶员,因此U1、U2和U3对应进入和退出停车场。U1和 U3之间存在扩展关系,而用例之间的延伸关系用于对被用户看作是可选系统行为的用例的一部分建模。通过这种方式,可以把可选行为从必需的行为中分离出来。Car entry when full和Car entry之间就可以使用extend关系进行建模。
问答题
[问题2]
根据说明中的描述,使用表3-11给出的类的名称,给出图3-23中的A~D所对应的类。
【正确答案】
【答案解析】[问题2] 在UML类图中,类与类之间的5种关系从弱到强依次为:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition)和继承(Inheritance)。因此依赖关系最弱,继承表示类与类之间关系最强。依赖(Dependency)关系是类与类之间的连接,并且依赖总是单向的,其标准UML图形表示为表示其相联的两个类之间存在关联关系,用于描述两个概念上位于相同级别的类的实例之间存在的某种语义上的联系。聚合关系是关联关系的一种特例,代表两个类之间的整体/局部关系,其标准UML图形表示为表示其相联的两个类之间存在继承关系。子类继承父类的行为与含义,子类还可以增加或者覆盖父类的行为。子类可以出现在父类出现的任何位置。 依题意可以判断Barrier、EntryBarrier和ExitBarrier之间存在继承关系,而在图3-23类图中所表示的继承关系的部分只有一处,因此这3个类分别对应于图3-23中的类B、类C和类D,而剩下的类 A只有选择类CarPark了。
问答题
[问题3]
根据说明中的描述,使用表3-11给出的状态名称,给出图3-24中S1~S4所对应的状态。
【正确答案】
【答案解析】[问题3] 在图3-24状态图中,Idle表示有空闲车位,Disable表示没有空闲车位,因此在其之间存在双向的状态迁移,即状态图上的状态S1为Idle状态。当停车场存在空闲车位时,汽车请求进入停车场,根据说明描述“当汽车到达入口时,驾驶员按下停车卡打印机的按钮获取停车卡”,可知在该动作正对应于状态图上的S1和状态S2之间的迁移,因此,状态S2表示的含义应该是按下按钮后状态,此时,驾驶员等待打印停车卡,所以状态S2为Await Ticket Take。同理可分析出状态S3和状态S4。
问答题
[问题4]
简要解释图3-22中用例U1和U3之间的extend关系的内涵。
【正确答案】
【答案解析】[问题4] 在用例的执行过程中,可能会在不同的流程分支中选择执行,也可能会出现异常行为。此时,可以将异常行为或可选分支抽象成一个单独的扩展用例,它与主用例之间形成“扩展(extend)”关系。