文档库 最新最全的文档下载
当前位置:文档库 › UML课后习题答案

UML课后习题答案

第1章UML概述

1. 请指出UML的三个主要的特性。

1)UML是一种语言

2)UML是用来建模的

3)UML是统一的标准

2. 请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。

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

2)园区沙盘:直观、立体化地展示园区的景观、布局

3)地图:导航、指路等

3. 请说明蓝图和草图的区别,并简单描述其适用的场景。

蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型;而草图则通常是指手工绘制的、规范度较低的在纸张的UML模型。

对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中

4. 说明UML适用的建模领域,以及其作用和主要的参与人员。

?业务建模,用来加强对业务领域的了解,以领域专家为主,需求分析人员是主力,系

统分析员、架构师可参与。

?需求模型,用来加强需求了解,便于技术决策,以需求分析人员为主,系统分析员是

主力,领域专家提供指导,架构师和资深开发人员参与。

?设计模型:包括高层设计模型和详细设计模型。高层设计模型以架构师为主,系统分

析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则

以资深开发人员为主,架构师提供指导。

?实现模型:架构师、资深开发人员(设计人员);以资深开发人员(设计人员)为主,

架构师提供总体指导。

?数据库模型:架构师、数据库开发人员、资深开发人员(设计人员);以数据库开发

人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。

第2章UML世界的构成

1. UML是由哪三个部分组成的,请分别说明它们的作用。

?基本构造块:也就是建模元素,是模型的主体

?UML规则:也就是支配基本构造块如何放在一起的规则

?公共机制:运用于整个UML模型中的公共机制、扩展机制

2. 请列举出三个以上UML中的事物构造块,并说明适合用来表示“系统向用户提供的功能”的构造块是什么。

结构事务、行为事物、分组事物、注释事务。

适合用来表示“系统向用户提供的功能”的构造块是用例。

3. 如果你想对一个类的意义进行描述,那么应该采用?请简要说明原因。

A. 标记值

B. 规格描述

C. 注释

D.构造型

C

标记值是用来为事物添加新特性的;规格描述用来对构造块的语法和语义进行文字叙述,使得可视化视图和文字视图的分离;构造型是用来增加新事物的。

而对于类的意义进行简单描述,最合适的显然还是注释。

4. 图2-26所示的符号表示的是什么?它是关系构造块还是事物构造块?

图2-26 示例符号

扩展关系,是关系构造块。

5. 可以包含其它事物构造块的构造块是什么?它属于什么类型的事物构造块?

可以包含其它事物构造块的构造块是包,它属于分组事物构造块。

6. 在UML中定义了哪几种可见性规则?其中package的含义是什么?

定义了public、private、protected、package,package是指只有声明在同一个包中的元素才能够看到该元素。

7. 规格描述是一种事物构造块吗?如果不是,它是什么?它的作用是什么?

规格描述不是事物构造块,它是UML四种公共机制之一,用来对构造块的语法和语义进行文字叙述,使得可视化视图和文字视图的分离。

8. 标记值的作用是什么?它的表示法和约束的表示法有什么异同?在UML模型中如何区分它们?

标记值是用来为事物添加新特性的。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近。

9. 构造型的作用是什么?如果我们采用一个自定义的图标来表示它,那么可能遇到的主要问题是什么?

构造型用来定义一些特定于某个领域或某个系统的构造块。用自定义的图标有两个问题:一是容易产生歧义,二是建模工具难以支持。

10. 约束有两种表示法,它们分别是什么?

约束的内容可以以自由形式的文本来表示,也可以使用UML的OCL(对象约束语言)来精确定义。

11. UML 2.0在UML 1的基础上新增了三种图,请指出它们的名称和作用。

1)复合结构图:描述类的运行时刻的分解

2)定时图:描述对象之间的交互,重点在于定时

3)交互概观图:是一种顺序图与活动图的混合

12. 在UML 2.0中定义了四种交互图,其中强调对象调用顺序的是什么图?

顺序图

13. 交互概观图是哪两种图的综合。

顺序图与活动图

14. 请绘制出类、用例和协作的图形符号。

15. 在“4+1”视图中,这个1表示的是什么,它有什么作用。

这个1是用例视图。它是最基本的需求分析模型,是可被最终用户看到的系统行为的用例组成。常用的模型包括用例图、交互图、状态图、活动图等

第3章 类图

1. 绘制一个表示类的UML 元素,并指出它主要包含哪三个部分。

类名、属性、操作

2. 在对类名、属性/方法名时,通常会遵循什么样的规则?请举例说明。

对于类名通常采用CamelCase 格式(大写字母开头、混合大小写,每个单词以大写开始,避免使用特殊符号),尽可能避免使用缩写,例如OrderDetail 。

