统一建模语言UML轻松入门之动态建模[1] UML模型
关键字:uml 静可描形,动可描行。动和静是辩证的两面,在UML中,静态建模可以描述系统的组织和结构,而动态建模则可描述系统的行为和动作。
前一节中介绍的类图和对象图主要用于静态建模,本节我们将描述UML中的动态建模机制。在动态建模机制中,以消息来完成对象之间的交互,用状态图、顺序图、协作图和活动图来描述系统的行为。
4.1消息
在面向对象领域,两个对象的交互是通过消息的发送和接收来完成的。消息分为简单消息、同步消息和异步消息:
(1)简单消息:只是表示控制如何从一个对象发给另一个对象,并不包含控制的细节;
(2)同步消息:同步意味着阻塞和等待,如果对象A给对象B发送一个消息,对象A会等待对象B执行完这个消息,接着才进行自身的工作;
(3)异步消息:异步意味着非阻塞,如果对象A给对象B发送一个消息,对象A不必等待对象B执行完这个消息,就可以接着进行自身的工作。
4.2顺序图
顺序图(也称序列图)是一种交互图(Interaction Diagram,用于描述执行系统功能的各个角色之间相互传递消息的顺序关系,显示跨越多个对象的系统控制流程),强调的是时间和消息的次序,用来说明系统的动态情况,顺序图由参与者、对象、对象生命线和消息组成。一个顺序图显示了一系列的对象(通常是类的实例,也可以代表其他事物的实例,例如协作、组件和节点)和在这些对象之间发送和接收的消息。
图书管理系统中图书入库的顺序图如图4.1所示,对于顺序图,往往在文字表述上会出现"当…时…"、"首先"、"然后"、"接着"、"…发出…消息","…响应…消息"等词汇。例如图4.1的顺序图可用文字表达为:
当管理人员把新书入库时,首先要求登录(输入用户名和口令),经系统的"注册表单"验证,若正确无误,则可继续下一步交互,否则拒绝该管理人员进入系统。若登录正确,管理人员可发出查询请求消息,系统的"图书入库表单"对象响应请求。若管理人员发出增加或删除库存图书请求,"库存图书"对象将响应该消息,找出数据库中的相关数据并执行相应的操作。此后,管理人员应按下提交键确认请求,"图书入库表单"接口对象应该响应该请求,并发出存储消息,才由"库存图书"对象响应存储消息,进行数据库存储操作。如果管理人员结束图书入库,发出退出系统的请求,则系统的"注册表单"接口对象响应请求,关闭系统。
而图4.2则给出了电子购物系统中购买商品的顺序图,通过观察顺序图,我们可以很清晰地看出顾客购买商品的流程。