当前位置:首页 > 2016年下半年软件设计师真题+答案解析(上午选择+下午案例完整版)全国计算机软考
A. 状态B中的两个结束状态均达到
B. 在当前状态为B2时,事件e2发生
C. 事件e2发生
D. 事件e1发生
答案: C
当e2发生时,如果当前状态是B2,则会离开B;如果当前状态不是B2,则不会离开。
41、以下关于UML状态图中转换(transition)的叙述中,不正确的是( )。
A. 活动可以在转换时执行也可以在状态内执行
B. 监护条件只有在相应的事件发生时才进行检查
C. 一个转换可以有事件触发器、监护条件和一个状态
D. 事件触发转换
答案: C
转换的五要素:
源状态:即受转换影响的状态
目标状态:当转换完成后对象的状态
触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件 监护条件:布尔表达式,决定是否激活转换、 动作:转换激活时的操作
42、下图①②③④所示是UML(42)。现有场景:一名医生(Doctor)可以治疗多位病人(Patient),一位病人可以由多名医生治疗,一名医生可能多次治疗同一位病人。要记录哪名医生治疗哪位病人时,需要存储治疗(Treatment)的日期和时间。以下①②③④图中(43)。是描述此场景的模型。
A. 用例图
B. 对象图
C. 类图
D. 协作图
答案: C
类图描述的是类与类之间的关系 对象图描述的是某个具体的对象。 本图描述的是类与类之间的关系。
43、 A. ①
B. ②
C. ③
D. ④
答案: C
44、(44)模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使用它们的客户而变化。以下(45)情况适合选用该模式。
①一个客户需要使用一组相关对象 ②一个对象的改变需要改变其它对象 ③需要使用一个算法的不同变体 ④许多相关的类仅仅是行为有异
A. 命令(Command)
B. 责任链(Chain of Responsibility)
C. 观察者(Observer)
D. 策略(Strategy)
答案: D
45、 A. ①②
B. ②③
C. ③④
D. ①④
答案: C
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 应用场景:
1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。
2、 需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其它方式来实现。
3、 对客户隐藏具体策略(算法)的实现细节,彼此完全独立。 46、(46)模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创 建不同的表示。以下(47)情况适合选用该模式。 ①抽象复杂对象的构建步骤
②基于构建过程的具体实现构建复杂对象的不同表示 ③一个类仅有一个实例
④一个类的实例只能有几个不同状态组合中的一种
A. 生成器(Builder)
B. 工厂方法(Factory Method)
C. 原型(Prototype)
D. 单例( Singleton)
答案: A
47、 A. ①②
B. ②③
C. ③④
D. ①④
答案: A
生成器模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 实用范围
1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2 当构造过程必须允许被构造的对象有不同表示时。
48、由字符a、b构成的字符串中,若每个a后至少跟一个b,则该字符串集合可用正规式表示为( )。
A. (b|ab)*
B. (ab*)*
C. (a*b*)*
D. (a|b)*
共分享92篇相关文档