一、用例图
上午题,考的少;下午题,考的多。
1-1、用例图的定义
用例图展现了一组用例、参与者以及它们之间的关系。
用例图用于对系统的静态用例图进行建模。
可以用下列两种方式来使用用例图:
1、对系统的语境建模;
2、对系统的需求建模。
1-2、用例图包含以下内容:
1、用例
2、参与者
3、关系:
①用例之间的关系:扩展关系(《extend》)、包含关系(《include》)、泛化关系;
②参与者之间的关系:泛化关系;
③参与者和用例之间的关系:关联关系。
示例:
包含关系:
用例和用例之间的关系。
示例1:
用例可以理解为参与者(用户)的行为。
参与者与用例之间,关联关系:一条直线。
示例2:
扩展关系
用例和用例之间的关系。
一个用例执行时,可能会发生一些特殊的情况,或者可选的情况,这种情况就是用例的扩展用例。
示例1:特殊情况
示例2:可选情况
泛化关系
参与者-参与者;
用例-用例;
示例:
1-3、真题
真题1:
真题2:
二、 交互图
交互图用于对系统的动态方面进行建模。一张交互图表现的是一个交互。
类图、对象图、用例图:静态图
一张交互图由:一组对象、他们之间的关系、他们之间可能传递的消息。
交互图一般包括:对象、链、消息。
交互图的分类:
- 序列图:强调消息时间顺序的交互图;
- 通信图:强调接收、发送消息的对象的结构组织的交互图。
2-1、序列图(顺序图)
2-1-1、序列图的定义
序列图描述了以时间顺序组织的对象之间的交互活动。
示例:
首先把参加交互的对象放在图的上方,沿水平方向排列。
通常把发起交互的对象放在左边,下级对象依次放在右边。然后,把这些对象发送和接收的消息沿垂直方向按时间顺序从上到下放置。这样,就提供了控制流随时间推移的清晰的可视化轨迹。
2-1-2、序列图有两个不同于通信图的特点
1、序列图有对象生命线;
对象生命线是一条垂直的虚线,表示一个对象在一段时间内存在。
对象,生命线的开始、结束:
1、对象可以在交互过程中创建,他们的生命线从接收到构造型为create的消息时开始;
2、对象可以在交互过程中撤销,他们的生命线从接收到构造型为destory的消息时结束;(并给出一个×的标记)
2、序列图有控制焦点;
控制焦点是一个瘦高的矩形,表示一个对象执行一个动作所经历的时间段。
矩形的顶部,表示动作的开始,底部表示动作的结束。
2-1-3、序列图的消息:
2-1-4、序列图实例:
2-1-5、真题
真题1:
Account实现的方法,看指向Account类的箭头。
evaluation虽然也指向Account类,但是它不是一个方法,因为不是:evaluation()
真题2:
真题3:
2-2、通信图(协作图)
2-2-1、通信图的定义
通信图强调收发消息的对象的结构组织。
- 首先,将参加交互的对象作为图的顶点;(矩形)
- 然后把连着这些对象的链作为图的弧;(直线)
- 最后用对象发送和接收的消息来修饰这些链。
2-2-2、通信图有两个不同于序列图的特性
1、通信图有路径。
为了指出一个对象如何与另一个对象链接,可以在链的末端附上路径构造型(如构造型《local》,表示指定对象对发送者而言是局部的)。
通常只需要显式地表示以下几种链的路径:local(局部)、parameter(参数)、global(全局)以及self(自身),但不必表示 association(关联)。
2、通信图有顺序号。
表示一个消息的时间顺序,可以给一个消息加上一个数字前缀。(从1号消息开始),在控制流中,每个新消息的顺序号单调增加(如 2、3等)。
为了显示嵌套,可使用带小数点的号码(1表示第一个消息;1.1 表示嵌套在消息1中的第一个消息,1.2 表示嵌套在消息1中的第二个消息,等等)。嵌套可为任意深度。
还要注意的是,沿同一个链可以显示许多消息(可能发自不同的方向),并且每个消息都有唯一的一个顺序号。
序列图和通信图是同构的,它们之间可以相互转换。
2-2-3、通信图的实例
2-2-4、真题
真题1:
真题2: