要么存在要么不存在,除了通过消息描述货约束,没有其他的方法可以表示对象的创建或约束。时序图还可以表现对象的激活和去激活情况,但对于协作图来说,由于没有对时间的描述,所以除了对消息进行解释,它无法清晰的表示对象的激活和去激活情况。
2、 在顺序图和协作图中,应如何表示“循环”,“判断”等结构?
答:UML 中使用 约束来 判断或循环条件;表示循环,做法是在图上消息旁加上“*”,如:*[for each seat];用loop操作符亦可。用可选操作符alt(ernate)、 opt()来表示判断。 3、 什么是消息?消息在交互中扮演什么角色?
答:消息是对象之间某种方式的通信,它可以激发某个操作、唤起信号或导致目标对象保单创建或撤销。消息是两个对象之间的单路通信,从发送方到接收方的控制信息流。消息可以用于在对象之间传递参数;可以是信号;可以是调用。 4、 交互图中有哪几种消息?它们之间具体有何分别?应如何表
示?
答:消息可以分为四种,分别是1)简单消息,展示了控制如何从一个对象传递到另一个对象,但不描述任何通信的细节。用实线细箭头表示。2)同步消息,是一种嵌套的控制流,通常用操作调用来实现。用实线粗箭头表示。3)异步消息,异步控制流,没有明显的返回信息回送给调用者。用实现单箭头表示。4)返回消息,表示控制流从过程调用的返回。用虚线箭头表示。
5、 已知某一个用例实现的类图如下,下面四个选项中的时序图(图
中省略了消息编号、名称和返回消息),画出一个能和该类图对应的时序图。
6、 假设有一系统得协作图局部如图所示,print方法的功能是将传入的参数的值打印在屏幕上,fact方法是计算阶乘,如果test的初值为1,那么最终将打印出什么?(写出计算过程)
1: print(test)2: *[i=1..3] 1.1: test=test+fact(test):A:B
答: Int I,test; for(i=1;i<=3;i++) { test=test+fact(i); printf(“%d”,test);
} 最终打印的结果是:10
分析与结果
1、 讨论并总结在建模过程中运用交互图的重要作用及意义。
答:交互图常用于描述一个用例的行为,显示该用例中所涉及的对象以及这些对象之间的消息传递情况。时序图突出对象的执行时序,协作图能更加清楚的表示对象之间的静态链接关系;它们均能显示对象之间的合作关系。
2、继续前面的网上书店实例,为该实例中涉及的系统交互设计交互图。
上图是购物网站的“编辑购物车”用例中的部分的类图 用例描述: 基本事件流:
用户在Shopping Cart页面上修改购物车中商品数量,然后单击Update按钮。系统存储新的数量,然后计算并显示该商品的新价格。
用户单击Continue Shopping按钮。系统将控制权返回给浏览商品用例。 扩展事件流:
用户将商品数量改为0,则系统从购物车中删除该商品 用户点击Delete 按钮,系统从购物车中删除该商品 用户点击Check Out按钮,系统将控制权转到结账用例。
用户点击Clear Cart按钮,系统将购物车内所有商品删除。 请根据给出的类图,在下面的顺序图上画出“编辑购物车”用例内各个事件流(注意消息和类图提供的方法保持一致)。
:Customer:ShoppingCart:Item1: updatePage2: ContinueShopping3: checkOut4: clearPass to Check Out Use Case答:图如下:
:ShoppingCart