阅读下列说明,回答下列问题,将解答填入答题纸的对应栏内。
【说明】
某ETC(Electronic Toll Collection,不停车收费)系统在高速公路沿线的特定位置上设置一个横跨道路上空的龙门架( Toll gantry),龙门架下包括6条车道(Traffic lanes),每条车道上安装有雷达传感器(Radar sensor)、无线传输器( Radio transceiver)和数码相机(Digital Camera)等用于不停车收费的设备,以完成正常行驶速度下的收费工作。该系统的基本工作过程如下:
(1)每辆汽车上安装有车载器,驾驶员(Driver)将一张具有唯一识别码的磁卡插入车载器中。磁卡中还包含有驾驶员账户的当前信用记录。
(2)当汽车通过某条车道时,不停车收费设备识别车载器内的特有编码,判断车型,将收集到的相关信息发送到该路段所属的区域系统(Regional center)中,计算通行费用,创建收费交易(Transaction),从驾驶员的专用账户中扣除通行费用。如果驾驶员账户透支,则记录透支账户交易信息。区域系统再将交易后的账户信息发送到维护驾驶员账户信息的中心系统(Central system)
(3)车载器中的磁卡可以使用邮局的付款机进行充值。充值信息会传送至中心系统,以更新驾驶员账户的余额。
(4)当没有安装车载器或者车载器发生故障的车辆通过车道时,车道上的数码相机将对车辆进行拍照,并将车辆照片及拍摄时间发送到区域系统,记录失败的交易信息;并将该交易信息发送到中心系统。
(5)区域系统会获取不停车收费设备所记录的交通事件(Traffic events);交通广播电台(Traffic advice center)根据这些交通事件进行路况分析并播报路况。
现采用面向对象方法对上述系统进行分析与设计,得到如表3-1所示的用例列表以及如图3-1所示的用例图和图3-2所示的分析类图。
表3-1 用例例表
用例名称 |
说明 |
Create transaction | 记录收费交易 |
Charge card | 磁卡充值 |
Underpaid transaction | 记录透支账户交易信息 |
Record Illegai use | 记录失败交易信息 |
Record traffic event | 记录交通事件 |
根据说明中的描述,给出图3-1中A1~A4所对应的参与者名称。
A1:Central system
A2: Driver
A3: Traffic advice center
A4: Traffic advice center
(其中A1与A2可交换,A3与A4可交换)
根据说明中的描述及表3-1,给出图3-1中U1~U5所对应的用例名称。
U1:Underpaid transaction
U2:Record Illegal use
U3:Create transaction
U4:Record traffic event
U5:Charge card
(其中U1与U2可交换)
根据说明中的描述,给出图3-2中C1~C6所对应的类名。
C1:Central system
C2:Toll gantry
C3:Traffic lanes
C4:Radar sensor
C5:Radio transceiver
C6: Digital Camera
(注意:C4, C5, C6可交换)
本题考查面向对象分析与设计方法, UML 是面向对象分析与设计过程中最常用的建模语言, 关于面向对象分析与设计、 及 UML 相关知识请参见比特培训相关课程。 本题的作答方式与试题一、 试题二类似, 比特建议先阅读问题, 带着问题去阅读文字描述, 然后边阅读、 边对照 UML 图、 边思考、 边作答的方式能精准地定位答案。
文字描述“„在高速公路沿线的特定位置上设置一个横跨道路上空的龙门架(Toll gantry),龙门架下包括 6 条车道(Traffic lanes)(可知龙门架是整体类, 车道是局部类, 它们之间是组合的关联关系),每条车道上安装有雷达传感器(Radar sensor)、 无线传输器(Radio transceiver)和数码相机(Digital Camera)等用于不停车收费的设备(可知车道是整体类, 雷达传感器、 无限传输器、 数码相机是局部类, 它们之间是组合关系。 ), 以完成正常行驶速度下的收费工作。”, 在对比图 3-2 知 C2 为龙门架“Toll gantry”, C3 为车道“Traffic lanes”,C4 为雷达传感器“Radar sensor”, C5 为无线传输器“Radio transceiver”, C6 为数码相机“Digital Camera”, 其中 C4、 C5、 C6 可交换。
对于【问题 2】, 虽然本题并未明确要求使用英文类名作答, 但由于图 3-2 中已有的类名为英文, 故本题的答案建议写英文类名, 当然, 中文类名也不错。
从文字描述“(2)当汽车通过某条车道时, 不停车收费设备识别车载器内的特有编码,判断车型, 将收集到的相关信息发送到该路段所属的区域系统(Regional center)中, 计算通行费用, 创建收费交易(Transaction)„”可看出, 车道“Traffic lanes”类(C3)与交易“Transaction”类是有关联关系的, 这与图 3-2 中 C3 与类 Transaction 的“1: *” 的关系相符; 同时也能看出一个区域系统(Regional center)覆盖多个路段, 而一个路段有多条车道(Traffic lanes),一个车道上方又安装有对应的龙门架, 这与图 3-2 中类“Regional center”和类“Toll gantry”的“1: *” 的关联关系相符。
“„计算通行费用, 创建收费交易(Transaction), 从驾驶员的专用账户中扣除通行费用。如果驾驶员账户透支,则记录透支账户交易信息。 „” 中“如果” 两字表明系统在执行用例“记录收费交易(Create transaction)”时, 用例“记录透支账户交易信息(Underpaid transaction)”有可能执行, 也可能不执行。 这说明用例“Create transaction” 是被扩展用例, 而“Underpaid transaction” 是扩展用例, 再对照图 3-1 可知 U3 为“Create transaction”, U1 为“Underpaid transaction”, 注意, 在用例的扩展关系中, 箭头指向“被扩展” 的用例。通过 “„区域系统再将交易后的账户信息发送到维护驾驶员账户信息的中心系统(Central system)„” 可知区域系统(Regional center)与中心系统(Central system)是多对 1 的关联关系, 这与图 3-2 中 C1 处对比知 C1 为类“Central system”。
通过以上分析, 用例“记录收费交易(Create transaction)” 需要从驾驶员的专用账户中扣除通行费用, 而驾驶员账户信息由中心系统(Central system)进行维护, 故图 3-1 中与用例U3“记录收费交易(Create transaction)” 相关联的参与者 A1 为“Central system”。
文字描述“(3)车载器中的磁卡可以使用邮局的付款机进行充值。 充值信息会传送至中心系统,以更新驾驶员账户的余额。” 表明“中心系统(Central system)” 与用例“此卡充值(Charge card)” 有关联关系, 而充值应该是驾驶员(Driver)自行完成, 故图 3-1 中 A2 应为参与者“驾驶员(Driver)”, 用例 U5 为“此卡充值(Charge card)”。 A1 与 A2 的答案可交换。文字描述“(4)当没有安装车载器或者车载器发生故障的车辆通过车道时, 车道上的数码相机将对车辆进行拍照, 并将车辆照片及拍摄时间发送到区域系统, 记录失败的交易信息; 并将该交易信息发送到中心系统。” 也表明 ETC 系统在记录交易信息时可能会出现失败的状况, 故用例“记录失败交易信息(Record Illegal use)” 应对应图 3-1 中的 U2。 U1 与 U2 的答案可交换。
文字描述“(5)区域系统会获取不停车收费设备所记录的交通事件(Traffic events);交通广播电台(Traffic advice center)根据这些交通事件进行路况分析并播报路况。” 表明用例“记录交通事件(Record traffic event)” 与两个参与者有关联关系, 一个是“交通广播电台(Trafficadvice center)”, 另一个是“区域系统(Traffic advice center)”, 再对照图 3-1 可知, U4 为“Record traffic event”, A3 为“Traffic advice center”, A4 为“Traffic advice center”, 其中 A3与 A4 可交换。 对于【问题 1】 中每个参与者的答案, 比特建议写英文名称, 当然写中文名称也不错, 因为题目并未规定, 但是对于【问题 2】 中的用例名一定要写英文名称, 因为表 3-1 已经明确了用例名为英文名称。