UML课后习题答案资料 下载本文

内容发布更新时间 : 2024/6/29 18:27:29星期一 下面是文章的全部内容请认真阅读。

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)*[i=1..3]1.1: test=test+fact(test):A:B 图7-29 协作图局部

打印的值是10。将执行三次迭代,因此test的值是1+1!+2!+3!=10. 7. 请说明图7-30所示的顺序图的含义:

:Caller1: do(x)alt:A:B:C[x<10]2: calculate(x)[else]3: calculate(x) 图7-30 顺序图示例

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

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

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

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

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

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

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

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

:Queue1.1: *[all queues] len=Length()1.3:Invoke(job)2: nextjob=Get.job():Elevator:Elevator Control《parameter》job《local》next job1.2: Create():Order1: getElevator(floorid):Button1: Push()图7-31 通信图示例

1、 用户按下按钮;

2、 按钮将向Elevator Control查询电梯当前所在的楼层号 3、 Elevator Control创建一个新的命令,并加到队列中 4、 Elevator Control调用队列中的任务,队列获取下一个任务

第8章 活动图

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

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

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

不正确,活动终点可以有多个,但初始节点有且只有能一个。 3. 分岔和分支有什么区别?

分岔表示的是并行流,分支则是任务的不同变体。 4. 在活动图中,监护条件有什么用?请举例说明。

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

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

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

i=0i<9Y循环内工作Ni=i+1

假设,要表示的是对某个集合对象进行遍历访问,那么又应该怎么做? 条件上写作“是否为集合对象的最后一项”,或者“<集合长度”

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

(a)图8-19 分岔与汇合

(b)

(a)表示分岔,(b)不确定,因为分岔点只能有一个箭头进,汇合点只能出一个箭头。 7. 在活动图中泳道要怎么表示,在需要表示什么信息时,需要用到它? 用一条垂直的线分隔,表示不同的参与角色,例如流程图中的不同部门。

8. 如果要表示出某个活动节点的输入参数和输出参数,那么应该如何做?如果还要表示异常的输出信息,则应该如何做? 用引脚表示。异常用空心三角形表示。

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