标准建模语言UML的动态建模机制

1.消息

在面向对象技术中,对象间的交互是通过对象间消息的传递来完成的。在UML的四个动 态模型中均用到消息这个概念。通常,当一个对象调用另一个对象中的操作时,即完成了一次消息传递。 当操作执行后,控制便返回到调用者。对象通过相互间的通信(消息传递)进行合作,并在其生命周期中根 据通信的结果不断改变自身的状态。

在UML中,消息的图形表示是用带有箭头的线段将消息的发送 者和接收者联系起来,箭头的类型表示消息的类型,如图2所示。


UML定义的消息类型有三种:

简单消息(Simple Message) 表示简单的控制流。用于描述控制 如何在对象间进行传递,而不考虑通信的细节。

同步消息(Synchronous Message) 表示嵌套的控 制流。操作的调用是一种典型的同步消息。调用者发出消息后必须等待消息返回,只有当处理消息的操作 执行完毕后,调用者才可继续执行自己的操作。

异步消息(Asynchronous Message) 表示异步控制 流。当调用者发出消息后不用等待消息的返回即可继续执行自己的操作。异步消息主要用于描述实时系 统中的并发行为。

2.状态图

状态图(State Diagram)用来描述一个特定对象的所有可能 状态及其引起状态转移的事件。大多数面向对象技术都用状态图表示单个对象在其生命周期中的行为。 一个状态图包括一系列的状态以及状态之间的转移。

(1) 状态 所有对象都具有状态,状态是对 象执行了一系列活动的结果。当某个事件发生后,对象的状态将发生变化。状态图中定义的状态有:初态 、终态、中间状态、复合状态。其中,初态是状态图的起始点,而终态则是状态图的终点。一个状态图只 能有一个初态,而终态则可以有多个。

中间状态包括两个区域:名字域和内部转移域,如图3所示。 图中内部转移域是可选的,其中所列的动作将在对象处于该状态时执行,且该动作的执行并不改变对象的 状态。


一个状态可以进一步地细化为多个子状态,我们将可以进一步细化的 状态称作复合状态。子状态之间有"或关系"和"与关系"两种关系。或关系(如图4) 说明在某一时刻仅可到达一个子状态。例如,一个处于行驶状态的汽车,在"行驶"这个复合状 态中有向前和向后两个不同的子状态,在某一时刻汽车要么向前,要么向后。与关系( 如图5)说明复合状 态中在某一时刻可同时到达多个子状态(称为并发子状态)。具有并发子状态的状态图称为并发状态图。


(2) 转移 状态图中状态之间带箭头的连线被称为转移。状态的变迁通常是由事件触发的,此时应 在转移上标出触发转移的事件表达式。如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自 动触发转移。

时间: 2024-07-30 03:23:35

标准建模语言UML的动态建模机制的相关文章

统一建模语言UML轻松入门之基本概念

概念 20 世纪80 年代,随着面向对象技术成为研究的热点,先后出现了几十种面向对象的软件开发方法.其中,Booch.OMT 和OOSE等方法得到了广泛的认可.然而,采用不同方法进行建模不利于开发者之间的交流.而UML则统一了Booch.OMT 和OOSE 的表示方法,而且对其作了进一步的发展.1997 年,UML 被国际对象组织OMG采纳为面向对象的建模语言的国际标准,它溶入了软件工程领域的新思想.新方法和新技术.UML不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程.数

《面向对象分析与设计》一1.6关于统一建模语言UML

1.6关于统一建模语言UML UML最初是在多种面向对象分析与设计方法相互融合的基础上形成的,后来发展成为也可以用于业务建模以及其他非软件系统建模的语言.它于1997年11月被对象管理组织(Object Management Group)采纳为建模语言规范,随后被产业界和学术界广泛接受. UML定义了建立系统模型所需要的概念并给出了表示法,但它并不涉及如何进行系统建模.因此它只是一种建模语言,而不是一种建模方法.UML是独立于开发过程的,也就是说它可以适用于不同的开发过程. UML 2.4规范由

统一建模语言UML轻松入门之综合实例

