UML轻松入门--动态建模

转载 2008年09月28日 10:47:00
静可描形,动可描行。动和静是辩证的两面,在UML中,静态建模可以描述系统的组织和结构,而动态建模则可描述系统的行为和动作。

  前一节中介绍的类图和对象图主要用于静态建模,本节我们将描述UML中的动态建模机制。在动态建模机制中,以消息来完成对象之间的交互,用状态图、顺序图、协作图和活动图来描述系统的行为。

  1消息

  在面向对象领域,两个对象的交互是通过消息的发送和接收来完成的。消息分为简单消息、同步消息和异步消息:

  (1)简单消息:只是表示控制如何从一个对象发给另一个对象,并不包含控制的细节;

  (2)同步消息:同步意味着阻塞和等待,如果对象A给对象B发送一个消息,对象A会等待对象B执行完这个消息,接着才进行自身的工作;

  (3)异步消息:异步意味着非阻塞,如果对象A给对象B发送一个消息,对象A不必等待对象B执行完这个消息,就可以接着进行自身的工作。

  2顺序图

  顺序图(也称序列图)是一种交互图(Interaction Diagram,用于描述执行系统功能的各个角色之间相互传递消息的顺序关系,显示跨越多个对象的系统控制流程),强调的是时间和消息的次序,用来说明系统的动态情况,顺序图由参与者、对象、对象生命线和消息组成。一个顺序图显示了一系列的对象(通常是类的实例,也可以代表其他事物的实例,例如协作、组件和节点)和在这些对象之间发送和接收的消息。

  图书管理系统中图书入库的顺序图如图4.1所示,对于顺序图,往往在文字表述上会出现"当…时…"、"首先"、"然后"、"接着"、"…发出…消息","…响应…消息"等词汇。例如图1的顺序图可用文字表达为:

  当管理人员把新书入库时,首先要求登录(输入用户名和口令),经系统的"注册表单"验证,若正确无误,则可继续下一步交互,否则拒绝该管理人员进入系统。若登录正确,管理人员可发出查询请求消息,系统的"图书入库表单"对象响应请求。若管理人员发出增加或删除库存图书请求,"库存图书"对象将响应该消息,找出数据库中的相关数据并执行相应的操作。此后,管理人员应按下提交键确认请求,"图书入库表单"接口对象应该响应该请求,并发出存储消息,才由"库存图书"对象响应存储消息,进行数据库存储操作。如果管理人员结束图书入库,发出退出系统的请求,则系统的"注册表单"接口对象响应请求,关闭系统。

  3状态图

  状态图是UML中的状态机视图。状态机由对象的各个状态和连接这些状态的转换组成。每个状态对一个对象在其生命期中满足某种条件的一个时间段建模,当一个事件发生时,它会触发状态间的转换,导致对象从一种状态转化到另一新的状态。与转换相关的活动执行时,转换也同时发生。

  状态图用于描述对象可以拥有的状态以及引起状态相互转移的事件和条件,它揭示了对象的生命周期,是针对类的一种建模工具。状态是对象前一次操作的结果,事件是引起状态向另一状态转化的活动。所有对象都有状态,但通常只对具有复杂行为的类建立状态图。状态图强调的是事件驱动的对象的动作,这在对反应式系统的建模是相当重要的。

  两个类的状态图之间可以相互发送消息,一个状态还可以有嵌套的子状态,各子状态之间的关系可以为与/或关系。

  例如车载GPS终端系统中,车载GPS终端一方面与GPS卫星通信,另一方面将从GPS卫星获得的位置信息(经度、维度等)通过GSM短消息与车辆监控调度中心进行交互。

  在这样的系统中,鉴于通信过程中GPS终端可能处于不同的状态,我们可用状态图来对其进行描述,这样很直观和明确。
  4 活动图

  活动图用于描述系统、用例、程序模块中的逻辑流程的先后执行次序、并行次序,是对人类组织的现实世界中的工作流程的建模,有助于理解系统高层活动的执行行为。

  活动图中的主要概念是"活动",而"活动"的具体含义又取决于作图目的和抽象层次:

  (1)当活动图用于描述系统行为时,主要侧重于系统多个用例活动之间相互制约的执行顺序,同时,识别出系统中存在的可以并行进行的用例,此时,活动表示系统要完成的任务;

  (2)当活动图用于描述用例时,用于描述用例中的操作执行次序和操作完成的结果,显示多个对象的操作是如何相互结合起来共同完成用例的一个脚本,揭示出操作之间的并行性,为编码实现提供开发并行程序的便利,此时,活动表示类中的方法,即操作。允许将某个组织或执行者要完成的若干操作聚集在泳道中,以明确责任。

  活动图用于低层次程序模块的作用类似于流程图,但活动图还可以描述并行操作,而流程图则只能描述串行操作。

 5协作图

  与顺序图一样,协作图也是一种交互图,用于描述对象之间的协作关系,其模型元素与序列图的基本相同,但它侧重于描述对象之间是如何相互连接的,强调的是发送和接收消息的对象之间的组织结构。顺序图着重体现对象间消息传递的时间顺序,协作图着重于哪些对象间有消息传递,表达了对象之间的静态连接关系。顺序图和协作图是同构的,它们相互之间可以转化而不损失信息,依靠工具协作图和顺序图可互相转换。


  6 UML图之间的关系

  以上我们给出了多种类型的图,这些图之间存在着或直接或间接的关系(如图3),这体现了UML中的辩证法。

  用例图主要用来描述系统的外部行为;类图和对象图用来定义类和对象以及它们的属性和操作;状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件;顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图强调对象间的动态合作关系;活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。

  除此之外,我们还没有详细讲解的包图用于描述系统的分层结构,构件图描述代码部件的物理结构及各部件之间的依赖关系,配置图定义系统中软硬件的物理体系结构。

