UML各章习题

更新时间:2024-03-04 14:59:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1、2章 面向对象与UML

1.简述统一建模语言(UML)

统一建模语言(UML)是一种绘制软件蓝图的标准语言。可以用UML对密集型软件系统的制品进行可视化详述和文档化。UML是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言(1分)。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计(1分),还支持从需求分析开始的软件开发的全过程(1分)。UML的作用是用图的形式从静态和动态方面来全面描述将要开发的系统(2分)。

2. 简述面向对象分析方法(OOA)的5个基本步骤 1)、识别对象,识别对象包括标识潜在的对象和筛选对象两步(1分) 2)、识别对象的属性(1分) 3)、识别对象的行为(1分) 4)、识别对象所属的类(1分) 5)、定义主题词(1分)

3、什么是高内聚度?

高内聚度是对一个类中的各个职责之间相关程度和集中程度的度量。一个具有高度相关职责的类并且这个类所能完成的工作量不是特别巨大,那么它就具有高内聚度。包括两个含义:一、不要给一个类分派太多的职责,在履行职责时尽量将部分职责分派给有能力完成的其它类去完成。二、不相关的职责不要分派给同一个类。

4、什么是对象间的可见性?

答:可见性(Visibility)指的是一个对象能够“看到” 或者引用另一个对象的能力。

5、领域建模的步骤有哪些? 答案:

列出候选的概念类; 画出领域模型图; 加入概念类间的关联; 加入概念类的属性。

6、什么是软件生命周期?

软件生命周期(SDLC,Systems Development Life Cycle)是软件的产生直到报废或停止使用的生命周期,周期内包括问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。

7、什么是软件开发生命期?

软件开发生命期是指软件产品从考虑其概念开始,到该产品交付使用为止的整个时期。 一般包括概念阶段,需求阶段,设计阶段,实现阶段,测试阶段,安装阶段及交付阶段。这

些阶段可以有重复,执行时也可以有迭代。

8、UML语言定义了五种类型不同的图,把它们有机的结合起来可以描述系统的所有视图,请列举出这些图的名称,简要描述它们的作用,并指出每类图各包括哪些图? 用例图(Use case diagram) 从用户角度描述系统功能,并指出各功能的操作者。 静态图(Static diagram),表示系统的静态结构。包括类图、对象图、包图。 行为图(Behavior diagram),描述系统的动态模型和组成对象间的活动交互关系。包括状态图、活动图。

交互图(Interactive diagram),描述对象间的交互关系。包括顺序图、协作图。

实现图( Implementation diagram ), 用于描述系统的物理实现。包括构件图、部件图。

9、请分点叙述UML的特点。

(1) 统一标准。UML统一了Booch、OMT和OOSE等方法中的基本概念,已成为OMG的正式标准,提供了标准的面向对象的模型元素的定义和表示。

(2) 面向对象。UML吸取了面向对象技术领域中其他流派的长处。UML符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。

(3) 可视化、表示能力强。系统的逻辑模型或实现模型都能用UML模型清晰的表示,可用于复杂软件系统的建模。

(4) 独立于过程。UML是系统建模语言,独立于开发过程。

(5) 易掌握、易用。由于UML的概念明确,建模表示法简洁明了,图形结构清晰,易于掌握使用。

10、简述UML的9种图。 答案:

(1)用例图:用例图展现了一组用例、参与者以及它们间的关系。可以用用例图描述系统的静态使用情况。在对系统行为组织和建模方面,用例图的是相当重要的。 (2)类图: 类图显示了一组类、接口、协作以及它们之间的关系。

(3)对象图:对象图展示了一组对象及它们间的关系。用对象图说明类图中所反应的事物实例的数据结构和静态快照。对象图表达了系统的静态设计视图或静态过程视图,除了现实和原型方面的因素外,它与类图作用是相同的。

(4)交互图:交互图展现了按一定的目的进行的一种交互,它由在一个上下文中的一组对象及它们间交互的信息组成。交互图也可用于描述一个用例的行为。顺序图和协作图都是交互图,顺序图和协作图可以相互转换。

顺序图:展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模。

协作图:展现了一组对象,这组对象间的连接以及这组对象收发的消息。它强调收发消息的对象的结构组织,按组织结构对控制流建模。

(5)状态图:展示了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移。一个状态图描述了一个状态机,用状态图说明系统的动态视图。它对于接口、类或协作的行为建模尤为重要,可用它描述对象的生命周期。

(6)活动图:活动图是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序以及工作流(完成工作所需要的步骤)。它对于系统的功能建模特别重要,强调对象间的控制流程。

高层活动图用于表示需要完成的一些任务,即用于分析用例,理解涉及多个用例的工作流、

多线程及并行,显示相互联系的行为整体,还可用于对企业过程建模,对系统的功能建模。低层活动图用于表示类的方法。 (7)构件图(组件图):构件图展现了一组构件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库和可调整的系统建模。

(8)部署图:部署图展现了对运行时处理节点以及其中构件的配署。它描述系统硬件的物理拓扑结构(包括网络布局和构件在网络上的位置),以及在此结构上执行的软件(即运行时软构件在节点中的分布情况)。用部署图说明系统结构的静态部署视图,即说明分布、交付和安装的物理系统。