属性名也采用CamelCase 格式,但为了与类名进行区别,通

常首字母以小写开头,例如productId 。

操作名的命名格式与属性名类似,不过通常是动词词组。

3. 假设类ClassB 是ClassA 的子类,其中ClassA 的属性和方

法如图所示,则ClassB 能够访问的有哪些?

子类只有private 的成员无法访问,因此可以访问的属性有

mem02和mem03,可以访问的方法有op1。

图3-30 ClassA 表示

4. 在图3-31中,是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。请指出模型中的错误,说明原因并改正错误。

图3-31 仓库管理系统类模型局部

5. 在图3-32中是一个“涉税服务管理效能管理系统”中类模型的一个局部,请根据该图回答以下问题。

图3-32 涉税服务效能管理系统类模型局部

(1)在描述“税务审批服务申请”时,它主要包含哪几个方面的内容?它有几种不同的类别?

受理资料、受理提示、受理告知、纳税人、流转记录。

包括行政许可类申请、涉税服务类申请和行政审批类申请三类。

(2)对于每一条流转记录,可能与几个“税务审批服务申请”相关?与几个处理人相关?

每条流转记录只和一个“税务审批服务申请”相关,只与一个处理人相关。

6. 在图3-32中,对于每个流转记录的处理人它的类型(窗口人员、核查人员、审批人员)是唯一的,也就是只可能取一种值。请在图中加上表示这种规则的约束。

7. 后来,开发人员又在图3-32的基础上进行了一些修改,其中有一个局部修改成了如图3-33的内容。请说明这些新增加的元素分别表示什么含义。

has 是关联名称,表示这种关联是“拥有”关系。

“申请ID ”是限定符,表示每一个流转记录只能

用一个“申请ID ”。

8. 在绘制类图时,第一步就是发现类,最常用的方法是什么?请简要说明它的使用方法。 发现类的方法有很多种,其中最广泛应用的莫过于“名词动词法”,其主要规则是从名词与名词短语中提取对象与属性;从动词与动词短语中提取操作与关联;而所有格短短语通常表明名词应该是属性而不是对象。

图3-33 修改后的模型局部

第4章对象图

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

对象特性的三要素是状态、行为和标识。

张三对象具有身高、体重、学历、职务、收入等状态,具有读书、锻炼、吃饭等行为。

福建省有个张三,北京市有个张三,我们说福建张三和北京张三,福建、北京就是两个不同命名空间的标识。

2. “书”、“购物车”、“我的UML参考手册(第二版)”、“银行卡”、“号码为136********的手机卡”中,哪些是对象,哪些是类。光从这些名字是否一定可以确定为是对象?

“我的UML参考手册(第二版)”、“号码为136********的手机卡”是对象。

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

图4-1 对象图实例

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

第6章用例图

1. 请列举出两种以上现代需求分析技术,并简要地说明它们的特点。

?用例:描绘一个系统外在可见的需求情况,是代表系统中各个项目相关人员(风险承

担人,Stakeholder)之间就系统的行为所达成的契约

?用户故事:由客户参与编写,说明他们需要系统为他们做什么,一般用客户的术语编

写,其长度约为三句话左右

?特性:就是一个小的,具有客户价值的功能

2. 在用例图中参与者是什么,它属于系统范围之内吗?

参与者是为了完成一个事件而与系统交互的实体,它不属于系统范围之内。

3. 用例和使用场景之间是什么关系?

用例是由一组用例实例组成的,用例实例也就是常说的“使用场景”。

4. 用例之间的扩展、泛化、包含三种关系有什么异同,请分别举例说明。

房产经纪人

? 包含用例是一个完整的用例,可以独立存在,也可以单独被参与者调用。扩展用例不

是完整的用例,只是由部分扩展功能组成的,不能独立存在,必须依赖于基本用例。 ? 泛化关系:用来表示参与者与参与者之间,用例与用例之间的特殊/一般化关系

5. 对于一个电子商务网站而言,以下哪些不是合适的用例,指出并说明理由。

输入支付信息 将商品放入购物车 结账 预订商品

用户登录 邮寄商品 查看商品详情

输入支付信息:太小

邮件商品:系统功能之外

查看商品详情:太小

6. 为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,图6-14是一个用例模型的局部:

修改房源信息

图6-14 物业管理系统用例模型局部

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

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

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

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

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

第7章交互图

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

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

上传告警、发送短信

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

顺序图、通信图、定时图、交互概述图

强调控制流时间顺序的是顺序图

顺序图和通信图是两种基本交互图

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

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

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

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

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

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

返回消息符号:

异步消息:

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

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

1: print(test)

图7-29 协作图局部

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

7. 请说明图7-30所示的顺序图的含义:

图7-30 顺序图示例

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

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

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

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

