列表

详情


阅读下列说明和图,回答问题l至问题3,将解答填入答题纸的对应栏内。
【说明】
    一个简单的图形编辑器提供给用户的基本操作包括:创建图形、创建元素、选择元素以及删除图形。图形编辑器的组成及其基本功能描述如下:
   (1)图形由文本元素和图元元素构成,图元元素包括线条、矩形和椭圆。
   (2)显示在工作空间中,一次只能显示一张图形(即当前图形,current)。
   (3)提供了两种操作图形的工具:选择工具和创建工具。对图形进行操作时,一次只能使用一种工具(即当前活动工具,active)
    ① 创建工具用于创建文本元素和图元元素。
    ② 对于显示在工作空间中的图形,使用选择工具能够选定其中所包含的元素,可以选择一个元素,也可以同时选择多个元素。被选择的元素称为当前选中元素( selected)。
    ③ 每种元素都具有对应的控制点。拖拽选定元素的控制点,可以移动元素或者调整元素的大小。
    现采用面向对象方法开发该图形编辑器,使用UML进行建模。构建出的用例图和类图分别如图3-1和3-2所示。


图3-1  用例图


图3-2  类图

【问题1】 (4分)
    根据说明中的描述,给出图3-1中U1和U2所对应的用例,以及(1)和(2)处所对应的关系。
【问题2】(8分)
    根据说明中的描述,给出图3.2中缺少的C1~C8所对应的类名以及(3)~(6)处所对应的多重度。
【问题3】(3分)
    图3-2中的类图设计采用了桥接(Bridge)设计模式,请说明该模式的内涵。
 

参考答案:

【问题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】
    本问题主要考查桥接模式的基本内容。
    桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化,对一个抽象的实现部分的修改应该对使用它的程序不产生影响。

上一题