阅读下列说明和图。 [说明] Pay&Drive系统(开多少付多少)能够根据驾驶里程自动计算应付的费用。 系统中存储了特定区域的道路交通网的信息。道路交通网由若干个路段(RoadSegment)构成,每个路段由两个地理坐标点(Node)标

admin2012-03-21  32

问题 阅读下列说明和图。
   [说明]
   Pay&Drive系统(开多少付多少)能够根据驾驶里程自动计算应付的费用。
   系统中存储了特定区域的道路交通网的信息。道路交通网由若干个路段(RoadSegment)构成,每个路段由两个地理坐标点(Node)标定,其里程数(Distance)是已知的。在某些地理坐标点上安装了访问控制(Access Control)设备,可以自动扫描行驶卡(Card)。行程(Trajectory)由一组连续的路段构成。行程的起点(Entry)和终点(Exit)都装有访问控制设备。
   系统提供了3种行驶卡。常规卡(Regular Card)有效期(Valid Period)为一年,可以在整个道路交通网内使用。季卡(Season Card)有效期为三个月,可以在整个道路交通网内使用。单次卡(Minitrip Card)在指定的行程内使用,且只能使用一次。其中,季卡和单次卡都是预付卡(Prepaid Card),需要客户(Customer)预存一定的费用。
   系统的主要功能有:客户注册、申请行驶卡、使用行驶卡行驶等。
   使用常规卡行驶,在进入行程起点时,系统记录行程起点、进入时间(Date Of Entry)等信息。在到达行程终点时,系统根据行驶的里程数和所持卡的里程单价(Unit Price)计算应付费用,并打印费用单(Invoice)。
   季卡的使用流程与常规卡类似,但是不需要打印费用单,系统自动从卡中扣除应付费用。
   单次卡的使用流程与季卡类似,但还需要在行程的起点和终点上检查行驶路线是否符合该卡所规定的行驶路线。
   现采用面向对象方法开发该系统,使用UML进行建模。构建出的用例图和类图分别如图3-1和图3-2所示。

根据说明中的描述,给出图3-2中缺少的C1~C6所对应的类名以及(2)~(3)处所对应的多重度(类名使用说明中给出的英文词汇)。

选项

答案C1:RoadSegment C2:Trajectory C3:Card C4:RegularCard C5:PrepaidCard C6:MinitripCard (2)1 (3)1..3

解析 本问题考查的是类图建模。解题的重点在于根据类图中提供的类及类之间的关联关系,推断出剩余的类。
   可以先观察一下类图。可以看到,需要补充的类基本上集中在两个结构上:聚集结构(类C1和C2)以及继承结构(类C3~C6)。继承结构是比较容易辨识的类之间的关联关系,图上给出了其中的一个子类SeasonCard。以这个类为线索,回到说明中寻找与类SeasonCard相关的其他类。从说明中可知,“系统提供了3种卡”,常规卡、季卡、单次卡,而“季卡和单次卡都是预付卡”。这些描述暗示,“季卡”、“单次卡”与“预付卡”之间存在着特殊/一般关系,即“is-a”关系,这是继承结构的典型标志。由此可以得出类C5和C6应该分别对应PrepaidCard(预付卡)和MinitripCard(单次卡)。根据C5和C6所对应的类,可以推断出,C4和C3必定也是与行驶卡相关的类。三种卡中,已经有两种卡有了对应的类,还剩下一种卡即“常规卡”。而“常规卡”只能是与“预付卡”同层次的概念,所以只能对应于C4,C3表示的是能代表所有这几种卡的公共概念。所以C3和C4应分别对应于Card和RegularCard。确定了C3之后,就可以识别出(2)和(3)处的多重度。Customer和Card之间是持有和被持有的关系,由于系统中只有3种卡,所以一个客户最多只能有3种卡,所以(3)处应填1..3。而对于任何一张卡来说,只能有唯一地一个所属人,因此(2)处应填1。
   现在还剩下类C1和C2没有确定。由于这两个类之间是聚集关系,所以需要在说明中寻找具有“部分一整体”关系的概念。由说明中的“行程(Trajectory)由一组连续的路段构成”可知,C1和C2应分别对应于RoadSegment和Trajectory。
转载请注明原文地址:https://jikaoti.com/ti/aui7FFFM
0

相关试题推荐
最新回复(0)