1、UML考试试题及答案2统一建模语言UML试卷(A、B卷)一、填空题1、在某个信息系统中,存在如下的业务陈述:一个客户提交0个或多个订单;一个订单由一个且仅由一个客户提交。系统中存在两个类:“客户”类和“订单”类。对应每个“订单”类的实例,存在_个“客户”类的实例;对应每个“客户”类的实例,存在_个“订单”类的实例。供选择的答案:(1)A.0个 B.1个 C.1个或多个 D.0个或多个(2)A.0个 B.1个 C.1个或多个 D.0个或多个2、UML提供一系列的图支持面向对象的分析与设计,其中类图_给出系统的静态设计视图;用例图对系统的行为进行组织和建模是非常重要的;序列图和协作图都是描述系统动
2、态视图的交互图,其中序列图描述了以时间顺序组织的对象之间的交互活动,协作图强调收发消息的对象的组织结构。供选择的答案:A.状态图 B.用例图 C.状态图 D.序列图E.部署图 F.协作图 G.类图 答案:G B D F D F3、统一过程中的核心工作流有:需求工作流、分析工作流、设计工作流、实现工作流、测试工作流。4、在协作图中通过_表示出消息的时间顺序。 消息编号5、Rational Rose2003具有非常友好的图形用户界面,其初始界面主要包括标题栏、菜单栏、工具栏、模型浏览器窗口、文档窗口、模型图窗口、日志窗口、状态栏等部分。6、Rational Rose2003用户界面包含两种工具栏,
3、为用户操作提供了方便,其中,编辑工具栏依赖于所打开的模型图,而标准工具栏则与模型图无关。7、如果需要在模型图绘制窗口中多放置几个相同的图标,在编辑工具栏中,先单击选择锁定图标,进入“锁定”状态,而不必重复多次地返回道编辑工具栏中重复选择同一个图标。二、选择题省略。三、判断题 1用例图中包含关系是指一个用例继承了另一个用例。 (错 )2顺序图中每个对象向下方向伸展的虚线是对象的生命线。 (对 )3协作图是对象图的扩展。 (对 )4只有状态图采用泳道。 (错 )5部署图一般把节点分成处理器和外部软件。 (错 )6协作图和顺序图是等价的。 (对 )7一台计算机有很多零部件,例如:键盘,鼠标,主板,显
4、示器等等,我们可以用一个聚集图来描述,也就是说计算机是一个聚集体。 (对 ) 8对象之间协作可以通过相互发送消息来实现,也就是消息可以是双向的。(对 )9状态图中3个常用的动作是入口动作、出口动作和do动作,也就是对象处于这个状态时应该做什么。 (对 )10收集用例的方法可以采用交谈。 (对 )11顺序图所表达的是基于时间顺序的动态交互。 对12用例是从用户的观点对系统行为的一个描述。 对13UML无法体现历史状态。 错14状态图中状态一般分成顺序子状态和随机子状态。 错15状态图是以实心圆点开头,以公牛眼结束的。 对16状态图可以描述对象状态的变化过程。 对17注解是UML中的解释元素。 对
5、18包是UML中唯一分组元素。 对19用例包括了包含用例和随机用例。 错20在画类图时,属性或操作如果是public的,可以用“+”表示,protected用“#”表示,private用“-”表示。 对四、简答题1、简述统一建模语言(UML):答:统一建模语言(UML)是一种绘制软件蓝图的标准语言。可以用UML对软件密集型系统的制品进行可视化详述和文档化。UML是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。UML的作用就是用很多图从静态和动态方面来全面
6、描述我们将要开发的系统。2、类图在UML中有何重要作用?答: 1)为开发人员提供这种模仿现实世界的表达方式。2)让分析员使用客户所采用的术语和客户交流,促使客户说出所要解决的问题的重要细节。3、阐述用例对于系统开发人员来说的价值。答:是用来从用户的观察角度收集系统需求的一项技术,便于分析员与客户和用户交流,使系统更符合用户的需求。4、简述如何在实际工作中发现类。答:在与客户的交谈中,要注意客户用来描述业务实体的名词术语。这些名词可作为领域模型中的类。还要注意你听到的动词,因为这些动词可能会构成这些类中的操作。当得到一组类的核心列表后,应当向客户询问在业务过程中每个类的作用。他们的回答将告诉你这
7、些类的职责。5、简述怎样发现类之间的继承关系。答: 作为候选的类有可能和它的父类、子类在谈话中同时被发现。系统分析员意识到某个类的属性和操作也许能被运用到其他多个类当中去。另一种可能的情况是系统分析员注意到两个或者多个类可能具有相同的属性和操作数。6、画出图形用户界面GUI的状态图,要包括屏幕保护状态。其中要表明相应的事件、动作。答:图形用户界面(GUI)是一个可以说明状态转移细节的例子。在这里,假设GUI可以处于以下3种状态之一:Initializing(初始化);Working(工作);Shut Down(关闭)。当打开PC电源的时候,自启动发生。因此Turning the PC on(打
8、开PC)是一个触发器事件,它导致了GUI的状态转移到Initializing状态,而Bootup(自启动)是一个在转移过程中执行的动作。由于Initializing状态中活动的完成,GUI将转移进入Working状态。当你对PC选择ShutDown(关闭机器)时,就引发了Shut Down触发器事件,最后PC自己切断电源,整个过程结束。下面的状态图捕获了GUI的这些状态和转移。图形用户界面的状态和转移,包括触发器事件、动作和无触发器事件下图是GUI加入了Screensaving状态和保护条件的状态图,注意图中的保护条件is Timeout,被写成一个布尔表达式。图形用户界面(GUI)的状态图,
9、加上了屏幕保护和一个保护条件7、UML中的交互图有两种,分别是顺序图和协作图,请分析一下两者之间的主要差别和各自的优缺点。答:协作图可视化地表示了对象之间随时间发生的交互,它除了展示对象之间的关联,还显示出对象之间的消息传递。与顺序图一样,协作图也展示对象之间的交互关系。顺序图强调的是交互的时间顺序,而协作图强调的是交互的语境和参与交互的对象的整体组织。顺序图按照时间顺序布图,而协作图按照空间组织布图。顺序图可以清晰地表示消息之间的顺序和时间关系,但需要较多的水平方向的空间。协作图在增加对象时比较容易,而且分支也比较少,但如果消息比较多时难以表示消息之间的顺序。8、顺序图和协作图中,消息有哪三
10、种?各自的意义和表示法什么?答: 消息可以是简单的(simple)、同步的(synchronous)或异步的(asynchronous)。简单消息是从个对象到另一个对象的控制流的转移。如果一个对象发送了个同步消息,那么它要等待对方对消息的应答,收到应答后才能继续自己的操作。而发送异步消息的对象不需要等待对方的应答便可以继续自己的操作。在顺序图中,简单消息是个简单箭头,同步消息是实心箭头。异步消息是个半边箭头。9、已知三个类A.B和C.其中类A由类B的一个实类和类C的1个或多个实类构成,请画出能够正确表示类A,B和C之间关系的UML类图。答案:10、统一过程中有哪四个阶段,各阶段需要完成的主要工
11、作有哪些?答:使用RUP过程开发软件系统,软件的生命周期分四个阶段:初始阶段(Inception)、细化阶段(Elaboration)、构造阶段(Construction)、提交阶段(Transition)。各阶段需要完成的主要工作如下:1)初始阶段:编制简要的愿景文档、 业务案例、 确定范围、 粗略评估成本。2)细化阶段:细化愿景文档、 迭代地实现核心构架、 解决高风险的问题、 定义大多数的需求和范围、 进一步评估成本3)构造阶段:迭代地实现系统的其余部分、 准备部署4)提交阶段:beta 测试、部署11. 缩写词UML的全称是什么?答案:UML的中文意思是统一建模语言(Unified Mo
12、deling Language),它是一种通用的可视化建模语言。12. UML只适用于软件工程领域吗?答案:UML同样也可以用来描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。13. UML包括哪些组成部分?答案:UML包括语义概念、表示法和指导规范,提供了静态、动态、系统环境及组织结构的模型。UML体系包括三个部分:UML基本构造块、UML规则和UML公共机制。14. UML事物(基本元素)有哪些?答案:UML事物有:结构事物、行为事物、分组事物、注释事物。15. UML关系有哪些?答案:UML中关系包括四种:依赖、关联、
13、泛化和实现。16. UML图有哪些?其中哪些是静态图?哪些是动态图?答案:在UML中包含9类图:类图;对象图;用例图;顺序图; 协作图;状态图;活动图;组件图;部署图。静态图有:类图、对象图、用例图、组件图、部署图。动态图有:顺序图、协作图、状态图、活动图。17. UML虽然统一了软件建模符号,但仍然保有弹性可以与时俱进,这是采用了什么方法?答案:扩展机制18. UML中也哪些扩展机制?答案:构造型、标记值、约束19. 什么是参与者?如何确定系统的参与者?答案:参与者(actor ,有些书翻译成“角色”)是一种特殊的类,是系统外部的一个实体,这个实体可以是任何的人或物,它以某种方式参与了用例的
14、执行过程。在获取用例前首先要确定系统的参与者,可以根据下面的一些问题来寻找系统的参与者:谁使用系统?谁安装系统、维护系统?谁启动系统、关闭系统?谁从系统中获取信息,谁提供信息给系统?在系统交互中,谁扮演了什么角色?系统会与哪些其他系统相关联?20. 什么是用例?如何确定系统的用例?答案:用例是对一组序列动作的描述,系统执行这些动作将对用例的参与者产生可以观察的结果。可以根据下面的一些问题来识别用例:参与者希望系统提供什么功能;系统是否存储和检索信息;当系统改变状态时,是否通知参与者;是否存在影响系统的外部事件,是哪个参与者通知系统这些外部事件。21. 什么是顺序图,顺序图是由那些部分组成?答案
15、:顺序图是强调消息时间顺序的交互图。是描述系统中类和类之间的交互,它将这些交互建模成消息交换,也就是说,顺序图描述了类相互协作的完成预期行为的动态过程。顺序图是由:类角色、生命线、激活期和消息组成。22. 什么是协作图,协作图是由那些部分组成?答案:协作图作为另一种交互图而言,强调的是参加交互的对象的组织。协作图是由:类角色、关联角色和消息流组成。23. 试论述类与用例的区别。答案:类是对一组具有相同属性、操作、关系和语义的对象的描述。类是对事物的抽象。而用例是对一组序列动作的描述,系统执行这些动作将对用例的参与者产生可以观察的结果。24. 试比较边界类与实体类的异同。答案:实体类是对系统中需
16、要存储的信息和其信息的行为建立模型。实体类具有永久的特性,这类似于数据库中的表一样用于保存系统的业务信息。边界类位于系统与外界的交接处,它在一个或多个角色和系统之间建立相互作用的模型。25. 什么是依赖?他与关联有什么区别?答案:依赖是一种使用关系,它说明了一个事物声明说明的变化可能影响到使用它的另一个事物,但反之未必。也就是说,服务的使用者以某种方式依赖于服务的提供者。而关联是一种结构关系,它详述了一个事物的对象与另一个事物的对象相互联系。26. 什么是泛化?泛化是否就是类的继承,如果不是请说明理由答案:泛化是一般事物(称为父类或超类)和较特殊事物(称为子类或孩子类)之间的关系。泛化不是类的
17、继承,类的继承是泛化的一种。27. 试论述聚合和组合的异同。答案: 聚合描述了整体对象拥有部分对象的关系。组合是聚合的一种形式,它具有强的拥有关系,而且整体与部分的生命周期是一致的。28. 什么是动作状态?什么是活动状态?它们有什么区别?答案:动作状态是活动图中最小单位的构造块,表示原子动作。活动状态表示的是可以分割的动作。可以将对象的活动状态理解为一个组合,它的控制流由其他活动状态或动作状态组成。29. 活动图与传统的流程图有什么区别?答案:流程图一般限于顺序过程,而活动图则可以对付并行过程。流程图明确指出了每个活动的先后顺序,而活动图仅描述了活动和必要的工作顺序。30. 什么是对象图,请简
18、述对象的作用?答案:对象图是描述在某一时刻,一组对象以及它们之间关系的图形。对象图是描述系统交互的静态图形,它由协作的对象组成,但不包含在对象之间传递的任何消息。31. 包的访问可见性有几种?请描述各访问可见性的区别。答案:可见性可以分成3种:公有访问(public)、保护访问(protected)、私有访问(private)公有访问(public):包内的模型元素可以被任何引入此包的其他包的内含元素访问。保护访问(protected):表示此元素只能被当前包的子包访问。私有访问(private):表示此元素只能被当前包内的模型元素访问。32. 什么是对象图,请简述对象的作用?答案:对象图(O
19、bject Diagram)是描述在某一时刻,一组对象以及它们之间关系的图形。对象图是描述系统交互的静态图形,它由协作的对象组成,但不包含在对象之间传递的任何消息。33. 包的访问可见性有几种?请描述各访问可见性的区别。答案:可见性可以分成3种:公有访问(public)、保护访问(protected)、私有访问(private)公有访问:包内的模型元素可以被任何引入此包的其他包的内含元素访问。保护访问:表示此元素只能被当前包的子包访问。私有访问:表示此元素只能被当前包内的模型元素访问。34. 请描述组件图和部署图的关系?答案:组件图用于描述系统中软件的构成,但没有描述系统中与硬件有关的构成情况
20、。部署图则用于描述系统硬件的物理拓扑结构以及在此结构上运行的软件。35. 请叙述类,组件和节点的关系?答案:组件是系统中遵从一组接口且提供实现的一个物理部件,通常指开发和运行时类的物理实现。节点和组件的关系: 组件是参与系统执行的事物,而节点是执行组件的事物。简单的说就是组件是被节点执行的事物,如假设节点是一台服务器,则组件就是其上运行的软件。组件表示逻辑元素的物理模块,而节点表示组件的物理部署。这表明一个组件是逻辑单元(如类)的物理实现,而一个节点则是组件被部署的地点。一个类可以被一个或多个组件实现,而一个组件也可以部署在一个或多个节点上。36、简述UML的9种图。答案:(1)用例图:用例图
21、展现了一组用况、参与者以及它们间的关系。可以用用例图描述系统的静态使用情况。在对系统行为组织和建模方面,用例图的是相当重要的。(2)类图:(3)对象图 对象图展示了一组对象及它们间的关系。用对象图说明类图中所反应的事物实例的数据结构和静态快照。对象图表达了系统的静态设计视图或静态过程视图,除了现实和原型的方面的因素外,它与类图作用是相同的。(4)交互图:交互图展现了按一定的目的进行的一种交互,它由在一个上下文中的一组对象及它们间交互的信息组成。交互图也可用于描述一个用况的行为。顺序图和协作图都是交互图,顺序图和协作图可以相互转换。顺序图:展现了一组对象和由这组对象收发的消息,用于按时间顺序对控
22、制流建模。用顺序图说明系统的动态视图。协作图:展现了一组对象,这组对象间的连接以及这组对象收发的消息。它强调收发消息的对象的结构组织,按组织结构对控制流建模。(5)状态图:展示了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移。一个状态图描述了一个状态机,用状态图说明系统的动态视图。它对于接口、类或协作的行为建模尤为重要,可用它描述用况实例的生命周期。(6)活动图:活动图是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序(多为并行的)以及工作流(完成工作所需要的步骤)。它对于系统的功能建模特别重要,强调对象间的控制流程。高层活动图用于表示需要完成的一些任务,即用于分析
23、用例,理解涉及多个用例的工作流、多线程及并行,显示相互联系的行为整体,还可用于对企业过程建模,对系统的功能建模。低层活动图用于表示类的方法。但活动图不适用于描述动作与对象间的关系,显示对象间的合作以及显示对象在生命周期内的运转情况。(7)构件图(组件图):构件图展现了一组构件之间的组织和依赖,用于对原代码、可执行的发布、物理数据库和可调整的系统建模。(8)部署图:部署图展现了对运行时处理节点以及其中构件的配署。它描述系统硬件的物理拓扑结构(包括网络布局和构件在网络上的位置),以及在此结构上执行的软件(即运行时软构件在节点中的分布情况)。用部署图说明系统结构的静态部署视图,即说明分布、交付和安装
24、的物理系统。37. 请简要解释主动类的概念,并说明它建模的意义,并通过1-2个实例来说明,主动类可以用来表示哪些设计元素。主动类的实例称为主动对象,一个主动对象拥有一个控制线程并且能够发起控制活动;它不在别的线程、堆栈或状态机内运行,具有独立的控制期。从某种意义上说,它就是一个线程。例如Socket服务器的监听线程就可以表示为主动类。38. 在绘制类图时,第一步就是发现类,最常用的方法是什么?请简要说明它的使用方法。发现类的方法有很多种,其中最广泛应用的莫过于“名词动词法”,其主要规则是从名词与名词短语中提取对象与属性;从动词与动词短语中提取操作与关联;而所有格短短语通常表明名词应该是属性而不
25、是对象。39. 请说明对象图的适用场景以及它的优缺点。对象图适用于论证类模型的设计以及对源代码进行分析和说明。其优点是能够直观理解出系统运行时的实时状态,缺点是比较复杂,工作量大。40. 交互概述图有哪两种形式,它们分别适用于什么场景?相对而言,哪一种会更加常用一些?一是活动图的变体,它将活动节点进行细化,用一些小的顺序图来表示活动节点内部的对象控制流;二是顺序图的变体,它用活动图来补充顺序图。但相对而言后者是十分不常见的,因此UML的定义更倾向于将其称为活动图的变体。41、请简要说明交互概述图在建模时的优点和缺点。并简要描述交互概述图的绘制方法。优点:充分结合交互图和活动图的长处,在表达了对
26、象到对象的控制流的同时,充分展示了从活动到活动的控制流。缺点:对于规模稍大的场景,它并不是一个很好的选择,它将使模型的可读性大大降低绘制方法:理解活动控制流,并用活动图表示出来;分析活动节点:用交互图表述细节。五、分析设计题(18)1、如图所示,是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。请指出模型中的错误,说明原因并改正错误。仓库管理系统类模型局部解答:根据题意和模型不难得知,一个入库单是由多个入库单项(OrderItem)组成的,因此不可能只涉及一个产品,合理的方式应该是入每个入库单项(OrderI
27、tem)与产品一对一关联。即应该绘制为:2、下图是一个“涉税服务管理效能管理系统”中类模型的一个局部,请根据该图回答以下问题。涉税服务效能管理系统类模型局部 在描述“税务审批服务申请”时,它主要包含哪几个方面的内容?它有几种不同的类别?受理资料、受理提示、受理告知、纳税人、流转记录。包括行政许可类申请、涉税服务类申请和行政审批类申请三类。 对于每一条流转记录,可能与几个“税务审批服务申请”相关?与几个处理人相关?每条流转记录只和一个“税务审批服务申请”相关,只与一个处理人相关。 在上图中,对于每个流转记录的处理人,它的类型(窗口人员、核查人员、审批人员)是唯一的,也就是只可能取一种值。请在图中
28、加上表示这种规则的约束。 后来,开发人员又在上述图的基础上进行了一些修改,其中有一个局部修改成了如下图的内容。请说明这些新增加的元素分别表示什么含义。修改后的模型局部has是关联名称,表示这种关联是“拥有”关系。“申请ID”是限定符,表示每一个流转记录只能用一个“申请ID”。3、下图是小张绘制的一张关于网上商城用户管理的领域类图,但其中存在一些问题,请指出错误并说明理由。网上商城用户管理领域类图局部作为领域类图不应该涉及到实现类,因此不应该引入诸如System.Data.Oracleclient和ArrayList之类与程序实现直接相关的类。4. 在下图中最上面的对象的名称是什么?该图表示的意
29、思是什么?请绘制出与其相应的类图。对象图实例China。该图的意思是福建、四川等省份组成中国。5. 假设有一个温度监控系统,用户在MonitorGUI(监控界面)上输入查询指令,然后QueryState包的程序将与温感探头连接,获取当前的状态信息,并存入数据库,再返回给用户界面。根据这一描述,小张绘制了如图所示的包图。你认为其中存在什么问题,请试着修改?温度监控系统包图的局部在包图中应该避免出现这种循环依赖的情况。可以修改为:6. 为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。主要将实现客户资料信息管理、客户委托(出租、出售、
30、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,下图是一个用例模型的局部:物业管理系统用例模型局部(1)但小李认为该模型不符合“用例建模”的思想,存在明显的错误。请用200字以内说明错误所在,并说明应该如何修改。1)主要错误:用例的分解太细,并没有遵从每个用例为用户传递一个有价值的结果的原则。在原设计中“打开房源信息页面”、“录入房源信息”、“确认提交信息”都只是一个操作步骤,因此不适合作为用例。2)修改方法:将“打开房源信息页面”、“录入房源信息”、“确认提交信息”合并为“新增房源信息”。(2)在上图中构造型“include”表示的是什么意思,它与“extent”之间的区别是什么?在用例模型中,构造型“include”是用来表示包含关系。它通常用来表示被包含用例是被多包含用例使用的一个可复用模块,而extent且通常用来表示对用例的扩展。7、看图回答问题下图中类的名字是:_ReaderManager_ 类中的行为(方法)是:_newReader(),Modify
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1