"例,比也"(<说文>),本次连载将给出一个利用UML进行建模的完整实例,综合应用前面学到的知识,达到"举此以例其余"(元刘壎<隐居通议·欧阳公>)的目的. 在我国十年前ATM(自动取款机)还是一个很新鲜的事物,现在在城市的大街小巷随处可见.我们在日常生活中也经常和ATM打交道.本章我们将以简化的ATM系统为例将前面几章中学到的用例图.类图.顺序图.状态图.活动图及协作图知识运用到此例中. 5.1用例图 参与者"银行储户"

uml建模语言-uml中的关系都有什么别名

问题描述 uml中的关系都有什么别名 最近刚学了uml,其中有五个关系:依赖,关联,聚合,泛化,实现.这五个关系是否还有别的名字表达,比如包含,他和上面那个关系是对等的 解决方案 (1).用例图:展示系统外部的各类执行者与系统提供的各种用例之间的关系 (2).类图:展示系统中类的静态结构(类是指具有相同属性和行为的对象,类图用来描述系统中各种类之间的静态结构) (3).对象图:是类图的一种实例化图(对象图是对类图的一种实例化) (4).包图:是一种分组机制.在UML1.1版本中,包图不再看作一种

JAVA与模式 学习笔记(一) 统一的建模语言UML介绍(2

  三.类图        类图就是显示出类.接口以及它们静态结构和关系的图.类图的基本元素是类或者接口. 类的框可分为一下几层 类名 属性清单 方法清单 性质清单       如果一个类有内部成员类,那么它的类图就会有5层.在类图中,除了类名层不能省略必须显示外,其他几层在UML中都可以省略的.        第一层是类名,如果类名为正体字,表明类是具体的(Concrete,即可以实例化的),变量名如果是斜体的,表明类是抽象的.         第二层是属性层.左面如果有+号,表明它是publ

数据仓库专题18-数据建模语言IDEF(转载)

1引言 IDEF的含义是集成计算机辅助制造(Integrated Computer-AidedManufacturing,ICAM)DEFinition.最初的IDEF方法是在美国空军ICAM项目建立的,最初开 发3种方法:功能建模(IDEF0).信息建模(IDEF1).动态建模(IDEF2),后来,随着信息系统的相继开发,又开发出了下列IDEF族方法: 数据建模(IDEF1X).过程描述获取方法(IDEF3).面向对象的设计(OO设计)方法(IDEF4).使用C++语言的OO设计方法 (IDE

请教C#动态建模,类似visio界面编程

问题描述 求教一下,C#怎么实现使用模块库动态建模的程序,类似下图visio软件中从左边窗体拖拽图形模块在右边窗体建立模型感谢大神不吝赐教 解决方案 解决方案二:这个说起来复杂了,因为是一整套的设计.如果你完全不会,还不如买套现成的二次开发.解决方案三:模块库用usecontrol创建,引用进来,放到容器里面就可以了啊解决方案四:1.简单情况,类似控件拖放实现.2.复杂情况,GDI+分层绘制+数据模型.解决方案五:VS下有建模的工具,应该也能将模型转成代码.不行的话就找第三方的,比如starUM

c语言-c标准库的fputc写入文件的机制问题

问题描述 c标准库的fputc写入文件的机制问题 最近用c编一个小程序,用到fputc向文件内写入字符,希望保持原有文件内容而能覆盖特定位置的字符.使用fputc以rt+方式打开文件可以实现这个.可是问题来了,硬盘在读写的时候将同时读写一整个扇区,那么fputc实现覆盖文件某个位置的字符是怎样实现的呢?是将一整个扇区读入后修改对应字符再写入?那么这样的话势必需要一个缓冲区,如果真是这样,这个缓冲区会维持到什么时候呢?比如我连续调用两次fputc,写入的数据在都同一扇区内,需要读取几次文件? 解决

令人抱怨的专车动态加价机制,到底公不公平?

从滴滴到易到.神州,甚至已经"国有化"且被收购的中国优步,几乎全都已经开启了动态加价机制.而这种去年开启就备受争议的加价机制,在运营了一年多之后依然备受争议.无论是"恐怖的"加价幅度,还是专车平台给出的加价理由都不能让人信服.更重要的是这种按时段.环境.天气.距离等进行"供需调控"工具尺度,已经触及"政府指导价"的底线. 就是这样一个小小的功能,随着滴滴占据垄断态势.易到.神州加快竞争步伐,在当下居然被网友称为"撕开