11、UML语言的组成结构:构造元素,规则,公共机制。

12、uml是由哪3个部分组成的,并分别说明他们的作用。

构造元素 :包括基本元素、关系和图。这3种元素代表了软件系统或业务系统中的某个事物或事物间的关系 ,具有命名、范围、可见性、完整性和执行等属性。 规则:对软件系统或业务系统中某些事物的约束或规定 。

公共机制:包括详述、修饰、通用划分以及扩展机制,它是指适用用于软件系统或业务系统中每个事物的方法或规则。

13、说明模型,视图,图和模型元素之间的区别。 模型是对一个对象或物体的简化表示 ;

视图能反应系统某些侧面和特征的多个图的集合; 图只能反映系统中某个侧面和特征; 模型元素就是用来构成模型的基本符号。

14、UML 通过图形化的表示机制从多个侧面对系统的分析和设计模型进行刻画。其中( )包括交互图(interactive diagram)、状态图(statechart diagram )与活动图(activity diagram),它们从不同的侧面刻画系统的动态行为。 A.用例视图 B.结构视图 C.行为视图 D.构件视图 答案. C

15、名词解释

(1)对象:对象是对客观事物的抽象,用于模型化特定的实体;

(2)类: 类是对对象的抽象,是面向对象模型的最基本的模型元素; (3)属性:描述类的所有对象共同特征的一个数据项;

(4)操作:是对象类的行为特征或动态特征,用于对服务或实体相关的操作建模;

(5)关联:关联关系是一种事物之间的结构关系,它是对具有共同的结构特征、行为特性、关系和语义的链接的描述 ;

(6)泛化:是现实世界中一般性实体与特殊性实体之间的关系; (7)聚合:表示事物的部分/整体关系较弱的情况;

(8)依赖:是两个(或两组)模型元素间的语义联系,依赖是指一个模型元素的变化必影响到另一个模型元素;

(9)对象的激活期:表示对象执行一个动作的期间,也即对象激活的时间段;

(10)组合状态:如果一个状态内嵌套了若干个状态,则称该状态为超状态或组合状态; (11)历史状态:代表上次离开组合状态时的最后一个活动子状态; (12)组件:是系统的物理的可替换的单位,它把系统的实现打包,并提供一组接口的实现。

16、说说UML模型元素的组成。

在UML中,模型元素可以分为结构元素、行为元素、分组元素和注释元素等四大类: 1) 结构元素是UML模型的静态部分,主要用来描述概念或者物理元素,包括类、接口、协作、用例、主动类、构件和结点7种元素;

2) 行为元素是UML模型的动态部分,它包括交互和状态机;

3) 分组元素是 UML 模型的组织部分。最主要的分组元素是包,它是一种用于把模型元素组织成组的元素,结构元素、行为元素和其他的分组元素都可以放进包内;

4) 注释元素是 UML 模型的解释部分,它们用来描述和标注模型的任何元素。通常可以用注释修饰带有约束或者解释的图。

17、请简要阐述在软件开发过程中使用UML的必要性以及好处。 软件开发是一个很复杂的工程,而采用统一的建模语言来对软件进行描述能够使客户、涉众、开发人员对软件能够有更好的共识,也能够有效地降低复杂性。

18、请指出UML的三个主要的特性? 1) UML是一种可视化语言; 2) UML用于建模;

3) UML是一种统一的标准。

19、UML是一种方法论吗?并简要说明理由。

UML并不是OOA/D,也不是方法论,它只是图形表示法,是一种描述模型的标准语言,虽然渗透了许多方法论的基础概念,但是却没有在标准中给出完整的方法指南。

20、应用UML的三种方式是什么?

1) UML作为草图,用于探讨问题或解决方案空间的复杂部分;

2) UML作为蓝图,系统分析员利用UML建立能够和客户、程序员以及任何参与程序开发的人员理解的多视角系统蓝图;

3) UML作为编程语言,用UML完成软件系统可执行规格说明。

21、构造型的作用是什么?

构造型用来定义一些特定于某个领域或某个系统的构造块。用来扩展建模元素,增加建模元素的语义。构造型表示对现有建模概念的精化,并且定义在UML的简档之中。简档是一组相关构造型、标记和约束的集合,其目的是使用UML专用于特定领域或平台。UML预定义了大量构造型,同时允许用户自行定义构造型,因此,在UML中构造型提供了扩展机制。

22、应用UML的三种透视图是什么?

1) 概念透视图,用图来描述现实世界或关注领域中的事物;

2) 规格说明(软件)透视图,用图来描述软件抽象物或具有规格说明和接口的构建,但并不约定特定的实现;

3) 实现(软件)透视图,用图来描述特定技术(如Java)中的软件实现。

23、解释设计模式的概念 。回答策略模式;观察者模式;适配器模式需解决的问题和方案。 富有经验的面向对象专家(或其它软件开发人员)设计的作为通用原则和惯用法的解决方

案 ,用于指导软件设计。如果将它们按问题和解决方案描述的结构形式编篡,然后起一个名字。 这就是设计模式。

