本文的目的是介绍UML用法及状态图,活动图介绍的详细情况,特别关注uml活动图和状态图的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解UML用法及状态图,活动图介绍的
本文的目的是介绍UML用法及状态图,活动图介绍的详细情况,特别关注uml活动图和状态图的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解UML用法及状态图,活动图介绍的机会,同时也不会遗漏关于2.3 UML活动图、EA画UML活动图中如何定义活动、EA画UML活动图中活动分区的示例分析、EA画UML活动图中活动是什么意思的知识。
本文目录一览:UML用法及状态图,活动图介绍(uml活动图和状态图)
统一建模语言UML(Unified Modeling Language)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
UML定义了5类,10种模型图:
1.用例图:从用户角度描述系统功能,并指各功能的操作者。
2.静态图:包括类图,包图,对象图。
类图:描述系统中类的静态结构
包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构
对象图:是类图的实例
3.行为图:描述系统动态模型和对象组成的交换关系。包括状态图和活动图
活动图:描述了业务实现用例的工作流程
状态图:是描述状态到状态控制流,常用于动态特性建模
4.交互图:描述对象之间的交互关系
顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互
合作图:描述对象之间的协助关系
5.实现图:
配置图:定义系统中软硬件的物理体系结构
UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。
此外,UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。在需求分析阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。分析阶段主要关心问题域中的主要概念(如抽象、类和对象等)和机制,需要识别这些类以及它们相互间的关系,并用UML类图来描述。为实现用例,类之间需要协作,这可以用UML动态模型来描述。在分析阶段,只对问题域的对象(现实世界的概念)建模,而不考虑定义软件系统中技术细节的类(如处理用户接口、数据库、通讯和并行性等问题的类)。这些技术细节将在设计阶段引入,因此设计阶段为构造阶段提供更详细的规格说明。
编程(构造)是一个独立的阶段,其任务是用面向对象编程语言将来自设计阶段的类转换成实际的代码。在用UML建立分析和设计模型时,应尽量避免考虑把模型转换成某种特定的编程语言。因为在早期阶段,模型仅仅是理解和分析系统结构的工具,过早考虑编码问题十分不利于建立简单正确的模型。
UML模型还可作为测试阶段的依据。系统通常需要经过单元测试、集成测试、系统测试和验收测试。不同的测试小组使用不同的UML图作为测试依据:单元测试使用类图和类规格说明;集成测试使用部件图和合作图;系统测试使用用例图来验证系统的行为;验收测试由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。
总之,标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。
本文主要介绍状态图和活动图。
一.状态图
状态(state)是指在对象的生命期中的某个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。所有对象都具有状态,状态是对象执行了一系列活动的结果,当某个事件发生后,对象的状态发生变化。
状态图(statechart diagram):
用来描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化。
并不是所有的类都需要画状态图,有明确意义的状态,在不同状态下行为有所不同的类才需要画状态图。如下,
一个机器的状态图
再如,CD Player的状态图
1.状态
一个状态有以下几个部分:状态名(name)、进入/退出动作(entry/exit action)、内部转移(internal transttion)、子状态(substate)、延迟事件(dferred event)。
状态可以细分为不同的类型,例如初态、终态、中间状态、组合状态、历史状态等。一个状态图只能有一个初态,但终态可以有一个或多个,也可以没有终态。
中间状态包括两个区域:名字域和内部转移域,如图所示。其中内部转移域是可选的。
横线上面是名字域,下面是转换域(可选)。
ntry/turnOn:当转入该状态时,做开灯动作。
do/blinkFivetimes:当处于该状态时,灯闪烁5次。do活动是只在状态内出现的活动,不能附加到转换上。
event poweroff/powerSupplySelf:当电源关闭事件发生时,用自备电源。
exit/turnOff:当转出该状态时,做关灯动作。
event selfTest/defer:当selfTest事件发生时,对象将延迟响应,到别的状态中再处理,用defer这个特定动作表示延迟。
2.状态图的要素
椭圆或圆角矩形:表示对象的一种状态,椭圆内部填写状态名
箭头:表示从箭头出发的状态可以转换到箭头指向的状态
事件:引起状态转换的原因。事件名可在箭头线上方标出
条件:事件名后加方括号,括号内写状态转换条件
实心圆:初始状态
内部实心的同心圆:最终状态
3.状态的类型
①按状态过程分:
②含有子状态的状态被称为组合或嵌套状态
组合状态可以使用“与”关系分解为并发子状态,或者通过“或”关系分解为互相排斥的顺序子状态。两种表示方法:
顺序子状态
如果一个组成状态的子状态对应的对象在其生命期内的任何时刻都只能处于一个子状态,即多个子状态之间是互斥的,不能同时存在,这种子状态称为顺序子状态。
并发子状态
有时组合状态有两个或者多个并发的子状态机,此时称组成状态的子状态为并发子状态。
③历史状态是伪状态, 其目的是记住从组合状态中退出时所处的子状态, 当再次进入组合状态时, 可以直接进入这个子状态, 而不是再从组合状态的初态开始。
浅(shallow)历史状态, 只记住最外层组合状态的历史。
深(deep)历史状态, 可以记住任意深度的组合状态的历史。
CD Player,running状态被打断到power on状态,再转回到running状态时,希望直接进入历史状态
4.转移(Transition)
转移是两个状态间的一种关系,表示对象将在当前状态中执行动作,并在某个特定事件发生或某个特定的条件满足时进入后继状态。 每个转移只允许有一个事件触发,一个事件只允许有一个动作。
①转移的五要素(注意格式)
格式:事件(参数)[条件]/动作
▪源状态
▪目标状态
▪触发事件
-如果箭头上不带任何事件名,表示是一个自动转换,当与源状态相关的活动完成时就会自动触发。
▪监护条件
▪动作
②转换的类型
内部转移:不导致状态改变的转移,不会执行entry和exit动作
外部转移
自转移
5.事件(Event)
事件是对一个时间和空间上占有一定位置的有意义的事情的规格说明。事件触发状态的转移。
四类主要事件:
▪信号事件
▪调用事件
▪变化事件
▪时间事件
①信号signer事件
对象之间通过发送信号和接收信号实现通信。信号是一种异步机制。在计算机中,鼠标和键盘的操作均属于此类事件。对于一个信号而言,对象一般都有相应的事件处理器,如onMouseClick()等。
②调用call事件
表示一个操作的调度。一个对象请求调用另一个对象的操作
信号是一个异步事件,而调用事件一般是同步的。也就是说,当对象调用另一对象的操作时,控制就从发送者传送到接收者,该事件触发转换,完成操作后,接收者转换到一个新的状态,控制返还给发送者。
③变化change事件
用关键字When,后面跟布尔表达式
When(temperature>120)/alerm()
变化事件的意图是要频繁测试表达式,只要表达式由假变为真,事件就会发生。
注意: 变化事件与监护条件的区别
④时间(time)事件
时间事件是指在绝对时间或在某个时间间隔内发生的事情所引起的事件。
例如到达某一时间或经过了某一时间段。用关键字When 或After表示。
6.状态图建模技术
建模步骤:
①找出适合用模型描述其行为的类。
②确定对象可能存在的状态。
③确定引起状态转换的事件。
④确定转换进行时对象执行的相应动作。
⑤对建模的结果进行相应的精化和细化。
二.活动图
1. 活动图的概念
活动图(activity diagram)是UML的动态视图之一,用来描述事物或对象的活动变化流程。活动图可看作状态图的特殊形式。特殊性在于活动图中的一个活动结束后将立即进入下一个活动而不需要事件触发活动的转移。
活动图用于描述系统的工作流程和并发行为。活动图被设计用于简化描述一个过程或操作的工作步骤。例如,可以用活动图对一个软件的开发过程建模;还可以对诸如求Fibnacci数列第n个数的数值之类的操作进行建模。
活动图示例:
2.活动图的组成元素:
▪活动(Activity)
▪动作流(Action Flow)
▪分支(Branch)与合并(Merge)
▪分叉(Fork)和汇合(Join)
▪泳道(Swimlane)
▪对象流(Object Flow)
3.活动
活动(activity)表示的是某流程中的任务的执行,它可以表示某算法过程中语句的执行。活动在活动图中表现为一个由一系列动作组成的非原子的执行过程。
动作状态(Action State)
活动状态(Activity State)
①动作状态
动作状态是指执行原子的、不可中断的动作,并在此动作完成后通过完成转换转向另一个状态的状态。
动作状态使用平滑的圆角矩形表示,动作状态所表示的动作写在圆角矩形内部。
②活动状态
活动状态是可分解的,不是原子的,其工作的完成需要一定的时间。
可把动作状态看作活动状态的特例。
活动状态的表示图标也是平滑的圆角矩形,并可以在图标中给出入口动作和出口动作等信息。
4.动作流
所有动作状态之间的转换流称之为动作流。
活动图的转换不需要特定事件的激发,一个动作状态执行完后自动转换到另外一个状态。
活动图的转换用带箭头的直线表示。
可用条件限制转换。
5.分支与合并
分支一般用于表示对象类所具有的条件行为。
条件行为用分支和合并表达。
一个分支有一个入转换和两个带条件的出转换,出转换的条件应当是互斥的。
一个合并有两个带条件的入转换和一个出转换,合并表示从对应的分支开始的条件行为的结束。
6.分叉与汇合
分叉用于将动作流分为两个或者多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。
分叉可以用来描述并发线程。
汇合代表两个或多个并发控制流同步发生,当所有的控制流都达到汇合点后,控制才能继续往下进行。
7.泳道
泳道将活动图中的活动化分为若干组,并把每一组指定给负责这组活动的业务组织,通常为对象。
泳道区分了负责活动的对象,明确地表示了哪些活动是由哪些对象进行的。
每个活动只能明确地属于一个泳道。
泳道用垂直实线绘出,垂直线分隔的区域就是泳道。在泳道上方可以给出泳道的名字或对象(对象类)的名字,该对象(对象类)负责泳道内的全部活动。
泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行,动作流和对象流允许穿越分隔线。
8.活动的分解
一个活动可以分为若干个动作或子活动,这些动作和子活动本身可以组成一个活动图。
一个不含内嵌活动或动作的活动称之为简单活动;一个嵌套了若干活动或动作的活动称之
为组合活动,组合活动有自己的名字和相应的子活动图。
一个包含子活动的活动和嵌套了子状态的组合状态类似,概念上也相对统一。
9.活动图的用途
▪对系统工作流程建模
工作流:是一个良好定义的动作序列,执行时将产生一个可观察的值,或者产生一个个体或实体的对象。
▪对工程组织过程建模
▪对算法流程建模
①对系统工作流的建模
②对工程组织过程建模
③对算法流程建模
10.活动图建模技术
①识别要对其工作流描述的类或对象。
②确定工作流的初始状态和终止状态,明确工作流的边界。
③对动作状态或活动状态建模。
④对动作流建模。
⑤对对象流建模。
⑥对建立的模型进行精化和细化
三.活动图与状态图的比较
1.活动图与状态图的相同点:
都是对系统的动态行为建模。
2.活动图与状态图的区别:
①描述对象不同
状态图:描述对象状态及状态之间的转移;
活动图:描述从活动到活动的控制流。
②使用场合不同
状态图:描述对象在其生命期中的行为状态变化;
活动图:描述过程的流程变化。
转自:https://www.cnblogs.com/jingwhale/p/4230235.html
2.3 UML活动图
活动图定义
活动图描述了在一个过程中,顺序的/并行的活动及其之间的关系
应用于商业过程、工作流(业务过程)、复杂算法的建模
活动图是顶点和弧的集合
活动节点
动作
流
对象值
注解和约束等
活动图基本建模元素
活动图的开始、结束、对象
活动节点
一个活动是一个过程中进行的非原子的执行单元
活动的执行最终延伸为一些独立动作(Action)的执行
分支
一个分支可以有一个进入流和多个离去流
在每个离去流上必须设置一个监护条件
条件放在方括号里
条件不能重叠,以免二义性
可以有 [else] 分支
两个控制路径可以重新合并,无需监护条件
活动图基本建模元素
分岔和汇合(Forking and Joining)
分岔表示把一个单独的控制流分成两个或多个并发的控制流
汇合表示两个或多个并发控制流的同步发生,一个汇合可以有两个或多个进入转移和一个输出转移
在UML中,用同步棒来说明并行控制流的分岔和汇合
同步棒是一条水平或垂直的粗线条
活动图基本建模元素
泳道
将一个活动图中的活动分组,每一组表示一个特定的类别、人或部门,他们负责完成组内的活动
每个组被称为一个泳道
用一条垂直的实线把它们分开
每个活动严格地属于一个泳道
转移可以跨越泳道
同步棒可以跨越泳道
泳道是包的一种
活动图小结
活动图
描述一项任务执行过程中所完成的工作(动作)
描述对象内部的工作
显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象
显示用例的实例如何执行动作以及如何改变对象状态
说明一次业务流程中的人(参与者)和对象是如何工作的
活动图与用例模型互为补充,主要用于需求分析阶段
活动图中的基本要素包括
活动(动作)、转移、分支、分叉和汇合、泳道、对象流等
EA画UML活动图中如何定义活动
这篇文章主要为大家展示了“EA画UML活动图中如何定义活动”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“EA画UML活动图中如何定义活动”这篇文章吧。
定义活动
定义活动有两种方式,直接定义和定义结构化活动。我们继续以定义一元二次方程为例说明定义活动,使用活动的方法。
直接定义
直接定义按照以下步骤进行:
拖动活动图工具条中如下Activity图标到活动图画面中。
打开活动的上下文菜单选择【New Child Element】-【Activity Parameter】项目增加活动参数并设定其属性。
定义复合结构图
-
拖动活动图工具条中如下Activity图标到活动图画面中。
-
打开活动的上下文菜单选择【New Child Diagram】-【Composite Structure Diagram】创建复合结构图。这时该活动表示如下:
使用活动
直接使用
直接定义活动以后,可以像输入输出管脚一样在参数节点上连接控制流,对象流。这就是上一篇文章中的场景。
调用活动
无论哪种方式定义的活动,在EA的Projectbrowser中的表示都是一样的。
Drop as:选择Invacation(Action)。
Name:输入调用的名称,此处相当于别名。
Structual:共有三个选项
Select:EA会接着显示如下【Strutual Element】对话框,可以从里面选出想要的管脚。
两种定义方式生成的活动被调时的表示都是一样的,但是双击复合调用活动符号时,定义复合结构图的活动会表示下一层次的活动图。而直接定义的活动只会显示属性对话框。
差不多十年之前,第一次带一个规模比较大,严格按照开发流程进行的项目时,就用到了流程图,那时候给大家讲动作和活动的区别时是这样说的:
如果表现的是函数(含操作,方法)调用,就用活动,如果是简单的处理就用动作。
今天从UML活动图的观点看来,这并不是一个准确的说法。
函数调用在活动图中是动作,不是活动,函数定义那部分才是。
以上是“EA画UML活动图中如何定义活动”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注小编行业资讯频道!
EA画UML活动图中活动分区的示例分析
这篇文章主要为大家展示了“EA画UML活动图中活动分区的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“EA画UML活动图中活动分区的示例分析”这篇文章吧。
活动分区在活动途中用来组织活动的职责。活动分区没有固定的意义,但是它通常对应于业务模型中的组织单元。也可以用它来指定一个类,该类负责完成一组任务。因为它的表示法,活动分区有时也被称为泳道(swimlane)。
示例1:bug处理流程
bug流程的参与者一共有四个:测试member,测试leader,开发menber,开发leader。
当然实际的流程要更复杂,比如检查过程中发现问题是需要重新填写报告等。篇幅有限,这里就省略了。
以上是“EA画UML活动图中活动分区的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注小编行业资讯频道!
EA画UML活动图中活动是什么意思
小编给大家分享一下EA画UML活动图中活动是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
语义
活动是对行为的说明,它描述了计算过程顺序和并发的步骤。状态机和活动有相似之处,它们都描述了一段时间中出现的状态序列以及引起状态之间改变的条件。两者的不同点在于状态机关注的是执行或者经历一次计算的单个对象的状态,而活动关注的则是计算本身的状态,它可能跨越多个对象,并且显式地对活动节点之间的控制流和信息流建模。
活动具有输入和输出参数,分别代表了提供给活动执行所需的值以及执行活动所产生的值。活动可以作为参数化的行为(behavIoUr)附加到其他各种行为上。
动作(活动也一样)要求其所有的输入上都出现令牌,并且会在所有的的输出上都产生令牌。
执行规则基本上是并发的。如果两个活动节点被不同的令牌集合激活,那么它们可以并发执行。这意味着节点之间没有内在的执行顺序。
----UML参考手册(第二版)
示例
上面的内容来自UML参考手册,理解中文本身没有问题,但是和实际结合起来就没有那么容易了。我们以前一篇文章中那个解一元二次方程流程为例进行说明。这部分就来就是原创了。先上图。
中间的圆角方框SolveEquation中的内容就是活动。该活动是对解一元二次方程的说明,它描述了计算过程顺序和并发的步骤。
SolveEquation活动具有3个输入参数(系数a,b,c)和1个输出输出参数solution,分别代表了提供给活动执行所需的值以及执行活动所产生的值。
SolveEquation的执行是并发的。如果两个活动节点被不同的令牌集合激活,那么它们可以并发执行。这节点之间没有内在的执行顺序。
当InputA动作(这里假设得到的a!=0)完成以后,执行令牌转移到InputB的同时,SolveEquation的输入a也得到执行令牌,SolveEquation内部使用a变量的节点的输入pin也同时得到令牌。
这里也包含判断a是否为0的判断节点。判断节点只有一个输入,已经具备了执行条件,因为a不等于0,所以计算delta值的动作的a管脚的得到令牌。
参见下图中红线部分。这一切可以认为是和InputB并发执行的。
在a!=0这个分支中一共有四个处理,下面3个处理需要等待delta的计算结果。而计算delta的处理需要等待b, c两个输入管脚上的令牌。
InputB处理结束以后,InputC处理的同时,b管脚得到令牌,同时分发给SolveEquation处理内部各个Action的b管脚。参见下图中蓝线部分。
这时计算delta的处理还差c管脚上的令牌没有到达,所有处理继续等待。
InputC处理结束后,c管脚得到令牌,分发给所有粉色线相连的管脚。终于可以计算delta值了。
delta值计算完成以后,根据判断结果,执行令牌被传送到适当的处理。该处理结束后,在输出管脚生成计算结果并随着令牌转移给SoloveEquation活动的输出管脚上。
以上是“EA画UML活动图中活动是什么意思”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注小编行业资讯频道!
关于UML用法及状态图,活动图介绍和uml活动图和状态图的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于2.3 UML活动图、EA画UML活动图中如何定义活动、EA画UML活动图中活动分区的示例分析、EA画UML活动图中活动是什么意思等相关内容,可以在本站寻找。
本文标签: