1UML期末复习资料一、填空题:(16分)1.软件开发是一套关于软件开发各个阶段的定义、任务和作用的,建立在理论上的一门工程学科。2.经典的软件工程思想将软件的开发分为以下5个阶段:需求捕获、系统分析与设计、系统实现、测试和维护。3.UML(UnifiedModelingLanguage,统一建模语言),是一种面向对象的建模语言。它主要作用是帮助用户对软件系统进行面向对象的描述和建模,它可以描述这个软件开发过程从需求分析直到实现和测试的全过程。4.UML由视图、图、模型元素和通用机制四个部分组成。5.UML中的5种视图分别为:用例视图、逻辑视图、并发视图、组件视图和配置视图。6.UML中的建模机制分为静态建模机制和动态建模机制。二、问答题:(24分)1.请您阐述UML的组成及其之间的包含关系。答:UML由视图、图、模型元素和通用机制组成。其中视图包含图,图包含模型元素,通用机制用于表示其它信息,比如注释、模型元素的语义。2.请您阐述各视图下的各种图的组成。答:用例视图有用例图;逻辑试图有类图和对象图;并发视图有时序图、协作图、状态图、和活动图;组件视图有组件图;配置视图有配置图;23.您如何理解UML中模型元素和通用机制的概念。答:模型元素(ModelElement)代表面向对象中的类、对象、接口、消息和关系等概念。UML中的模型元素包括事物和事物之间的联系通用机制(GeneralMechanism)用于表示其它信息,比如注释、模型元素的语义等。4.如何理解UML中的静态建模机制和动态建模机制。答:静态建模机制所建立的图都是静态图,包括用例图、类图、对象图组件图和配置图;动态建模机制所建立的模型或者可以执行,或者表示执行时事物的时序状态或交互关系,包括有状态图、活动图、时序图和协作图。5.用例图中的extend和include之间的区别。答:扩展关系(extend):1)、一个用例也可以被定义为基础用例的增量扩展;2)、基础用例不必知道扩展用例的任何细节,它仅为其提供扩展点;3)、使用扩展关系时,基础用例没有扩展也是完整的。包含关系(include):1)、一个用例可以简单地包含其它用例具有的行为,并把它包含的用例行为作为自身行为的一部分;2)、用例之间的包含用例称为提供者用例;3)、使用包含关系时,必须在客户用例中说明提供者用例被包含的详细位置36.请您简述时序图和协作图的区别和联系。答:联系:时序图和协作图都来自UML元模型的相同信息,都是表示对象间的交互作用;他们的语义是等价的;它们可以从一种形式转换成另一种形式而不丢失任何信息。区别:时序图和协作图的侧重点不同,前者主要描述交互过程中的时间顺序,后者主要是明确的表达出对象间的关系;时序图有生命线和激活期而协作图没有。7.请您阐述类图中关联、泛化、实现、依赖各自的适用情况。答:1)关联表示对象之间的结构关系。2)泛化表示类之间的一般和泛化关系。3)实现飙汗死规格说明和其实现之间的关系。4)依赖表示类之间的使用关系。8.您如何理解动态视图在UML建模中的作用。答:1)动态视图描述了系统的动态结构,并且建立响应的动态模型;2)动态模型又描述了系统随时间变化的行为,这些行为是用从静态视图中抽取的系统的瞬间值的变化来描述的。9.您如何理解静态视图在UML中的作用。答:1)静态视图显示论文系统的静态结构,特别是存在事物的种类(例如类、类型)的对象结构中;42)静态视图将行为实体描述成离散的模型元素,但不包括动态行为的细节。三、名词解释题:(15分)1.UML中的视图、图、模型元素、通用机制?答:视图:用于表达系统某一方面特征的UML建模元素的子集。图:是模型元素集的图形表示。模型元素:代表面向对象中的类、对象、接口、消息和关系等概念。通用机制:用于表示其他信息,比如注释、模型元素的语义。2.用例图?类图?时序图?协作图?状态图?活动图?答:用例图:描述系统功能,由软件需求到最终实现的每一步。类图:系统的静态结构,是对一组具有相同属性、操作、关系和语义的对象的描述。时序图:按时间顺序描述系统元素间的交互,用来显示对象之间的关系,并强调对象的时间顺序,同时显示对象之间的交互。协作图:按时间和空间顺序描述系统元素之间的交互和它们之间的关系状态图:描述系统元素的状态条件和响应,通过对类对象的生存周期建立模型来描述对象随时间变化的动态行为。活动图:描述系统元素的活动,用于对计算机流程工作流程建模。3.什么是泳道?5答:泳道是活动图中的一些垂直展现,它将活动图中的活动状态进行分组,每一组表示负责某些活动业务组织。4.静态建模机制?动态建模机制?答:静态建模机制:利用用例图、类图、对象图、包、组件图和配置图进行UML建模。动态建模机制:利用消息、状态图、时序图、协作图和活动图进行UML建模。四、UML图与代码转换:(35分)1.根据以下UML图写出Java或C#的代码结构2.据以下UML图写出Java或C#的代码结构63.据以下UML图写出Java或C#的代码结构4.根据场景画出UML的建模分析图形5.用户使用电话的状态图分析:76.客户购买商品操作购物车的时序图:7.某学校信息系统用例图的部分内容。用户请求系统做的事件(例如修改个人信息、查看个人信息和删除个人信息)88.学生参加考试流程的活动图描述(使用泳道区分不同对象的活动状态)25、UML中有哪些扩展机制?答案:构造型、标记值、约束26、什么是参与者?如何确定系统的参与者?答案:参与者(actor,有些书翻译成“角色”)是一种特殊的类,是系统外部的一个实体,这个实体可以是任何的人或物,它以某种方式参与了用例的执行过程。在获取用例前首先要确定系统的参与者,可以根据下面的一些问题来寻找系统的参与者:①谁使用系统?②谁安装系统、维护系统?③谁启动系统、关闭系统?④谁从系统中获取信息,谁提供信息给系统?⑤在系统交互中,谁扮演了什么角色?⑥系统会与哪些其他系统相关联?27、什么是用例?如何确定系统的用例?答案:用例是对一组序列动作的描述,系统执行这些动作将对用例的参与者产生可以观察的结果。可以根据下面的一些问题来识别用例:9①参与者希望系统提供什么功能;②系统是否存储和检索信息;③当系统改变状态时,是否通知参与者;④是否存在影响系统的外部事件,是哪个参与者通知系统这些外部事件。28、什么是顺序图,顺序图是由那些部分组成?答案:顺序图是强调消息时间顺序的交互图。是描述系统中类和类之间的交互,它将这些交互建模成消息交换,也就是说,顺序图描述了类相互协作的完成预期行为的动态过程。顺序图是由:类角色、生命线、激活期和消息组成。29、什么是协作图,协作图是由那些部分组成?答案:协作图作为另一种交互图而言,强调的是参加交互的对象的组织。协作图是由:类角色、关联角色和消息流组成。30、试论述类与用例的区别。答案:类是对一组具有相同属性、操作、关系和语义的对象的描述。类是对事物的抽象。而用例是对一组序列动作的描述,系统执行这些动作将对用例的参与者产生可以观察的结果。31、试比较边界类与实体类的异同点。答案:实体类是对系统中需要存储的信息和其信息的行为建立模型。实体类具有永久的特性,这类似于数据库中的表一样用于保存系统的业务信息。边界类位于系统与外界的交接处,它在一个或多个角色和系统之间建立相互作用的模型。32、什么是依赖?他与关联有什么区别?10答案:依赖是一种使用关系,它说明了一个事物声明说明的变化可能影响到使用它的另一个事物,但反之未必。也就是说,服务的使用者以某种方式依赖于服务的提供者。而关联是一种结构关系,它详述了一个事物的对象与另一个事物的对象相互联系。33、什么是泛化?泛化是否就是类的继承,如果不是请说明理由答案:泛化是一般事物(称为父类或超类)和较特殊事物(称为子类或孩子类)之间的关系。泛化不是类的继承,类的继承是泛化的一种。34、试论述聚合和组合的异同。答案:聚合描述了整体对象拥有部分对象的关系。组合是聚合的一种形式,它具有强的拥有关系,而且整体与部分的生命周期是一致的。35、什么是动作状态?什么是活动状态?它们有什么区别?答案:动作状态是活动图中最小单位的构造块,表示原子动作。活动状态表示的是可以分割的动作。可以将对象的活动状态理解为一个组合,它的控制流由其他活动状态或动作状态组成。36、活动图与传统的流程图有什么区别?答案:流程图一般限于顺序过程,而活动图则可以对付并行过程。流程图明确指出了每个活动的先后顺序,而活动图仅描述了活动和必要的工作顺序。37、什么是对象图,请简述对象的作用?答案:对象图是描述在某一时刻,一组对象以及它们之间关系的图形。对象图是描述系统交互的静态图形,它由协作的对象组成,但不包含在对象之间传递的任何消息。1138、包的访问可见性有几种?请描述各访问可见性的区别。答案:可见性可以分成3种:公有访问(public)、保护访问(protected)、私有访问(private)公有访问(public):包内的模型元素可以被任何引入此包的其他包的内含元素访问。保护访问(protected):表示此元素只能被当前包的子包访问。私有访问(private):表示此元素只能被当前包内的模型元素访问。39、什么是对象图,请简述对象的作用?答案:对象图(ObjectDiagram)是描述在某一时刻,一组对象以及它们之间关系的图形。对象图是描述系统交互的静态图形,它由协作的对象组成,但不包含在对象之间传递的任何消息。40、请描述组件图和部署图的关系?答案:组件图用于描述系统中软件的构成,但没有描述系统中与硬件有关的构成情况。部署图则用于描述系统硬件的物理拓扑结构以及在此结构上运行的软件。41、请叙述类,组件和节点的关系?答案:组件是系统中遵从一组接口且提供实现的一个物理部件,通常指开发和运行时类的物理实现。节点和组件的关系:①组件是参与系统执行的事物,而节点是执行组件的事物。简单的说就是组件是被节点执行的事物,如假设节点是一台服务器,则组件就是其上运行的软件。②组件表示逻辑元素的物理模块,而节点表示组件的物理部署。这表明一个组件是逻辑单元(如类)的物理实现,而一个节点则是组件被部署的地点。一个类可以被一个或多个组件实现,而一个组件也可以部署在一12个或多个节点上。42、UML中的交互图有两种,分别是顺序图和协作图,请分析一下两者之间的主要差别和各自的优缺点。掌握利用两种图进行的设计的方法。答案:协作图可视化地表示了对象之间随时间发生的交互,它除了展示对象之间的关联,还显示出对象之间的消息传递。与顺序图一样,协作图也展示对象之间的交互关系。顺序图强调的是交互的时间顺序,而协作图强调的是交互的语境和参与交互的对象的整体组织。顺序图按照时间顺序布图,而协作图按照空间组织布图。顺序图可以清晰地表示消息之间的顺序和时间关系,但需要较多的水平方向的空间。协作图在增加对象时比较容易,而且分支也比较少,但如果消息比较多时难以表示消息之间的顺序。43、什么是高内聚度?答案:高内聚度是对一个类中的各个职责之间相关程度和集中程度的度量。一个具有高度相关职责的类并且这个类所能完成的工作量不是特别巨大,那么它就具有高内聚度。包括两个意思:①不要给一个类分派太多的职责,在履行职责时尽量将部分职责分派给有能力完成的其它类去完成。②不相关的职责不要分派给同一个类。44、什么是对象间的可见性?答案:可见性(Visibility)指的是一个对象能够“看到”或者引用另一个对象的能力45、标准建模语言UML的重要内容可以由哪五类图(共9种图形)来定义?答案:用例图、静态图(包括类图、对象图和包图)、行为图、交互图和实现图。1346、简述统一建模语言(UML):答案:统一建模语言(UML)是一种绘制软件蓝图的标准语言。可以用UML对软件密集型系统的制品进行可视化详述和文档化。UML是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的