单选题
UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中{{U}} {{U}}
21 {{/U}}
{{/U}}是面向对象系统建模中最常用的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择{{U}} {{U}}
22 {{/U}} {{/U}};当需要说明体系结构的静态实施视图时,应该选择{{U}} {{U}} 23
{{/U}} {{/U}}。
【正确答案】
D
【答案解析】[解析] 从应用的角度看,当采用面向对象技术设计系统时,第一步是描述需求;第二步是根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中,第一步与第二步中所建立的模型都是静态的,包括类图(含包图)、对象图、构件图和配置图等,是UML的静态建模机制。第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括用例图、状态图、活动图、顺序图和协作图(通信图)等,是UML的动态建模机制。因此,UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。
说明:有些文献将用例图归结为静态建模机制。
单选题
面向对象系统中有两种基本的复用方式:框架复用和类库复用。下列关于框架和类库的描述不正确的是{{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
【答案解析】[解析] 本题所考查的是面向对象设计的一些基本原则,这些原则如下:
·开闭原则:一个软件实体应当对扩展开放,对修改关闭。在设计一个模块时,应当使这个模块可以在不被修改的情况下被扩展。关键在于抽象,抽象层要预见所有可能的扩展,因此抽象层在任何扩展情况下都不会改变,即对修改关闭。同时,由于从抽象层导出一个或多个新类,可以有不同的实现,改变系统的行为,此即对扩展开发。简而言之,抽象层对修改关闭,通过扩展实现改变系统行为。
·里氏代换原则:任何基类可以出现的地方,子类一定可以出现。
·依赖原则:要依赖于抽象,而不是具体实现。也可以这样说,要针对接口编程,不要针对实现编程。
·接口分离原则:应当为客户端提供尽量小的单独的接口,而不是提供大的接口。
·组合复用原则:要尽量使用组合而不是继承关系达到复用目的。
·迪米特法则:又叫最少知识法则,就是说一个对象应当对其他对象有尽可能少的了解。
有关这些原则的详细介绍,请学习指定教材《系统分析师教程》(张友生,清华大学出版社)第13.4.3节。
单选题
当{{U}} {{U}} {{/U}} {{/U}}时,用例是捕获系统需求最好的选择。
- A.系统具有很少的用户
- B.系统具有很少的接口
- C.系统算法复杂,功能单一
- D.系统有很多参与者
【正确答案】
D
【答案解析】[解析] 用例模型描述的是用户与系统的交互,是开发者与用户交流的工具,可用来很好地定义系统的边界。所以,当用户较多时,采用用例能够较好地捕获系统需求。
单选题
现有两个用例UC1和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
【答案解析】[解析] 统一建模语言(Unified Modeling Language,UML)是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域及各种开发工具,UML是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。UML包括概念的语义、表示法和说明,提供了静态、动态、系统环境及组织结构的模型。它可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。UML标准并没有定义一种标准的开发过程,但它适用于迭代式的开发过程。它是为支持大部分现存的面向对象开发过程而设计的。