本节向大家介绍一下UML2.0规范改善了结构建模的性能,主要包括顺序框图和时序框图等内容,相信通过本节的学习你对改善结构建模的性能有一定的认识。下面让我们一起来看一下具体介绍。
UML2.0规范改善了结构建模的性能
UML2.0完全建立在UML1.x基础之上,大多数的UML1.x模型在UML2.0中都可用。但UML2.0在结构建模方面有一系列重大的改进,包括结构类、精确的接口和端口、拓展性、交互片断和操作符以及基于时间建模能力的增强。当然还有时序框图,但如果你不使用这些功能,也就不用担心这些特性,因为仅使用类框图、顺序框图和状态框图仍可建立非常复杂的实时嵌入式系统。
顺序框图
对顺序框图进行修改主要是要达到两个目标:改进“规格性”(定义事务的能力)和“拓展性”。最明显的改变在后一个目标中得到体现。顺序框图可以被分解成“交换片段”,而这些片段既可以表示在同一个或者另外的顺序框图中。
虽然UML2.0的顺序框图看起来与UML1.x的非常相像,例如它们都有生命线(lifeline)、消息等,但两者也有很明显的不同。其中一个不同是在框图右上角有一个5边形的盒子(见图4),它是交互片断的“操作符”。在这个框图中,我们看到“sd例子”。操作符sd是该片断的名字。在这个大框图中,还可以看到嵌套的另一个顺序框图,它的名字是“alt”,是“alternative”的缩写(If/Then/Else),它作用于被嵌套的片断。如果监视点(Guard)的值为“TRUE”,则这个片断的上半部分被执行;相反地,如果“else”监视点的值为“TRUE”,则执行下部分片断。这个标记比起UML1.x中的分支标记更加有效,同时还注意到了递归性。交互片断也可以包含一些嵌套的交互片断,而它们都有适用于自已整个(嵌套的)片断的操作符。
这些操作符包括:Sd――命名顺序框图;ref――引用“交互片断”;loop――重复交互片断;alt――选择;par――并发(平行)区域;seq――部分顺序(缺省值);strict――严格排序;assert――必需的;opt――可选的“模板”;neg――“不可能发生”或有问题的规范。ref操作符允许引用在单独框图中定义的交互片段.
生命线也可以按照图5所示进行分解。这时实例线“ServiceBase”可以分解成另一个框图(图5右下角中的小框图)。消息的进入或退出点被称作“门(gate)”,它们能让工具确保顺序框图之间的兼容性和一致性.
时序框图
顺序框图是观察服务要求顺序的一个有效方法,但它还只是观察时间相关动作的一个次优方法。为了更详细表达时序,我开发时序框图,它们现在已经被UML2.0所采用并只做了很小修改。图6表示了一个简单的时序框图,竖轴表示状态,横轴表示时间。竖轴方向的值通常是离散的,比如状态和一些枚举类型的值。时序框图中离散值的数轴很常见,所有重要离散情况都可以使用,甚至是逻辑值或数学表达式。时序框图也包含顺序框图中的其它元素,例如门、消息和约束。
图7显示了多个实例在时间上的协调关系,实例由虚线隔开。连续值有两种表现形式。缺省形式如图8的下半部分所示,值被保持直到它被改变。选取它作为缺省值是因为大多数离散系统都是严格据此工作的。对于值可在其中连续变化的物理过程和系统工程环境,可替代的形式可能更加适合。
其它资料
UML2.0的内容远比前面介绍的要多。可能最重要的一点是,UML1.x模型在大部分情况下都将继续有效。这里对内部元模型结构做了大量重新设计、再设计工作,并且随着对技术细节不断地推敲,这一工作还将继续。许多细小而重要的(对于某些人)的变化正在发生,如关联性(association)、关联子集、合并动作、活动等。虽然UML的基本性质和表现力没有变化,但仍有必要提及以下三件重大事项。
第一,交互框图将活动框图和顺序框图结合在一起,使活动框图成为了一系列顺序框图的“主框图”。这样人们就可以建立一个顺序框图的”地图”,从而很容易地在其中浏览.
第二,在UML1.x中,活动框图和状态框图具有同样的语义。换句话说,它们表达同样的事情,但用了不同的标记。在UML2.0中,活动框图是基于Petri网络令牌语义,而不是基于有限状态自动控制,因此更具有表现力。虽然它对计算算法不是很重要,但是对过程建模很有帮助。
第三,UML2.0包含了表示结构元素(对象)之间数据流动的流程框图(FlowDiagrams)。它与协作框图(collaborationdiagram)中的信息流动类似,但不完全相同。对于那些希望构建数据流框图式模型的建模者,可按照图9的UML方式进行建模。
本文小结
UML2.0是完全建立在UML1.x基础之上,大多数的UML1.x模型在UML2.0中都可用。但UML2.0在结构建模方面有一系列重大的改进,包括结构类、精确的接口和端口、拓展性、交互片断和操作符以及基于时间建模能力的增强。当然还有时序框图,但如果你不使用这些功能,也就不用担心这些特性,因为仅使用类框图、顺序框图和状态框图仍可建立非常复杂的实时嵌入式系统。
【编辑推荐】