序列图

目录

序列图的基本概念

序列图的组成


序列图的基本概念

序列图是对象之间基于时间顺序的动态交互,它显示出了随着时间的变化对象之间是如何进行通讯的。序列图的主要用途之一是从一定程度上更加详细的描述用例表达的需求,并将其转化为进一步的更加正式层次的精细表达。

序列图的含义

序列图与下一章要讲的协作图都是交互图,彼此等价。序列图用于表现一个交互,该交互是一个协作中各种类元角色间的一组消息交换,侧重于强调时间顺序。所谓交互是指在具体语境中由为实现某个目标的一组对象之间进行交互的一组消息所构成的行为。UML提供的交互机制通常被用来对两种情况进行建模,分别是为系统的动态行为方面建模和为系统的控制过程进行建模。面向动态行为方面进行建模时,该机制通过描述一组相关联、彼此相互作用的对象之间的动作序列和配合关系,以及这些对象之间传递、接收的消息来描述系统为实现自身的某个功能而展开的一组动态行为。面向控制流进行建模时,可以针对一个用例、一个业务操作过程或一个系统操作过程,也可以针对整个系统。描述这些控制问题的着眼点是消息在系统内如何按照时间顺序被发送、接收和处理。

序列图在项目开发里的作用

序列图作为一种描述在给定语境中消息是如何在对象间传递的图形化方式,在使用其进行建模时,主要有以下三方面用途:确认和丰富一个使用语境的逻辑表达;细化用例的表达;有效的描述如何分配各个类的职责以及各类具有相应职责的原因。

序列图的组成

序列图是由对象、生命线、激活和消息等构成的。

对象:序列图中的对象和对象图中的对象的概念一样,都是类的实例。序列图中的对象可以是系统的参与者或者任何有效的系统对象。对象的表示形式也和对象图中对象的表达方式一样,使用包围名称的矩形框来标记,所显示的对象及其类的名称带有下划线,二者用冒号隔开,使用“对象名:类名”的形式,对象的下部有一条被称为“生命线”的垂直虚线。

生命线:生命线是一条垂直的虚线,用来表示序列图的对象在一段时间内的存在。每个对象底部中心的位置都带有生命线。生命线是一个时间线,从序列图的顶部一直延伸到底部,所用时间取决于交互持续的时间,也就是说生命线表现了对象存在的时段。

激活:序列图可以描述对象的激活,激活是对象操作的执行,他表示一个对象直接或通过从属操作完成操作的过程。他对执行的持续时间和执行与其调用者之间的控制关系进行建模。在传统的计算机和语言上,激活对应栈帧的值。激活是执行某个操作的实例,它包括这个操作调用其他从属操作的过程。

消息:消息是从一个对象向另一个或几个对象发送信号,或由一个对象调用另一个对象的操作。它可以有不同的实现方式,比如过程调用、活动线程间的内部通信、事件的发生等。

posted @ 2018-11-25 23:28  strawqqhat  阅读(904)  评论(0编辑  收藏  举报
#home h1{ font-size:45px; } body{ background-image: url("放你的背景图链接"); background-position: initial; background-size: cover; background-repeat: no-repeat; background-attachment: fixed; background-origin: initial; background-clip: initial; height:100%; width:100%; } #home{ opacity:0.7; } .wall{ position: fixed; top: 0; left: 0; bottom: 0; right: 0; } div#midground{ background: url("https://i.postimg.cc/PP5GtGtM/midground.png"); z-index: -1; -webkit-animation: cc 200s linear infinite; -moz-animation: cc 200s linear infinite; -o-animation: cc 200s linear infinite; animation: cc 200s linear infinite; } div#foreground{ background: url("https://i.postimg.cc/z3jZZD1B/foreground.png"); z-index: -2; -webkit-animation: cc 253s linear infinite; -o-animation: cc 253s linear infinite; -moz-animation: cc 253s linear infinite; animation: cc 253s linear infinite; } div#top{ background: url("https://i.postimg.cc/PP5GtGtM/midground.png"); z-index: -4; -webkit-animation: da 200s linear infinite; -o-animation: da 200s linear infinite; animation: da 200s linear infinite; } @-webkit-keyframes cc { from{ background-position: 0 0; transform: translateY(10px); } to{ background-position: 600% 0; } } @-o-keyframes cc { from{ background-position: 0 0; transform: translateY(10px); } to{ background-position: 600% 0; } } @-moz-keyframes cc { from{ background-position: 0 0; transform: translateY(10px); } to{ background-position: 600% 0; } } @keyframes cc { 0%{ background-position: 0 0; } 100%{ background-position: 600% 0; } } @keyframes da { 0%{ background-position: 0 0; } 100%{ background-position: 0 600%; } } @-webkit-keyframes da { 0%{ background-position: 0 0; } 100%{ background-position: 0 600%; } } @-moz-keyframes da { 0%{ background-position: 0 0; } 100%{ background-position: 0 600%; } } @-ms-keyframes da { 0%{ background-position: 0 0; } 100%{ background-position: 0 600%; } }