uml试题库.pdf
UML试题 1、UML中的交互图有两种,分别是顺序图和协作图,请分析一下两者之间的主要差别和各自的优缺点。掌握利用两种图进行的设计的方法。答:协作图可视化地表示了对象之间随时间发生的交互,它除了展示对象之间的关联,还显示出对象之间的消息传递。与顺序图一样,协作图也展示对象之间的交互关系。顺序图强调的是交互的时间顺序,而协作图强调的是交互的语境和参与交互的对象的整体组织。顺序图按照时间顺序布图,而协作图按照空间组织布图。顺序图可以清晰地表示消息之间的顺序和时间关系,但需要较多的水平方向的空间。协作图在增加对象时比较容易,而且分支也比较少,但如果消息比较多时难以表示消息之间的顺序。UML试题 2、什么是高内聚度高内聚度是对一个类中的各个职责之间相关程度和集中程度的度量。一个具有高度相关职责的类并且这个类所能完成的工作量不是特别巨大,那么它就具有高内聚度。包括两个意思:不要给一个类分派太多的职责,在履行职责时尽量将部分职责分派给有能力完成的其它类去完成。不相关的职责不要分派给同一个类。UML试题 3、UML提供一系列的图支持面向对象的分析与设计,其中 _G_给出系统的静态设计视图;_B_对系统的行为进行组织和建模是非常重要的;_D_和_F_都是描述系统动态视图的交互图,其中 _D_描述了以时间顺序组织的对象之间的交互活动,_F_ 强调收发消息的对象的组织结构.A状态图 B用例图 C状态图 D序列图 E部署图 F协作图 G类图UML试题 4、什么是对象间的可见性?答:可见性(Visibility)指的是一个对象能够“看到”或者引用另一个对象的能力UML试题 5、领域模型是一组表示_A_,在设计工作中广泛用来启发设计软件对象.A.真实世界的概念类B.虚拟世界的概念类C.软件部件的模型D.硬件部件的模型UML试题 6、可以用 _和_两种方法找概念类。答案:概念类类别表、标识名词短语UML试题 7、统一过程中的四个阶段?答:初始阶段(Inception)细化阶段(Elaboration)构造阶段(Construction)提交阶段(Transition)统一过程中有哪四个阶段,各阶段需要完成的主要工作有哪些?答:1)初始阶段:编制简要的愿景文档、业务案例、确定范围、粗略评估成本。2)细化阶段:细化愿景文档、迭代地实现核心构架、解决高风险的问题、定义大多数的需求和范围、进一步评估成本3)构造阶段:迭代地实现系统的其余部分、准备部署4)提交阶段:beta 测试、部署统一过程中的核心工作流有哪些?答:业务建模、需求分析、设计、实现、测试。UML试题 8、定义大多数的需求和范围的工作是在RUP中的_(11)_ 阶段完成的。(11)A初始阶段 B 细化阶段 C 构造阶段 D 提交阶段答案:(11)B UML试题 9、下列(12)不在 RUP的初始阶段中完成的(12)A编制简要的愿景文档 B 粗略评估成本 C 定义大多数的需求 D 业务案例答案:(12)C UML试题 10、领域模型是一组表示真实世界的(16),不是(17)的模型。答案:(16)概念类(17)软件部件UML试题 11、在协作图中通过(18)表示出消息的时间顺序。答案:(18)消息编号UML试题 12、在画 SSD图时,应该如何对待所涉及的系统:A.详细描述其内部结构及其功能;B.简单描述其内部结构,但是罗列系统所有的功能C.详细描述其内部结构,并不列出系统的功能D.不对系统的内部结构与功能进行描述.答案:D UML试题 13、RUP的核心思想有哪些?答:短时间盒的迭代式开发开发过程中不断进行调整在早期的迭代中解决高风险和高价值的主要问题不断与用户衔接,及时得到反馈意见早期注意构造核心的体系结构早期进入实现和测试,不断进行质量检验使用用例(use case)可视化建模(用UML)仔细地管理需求控制变更UML试题 14、什么是增量开发?答:增量开发包括两层意思:1)对复杂的用例分多次迭代,一部分一部分地实现2)将所有用例按其优先级分别安排在不同的迭代中实现UML试题 15、领域建模的步骤?答案:列出候选的概念类画出领域模型图必要时加入概念类间的关联必要时加入概念类的属性UML试题 16、什么是用例,用例模型,如何描述用例?答:用例是一个描述性的文档,用来描述一个参与者使用系统完成某个业务过程时的事件发生顺序。用例描述的是系统使用过程,它描述了系统的功能需求。用例不描述系统内部如何工作,而是定义系统的责任,说明系统必须做什么。用例模型是需求工作的一个重要的制品。UML试题 17、标准建模语言UML的重要内容可以由哪五类图(共 9 种图形)来定义?答案:用例图、静态图(包括类图、对象图和包图)、行为图、交互图和实现图。UML试题 18 要求简述统一建模语言(UML):统一建模语言(UML)是一种绘制软件蓝图的标准语言。可以用UML对软件密集型系统的制品进行可视化详述和文档化。UML是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。UML的作用就是用很多图从静态和动态方面来全面描述我们将要开发的系统。UML试题 19、软件开发生命期软件开发生命期是指软件产品从考虑其概念开始,到该产品交付使用为止的整个时期。一般包括概念阶段,需求阶段,设计阶段,实现阶段,测试阶段,安装阶段及交付阶段。这些阶段可以有重复,执行时也可以有迭代。【动态图】1.活动图的边包括(BC)A、数据流B、控制流C、对象流 D、消息2.在 UML活动图中,(B)表示一个操作完成后对其后续操作的触发。A、信息流B、控制流 C、初始活动 D、活动3.在 UML活动图中,(C)表示活动需要输入的对象或者作为活动的处理结果输出的对象。A、并发控制 B、决策点C、对象 D、活动4.在活动图中,(C)是从多个源活动汇合到一个。A、活动 B、初始节点和活动终点C、结合 D 分叉5.(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。A、时间图 B、流程图C、活动图 D、状态图6.在活动图中,(D)表示一个具有子结构的纯粹计算的执行,通常为操作或位于其内的声明的调用成真实世界程序的执行。A、状态 B、活动 C、顺序状态D、活动状态7.对于活动图,以下说法正确的有(ABD)A、活动图适用于精确地描述单个用例中的处理流程,也可用来描述多个用例联合起来形成的处理流程,表达相对复杂的业务操作或软件处理过程,有时甚至可以针对类中某个个复杂的操作用活动图给出实现细节B、活动图中包含控制流和信息流,控制流表示一个操作完成后对其后续操作的触发,信息流则刻画操作这间的信息交换C、活动图的基本建模机制包括节点、边及泳道D、活动图描述实体为完成某项功能面执行的操作序列,其中的某些操作或者操作的子序列可以并发和同步8.在 UML活动图中,(A)表示操作之间的信息交换。A、信息流 B、控制流 C、初始活动 D、活动9.UML 的(A)表示消息源发出消息后不必等待消息处理过程的返回,即可继续执行自己的后续操作。A、异步消息 B、返回消息 C、同步消息 D、简单消息10.在 UML顺序图中,(A)对消息传递的目标对象的销毁。A、销毁(destory)消息 B、创建(create)消息C、返回消息 D、自消息11.在顺序图中,下图表示(D)A、带时廷的消息 B、自消息 C、异步消息D、同步消息12.在 UML顺序图中,如果一条消息从对象a 传向对象 b,那么其(A)是一条从 b 指向 a 的虚线有向边,它表示原消息的处理已经完成处理结果(如果有的话)给返回消息传回。A返回消息 B、自消息 C、创建(create)消息 D、销毁(destory)消息13.(B)用于概述相互合作的对象流的交互关系和链接关系。A、用例图B、通信图C、协作图 D、类图14.时间图中,包含以下(BCD)几个部分。A、值生命线B、消息标签和消息端点 C、状态生命线 D、消息15.要状态机图中,(A)表示两个状态之间的关系,源状态和目的状态。A、转换 B、状态 C、事件 D 监护条件1.在系统模型中为什么要使用多种UML 图?2.对象之间的关联关系有哪几种?两个对象之间能以多种方式关联吗?3.有一句格言“为自己辩护的律师对诉讼人来说是徒劳的”。试着建立这句格言的类模型。在面向对象分析过程中,用概念模型来详细描述系统的问题域,用(1)来表示概念模型;用(2)来描述对象行为。(1)A序列图 B类图C协作图 D用例图(2)A序列图和协作图 B用例图和活动图C状态图和活动图 D用例图和构件图要点解析:在问题(1)描述中,“问题域”是指与所设计的系统要解决的问题的事物或概念的领域。建立概念模型也称为问题域建模,即找出代表所设计系统要解决的问题的“对象”,它展示该系统是什么或做什么,它独立于任何技术实现来描述系统,从而说明系统的本质。对于问题(1)的选项 B“类图”,它是统一建模语言(UML)的一种结构类模型图,它可描述系统中类的静态结构,可以用它来表示概念模型,展示出一组相关的类、接口和协作及它们间的关系。选项 A 的“序列图”是 UML 的一种行为类模型图,可用它来说明系统的动态视图;选项C 的“协作图”也是一种UML 行为类模型图,可用它描述一组对象及其相互间的连接,以及这组对象收发的消息;选项D 的“用例图”也是一种 UML 行为类模型图,可用它描述一组用例、用户以及它们间的关系。对比问题(1)、(2)各 4 个选项可知,问题(2)选项 C 的“状态图”描述了一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态间的转移。它强调单个对象按事件次序发生的行为,但不适合描述若干协作对象的行为;C“活动图”是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序以及工作流(完成工作所需要的步骤)。它强调对象间的控制流。选项 D 的“构件图”是一种 UML 结构类模型图。它描述了代码构件的物理结构及各构件之间的依赖关系,主要用于对源代码、可执行发布、物理数据库和可调整的系统建模。综上所述,问题(2)正确答案是选项C。解答此类试题的一般思路是识记各种UML 模型图的基本功能。参考答案:(1)B;(2)C。考点链接1.2.1:UML 模型图出题概率:7590%考查难度:在目前软件开发方法中,面向对象的方法占居主导地位。这种主导地位也决定着软件开发过程模型化技术的发展。根据对目前软件业的研究和估计,统一建模语言(UML,Unified Modeling Language)可以说代表着21 世纪初期软件建模的发展方向。UML 定义了结构类、行为类、模型管理类等3 个大类,共12 种模型图,详见表1-4 所归纳的内容。表 1-4 UML 模型图及其功能表类型功能子类型子类型的功能结构类模型图描述系统应用的静态结构类图描述系统中类的静态结构,展示了一组类、接口和协作及它们间的关系。其描述的静态关系,在系统整个生命周期都是有效的。系统可有多个类图,在高层给出类的主要职责,在低层给出类的属性和操作。对逻辑数据库模式建模、对系统词汇建模、对简单协作建模时可使用它对象图展示了一组对象及它们间的关系。用对象图说明类图中所反应事物实例的数据结构和静态快照,是类图的一个实例。显示类的多个对象实例,而不是实际的类,只能在系统某一时间段存在构件图描述代码构件的物理结构及各构件之间的依赖关系。用于对源代码、可执行的发布、物理数据库和可调整的系统建模配置图展现了运行时处理节点及其构件的部署。它描述系统硬件的物理拓扑结构(包括网络布局和构件在网络上的位置)以及在此结构上执行的软件(即运行时软构件在节点中的分布情况)。它说明系统结构的静态部署视图,即说明分布、交付和安装的物理系统类型功能子类型子类型的功能行为类模型图描述系统动态行为的各个方面用例图展现了一组用例、用户以及它们间的关系。即从用户角度描述系统功能,并指出各功能的操作者。用于收集用户实际需求所采用的一些方法中序列图展现了一组对象和由这组对象收发的消息。用于按时间顺序对控制流建模,说明系统的动态视图。强调的是时间和顺序协作图展现了一组对象及其相互间的连接及这组对象收发的消息。强调收发消息对象的结构组织,按组织结构对控制流建模。它强调上下层次关系状态图展示了一个特定对象的所有可能状态及由于各种事件的发生而引起的状态间的转移,常用它说明系统的动态视图。它对于接口、类或协作的行为建模尤为重要。一个状态图描述了一个状态机。它强调一个对象按事件次序发生的行为活动图是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序(多为并行的)以及工作流(完成工作所需要的步骤)。它用于系统的功能建模,并强调对象间的控制流模型管理类模型图软件包组织和管理各种应用模型子系统模型利用 UML 建模语言设计面向对象系统时,步骤1 是描述需求;步骤2 是根据需求建立系统的静态模型,以构造系统的结构;步骤3 是描述系统的行为。其中,第 1 步与第 2 步中所建立的模型都是静态的,包括UML 静态建模机制的类图、对象图、构件图和配置图等图形。第 3 步所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系,它包括UML动态建模机制的用例图、状态图、活动图、顺序图和协作图等图形。【典型题1-2-2】(2004 下半年试题8)在 UML 中,把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。A组合活动 B同步条C活动 D泳道要点解析:在 UML 模型图中,“活动图”是一种特殊的状态图,它强调对象间的控制流,用于描述满足用例要求所需进行的活动以及各活动间的约束关系(有利于并行活动的识别)。可见,活动图由各种动作状态构成,每个动作状态包含可执行动作的规范说明。在活动图中,泳道用于说明一个个活动轨迹,即每个活动都明确归属于某个泳道。绘图活动图时,泳道用矩形框来表示,矩形框内填入具体活动的名称,矩形框的顶部填写负责该活动的对象名。如图1-3 示意了某门禁系统活动图中开锁活动的一个泳道。图 1-3 开锁活动的泳道示意图参考答案:D【典型题1-2-3】(2004 下半年试题9)在较高的抽象层次上,传统的程序流程图与UML 中活动图最根本的区别在于。A程序流程图明确地指定了每个活动的先后顺序,而活动图仅描述了活动和必要的工作顺序B活动图不提供循环控制结构,而程序流程图提供C活动图不能表示并发活动,而程序流程图可以表示并发活动D两者采用不同的图形符号系统要点解析:通常,传统的程序流程图简明扼要地表达出,完成某个给定问题的确定算法的逻辑操作过程,其条件行为用分支与合并来描述。在 UML 模型图中,“活动图”是状态机的一种特殊情况,它强调对象间的控制流,它既支持条件行为,也支持并发行为(用分岔与汇合来描述)。因此,可以较容易地判断选项C 的描述是错误的,即活动图支持并发活动,而程序流程图一般限于顺序进程。选项B、D 的描述不是程序流程图与活动图的本质区别。参考答案:A【典型题1-2-4】(2005 上半年试题46)UML 提供了 4 种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中(1)是面向对象系统建模中最常用的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择(2);当需要说明体系结构的静态实施视图时,应该选择(3)。(1)A构件图 B类图C对象图 D部署图(2)A构件图 B协作图C状态图 D部署图(3)A协作图 B对象图C活动图 D部署图要点解析:在 UML 视图中,主要有用例视图、逻辑视图、组件视图、并发视图和部署视图等类型。它们各自的说明、组成和使用者见表1-5。表 1-5 UML 视图相关说明表视图说明组成使用者用例视图描述系统应交付的功能,即从外部参与者的角度出发所观察到的系统功能,是其他视图的核心和基础。可用于测试系统是否满足用户需求、验证系统的有效性静态描述系统功能的用例图和动态观察系统功能的序列图、协作图、活动图用户、设计人员、开发人员、测试人员逻辑视图从系统静态结构(类图、对象图)和动态行为(状态图、序列图、协作图、活动图)角度出发显示如何实现系统的功能,它关注的是系统的内部类图、对象图、状态图、序列图、协作图、活动图设计人员、开发人员构件视图用来显示系统代码构件的组织结构,描述系统实现模块以及它们之间的依赖关系构件图开发人员并发视图用业显示系统的并发性,主要包含形成系统并发与同步的线程和进程。它描述的是系统的非功能属性,主要考虑资源的有效使用、代码的并发执行和异步事件的处理动态图(状态图、序列图、协作图、活动图)和实现图(构件图、部署图)开发人员、系统集成人员部署视图显示系统的具体部署,即将软件系统部署到由处理器设备组成的硬件结构中部署图开发人员、系统集成人员、测试人员在面向对象系统建模过程中,通常用概念模型来详细描述系统的问题域。类图用于描述系统的静态结构化设计,即用来表示概念模型,它最基本的元素是类或接口,表达了类、接口以及它们之间的静态结构和关系。因此,问题(1)的正确答案是选项B 的“类图”。注意到本试题讨论的是与“系统的静态方面”相关的主题,因此可先排除描述系统动态行为的“协作图”、“状态图”、“活动图”的选项,即排除问题(2)的 B、C 选项和问题(3)的 A、C 选项。由表 1-5 可知,构件图可用于描述系统实现模块以及它们之间的依赖关系,即可说明系统的静态实现视图。部署图可用于说明体系结构的静态实施视图。参考答案:(1)B;(2)A;(3)D。考点链接1.2.2:类图中的各种关系出题概率:2550%考查难度:在面向对象系统建模过程中,通常用概念模型来详细描述系统的问题域。类图用于描述系统的结构化设计,即用来表示概念模型,它最基本的元素是类或接口,表达了类、接口以及它们之间的静态结构和关系。在类图上通常包含泛化(Generalization)、实例(Realization)、关联(Association)、聚集(Aggregation)、组装(Composition)、依赖(Dependency)等 6 种关系,它们各自的相关说明见表1-6。表 1-6 类图的 6 种关系说明表关系说明箭 头 方向关键字泛化(Generalization)表示类与类、接口与接口之间的特殊关系,它是继承关系的反关系由子类指向父类extends 实例(Realization)用于指定两个实体之间的一个合同由实现接口的类指向被实现的接口implements 关联(Association)表示类与类之间的连接,即一个类保存对另一个类实例的引用,并在需要的时候调用这个实例的方法单向箭头指向遍历或查询的方向;而双向箭头是可选的聚集(Aggregation)是关联关系的一种特例,代表两个类之间的整体/局部关系组装(Composition)是聚集的一种特殊形式,暗示“局部”在“整体”内部的生存期职责依赖(Dependency)也是类与类之间的连接,并且依赖总是单向的,是类间最弱的一种关系注意在表1-6 中,聚集暗示着整体在概念上处于比局部更高的一个级别,在实例图中不存在回路,即只能是一种单向关系;而关联暗示两个类在概念上位于相同的级别。在Java 中,关联使用实例变量来实现;聚集也是使用实例变量来实现的。关联和聚集的区别纯粹是概念上的,在 Java 语法上没有刻意的区分。另外,聚集和组装是UML 中两种非常重要的关系,它们都表示实例之间的整体/部分关系。组装是聚集的一种形式。聚集是概念性的,只是区分整体与部分。组装具有很强的归属关系,而且整体与部分的对象生存周期是一致的。对于这一知识点也可理解成如果没有成分对象,组装对象就不存在;在任何时候,每个给定的成分对象只能是组装对象的组成部分。【典型题1-2-5】(2005 下半年试题6)协作图主要描述对象间的交互与连接,它。A能够表示消息的顺序和嵌套关系B能够表示消息的顺序关系,但不能表示消息的嵌套关系C能够表示消息的嵌套关系,但不能表示消息的顺序关系D既不能表示消息的顺序关系,也不能表示消息的嵌套关系要点解析:协作图是一种UML 行为类模型图,可用它描述一组对象及其相互间的连接,以及这组对象收发的消息。它强调收发消息对象的结构组织,即强调上下层次关系。它按组织结构对控制流建模,并能够通过消息编号来表示消息的顺序和嵌套关系。参考答案:A【典型题1-2-6】(2006 下半年试题34)在 UML的动态建模机制中,描述了对象之间动态的交互关系,还描述了交互的对象之间的静态链接关系,即同时反映系统的动态和静态特征。A状态图(State Diagram)B序列图(Sequence Diagram)C协作图(Collaboration Diagram)D活动图(Activity Diagram)要点解析:本试题的4 个选项均是UML 行为类动态模型图。其中,可用协作图描述对象之间动态的交互关系以及交互对象之间的静态链接关系,即同时反映系统的动态和静态特征。它强调收发消息对象的结构组织,即强调上下层次关系。它按组织结构对控制流建模,并能够通过消息编号来表示消息的顺序和嵌套关系。状态图展示了一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态间的转移。可用它描述使用用例的生命周期,也可用它说明系统的动态视图。它对于接口、类或协作的行为建模尤为重要。序列图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模,也用它说明系统的动态视图。它强调的是时间和顺序。活动图是一种特殊的状态图,它描述了需要做的活动,执行这些活动的顺序以及工作流。它强调对象间的控制流。参考答案:C 思考与讨论本试题类似于2001 年系统分析师考试试卷的第9 题“(UML)协作图描述了协作的之间的交互和链接(1ink)”(答案:对象)。【典型题1-2-7】(2007 下半年试题2)在 UML 中的状态图和活动图的叙述中,()是错误的。A状态图和活动图都是对系统的动态方面进行建模的图B活动图是状态图的一种特殊情况,其中所有或大多数状态是活动状态C状态图显示从状态到状态的控制流,活动图显示的是从活动到活动的控制流D在对一个对象的生存期建模时,只能使用状态图要点解析:“状态图”描述了一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态间的转移。它强调单个对象按事件次序发生的行为,但不适合描述若干协作对象的行为。“活动图”是一种特殊的状态图,描述需要做的活动,执行这些活动的顺序,以及工作流(完成工作所需要的步骤)。它强调对象间的控制流。UML 的行为类模型图用于描述系统动态行为的各个方面,包括用例图、序列图、协作图、状态图和活动图等。可见,在对一个对象的生存期建模时,不仅仅只使用状态图。参考答案:D【典型题1-2-8】(2007 下半年试题35)UML 提供了 5 种对系统动态方面建模的图,其中(1)对系统行为组织和建模;(2)对系统功能建模,它强调对象之间的控制流;(3)之间是同构的。(1)A用例图 B序列图C协作图 D状态图(2)A用例图 B活动图C状态图 D序列图(3)A状态图和活动图 B 用例图和活动图C序列图和协作图 D活动图和协作图要点解析:UML 的用例图、序列图、协作图、状态图和活动图,是提供对系统动态方面建模的图。其中,协作图用于展现一组对象及其相互间的连接,以及这组对象收发的消息。它强调收发消息对象的结构组织,按组织结构对控制流建模,强调上下层次关系。可见,协作图对系统行为组织和建模。活动图是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序以及工作流。它用于系统的功能建模,并强调对象间的控制流。用例图展现了一组用例、用户以及它们间的关系,即从用户角度描述系统功能,并指出各功能的操作者。状态图展示一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态间的转移。它强调一个对象按事件次序发生的行为,对于接口、类或协作的行为建模尤为重要。在 UML 建模过程中,对象行为是通过交互来实现的,是对象间为完成某一目的而进行的一系列消息交换。消息序列可用序列图和协作图来表示。序列图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模,即强调消息的时间顺序,其特点是有生命线及控制焦点。而协作图强调参加交互的对象的组织结构(静态链接关系)。序列图和协作图统称为交互图(Interactive diagram),即这两种图是同构的,可以互相转换。它展现了各个对象如何依据某种行为进行相互协作。参考答案:(1)C;(2)B;(3)C。思考与讨论本试题的第3 个问题所考查的知识点“序列图和协作图之间是同构的”,类似于2004 上半年系统分析师考试上午试卷第7 题。【典型题1-2-9】UML的状态图展示了一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态间的转移(transition)。如果一个并发的状态由m 个并发的子状态图组成,那么该并发状态在某时刻的状态由个子状态图中各取一个状态组合而成。A任意一 B任意两C每一 D任意 n(nm)要点解析:UML的状态图指明了对象所有可能的状态,以及状态间的迁移(transition)。一个状态图描述了一个状态机,一个父状态图可以由若干个并发执行的子状态图来描述。如果一个状态由 m 个并发执行的子状态图组成,那么该并发状态在某时刻的状态,由每一个子状态图中各取一个状态组合而成。参考答案:C【典型题1-2-10】在使用 UML 建模时,通常采用“描述需求 构造系统结构描述系统行为”的设计步骤。其中,UML 结构包括了基本构造块、公共机制和。A把这些构造块放在一起的规则 B类与对象的划分、接口与实现的分离C描述系统细节的规格说明 D构造块的特性描述要点解析:在使用UML 构造系统的结构,就是根据应用需求建立系统静态模型的过程。UML 结构包括了基本构造块、公共机制和支配这些构造块放在一起的规则。其中,基本构造块主要有事物、关系和图;公共机制主要有详细说明、修饰、通用划分和扩展机制(构造型、约束、标记值等)。UML 用于描述事物的语义规则有:为事物、关系、图命名;给出某事物特定含义的语境;怎样使用或看见名字;事物如何正确、一致地相互联系;运行或模拟动态模型的含义是什么。参考答案:A 1.2 题型 1 UML 基本概念命题方向:本知识点主要考查UML 通用机制的一些基本概念、用例及其关系的辨析,并能根据具体应用环境灵活运用这些基本概念。【典型题1-1-1】(2005 上半年试题1)在关于用例(use case)的描述中,错误的是。A用例将系统的功能范围分解成许多小的系统功能陈述B一个用例代表了系统的一个单一的目标C用例是一个行为上相关的步骤序列D用例描述了系统与用户的交互要点解析:用例(use case)用来描述系统在对事件做出响应时所采取的行动,即它确定了一个与系统参与者进行交互、并由系统执行的动作序列。可见,一个用例本身并不是一个功能需求,它代表了系统的一个单一的目标,是一个行为上相关的步骤序列。本试题选项D 所描述的范围太广,不够准确。在 UML 规范中,参与者是指系统所涉及到的人,或者是用户在本系统中扮演的角色。一个参与者总是在系统的自动化边界之外。解答此类试题的一般思路是理解用例的基本概念。参考答案:D 考点链接1.1.1:用例的基本知识出题概率:5075%考查难度:用例(use case)是一组连续的操作,在参与者使用系统来完成某个过程时出现,即它确定了一个与系统参与者进行交互、并由系统执行的动作序列。注意,不要把用例理解成计算机进程或计算机进程的模型,也不要把用例理解成是一个功能点。通常一个用例名称是从参与者的角度而非系统的角度来命名。其名称由23 个词语组成,第一个是动词,第二个是名词,其后一般为形容词。例如,源于“客户”参与者的“购买衬衫”用例。一个用例的基本获取步骤如图1-2 所示。即:(1)定义所开发的应用系统的边界;(2)识别出该应用系统的所有参与者(或称为角色);(3)对每一个识别的角色分别确定该角色参与的所有业务活动、各种业务活动完成的事件序列、激发上述每一事件的角色;(4)对第(3)步骤中的事件序列进行分析,去掉其中重复的事件序列;(5)用结构化的自然语言来描述第(4)步骤中的每一个事件序列,得到初步确定的每一个用例;(6)对第(5)步骤中的每一个用例进行分析和必要的重组,采用包含(include)、扩展(extend)和泛化(generalization)等关系来表示用例之间的关系,最终得到所有的用例。图 1-2 获取用例的基本步骤若从几个执行相同功能步骤的用例中,将公共步骤提取成独立的用例,那么这个提取出来的用例就称为抽象用例。它代表某种形式的“复用”,可以降低用例之间的冗余。由某个更复杂的用例提取出来的事件序列所构成的用例称之为扩展用例,它可以简化原有用例并扩展其功能。用例场景是对发生的单个用例或单个用例实例的叙述,即它是在用例中活动的某些特定顺序中的一个顺序。软件系统几乎都是用事件触发来控制流程的。事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。场景法就是通过用例场景描述业务操作流程,从用例开始到结束遍历应用流程上所有基本流(基本事件)和备选流(分支事件)。场景也被称作是用例的实例。用例建模是指使用用例的方法来描述系统的功能需求的过程。其主要包括用例图和用例规约这两部分内容。其中,用例图描述的是关于系统功能的一个概述,它用于确定系统中所包含的参与者、用例和两者之间的对应关系。针对每一个用例都应该有一个用例规约文档与之相对应,该文档描述用例的细节内容。使用用例分析方法就是要试图找到问题领域内所有相对独立的参与者和事件,并把业务流程当成是这些参与者和事件之间的交互结果(在UML 规范中用活动图或序列图来描述)。在用例模型中,可以使用构造型(Sterotype)来扩展标准UML 包的语义。这个新的包被称为用例包(Use Case Package),主要用于分类管理用例模型中的模型元素。另外,一个应用系统需要有多少个用例,这就涉及到用例的粒度问题。用例的粒度不但决定了用例模型级的复杂度,而且也决定了每一个用例内部的复杂度。通常应根据每个系统的具体情况,灵活地把握各个层次的复杂度,在尽可能保证整个用例模型的易理解性前提下决定用例的大小和数目。【典型题1-2-2】(2005 上半年试题2、3)在用例建模的过程中,若几个用例执行了同样的功能步骤,这时可以把这些公共步骤提取成独立的用例。这种用例称为(1)。在 UML 的用例图上,将用例之间的这种关系标记为(2)。(1)A扩展用例 B抽象用例C公共用例 D参与用例(2)Aassociation Bextends Cuses Dinheritances 要点解析:用例(use case)描述了一个与系统参与者进行交互、并由系统执行的动作序列。UML 规范提供了用例之间包含(include)、扩展(extend)和泛化(generalization)等 3 种相关性的关系,各种关系功能及区别见表1-2。表 1-2 用例各种关系说明表关系关健字描述对 应用 例包含关系include 或 uses 从两个或两个以上的原始用例中提取公共行为,或发现能够使用一个构件来实现某一用例的部分功能。意味着所包含的用例将始终出现抽象用例扩展关系extend 将较复杂的步骤提取成专门的用例,以便简化原始用例并扩展其功能的行为。扩展的出现是有条件的,并且每次并不一定出现扩展用例泛化关系generalization 描述了一般事物与该事物中特殊种类之间的关系,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系(较少使用)由以上分析可知,抽象用例是从几个执行相同功能步骤的用例中,将公共步骤提取而成的独立用例。可见抽象用例代表某种形式的“复用”,它是降低用例之间冗余的一种工具。例如,在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“核查客户帐号”之间是一种包含(include)关系。对于选项 A 的“关联(Association)”是两个或多个特定类之间的关系,它描述了这些类元的实例的联系。选项D 的“继承(inheritances)”描述了子用例与父用例之间的一般关系。解答此类试题的一般思路是识记用例的3 种关系。参考答案:(1)B;(2)C。【典型题1-1-3】(2005 下半年试题3)当时,用例是捕获系统需求最好的选择。A系统具有很少的用户 B系统具有很少的接口C系统算法复杂,功能单一 D系统有很多参与者要点解析:用例(use case)描述了一个与系统参与者进行交互、并由系统执行的动作序列。它是开发者与用户交流的工具,可用来定义系统的边界。当所开发的系统有很多参与者时,用例是捕获系统需求的最好选择。解答此类试题的一般思路是理解用例的应用场合。参考答案:D【典型题1-1-4】(2005 下半年试题4)现有两个用例UC1 和 UC2。其中 UC2 是一个完整的用例,可被实例化,而 UC1 需要 UC2中的事件流才可被实例化,且UC1 指定了使用UC2 的精确位置,则UC1 和 UC2 间的关系是“”。Ainclude B extend Cgeneralize Dcall 要点解析:注意本试题描述中的用词“精确位置”,说明用例UC1 对用例 UC2 的实现很重要。由试题的关键信息“UC1 需要 UC2 中的事件流才可被实例化”可知,作为一个完整的用例的UC2 实现了用例 UC1 的部分功能。因此,应该使用包含(include)关系来表示用例UC1 和 UC2 之间的关系。如果一个用例明显混合了两种(或两种以上)的不同场景,即在具体情况可能发生多种活动,可将这个用例分为一个主用例和一个或多个辅助用例时,可以使用选项B 的扩展关系(extend)来表示用例间的关系。选项 C 的“generalize”在 UML 可解释成“泛化”;选项 D 的“call”可解释成“调用”。解答此类试题的一般思路是消化和理解用例间各种关系的基本概念。参考答案:A【典型题1-1-5】(2005 下半年试题7)下列关于UML 叙述正确的是。AUML 是一种语言,语言的使用者不能对其扩展 BUML 仅是一组图形的集合CUML 仅适用于系统的分析与设计阶段 DUML 是独立于软件开发过程的要点解析:UML 是一种图形语言,用户可对该语言进行扩展,它贯穿于系统开发的整个生命周期,并且可独立于系统的开发过程。解答此类试题的一般思路是记忆。参考答案:D 思考与讨论:在对某一主题进行描述辨误的题型中,需要特别注意选项中的“仅”、“只能”、“只有”、“都不”等绝对性的词语,往往含有这一类型选项的描述是不正确的。【典型题1-1-6】(2006 下半年试题2、3)在 UML 的通用机制中,(1)用于把元素组织成组;(2)是系统中遵从一组接口规范且付诸实现的物理的、可替换的软件模块。(1)A包 B类C接口 D构件(2)A包 B类C接口 D构件要点解析:在 UML 规范中,将包定义为用于把元素组织成组的通用机制。包含其他元素,如类、接口、构件、节点、协作、用例、图及其他的包。UML 中的构件是遵从一组接口并提供一组接口的实现,是组成事物的元素。它是可付诸实现物理的、可替换的软件模块。可见,包是一个构件的抽象化的概念,是把类元按照一定的规则分成组(或称为模块)。解答此类试题的一般思路是识忆。参考答案:(1)A;(2)D。考点链接1.1.2:UML 的事物出题概率:2540%考查难度:UML 的结构事物包括类、接口、协作、用例、主动类、构件、节点等。各结构事物的定义见表1-3。表 1-3 UML 各结构事物定义表名称关健字定义类class 是一组具有相同属性、操作、关系和语义的对象描述接口interface 是描述类或构件的一个服务的操作协作collaboration 描述了在一定的语境中一组对象以及实现某些行为的这些对象间的相互作用用例use case 描述系统在对事件做出响应时