UML轻松入门--动态建模(4)

UML轻松入门--动态建模  静可描形,动可描行。动和静是辩证的两面,在UML中,静态建模可以描述系统的组织和结构,而动态建模则可描述系统的行为和动作。  前一节中介绍的类图和对象图主要用于静态建模,...
  • skwqy
  • skwqy
  • 2007年08月23日 09:33
  • 626

统一建模语言UML轻松入门(4)――动态建模

---------------------------------------------------------------------宋宝华 email:21cnbao@21cn.com-----...
  • dengjiang1999
  • dengjiang1999
  • 2009年03月09日 17:45
  • 866

统一建模语言UML轻松入门之动态建模

统一建模语言UML轻松入门之动态建模 作者:宋宝华 出处:天极开发 ...
  • dlxuemin
  • dlxuemin
  • 2007年04月05日 14:24
  • 683

UML里面静态建模及动态建模都有哪些图?

静态建模:创建并建立一个系统的静态特征 1.用例图:描述系统功能及功能的使用者. 2.类 图:表现系统里实体的关系,责任,类和类之间的关系,属性及方法. 3.对象图:当类图不能完全显示关系时用对象...
  • hanghangde
  • hanghangde
  • 2016年01月06日 19:23
  • 3564

UML建模快速入门02 UML介绍

UML建模快速入门02 UML介绍
  • dadaxiaoxiaode
  • dadaxiaoxiaode
  • 2015年03月29日 10:28
  • 1596

UML建模之用例图学习笔记

什么是用例图用例图是指由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的静态视图。用例图是用例(Use Case)分析手段或工具。用例分析是捕获应用需求的有效手...
  • u013745854
  • u013745854
  • 2015年05月23日 10:01
  • 1300

转载【UML轻松入门--动态建模】 - [系统分析与设计]

UML轻松入门--动态建模  静可描形,动可描行。动和静是辩证的两面,在UML中,静态建模可以描述系统的组织和结构,而动态建模则可描述系统的行为和动作。  前一节中介绍的类图和对象图主要用于静态建模,...
  • cutexin
  • cutexin
  • 2007年12月02日 14:04
  • 641

uml的学习--书籍

http://maosea0125.blog.163.com/blog/static/212531242007422104241694/   uml真正有用的书5本足以,学习流程如下: 《UML...
  • imxiangzi
  • imxiangzi
  • 2016年03月11日 23:42
  • 1681

UML动态建模——时序图、协作图、状态图、活动图

北京圣思园OOAD与UML教学视频学习笔记 1、*时序图(Sequence Diagram) 概念:对象、生命线、消息、返回 返回值:用虚线,可以没有的。 2、协作图 3...
  • chenchong_219
  • chenchong_219
  • 2013年03月02日 22:36
  • 2074

UML中四类动态建模图(状态图,协作图,活动图,序列图)的区别与用途

      UML提供图来描述系统的结构和行为。在其中,类图用于描述系统的静态结构,状态图,协作图,活动图,序列图则用于描述系统的动态行为,描述系统在执行期间不同时间点是如何动态交互的。      在...
  • lujunql
  • lujunql
  • 2009年07月09日 16:16
  • 13606
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UML轻松入门--动态建模
举报原因:
原因补充:

(最多只允许输入30个字)