模式名:策略模式(Strategy)

问题:如何设计一种方案可以适应算法或规则的频繁变更?

解决方案:定义一系列的算法,把他们一个个封装起来,并且使他们可以互相替换,具体的说就是为每个算法/策略分别定义一个具有公共接口的类。 模式名:观察者模式(Composite) 问题:如何维护对象之间的一致性? 解决方案:当一个对象的状态发生变化时,所有依赖于它的对象都得到通知并被自动更新。 模式名:适配器模式(Adapter) 问题:如何解决不兼容的接口的问题,或者说如何提供一个稳定的接口给具有不同接口的相似组件?

解决方案:通过一个中间的适配器对象使一个组件的原有接口转变成另一个接口。

24、面向对象程序的基本特征 。

基本特征:抽象、封装、继承、多态 。

抽象:抽象是对现实世界信息的简化。能够通过抽象将需要的事物进行简化、将事物特征进行概括、将抽象模型组织为层次结构、使软件重用得到保证。

封装:封装就是把对象的状态和行为绑到一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的内部细节。封装有两个含义:一是把对象的全部状态和行为结合在一起,形成一个不可分割的整体对象的私有属性只能够由对象的两个行为来修改和读取。二是尽可能隐蔽对象的内部细节,与外界的联系只能够通过外部接口来实现。

继承:继承是指特殊类的对象拥有其一般类的属性和行为。继承意味着“自动地拥有”,即在特殊类中不必重新对已经在一般类中定义过的属性和行为进行定义,而是特殊类自动地、隐含地拥有其一般类的属性和行为。 多态:多态是指两个或多个属于不同类的对象,对于同一个消息或方法调用所做出不同响应的能力。

25、UML中模型元素的主要关系 。

UML中主要包含4种关系,分别是依赖、关联、泛化和实现。

依赖关系指的是两个事物之间的一种语义关系,当其中一个事物(独立事物)发生变化就会影响另外一个事物(依赖事物)的语义; 关联关系是一种事物之间的结构关系;

泛化关系是事物之间的一种特殊/一般关系,特殊元素(子元素)的对象,也就是我们在面向对象中常常提起的继承。

实现关系:实现关系也是UML元素之间的一种语义关系,它描述了一组操作的规约和一组对操作的具体实现之间的语义关系。 26、请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。

1)电路图:电子产品设计、生产、维修 。

2)园区沙盘:直观、立体化地展示园区的景观、布局。 3)地图:导航、指路等。

(1)该模型不符合“用例建模”的思想,存在明显的错误。说明错误所在,并说明应该如何修改。

1)主要错误:用例的分解太细,并没有遵从每个用例为用户传递一个有价值的结果的原则。在原设计中“打开房源信息页面”、“录入房源信息”、“确认提交信息”都只是一个操作步骤,因此不适合作为用例。

2)修改方法:将“打开房源信息页面”、“录入房源信息”、“确认提交信息”合并为“新增房源信息”。

(2)在上图中构造型“《include》”表示的是什么意思,它与“《extend》”之间的区别是什么?

在用例模型中,构造型“《include》”是用来表示包含关系。它通常用来表示被包含用例是被多包含用例使用的一个可复用模块,而《extend》且通常用来表示对用例的扩展。

13、需求分析的目的是什么?需求分析中的典型活动有哪些? 答:

需求分析的目的是获取需求,得到描述系统所需的用例、业务流程或清晰的正文。 需求分析中的典型活动有: (1)获取领域知识。 (2)定义系统功能。 (3)寻找合适的类。 (4)建立类的静态模型。 (5)描述对象的动态行为。 (6)验证。 (7)给出基本的用户界面原型。

14、用例建模的主要目标有哪些? 答:

(1)将需求规约变为可视化模型,并得到客户确认。

(2)给出清晰、一致的关于系统“做什么”的描述,确定系统的功能要求。 (3)提供从功能需求到系统分析、设计、实现各阶段的度量标准。 (4)为最终系统测试提供给制,据此验证系统是否达到功能要求。

(5)为项目目标进度管理和风险管理提供依据。

15、用例建模的步骤包括哪些工作? 答:

(1)确定系统的范围、边界、用例、执行者。 (2)描述用例。

(3)用例分类、确定用例之间的关联。 (4)建立用例图。

(5)定义用例图的层次结构。 (6)审核用例模型。

16、用例与用例图的区别。 用例可以是一组连续的操作,也可以是一个特定功能的模块。它是一个叙述型的文档, 来描述参与者使用系统完成的事件。

用例图描述的是系统的参与者与系统用例之间的关系。

17、用例图说明了什么?它出现在Unified Process的哪个阶段?

用例图说明了系统参与者与系统用例之间的关系,主要在需求分析阶段使用。

18、用例图的4个主要组成部分。

用例、参与者、系统、关系 。

19、参与者表示什么?

参与者是系统外的一个实体,它代表了与系统交互的用户、设备或另一个系统。 20、用例表示什么?

用例可以是一组连续的操作,也可以是一个特定功能的模块,用来描述参与者使用系 统完成的事件,是系统期望系统具备的功能,它定义了系统的行为特征。

21、解释和比较用例图中的<>和<>两种关系。

包含关系:指一个用例可以简单地包含其他用例具有的行为,并把它所包含的用例行 为作为自身行为的一部分。

扩展用例:它是一种依赖关系,它指定了一个用例可以增强另一个用例的功能,是把 新的行为插入到已有用例中的方法。基用例即使没有扩展用例也是完整的,这点与包含关 系有所不同。

第6章 类图

1、找出下面场景中的概念类。

(1).顾客带着购买的商品或服务来到POS收款台; (2).收款员启动一次销售; (3).收款员输入商品标识;

(4).系统记录商品,并且显示该商品说明,价格,并计算总金额。按一组计价规则计算单

价。

答案:顾客、POS收款台、收款员、销售、商品标识、商品、商品说明。

2、请判断以下类图中的类关系是否合适,并说明理由。

参考答案:

(1)飞机有机翼、机身、驾驶舱;应改为“组合”。

(2)商场里的电器。1台电器可以是1台洗衣机;1台电器可以是1台电视机;1台电器可以是1台空调;应该为“泛化”。

(3)公司的员工很多,包括程序员、分析员、项目经理……;应改为“泛化”。

3、画出能正确表示下面叙述的类图(括号内为类名)。

“一个雇员(Employee)最多由一个经理(Manager)管理,某些经理管理多个雇员,某些经理不管理任何雇员”。

4、简要叙述“聚集”关系和“组合”关系的相同点和不同点。 答:相同点:整体-部分关系。

不同点:局部对象的生命周期是否由整体对象来管理。

5、找出并说明下面类图中的错误。

答:(1)计算机与其部件之间不是继承关系,应是聚集关系; (2)人与用户、维修人员之间不是聚集关系,应是继承关系;

(3)维修人员与计算机之间不是聚集关系,应是维修人员依赖计算机或单向关联。 6、下面类图中,接口Service中定义了三个方法。其中ClientA只使用methodA方法,ClientB只使用methodB方法,ClientC只使用methodC方法。根据接口分离原则重新设计该类图。

7、.已知三个类A.B和C,其中类A由类B的一个类和类C的1个或多个类构成. 请画出能够正确表示类A,B和C之间关系的UML类图。

8、简述如何在实际工作中发现类。

答:在与客户的交谈中,要注意客户用来描述业务实体的名词术语。这些名词可作为领域模型中的类。

还要注意你听到的动词,因为这些动词可能会构成这些类中的操作。 当得到一组类的核心列表后,应当向客户询问在业务过程中每个类的作用。他们的回答将告诉你这些类的职责。

9、简述怎样发现类之间的继承关系。

作为候选的类有可能和它的父类、子类在谈话中同时被发现。系统分析员意识到某个类的属性和操作也许能被运用到其他多个类当中去。

另一种可能的情况是系统分析员注意到两个或者多个类可能具有相同的属性和操作。

10、图书管理系统功能性需求说明如下:

图书管理系统能够为一定数量的借阅者提供服务。每个借阅者能够拥有唯一标识其存在的编号。图书馆向每一个借阅者发放图书证,其中包含每一个借阅者的编号和个人信息。提供的服务包括:提供查询图书信息、查询个人信息服务和预定图书服务等。

当借阅者需要借阅图书、归还书籍时需要通过图书管理员进行,即借阅者不直接与系统交互,而是通过图书管理员充当借阅者的代理和系统交互。

系统管理员主要负责系统的管理维护工作,包括对图书、数目、借阅者的添加、删除和修改。并且能够查询借阅者、图书和图书管理员的信息。

可以通过图书的名称或图书的ISBN/ISSN号对图书进行查找。 回答下面问题:

1) 该系统中有哪些参与者?

借阅者 图书管理员 系统管理员

2) 确定该系统中的类,找出类之间的关系并画出类图。 用户类、用户角色类、图书类、预定类、借阅类、书目类

3) 画出语境“借阅者预定图书”的时序图。

11、请简要说明类图在应用领域中的作用,并说明在对系统建模时主要用到哪3种模型,以及3种模型的区别。

作用:用来描述业务或软件系统的组成结构和关系。 三种模型有动态模型、对象模型、功能模型。

动态模型是描述与时间和操作顺序有关的系统特征;

对象模型是描述系统中对象的静态结构,对象之间的关系,对象的属性和对象的操作; 功能模型描述与值的变换有关的系统特征。

12、Uml关系包括关联、聚合、泛化、实现、依赖等5种类型,请指出下面关系的类型,并采用UML符号表示这些关系。

(1)在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是什么关系?关联

(2)类A的一个操作调用类B的一个操作,而且这两个类之间不存在其他关系,那么类A

32、在绘制类图时,第一步就是发现类,最常用的方法是什么?请简要说明它的使用方法。

发现类的方法有很多种,其中最广泛应用的莫过于“名词动词法”,其主要规则是从名词与名词短语中提取对象与属性;从动词与动词短语中提取操作与关联;而所有格短语通常表明名词应该是属性而不是对象。

33、对象特性的三要素是什么,请通过一个实际的例子来说明三要素的内容。

