根据说明中的描述,使用表3-1给出的类的名称,给出图3-1中的A~F所对应的类。 根据图3-2所示的播放器行为UML状态图,给出从“关闭”状态到“播放”状态所经过的最短事件序列(假设电池一开始就是有电的)。

admin2008-11-02  45

问题 根据说明中的描述,使用表3-1给出的类的名称,给出图3-1中的A~F所对应的类。
根据图3-2所示的播放器行为UML状态图,给出从“关闭”状态到“播放”状态所经过的最短事件序列(假设电池一开始就是有电的)。

选项

答案按任意键,选择歌曲

解析 本题考查的是面向对象的分析与设计。前三个问题的考点比较传统,考查的是类图的设计要素。今年增加了一个关于状态图的考点:如何理解给定的状态图。
   问题1属于传统的考法,要求考生根据说明将类图填充完整。实际上就是把表3-1中的类和图中的A-E对号入座。针对这道题目的类图而言,完成这个问题是比较简单的,因为类图中出现了三个典型的类/对象关系结构:继承(类A、C、D)、聚集(类B、e)和组装(类E、F)。从说明可以明显地看出,可能具有继承关系的只能是Artist、Band和Musician。这样类A、C、D就确定了,下面来看B。B和A之间两条关联的名字,已经很明确地告诉了我们,能够被Artist编写、演奏的只能是歌曲(Song)。这样B也确定下来了,剩下的E和F就显而易见了。音轨(Track)中包含的是歌曲,而唱片是由音轨构成的。所以E应该是Track,F应该是Album。
   第二步是要确定关键类之间的多重度。这在说明中已经有了明确的描述。(1)和(2)处的多重度描述的是类Band和Musician的实例之间的关系。由“艺术家可能是——名歌手或一支由2名或2名以上的歌手所组成的乐队”可知,组成乐队的最少人数应该是2,所以(2)应该是2..*。由“一名歌手可以不属于任何乐队,也可以属于一个或多个乐队”可知,(1)应该是0..*。
   (3)~(4)处的多重度描述的是类Song和Track的实例之间的关系。由“一条音轨中只包含一首歌曲或为空”可知,(3)应该为0..1。由“一首歌曲可分布在多条音轨上”可知,(4)应该为1..*。同理可以得到,(5)应该是1..*(一张唱片上有多条音轨); (6)应该为1。
   问题3考查的是类对象关联中的一种特殊关联:递归关联,它描述的是同一个类的不同实例之间的关系。而类Track的不同实例之间恰好具有这种关系(因此对于任意一条音轨,播放器需要准确地知道,它的下一条音轨和上一条音轨是什么)。所以缺少的那条联系的两端都是类Track,其多重度都为0..1。下限为0,是对应不存在上一条或下一条音轨的情况。
   状态图是描述系统动态行为的一种模型。这里状态图的考查仅限于能够理解它所描述的行为。状态图由状态及状态之间的迁移构成,迁移可以由相关的事件触发。问题4给定了两个状态“关闭”和“播放”,要求找出从“关闭”到“播放”的最短事件序列。这就要求我们能够在状态图上找到连接这两个状态的最短迁移,然后将迁移上的事件记录下来就可以了。
   从“关闭”状态到“播放”状态可以选择经过迁移“连接电脑”、到达“联机”状态,再经过迁移“断开连接”到达状态“打开”,再从“打开”状态的初始状态“歌曲待选”,经过迁移“选择歌曲”到达“播放状态”。这样经过的事件序列为;连接电脑——电量饱和/完成复制——断开连接——选择歌曲。显然这样的事件序列远比从“关闭”经过“按任意键”直接到达“打开”状态要长得多。所以从“关闭”到“播放”的最短事件序列是:按任意键,选择歌曲。
转载请注明原文地址:https://jikaoti.com/ti/qci7FFFM
0

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