UML的九种图今天终于画完了,是该总结一下的时候了。
自己在画图的过程中是按照面向对象的思想和软件工程的需求分析一步步的完成,明白了这两个道理之后,感觉画图时也不是很难。唯一困难的就是在rational rose的的使用上,出现了一个小麻烦,特别是在画时序图的过程中,很多小的操作使用不上或者可以说成根本就不会,这有点打击我的自信心。例如:生命线是怎样出现的、这个图标又是什么,如何出现的。还好有提高班盲人摸象的理论支撑着我继续前进着。
既然在画时序图的时候出现了一个小的插曲,那么自己就好好讲讲时序图。其他图略。可见博客链接:
一、
在UML的表示中,时序图将交互关系表示为一个二维图。其中,纵向是时间轴,时间沿竖线向下延伸。横向代表了在协作中各独立对象的角色。角色使用生命线进行表示,当对象存在时,生命线用一条虚线表示,此时对象不处于激活状态,当对象的过程处于激活状态时,生命线是一个双道线。时序图中的消息使用从一个对象的生命线到另一个对象生命线的箭头表示,箭头以时间顺序在图中从上到下排列。
时序图作为一种描述在给定语境中消息是如何在对象间传递的图形化方式,在使用其进行建模时,主要可以将其用途分为以下三个方面:
(1)确认和丰富一个使用语境的逻辑表达。一个系统的使用情境就是系统潜在的使用方式的描述,也就是它的名称所要描述的。一个使用情境的逻辑可能是一个用例的一部分,或是一条控制流。
(2)细化用例的表达。我们前面已经提到,时序图的主要用途之一,就是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的时序图。
(3)有效地描述如何分配各个类的职责以及各类具有相应职责的原因。我们可以根据对象之间的交互关系来定义类的职责,各个类之间的交互关系构成一个特定的用例。
•时序图中的对象可以是系统的参与者或者任何有效的系统对象。对象的表示形式也和对象图中的对象的表示方式一样,使用包围名称的矩形框来标记,所显示的对象及其类的名称带有下划线,二者用冒号隔开,使用“对象名:类名”的形式,对象的下部有一条被成为“生命线”的垂直虚线。
2. 生命线
生命线(Lifeline)是一条垂直的虚线,用来表示时序图中的对象在一段时间内的存在。
每个对象的底部中心的位置都带有生命线。生命线是一个时间线,从时序图的顶部一直延伸到底部,所用时间取决于交互持续的时间,也就是说生命线表现了对象存在的时段。
对象与生命线结合在一起称为对象的生命线。对象的对象存在的时段包括对象在拥有控制线程时或被动对象在控制线程通过时存在。当对象在拥有控制线程时,对象被激活,作为线程的根。如下图所示:
时序图可以描述对象的激活(Activation),激活是对象操作的执行,它表示一个对象直接地或通过从属操作完成操作的过程。它对执行的持续时间和执行与其调用者之间的控制关系进行建模。
激活在时序图中用一个细长的矩形框表示,它的顶端与激活时间对齐而底端与完成时间对齐。被执行的操作根椐不同风格表示成一个附在激活符号旁或在左边空白处的文字标号。
消息(Messages)是从一个对象(发送者)向另一个或几个其他对象(接收者)发送信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作。
它可以有不同的实现方式,比如过程调用、活动线程间的内部通讯、事件的发生
等。
创建一个对象指的是发送者发送一个实例化消息后实例化对象的结果。
销毁对象指的是将对象销毁并回收其拥有的资源,它通常是一个明确的动作,也可以是其它动作、约束或垃圾回收机制的结果。
在时序图中,创建对象操作的执行使用消息的箭头表示,箭头指向被创建对象的框。
在时序图中,对象被销毁是使用在对象的生命线上画大×表示,在销毁新创建的对象,或者时序图中的任何其他对象时,都可以使用。它的位置是在导致对象被销毁的信息上,或者在对象自我终结的地方。
在UML中,存在两种方式可以来修改时序图中消息的控制流,分别是:分支和从属流。分支是指的是从同一点发出多个消息的并指向不同的对象,根据条件是否互斥,可以有条件和并行两种结构。由于时序图只表示某一个活动按照时间顺序的经历过程,所以在Rational Rose 2003中,对时序图的分支画法没有明显的支持。
从属流指的是从同一点发出多个消息指向同一个对象的不同生命线。从属流在Rational Rose 2003中不支持,因为添加从属流以后会明显增加时序图的复杂度。
四、使用Rose创建时序图
创建一个新的类图,可以通过以下方式进行。
(1)右键单击浏览器中的Use CaseView(用例视图)、Logical View(逻辑视图)或者位于这两种视图下的包。
(2)在弹出的菜单中,选中“New”(新建)下的“Sequence Diagram”(时序图)选项。
(3)输入新的时序名称。
(4)双击打开浏览器中的时序图。
当对象被创建后,生命线便存在。当对象被激活后,生命线的一部分虚线变成细长的矩形框。
在Rational Rose 2005中,是否将虚线变成矩形框是可选的,我们可以通过菜单栏设置是否显示对象生命线被激活时的矩形框。
设置是否显示对象生命线被激活的矩形框步骤为:在菜单栏中选择“Tools”(工具)下的“Options”(选项)选项,在弹出的对话框中选择“Diagram”(图)选项卡,选择或取消“Focus of control”选项。
在时序图中添加对象与对象之间的简单消息的步骤如下:
(1)选择时序图的图形编辑工具栏中的图标,或者选择菜单栏“Tools”(工具)中“Create”(新建)下的“Object Message”选项,此时的光标变为“↑”符号。
(2)单击需要发送消息的对象。
(3)将消息的线段拖动到接收消息的对象中。
(4)在线段中输入消息的文本内容。
(5)双击消息的线段,弹出设置消息规范的对话框,在弹出的对话框中,在“General”选项卡中可以设置消息的名称或等,消息的名称也可以是消息接收对象的一个执行操作,我们在名称的下列菜单中选择一个或从新创建一个即可,我们称之为消息的绑定操作。
(6)如果需要设置消息的同步信息,也就是说设置消息成为简单消息、同步消息、异步消息、返回消息、过程调用、阻止消息和超时消息等,可以在“Detail”选项卡中进行设置,还可以设置以消息的频率。
4. 创建对象与销毁对象
由于创建对象操作也是消息的一种,我们仍然可以通过发送消息的方式创建对象。在时序图的图形表示中,和其它对象不一样的是,其它对象通常唯一图的顶部,被创建的对象通常位于图的中间部位。
销毁对象表示对象生命线的结束,在对象生命线中使用一个“X”来进行标识。给对象生命线中添加销毁标记的步骤如下:
(1)在时序图的图形编辑工具栏中选择按钮,此时的光标变为“+”符号。
(2)单击欲销毁对象的生命线,此时该标记在对象生命线中标识。该对象生命线自销毁标记以下的部分消失。如下图所示:
以上就是时序图的学习。
至此UML九种图的学习也该高一段落了。
下一步该进入C#的学习了!!!