一、时序图简介(Brief introduction) 时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。
顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。
二、时序图元素(Sequence Diagram Elements) 角色(Actor) 系统角色,可以是人、及其甚至其他的系统或者子系统。 对象(Object) 对象包括三种命名方式: 第一种方式包括对象名和类名; 第二中方式只显示类名不显示对象名,即表示他是一个匿名对象; 第三种方式只显示对象名不显示类明。
2 顺序图的创建对象
在一个顺序图上注明对象的创建通常有两种方法。 首先,你可以用版型来发送一个消息,如同图2如。中所示OrderCheckout所示的那样。 其次,你可以通过把图中分类器位置下移,在其侧面调用一个消息的方式直接的显示创建,如你在图1所见的theStudent和图⒉的CreditCardPayment。直接方法的最主要的好处是它可以形象的表示出对象从无到有的逻辑。
为软件消息使用 *** 作符号。
当一个消息被发给一个软件实现的分类器时,例如类、接口、或组件。通用的准则是使用实现语言的语法来描述消息名。 例如,在图3中,消息mit ( transactionID)被发送给source account对象,它使用了类似于Java、C++、和C_#语言的语法。
为涉及人和组织角色的消息使用叙述性文字。
当一条消息的来源或目标人或组织的角色时,需要使用简短的叙述性文字来描述传达的信息、来标记消息。 例如,在图1中,被student角色发送出的消息是provides name和provides student number,它们描述了这个人在做什么。
推荐使用参数名称,而不是参数类型
注意在图3中,大多数的消息都使用参数名称来注明参数,而不是使用类型。唯一的例外是start ()消息中传递的UserID参数。 这可以使你正确地判定该消息传递了什么值,有时候类型信息是不够的。 例如,消息addDeposit ( amount, target, transactionID)传达的信息要比addDeposit ( Currency, Account, int)多。
3 时序图与顺序图,该怎么解决
是强调消息时间顺序的交互图。时序图描述类系统中类和类之间的交互,它将这些交互建模成消息交换。时序图是一个模型,用于描述对象间如何随着时间在某些行为方面进行协作。(强调的是消息的时间顺序)
2 顺序图的作用
1) 顺序图用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类 *** 作或状态机中引起转换的事件。
2) 顺序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。 顺序图属于动态建模。
3) 顺序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。表示了对象之间传送消息的时间顺序。
4) 对类图的完善。
4 在uml中,状态图,协作图,活动图,顺序图在系统分析中各起到了什
你说的这四个框图都是动态视图,状态图主要表示一个对象不同状态之间的变化关系;
协作图在uml14中和序列图是可以互相转换的,在uml2以上版本中没有这个了,改为通信图了,主要表示不同对象之间的通信协作关系;
活动图主要表示一个流程,比如一个用例的流程,一个类的流程等;
序列图也可以叫顺序图,表示对象之间交互的生命过程;
更多UML框图的详细介绍可以参考trufun的在线帮助系统,有详细的介绍和文档案例讲解。
类图画法
1、 类图的概念
A、显示出类、接口以及它们之间的静态结构和关系
B、用于描述系统的结构化设计
2、 类图的元素
类、接口、协作、关系,我们只简单介绍一下这四种元素。
同其他的图一样,类图也可以包含注解和限制。
类图中也可以包含包和子系统,这两者用来将元素分组。
有时候你也可以将类的实例放到类图中。
3、 类
A、 类是对一组具有相同属性、 *** 作、关系和语义的对象的抽象,它是面向对象系统组织结构的核心,包括名称部分(Name)、属性部分(Attribute)和 *** 作部分(Operation),见下图。
B、 类属性的语法为:
[可见性] 属性名 [:类型] [=初始值] [{属性字符串}]
可见性:公有(Public)“+”、私有(Private)“-”、受保护(Protected)“#”
类 *** 作的语法为:
[可见性] *** 作名 [(参数表)] [:返回类型] [{属性字符串}]
可见性:公有(Public)“+”、私有(Private)“-”、受保护(Protected)“#”、包内公有(Package)“~”
参数表:
定义方式:“名称:类型”;若存在多个参数,将各个参数用逗号隔开;参数可以具有默认值;
属性字符串:
在 *** 作的定义中加入一些除了预定义元素之外的信息。
4、 接口
在没有给出对象的实现和状态的情况下对对象行为的描述。
一个类可以实现一个或多个接口。
使用两层矩形框表示,与类图的区别主要是顶端有<>显示:
也可以用一个空心圆表示:
5、 协作
协作是指一些类、接口和其他的元素一起工作提供一些合作的行为,这些行为不是简单地将元素加能得到的。例如:当你为一个分布式的系统中的事务处理过程建模型时,你不可能只通过一个类来明白事务是怎样进行的,事实上这个过程的执行涉及到一系列的类的协同工作。使用类图来可视化这些类和他们的关系。
6、 关系
这篇文章的重点,详见第二部分。
二、类之间的几种关系
1、 泛化(Generalization)
A、 是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为,描述了一种“is a kind of” 的关系。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
B、 用带空心箭头的实线表示,箭头指向父类,如下图:
2、 实现(Realization)
A、 是一种类与接口的关系,表示类是接口所有特征和行为的实现。
B、 用带空心箭头的虚线表示,箭头指向接口,如下图:
3、 关联(Association)
A、 一般关联
a、 关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法,指明了事物的对象之间的联系,如:老师与学生、丈夫与妻子。关联可以是双向的,也可以是单向的,还有自身关联。
b、 用带普通箭头的实心线表示。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,如下图:
B、 聚合(Aggregation)
a、 它是整体与部分(整体 has a 部分)的关系,且部分可以离开整体而单独存在,如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。聚合关系是关联关系的一种,是强的关联关系,关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
b、 用带空心菱形的实线表示,菱形指向整体,如下图:
C、 组合(Composition)
a、 它是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
b、 用带实心菱形的实线表示,菱形指向整体,如下图:
4、 依赖(Dependency)
A、 元素A的变化会影响元素B,那么B和A的关系是依赖关系,B依赖A。要避免双向依赖,一般来说,不应该存在双向依赖。关联、实现、泛化都是依赖关系。
B、 用带箭头的虚线表示,箭头指向被依赖元素。
5、 总结
各种关系的强弱顺序如下:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
下面这张UML图,比较形象地展现了各种类图关系:
uml中按快捷键F5可以将类图转换成顺序图。uml中提供了顺序图和协作图之间的自动转换功能,快捷键F5,可以将类图转换成顺序图,说明了它们之间高度的相似性,但是它们也有各自的特点和优势。
顺序图是将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。
UML用例图如下所示,是表示系统角色和用例之间关系的框图。
在trufun工具中,一般 *** 作顺序是,新建UML项目,新建框图--用例图,就会显示用例图绘制元素,通过拖拽到绘图区就可以创建我们自己的用例图。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)