对象特性的三要素是状态、行为和标识。 张三对象具有身高、体重、学历、职务、收入等状态,具有读书、锻炼、吃饭等行为。 福建省有个张三,北京市有个张三,我们说福建张三和北京张三,福建、北京就是两个不同命名空间的标识。 34、“书”、“购物车”、“我的UML参考手册(第二版)”、“银行卡”、“号码为13600000000的手机卡”中,哪些是对象,哪些是类。光从这些名字是否一定可以确定为是对象?

“我的UML参考手册(第二版)”、“号码为13600000000的手机卡”是对象。其他都是类。

35、在图中最上面的对象的名称是什么?该图表示的意思是什么?请绘制出与其相应的类图。

China。该图的意思是福建、四川等省份组成中国。

36、消息传递和函数调用有哪些区别? 答:

(1)消息传递必须指明接收方,函数调用由参数决定。

(2)消息传递的接收方是实体,可以保持状态,函数调用无此要求。 (3)消息传递属于异步调用,并发性好,函数调用则属于串行。

37、试比较共享聚集和组合聚集。 答:

(1)二者都表示“整体-部分”的组成关系。

(2)共享聚集表示较弱的拥有关系;组合聚集表示较强的拥有关系,相同的生命周期。 (3)在UML中共享聚集用空心菱形表示,组合聚集用实心黑色菱形表示。

38、接口有哪些主要特点? 答:

(1)接口是一个类,定义了一组提供给外界的操作。

(2)接口是一个特殊的抽象类,没有属性,只有抽象操作。 (3)一个类在使用接口时必须实现接口的全部抽象操作。

(4)在UML中,接口实施的图形标记与继承相似,只是用虚线代替了实线。 (5)接口常用于定义或限制软件构件的对外运算。

39、通过发送消息可以触发的动作有哪些? 答:

(1)创建一个对象或释放一个对象。 (2)调用另一个对象的操作。 (3)调用本对象的操作。 (4)发送信息给另一个对象。 (5)返回值给调用者。

40、试比较对象之间的同步与异步操作。 答:

(1)同步消息的发送者把进程控制传递给消息的接收者,然后暂停活动,等待消息的接收者放弃或返回控制。

(2)同步消息的接收者执行所请求的操作,如果需要,可以把控制传递给另一个对象角色,请求做某个操作,并且当该操作完成后把控制返回给原来的同步消息的发送者。 (3)同步消息的接收者也可以直接返回或发送信息给原来的消息发送者。

(4)异步消息的发送者通过发送消息把信号传递给消息的接收者,然后继续自己的活动,不等待消息的接收者返回信息或控制。 (5)异步消息的接收者执行所请求的操作,操作完成后可以向异步消息的发送者返回信息。 (6)异步消息的发送者和接收者采用并发工作方式。

41、类与类之间的主要关系有几种?它们的含义是什么?

①泛化关系:泛化是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化 父类的所有特征和行为。

②实现关系:用于规定规格说明与其实现之间的关系,换句话说,就是指定两个实体 之间的一个合同,一个实体定义一个合同,而另一个实体保证履行该合同。 ③关联关系:对象之间的关系准则。 包括2类特殊关联:

聚合关系:它是一种特殊的关联关系,它表示整体与部分的关系,且部分可以离开整体而单独存在。

组合关系:它是一种特殊的聚合关系,它表示整体与部分的关系,但部分不能离开整体而单独存在,当整体类被销毁时部分类将同时被销毁。

④依赖关系:当两个元素处于依赖关系中时,其中一个元素的改变可能会影响或提供消息给另一个元素,即另一个元素以某种形式依赖于另一个元素。

42、构造类图的步骤。 ①创建类图。

②研究分析问题领域确定系统需求。

③根据用例图或者需求确定类及其关联,明确类的含义和职责, 确定属性和操作 。 ④添加类以及类的属性和操作。 ⑤ 添加类与类之间的关系。

43、对象和类的主要区别。

①对象是一个实体,类仅代表一个抽象。

②类是共享一个公用结构和一个公共行为的对象集合。 ③类是静态的,对象是动态的。 ④类是一般化,对象是个性化。 ⑤类是定义,对象是实例。 ⑥类是抽象的,对象是具体的。

44、简述对象图的概念和绘制对象图的一般步骤。 对象图是类图的实例,它用来描述的是参与交互的各个对象在交互过程中某一时刻的 状态,它可以看作是类图在某一时刻的实例。 步骤:①先找出类和对象。

②对类和对象进行细化的关联分析。

③绘制相应的对象图。

45、对象图的表示方法和用途。

对象图包括两部分:对象名称和属性。 用途:

①捕获实例和连接。 ②捕获交互的静态部分。

③在分析和设计阶段进行创建。 ④举例说明数据/对象结构。 ⑤详细描述瞬态图。

⑥由分析人员、设计人员和代码实现人员开发。

46、请根据下列文字画出概念模型:一辆车身是红色金属漆的小轿车,装备四个普利斯 通牌的轮胎,它是一辆四门车,车门是加厚的,并且前后门玻璃上贴黑色的膜。前后挡风玻璃里都 装有电热丝,后视镜是电动可调的。(注意:许多隐含信息被省略了,例如车身和轮胎是安装在汽车上的,车门是安装 在车身上的等等)