?用生命线的“凹下凸起”来表示状态的变化,每个水平位置代表一种不同的状态,状

态的顺序可以有意义、也可以没有意义;

?生命线可以跟在一根线后面,在这根线上显示一些不同的状态值;

?可以显示一个度量时间值的标尺,用刻度来表示时间间隔;

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

图7-31 通信图示例

1、用户按下按钮;

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

3、Elevator Control创建一个新的命令,并加到队列中

4、Elevator Control调用队列中的任务,队列获取下一个任务

第8章活动图

1. 活动图和顺序图之间有什么区别?它们的特点是什么。

顺序图做为一种交互图,强调的是对象到对象的控制流(交互),而活动图则强调的是活动以及活动到活动的控制流。

2. “在活动图中,可以根据自己的需要,有多个初始节点和活动终点”,这一描述是否正确,请说明原因以及它们各自的图形表示法。

不正确,活动终点可以有多个,但初始节点有且只有能一个。

3. 分岔和分支有什么区别?

分岔表示的是并行流,分支则是任务的不同变体。

4. 在活动图中,监护条件有什么用?请举例说明。

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

5. 如果我们想在活动图中,表示出一个如下所示的for循环,该如何做?请用活动图来表示:

for (i=0;i<9;i++)

假设,要表示的是对某个集合对象进行遍历访问,那么又应该怎么做?

条件上写作“是否为集合对象的最后一项”,或者“<集合长度”

6. 在图8-19

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

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

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

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

8. 如果要表示出某个活动节点的输入参数和输出参数,那么应该如何做?如果还要表示异常的输出信息,则应该如何做?

用引脚表示。异常用空心三角形表示。

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

图8-20 简单活动图

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

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

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

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

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

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

第9章交互概述图

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

一是活动图的变体,它将活动节点进行细化,用一些小的顺序图来表示活动节点内部的对象控制流;二是顺序图的变体,它用活动图来补充顺序图。但相对而言后者是十分不常见的,因此UML的定义更倾向于将其称为活动图的变体。

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

交互片断

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

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

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

4. 请简要描述交互概述图的绘制方法。

理解活动控制流,并用活动图表示出来;

分析活动节点:用交互图表述细节。

第10章状态图

1.什么是状态,对象的状态和对象的属性有什么区别?

状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况。属性表述对象的个性,状态用来表示生命周期。

2. 在状态机图中,状态转换由哪五个部分组成?

源状态、触发事件、监护条件、动作和目标状态五个方面的内容

3. 图10-17是一个某系统关于用户管理的状态机图

图10-17 用户管理状态机图

在图10-17中,所涉及的所有转换都属于什么类型?在UML状态机图中共提供了哪几种转换类型。

全是外部转换,此外还有内部转换、进入转换和退出转换。

4. 在转换上标识的文字称为什么?它由哪几个部分组成?其中事件分为哪几类?

转换描述,包括触发事件、监护条件和动作三部分。事件包括以下几种类型:调用,改变,信号,时间,延迟。

5. 如果要在图10-17的基础上表达下述业务逻辑,应该对这张状态机图做哪些修改:

1)当用户删除后,还要自动完成该用户数据的备份,并从系统中清除,假设我们可以调用deleteAllData(username)方法来实现。

在“用户已删除”状态中加一个退出转换,写作exit/ deleteAllData(username)

2)假设用户在“已激活”状态,可以响应“备份”命令,并调用backData()方法来完成。

在“用户已激活”状态中加一个内部转换,写作event 备份/ backData()

3)假设用户在进入“已禁用”状态,将调用lockData()方法将其所属的信息设置为禁止访问,而将其解禁后,则调用unlockData()方法将其恢复。

在“用户已禁用”状态中加一个进入转换和一个退出转换,写作:

entry/ lockData()

exit/ unlockData()

6. 在状态机图中,自身转换和内部转换的区别是什么?

自身转换会触发进入转换和退出转换,而内部转换则不会。

7. 假设我们要将图10-17中状态“用户已禁用”和“用户已激活”合并为“用户生效”状态,这时使用的是哪种类型的复合状态?

顺序复合状态

8. 在图10-18所示的状态机图中,描述了学习驾照的过程。在该图采用的复合状态是什么类型?请说明该图所表示的含义。

图10-18 学习驾照过程状态机图

并发复合状态。说明要完成理论考试和驾驶考试才能够获得驾照。

(1). 在图10-18中,什么时候才能够从复合状态“学习”转换到“获得驾照”中。

两个并发状态都到终态。

(2). 在状态“理论考试”和“驾驶考试”与其相应的终态连接的线上,应该有什么样的描述?

考试通过

(3). 如果要表示必须在“理论考试”通过之后,才能够安排“教练专人指导”,那么应该如何建模。

