单选题
UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中{{U}} {{U}}
44 {{/U}}
{{/U}}是面向对象系统建模中最常用的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择{{U}} {{U}}
45 {{/U}} {{/U}}:当需要说明体系结构的静态实施视图时,应该选择{{U}} {{U}} 46
{{/U}} {{/U}}。
【正确答案】
D
【答案解析】[解析] 请参考试题12的分析。
单选题
面向对象系统中有两种基本的复用方式:框架复用和类库复用。下列关于框架和类库的描述不正确的是{{U}} {{U}}
{{/U}} {{/U}}。
- A.框架是一个“半成品”的应用程序
- B.类库只包含一系列可被应用程序调用的类
- C.框架会为一个特定的目的实现一个基本的、可执行的架构
- D.类库是框架的一种扩展形式
【正确答案】
D
【答案解析】[解析] 框架与类库都可以认为是一种基础结构,而我们编写的代码是应用代码,若是基础代码调用应用代码,则这种基础结构是框架。反之,若是应用代码调用基础代码,则这种基础结构是类库。
框架和类库的区别:框架是一个“半成品”的应用程序,而类库只是包含一系列可被应用程序调用的类。类库给用户提供了一系列可复用的类,这些类的设计都符合面向对象原则和模式。用户使用时,可以创建这些类的实例,或从这些类中继承出新的派生类,然后调用类中相应的功能。在这一过程中,类库总是被动的相应用户的调用请求。框架则会为某一特定目的实现一个基本的、可执行的架构。框架中已经包含了应用程序从启动到运行的主要流程,流程中那些无法预先确定的步骤留给用户来实现。程序运行时,框架系统自动调用用户实现的功能组件。这时,框架系统的行为是主动的。所以,可以说类库是死的,而框架是活的。应用程序通过调用类库来完成特定的功能,而框架则通过调用应用程序来实现整个操作流程。框架是控制倒转原则的完美体现。
在面向对象领域,“回调函数”的替代物就是“模板方法模式”,也就是“好莱坞原则”。模板方法是框架的基础,任何框架系统都离不开模板方法模式。
应用程序和框架系统之间依赖关系的特点:
(1)应用程序和框架系统之间实际上是双向调用,双向依赖的关系。
(2)依赖倒转原则可以减弱应用程序到框架之间的依赖关系。
(3)“控制反转”及具体的模板方法模式可以消解框架到应用程序之间的依赖关系,这也是所有框架系统的基础。
(4)框架系统可以独立重用。
注:依赖是两个模型元素之间的关系,被依赖的模型元素发生变化就会影响到另一个模型元素。依赖倒转(Dependency Inversion Principle)的定义:上层模块不应该依赖于下层模块,它们共同依赖于一个抽象;抽象不能依赖于具象,具象依赖于抽象。其含意是:为了消解两个模块间的依赖关系,应该在两个模块之间定义一个抽象接口,上层模块调用抽象接口定义的函数,下层模块实现该接口。
单选题
下列有关面向对象的叙述不正确的是{{U}} {{U}} {{/U}} {{/U}}。
- A.面向对象设计最根本的意图是适应需求变化
- B.应尽量针对接口编程,而不要针对实现编程
- C.尽量使用继承而不是聚合,因为继承使得类间的藕合性最小
- D.尽量使用已有的类库
【正确答案】
C
【答案解析】[解析] 有关聚合(聚集)的概念,请阅读试题10的分析。显然,继承会使得类之间的耦合度大,因此聚合比继承更好。
单选题
当{{U}} {{U}} {{/U}} {{/U}}时,用例是捕获系统需求最好的选择。
- A.系统具有很少的用户
- B.系统具有很少的接口
- C.系统算法复杂,功能单一
- D.系统有很多参与者
【正确答案】
D
【答案解析】[解析] 用例描述的是系统的用户与系统的交互,是开发者与用户交流的工具,可用来很好地定义系统的边界。所以,当用户较多时候,采用用例能够较好地捕获系统需求。
单选题
现有两个用例UCl和UC2,其中UC2是一个完整的用例,可被实例化,而UC1需要UC2中的事件流才可被实例化,且UC1指定了使用UC2的精确位置,则UC1和UC2间的关系是“{{U}}
{{U}} {{/U}} {{/U}}”。
- A.include
- B.extend
- C.generalize
- D.call
【正确答案】
A
【答案解析】[解析] 题目中描述的用例间的关系为“include”关系。
单选题
下列关于面向对象的分析与设计的描述,正确的是{{U}} {{U}} {{/U}} {{/U}}。
- A.面向对象设计描述软件要做什么
- B.面向对象分析不需要考虑技术和实现层面的细节
- C.面向对象分析的输入是面向对象设计的结果
- D.面向对象设计的结果是简单的分析模型
【正确答案】
B
【答案解析】[解析] 在面向对象方法学中,面向对象分析(OOA)的结果是面向对象设计(OOD)的输入,面向对象设计的结果是面向对象的程序设计(OOP)的输入。
显然,面向对象的分析是面向对象的分析描述软件要做什么,而不需要考虑技术和实现层面的细节。
单选题
协作图主要描述对象间的交互与连接,它{{U}} {{U}} {{/U}} {{/U}}。
- A.能够表示消息的顺序和嵌套关系
- B.能够表示消息的顺序关系,但不能表示消息的嵌套关系
- C.能够表示消息的嵌套关系,但不能表示消息的顺序关系
- D.既不能表示消息的顺序关系,也不能表示消息的嵌套关系
【正确答案】
A
【答案解析】[解析] 协作图能够通过消息编号来表示消息的顺序和嵌套关系。
单选题
下列关于UML叙述正确的是{{U}} {{U}} {{/U}} {{/U}}。
- A.UML是一种语言,语言的使用者不能对其扩展
- B.UML仅是一组图形的集合
- C.UML仅适用于系统的分析与设计阶段
- D.UML是独立于软件开发过程的
【正确答案】
D
【答案解析】[解析] 请参考试题6的分析。