47、MVC包括3个部分:

(1) model:表达应用领域有关的类、对象、数据结构以及企业的业务逻辑等。 (2) view:代表窗口画面,负责将model的实现呈献给用户。

(3) controller:监控用户传来的信息,并将信息指挥协同上述二者的合作。 48、请简要说明类图的应用领域,并重点说明在软件系统建模应用时的三种模型的关键点及区别。

类图主要可以应用于业务性模型、软件系统模型和数据库逻辑模型。类图应用于软件系统模型时,主要是用来构建领域模型、分析模型和设计模型:

领域模型是从面向对象的视角看待现实世界的结果,也就是通过类图来描述现实世界中各种事物的关系。因此在构建这个模型时,最主要的工作是找出相关的类,然后明明类之间的关联关系,必要时加入一些多重性描述和业务规则约束。

分析模型和领域模型是很相近的,甚至可以说领域模型是一种全局的业务分析模型。而在RUP中,分析模型主要是针对软件系统的分析,领域模型则更多是偏重对业务领域的分

析。

设计模型则是在分析模型的基础上添加设计元素的结果。与分析模型相比,设计模型中的类的属性集更趋完善;更重要的是,它将加入模板类、参数类、抽象类/接口等设计元素,以及框架类的使用、设计模式的使用等。总的来说,设计模型是一种详细设计模型,将能够直接对编程予以指导。

第7章 交互图

1. 简述顺序图的建模步骤。 建模步骤:

1) 设置交互语境(1分) 2) 确定对象(1分)

3) 分析消息和条件(1分) 4) 分析附加约束(1分)

5) 对建模结果精化和细化(1分)

2、 UML中的交互图有两种,分别是顺序图和协作图,请分析一下两者之间的主要差别和各自的优缺点。掌握利用两种图进行的设计的方法。

答:协作图可视化地表示了对象之间随时间发生的交互,它除了展示对象之间的关联,还显示出对象之间的消息传递。与顺序图一样,协作图也展示对象之间的交互关系。顺序图强调的是交互的时间顺序,而协作图强调的是交互的语境和参与交互的对象的整体组织。顺序图按照时间顺序布图,而协作图按照空间组织布图。顺序图可以清晰地表示消息之间的顺序和时间关系,但需要较多的水平方向的空间。协作图在增加对象时比较容易,而且分支也比较少,但如果消息比较多时难以表示消息之间的顺序。

3. 图中为顺序图的一部分(如图所示)。 根据现有信息尽可能判断: (1)“小车”类有哪几个操作?

(2)“指挥小车UC”类的“执行任务”操作要做哪些工作?

参考答案:

(1)“小车”类有哪几个操作? 返回小车当前位置(); 转向和前进();

(2)“指挥小车UC”类的“执行任务”操作要做哪些工作? 移动任务:更新行走断表和目的地();

移动任务:判断现有信息足以让小车行走(); 小车:返回小车当前位置();

小车:验证小车尚未到达目的地();

移动:根据但前位置及断表信息计算出速度、角度(); 小车:转向和前进();

5. 请根据如下Java代码画出相应的顺序图。 class C1{

C2 c2 = new C2();

public void f1(){ c2.f2(); } }

Class C2{

public void f2(){ f2(); } }

6、顺序图和协作图中,消息有哪三种?各自的意义和表示方式?

答 消息可以是简单的(simple)、同步的(synchronous)或异步的(asynchronous)。简单消息是从—个对象到另一个对象的控制流的转移。如果一个对象发送了—个同步消息,那么它要等待对方对消息的应答,收到应答后才能继续自己的操作。而发送异步消息的对象不需要等待对方的应答便可以继续自己的操作。在顺序图中,简单消息是—个简单箭头,同步消息是实心箭头。异步消息是—个半边箭头。

7、 根据下面的叙述,绘制一幅关于顾客从自动售货机中购买物品的顺序图。 (1) 顾客(User)先向自动售货机的前端(Front)投币; (2) 售货机的识别器(Register)识别钱币;

(3) 售货机前端(Front)根据Register的识别结果产生商品列表; (4) 顾客选择商品;

(5) 识别器控制的出货器(Dispenser)将所选商品送至前端(Front)

: Front : User1: 投币2: 识别钱币 : Registar : Dispenser3: 产生商品列表4: 选择商品5: 选择商品6: 出货

8、指出图中注释所表达的含义。 AAA, BBB, CCC, DDD

(A)Class, Message, Iteration, Self-Call (B) Object, Message, Iteration, Self-Call

(C) Object, Message, Self-Call, Iteration (D) Class, Message, Self-Call, Iteration 答案:B

9、顺序图的定义与作用 。

顺序图是对对象之间传送消息的时间顺序的可视化表示。 顺序图从一定程度上更加详细地描述了用例表达的需求,将其转化为进一步、更加正式层次的精细表达,这也是序列图的主要用途之一。序列图的目的在于描述系统中各个对象按照时间顺序的交互过程。

