参考答案:
【问题1】
UI:移动元素 U2:调整元素大小(Ul和U2的答案可以互换)
(1)<<extend>> (2)<<extend>>
【问题2】
C1:创建工具 C2:选择工具 C3:线条工具 C4:矩形工具
C5:椭圆工具 C6:线条 C7:矩形 C8:椭圆
注:C3~C5的答案可以互换;C6-C8的答案可以互换。
(3)0..1 (4)1 (5)1 (6)1..*
【问题3】
桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化,对一个抽象的实现部分的修改应该对使用它的程序不产生影响。
详细解析:
本题考查面向对象开发相关知识,涉及UML用例图、类图以及类图设计时的设计模式。UML目前在面向对象软件开发中广泛使用,是面向对象软件开发考查的重要内容。
【问题1】
本题主要考查用例图。
用例之间的关系主要有以下三种:
(1)包含关系。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。用《include》表示。
(2)扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。用《extend》表示。
(3)泛化关系。当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。
在本题中,从用例图中,我们不难看出U1和U2都与选择元素用例有关系。然后根据题目的描述,可知U1和U2应该分别是移动元素和调整元素的大小,这里我们假定U1是移动元素用例,而U2是调整元素的大小用例。那么接着我们再来确定空(1)与空(2)的内容。这里很显然U1和U2与选择元素用例的关系是扩展关系,因此空(1)与空(2)都应该填<<extend>>。
【问题2】
本问题考查类图。对于这个题目,我们应该结合题目的描述及给出的类图来求解。从题目给出的类图中我们可以看出,C1和C2是继承(泛化)于工具类的,而题目描述告诉我们系统提供了两种操作图形的工具,即选择工具和创建工具,因此C2与C2应该分别是选择工具和创建工具之一,然后我们可以看到文本工具类是继承于C1的,结合题目描述“创建工具用于创建文本元素和图元元素”,我们可以知道C1应该为创建工具类,而C2应该为选择工具类,另外,根据题目描述“图元元素包括线条、矩形和椭圆”,可以知道C6至C8应该分别是线条类、矩形类及椭圆类,当然这三者的答案可以互换。而要能得到这些图形元素,就应该有相应的画图工具,因此C3至C5应该分别是线条工具类、矩形工具类及椭圆工具类,这三者的答案也可以互换。
在UML中,多重度又称重复度,多重度表示为一个整数范围n..m,整数n定义所连接的最少对象的数目,而m则为最多对象数(当不知道确切的最大数时,最大数用*号表示)。最常见的多重性有0..1、0..*、1..1和1..*,而*与0..*是等价的。
由于一个图形编辑器实例可以有一个工具实例,当然也可以没有工具实例,而一个工具实例只能属于一个图形编辑器实例,因此空(3)与空(4)分别为0..1和1。而一个图形至少需要包含一个图形元素,也可以包含多个图形元素,而一个图形元素实例只能属于一个图形实例,所以空(5)与空(6)应该分别是1和1..*。
【问题3】
本问题主要考查桥接模式的基本内容。
桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化,对一个抽象的实现部分的修改应该对使用它的程序不产生影响。