两面,在UML中,静态建模可以描述系统
组织和结构,而动态建模则可描述系统
行为和动作。 字串7 前一节中介绍
类图和对象图主要用于静态建模,本节我们将描述UML中
动态建模机制。在动态建模机制中,以消息来完成对象之间
交互,用状态图、顺序图、协作图和活动图来描述系统
行为。
字串7
4.1消息 字串8
在面向对象领域,两个对象
交互是通过消息
发送和接收来完成
。消息分为简单消息、同步消息和异步消息: 字串5
(1)简单消息:只是表示控制如何从一个对象发给另一个对象,并不包含控制
细节; 字串7
(2)同步消息:同步意味着阻塞和等待,如果对象A给对象B发送一个消息,对象A会等待对象B执行完这个消息,接着才进行自身
工作;
字串3
(3)异步消息:异步意味着非阻塞,如果对象A给对象B发送一个消息,对象A不必等待对象B执行完这个消息,就可以接着进行自身
工作。 字串3
4.2顺序图
字串2
顺序图(也称序列图)是一种交互图(Interaction Diagram,用于描述执行系统功能
各个角色之间相互传递消息
顺序关系,显示跨越多个对象
系统控制流程),强调
是时间和消息
次序,用来说明系统
动态情况,顺序图由参与者、对象、对象生命线和消息组成。一个顺序图显示了一系列
对象(通常是类
实例,也可以代表其他事物
实例,例如协作、组件和节点)和在这些对象之间发送和接收
消息。 字串9

图4.1 图书入库顺序图
字串5
图书管理系统中图书入库
顺序图如图4.1所示,对于顺序图,往往在文字表述上会出现"当…时…"、"首先"、"然后"、"接着"、"…发出…消息","…响应…消息"等词汇。例如图4.1
顺序图可用文字表达为: 字串4
当管理人员把新书入库时,首先要求登录(输入用户名和口令),经系统
"注册表单"验证,若正确无误,则可继续下一步交互,否则拒绝该管理人员进入系统。若登录正确,管理人员可发出查询请求消息,系统
"图书入库表单"对象响应请求。若管理人员发出增加或删除库存图书请求,"库存图书"对象将响应该消息,找出数据库中
相关数据并执行相应
操作。此后,管理人员应按下提交键确认请求,"图书入库表单"接口对象应该响应该请求,并发出存储消息,才由"库存图书"对象响应存储消息,进行数据库存储操作。如果管理人员结束图书入库,发出退出系统
请求,则系统
"注册表单"接口对象响应请求,关闭系统。
字串5

图4.2 购买商品顺序图
而图4.2则给出了电子购物系统中购买商品
顺序图,通过观察顺序图,我们可以很清晰地看出顾客购买商品
流程。
字串3
4.3状态图
字串7
状态图是UML中
状态机视图。状态机由对象
各个状态和连接这些状态
转换组成。每个状态对一个对象在其生命期中满足某种条件
一个时间段建模,当一个事件发生时,它会触发状态间
转换,导致对象从一种状态转化到另一新
状态。与转换相关
活动执行时,转换也同时发生。 字串5
状态图用于描述对象可以拥有
状态以及引起状态相互转移
事件和条件,它揭示了对象
生命周期,是针对类
一种建模工具。状态是对象前一次操作
结果,事件是引起状态向另一状态转化
活动。所有对象都有状态,但通常只对具有复杂行为
类建立状态图。状态图强调
是事件驱动
对象
动作,这在对反应式系统
建模是相当重要
。
两个类
状态图之间可以相互发送消息,一个状态还可以有嵌套
子状态,各子状态之间
关系可以为与/或关系。 字串7
在如图4.3所示
车载GPS终端系统中,车载GPS终端一方面与GPS卫星通信,另一方面将从GPS卫星获得
位置信息(经度、维度等)通过GSM短消息与车辆监控调度中心进行交互。 字串7

图4.3 车载GPS终端系统 字串2
字串1
在这样
系统中,鉴于通信过程中GPS终端可能处于不同
状态,我们可用状态图来对其进行描述,这样很直观和明确。图4.4给出了GPS终端
状态(待命、有问题、通话中、短消息通讯中)及其状态之间
变迁关系。
字串4

图4.4 GPS终端
状态图
4.4 活动图
活动图用于描述系统、用例、程序模块中
逻辑流程
先后执行次序、并行次序,是对人类组织
现实世界中
工作流程
建模,有助于理解系统高层活动
执行行为。 字串3
活动图中
主要概念是"活动",而"活动"
具体含义又取决于作图目
和抽象层次:
(1)当活动图用于描述系统行为时,主要侧重于系统多个用例活动之间相互制约
执行顺序,同时,识别出系统中存在
可以并行进行
用例,此时,活动表示系统要完成
任务;
(2)当活动图用于描述用例时,用于描述用例中
操作执行次序和操作完成
结果,显示多个对象
操作是如何相互结合起来共同完成用例
一个脚本,揭示出操作之间
并行性,为编码实现提供开发并行程序
便利,此时,活动表示类中
方法,即操作。允许将某个组织或执行者要完成
若干操作聚集在泳道中,以明确责任。 字串6
活动图用于低层次程序模块
作用类似于流程图,但活动图还可以描述并行操作,而流程图则只能描述串行操作。例如,图4.5给出了生产管理系统中
定单处理用例
活动图,它明显地带有流程图
特色,但是,它还表示了处理过程中
并行过程。图4.5中
付款认可活动属于财务管理用部门
职责,其它活动属于销售部门
职责,这两个部门在并行运作。 字串4

图4.5 定单处理
活动图 字串3
图4.6则给出了药品管理系统中药品采购入库过程
活动图。 字串5

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

图4.7 注册新课程
协作图
图4.7给出了注册新课程
协作图,图中描述了注册者、课程表单、管理员和课程对象之间
协作关系,对象之间
连接关系上给出了发送和接收
消息。
字串4
4.6 UML图之间
关系
字串8
连载2-4给出了多种类型
图,这些图之间存在着或直接或间接
关系(如图4.8),这体现了UML中
辩证法。
字串3

图4.8 UML图
关系 字串7
字串9
用例图主要用来描述系统
外部行为;类图和对象图用来定义类和对象以及它们
属性和操作;状态图描述类
对象所有可能
状态以及事件发生时状态
转移条件;顺序图显示对象之间
动态合作关系,它强调对象之间消息发送
顺序,同时显示对象之间
交互;合作图强调对象间
动态合作关系;活动图描述满足用例要求所要进行
活动以及活动间
约束关系,有利于识别并行活动。
除此之外,我们还没有详细讲解
包图用于描述系统
分层结构,构件图描述代码部件
物理结构及各部件之间
依赖关系,配置图定义系统中软硬件
物理体系结构。 字串8
![我要研发网[www.51dev.com]](/templets/images/toplogo.gif)