顺序图的作用:

①为用例建造逻辑模型。

②为某个用例的泛化功能提供其所缺乏的解释。 ③记录一个存在系统的对象现在如何交互。 ④用来演示某个用例最终产生的所有的路径。

10、顺序图的组成 。

顺序图是由对象、生命线、激活和消息等构成的。

11、协作图的定义与用途 。

协作图就是表现对象协作关系的图,它表示了协作中作为各种类元角色的对象所处的位置,在图中主要显示了类元角色和关联角色。

作用分为以下三个方面:通过描绘对象之间消息的传递情况来反映具体的使用语境的逻辑表达、显示对象及其交互关系的空间组织结构、表现一个类操作的实现。

12、协作图的组成 。

协作图是由对象、消息和链等构成的。

13、交互是什么?请举2-3个交互的实际例子。

一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为。

举例:上传告警、发送短信。

14、在UML 2.0中定义了哪四种交互图?其中强调控制流时间顺序的是哪一种交互图?哪两种是基本交互图?

顺序图、通信图、定时图、交互概述图; 强调控制流时间顺序的是顺序图; 顺序图和通信图是两种基本交互图。

15、在顺序图中和在通信图中,分别应该如何表示“循环”结构的?

在顺序图中,循环结构可以使用一个交互片断来表示。

在通信图中,使用迭代标记来表示循环。迭代是通过在顺序编号前加上一个迭代符“*”和一个可选的迭代表达式来表示的。对于迭代表达式,UML没有强制规定什么语法,因此你可以使用任何可读的、有意义的表达式来表示。

16、在交互图中,消息编号有哪两种形式?请分别说明它们的优缺点。

一种是无层次编号,它简单直观;另一种是嵌套的编号,它更易于表示消息的包含关系。

17、在交互图中,表示返回消息的符号是什么?表示异步消息符号是什么,异步消息指的是什么意思?

异步模式:对象A发送了一个信号给对象B,那么A在发送完信号之后,就会继续执行,不会等待。

同步消息和异步消息的区别: 同步消息假设有一个返回消息,在发送消息的对象进行另一个活动之前需要等待返回 的回应消息。

异步消息表示发送消息的对象不用等待回应的返回消息,即可开始另一个活动。

18、假设有一系统的协作图局部如图所示,print方法的功能是将传入参数的值打印在屏幕上;fact方法是用来计算阶乘的,test的初值为1。那么将打印出什么?

打印的值是10。将执行三次迭代,因此test的值是1+1!+2!+3!=10。

19、请说明图所示的顺序图的含义:

客户类调用A类的do方法,并传入参数x;A类将判断传入的参数x的值是否小于10,如果是则调用B类的Calculate方法,参数为x;否则将调用C类的Calculate方法,参数为x。

20、定时图的作用是什么?请简单说说它和顺序图的区别。

表示具有很强的时间特性的交互(例如现实生活右的电子工程、实时控制等系统中)。它和顺序图的区别在于:

坐标轴交换了位置,改为从左到右来表示时间的推移;

用生命线的“凹下凸起”来表示状态的变化,每个水平位置代表一种不同的状态,状态的顺序可以有意义、也可以没有意义;

生命线可以跟在一根线后面,在这根线上显示一些不同的状态值; 可以显示一个度量时间值的标尺,用刻度来表示时间间隔。

21、图是一个电梯控制系统的通信图,其中Elevator表示电梯,Queue表示指令队列,Order表示指令,Elevator Control是电梯控制器,Button是电梯上的按钮。请简解释该协作图的含义:

1、 用户按下按钮;

2、 按钮将向Elevator Control查询电梯当前所在的楼层号 ;

监护条件就是分支的判断条件。例如下图中,表示a>0和a<0时将执行不同的路径。

8、在图中,(a)和(b)中那条“粗线段”表示的是分岔还是汇合,是否存在什么错误?

(a)表示分岔,(b)不确定,因为分岔点只能有一个箭头进,汇合点只能出一个箭头。

9、在活动图中泳道要怎么表示,在需要表示什么信息时,需要用到它?

用一条垂直的线分隔,表示不同的参与角色,例如流程图中的不同部门。

10、在图中,有一个表示某公司销售过程的一张活动图,请阅读并说明该图所表示的含义。

收到订单后,将开始准备货物,对于加急的用EMS,其他的用普通包裹;在准备货物的同时开具发票、收款;两个工作都完成后关闭订单。

11、假设订单的接收与关闭是由销售人员负责,开票收款是由财务人员负责,准备货物是由仓管负责。请将其修改成为带泳道的活动图,以体现这种分工。

12、假设,我们希望在活动图中体现出:仓管人员是根据“订单”来准备货物的,因此销售人员在收到订单后,必须将订单传给仓管人员。应该采用什么机制?请直接修改活动图。 应采用对象流。

13、在公司运转一段时间后,财务人员对该流程提出了置疑,反应说收款工作经常滞后,客户总是在收到货物后的很长时间才付款。因此必须加以改进。请根据图和问题提出一个合理的修改意见,并用活动图表示出来。另外,请保持问题12所做的修改,并对新流程做出相应的体现。