在理论考试状态中,加一个退出转换,exit /a=true;

然后在教练专人指导状态之前加一个监护状态[a]

9. 阅读图10-19所示的状态机图,并说明其含义。

图10-19 页面跳转状态机图

三个页面之间可以按箭头示意跳转,返回“查看订单列表”时将回到历史快照页面,也就是当跳转到其他页面时,订单列表在第5页,那么将回到第5页。

10. 在图10-19中符号“H

”表示的含义是什么?那么符号“

H

”又表示什么?请简

要说明它们的区别。

表示历史,加了星号表示“深历史”

在本例中,由于历史状态就是“显示订单列表”,属于同级别的子状态,我们称之为“浅历史”。如果状态“显示订单列表”中还包含其它子状态,诸如“按字母序”、“按产品类别”等,那么要引用的历史状态就是更深层次的子状态,也称之为“深历史”,要表示“深历史”状态,只需在圆圈中的字母H边上加上一个“*”号即可。

11. 绘制状态机图的常用的步骤是什么?请简要说明。

(1)寻找主要状态

(2)确定状态间转换

(3)细化状态内的活动与转换

(4)考虑使用复合状态

第11章构件图

1. 请简要说明构件的五要素,并举一个例子来说明。

?规格说明

?一个或多个实现

?受约束的构件标准

?封装方法

?部署方法

(可拿出一个构件图来说明其五个内容)

2. 请阐述类与构件之间的主要异同点,并指出在UML中构件主要包括哪三种。

?类是逻辑抽象,构件是物理抽象

?类可以直接有属性和操作,构件则仅拥有可以通过其接口访问的操作

构件包括实施构件、工作产品构件、执行构件三种。

3. 构件相关的接口有哪两种类型?它们的图示法分别是什么样的?从关联关系的角度来看,构件与这两种类型的接口之间是什么关系?

“所需的接口”和“提供的接口”两种类型

构件与“所需的接口”之间是“使用”关系,与“提供的接口”之间是“实现”关系。

4. 在一张基本构件图中,构件之间最常见的关系是什么?

“使用”和“实现”关系

5. 图11-10是对callcenter.exe的结构进行建模的结果,请说明该图所表示的含义。

图11-10 基本构件图

可执行文件callcenter.exe将使用配置文件config.ini,程序库shp_a3.dll(版本为4.6.0.6)和sh_ttsu.dll;而程序库sh_ttsu.dll将使用shp_a3.dll和libtts.dll。

6. 请阅读图11-11所示的构件图,说明它表述的含义。

图11-11 嵌套构件图

工商注册短信查重程序需要其他构件提供“短信发送”和“短信接收”两个接口。

该程序由“短信网关接口”、“查重业务处理”、“工商局系统接口”三个构件。

“查重业务处理”通过“短信网关接口”完成“收取短信”和“发送短信”工作,并向工商局系统接口完成“数据查询”。

第12章部署图

1. 什么是节点,处理器和设备这两种节点有什么区别?

节点表示的是运行时的一类计算资源。处理器是具有处理能力的节点,设备是没有处理能力的节点。

2. 节点包含的元素主要是什么?请展开说明。

?直接描述:例如在B/S客户端中,必须安装“Web浏览器”(并通过约束说明需IE 6.0

以上版本或Firefox 1.5以上版本)。通常,对于不是由开发团队生成的制品,建议采用这种描述方式,也可以通过“约束”来描述它。

?《artifact》构造型:它用来表示文件、构件等由开发团队生成的制品。例如:IIS服

务器上的swWeb.dll、BusinessRule.dll、DataAccess.dll,C/S客户端上的sw.exe。

?《database》构造型:它用来表示一个数据库实例(对应Oracle的scheme),例如在

数据库服务器上的sw。

?《deploymentSpec》构造型:它用来表示部署描述,通常是对关键的配置文件进行建

模,你还可以在该构造块中直接指出具体参数的值。

3. 请简要说明部署图的阅读步骤。

一看节点有哪些;二看节点的约束,从而理解节点的用途;三看节点之间的连接,理解节点之间的协作;四看节点的内容,深入你感兴趣的节点,了解要部署什么

4. 请阅读图12-7所示的部署图,说明其所表示的含义:

图12-7 示例部署图

在部署环境中有两类资源,一类是客户端,安装的是Windows操作系统,上面将部署ReservationApp应用程序;另一类是服务器,安装的也是Windows操作系统,它将运行一个名为Scheduler.exe的服务器端程序,它使用了SQL Server服务器,该服务器上需要创建一个名为Reservation的数据库。客户端和服务器之间是100M以太网连接。

5. 请简要说明部署图绘制的两个阶段的主要任务。

(1)确定所需的节点及节点间的连接关系

(2)根据实现描述节点

相关文档