14、随着订单的增大,有时对一个订单,可能需要进行多次发货,这种业务逻辑应该如何用活动图建模。

在每次发货后进行一个判断,看是否全部发完,否则不关闭订单。

15、交互概述图有哪两种形式,它们分别适用于什么场景?相对而言,哪一种会更加常用一些?

一是活动图的变体,它将活动节点进行细化,用一些小的顺序图来表示活动节点内部的对象控制流;

二是顺序图的变体,它用活动图来补充顺序图。但相对而言后者是十分不常见的,因此UML的定义更倾向于将其称为活动图的变体。

16、在交互概述图中,嫁接在活动图上的顺序图片断是用什么方法来表示的?

交互片断。

17、请简要说明交互概述图在建模时的优点和缺点。

优点:充分结合交互图和活动图的长处,在表达了对象到对象的控制流的同时,充分展示了从活动到活动的控制流。

缺点:对于规模稍大的场景,它并不是一个很好的选择,它将使模型的可读性大大降低。

18、请简要描述交互概述图的绘制方法。

理解活动控制流,并用活动图表示出来; 分析活动节点:用交互图表述细节。

19、活动图有哪些用途? 答:

(1)描述一个操作执行过程中所完成的工作。 (2)描述对象内部的工作。

(3)显示如何执行一组相关的动作以及这些动作如何影响它们周围的对象。 (4)显示用例的实例是如何执行动作以及如何改变对象状态。 (5)说明一次活动中的角色、工作流、组织和对象是如何工作的。

20、试比较状态图和活动图。 答:

(1)二者都是对系统的动态行为建模,都可以描述一个系统或对象在生存期间的状态或行为。

(2)二者都可以描述一个系统或对象在多进程操作中的同步与异步操作的并发行为。 (3)二者在UML中的描述图符基本一样。

(4)二者都可以用分支图符描述一个系统或对象的行为控制流。

(5)二者触发一个系统或对象的状态(或活动)发生迁移的机制不同。 (6)二者描述多个对象共同完成一个操作的机制不同。

21、动作与活动有哪些区别? 答:

(1)动作具有迁移性。 (2)动作具有原子性。 (3)动作具有连续性。 (4)活动具有有限性。 (5)活动具有非原子性。

22、说明活动图中使用泳道的益处。

泳道区分了负责活动的对象,它明确地表示了哪些活动是由哪些对象进行的。

23、建模活动图的步骤。

①建立焦点,确定活动图所关注的业务流程。 ②确定该业务的业务对象。 ③确定该工作流的开始状态和结束状态。 ④从开始状态开始,说明随时间发生的动作和活动,并在活动 图中表示成活动状态或者动作状态。

⑤将复杂的或者多次出现的活动归集到一个活动状态节点,并对每个这样的活动状态 提供一个可展开的单独的活动来表示它们。

⑥找出连接这些活动和动作状态节点的转换,从工作流的顺序开始,考虑分支,再考 虑分叉和汇合。

⑦如果工作流中涉及重要的对象,则可以将它们加入到活动图中。如果需要描述对象 流的状态变化,则需要显示其变化的值和状态。

24、简述使用发送信号动作和接收事件动作的情况。

发送信号动作是一种特殊的动作,它表示从输入信息创建一个信号实例,然后发送到目标对象。

接收事件动作也是一个特殊的动作,表示等待满足特定条件的某个事件发生。

第10章 包图、构件图、部署图

1、根据下图完成填空题:

在UML中这种图称为 图。 立方体表示的是 元素。

立方体之间的连线的含义是___________________________。 图中的折角矩形表示的意思是___________________________。 答案:1.部署图;2.节点;3.通信关联 4.注解

2、包图的定义与作用 。

包图是一种维护和描述系统总体结构的模型的重要建模工具,通过对图中各个包以及包之间关系的描述,展现出系统的模块与模块之间的依赖关系。

通过包图可以描述需求的高阶概况、描述设计的高阶概况、在逻辑上把一个复杂的系统模块化、组织源代码。

3、包图的组成 。

包的主要组成包括包的名称、包中拥有的元素、这些元素的可见性、包的构造型以及包与包之间的关系。

4、构件图的定义与作用 。

构件图是用来表示系统中构件与构件之间,以及定义的类或者接口与构件之间的关系的图。作用:构件图通过显示系统的构件以及接口等之间的接口关系,形成系统的更大的一个设计单元。在以构件为基础的开发中,构件为架构设计师提供了一个系统解决方案模型的自然形式,并且它还能够在系统完成时允许一个架构设计师验证系统的必须功能是由构建实现的,这样确保了最终系统将会被接受。

5、部署图的定义及作用 。

部署图描述了一个系统运行时的硬件节点,在这些节点上运行的软件构件将在何处物理运行,以及它们将如何彼此通信的静态视图。

作用:描述一个具体应用的主要部署结构,平衡系统运行时的计算资源分布等,部署图也可以通过连接描述组织的硬件网络结构或者是嵌入式系统等具有多种硬件和软件相关的系统运行模型。

本文来源:https://www.bwwdw.com/article/e75a.html

Top