统一建模语言UML轻松入门之动态建模
2008-04-09 04:03:44来源:互联网 阅读 ()
静可描形,动可描行。动和静是辩证的两面,在UML中,静态建模可以描述系统的组织和结构,而动态建模则可描述系统的行为和动作。
前一节中介绍的类图和对象图主要用于静态建模,本节我们将描述UML中的动态建模机制。在动态建模机制中,以消息来完成对象之间的交互,用状态图、顺序图、协作图和活动图来描述系统的行为。
4.1消息
在面向对象领域,两个对象的交互是通过消息的发送和接收来完成的。消息分为简单消息、同步消息和异步消息:
(1)简单消息:只是表示控制如何从一个对象发给另一个对象,并不包含控制的细节;
(2)同步消息:同步意味着阻塞和等待,如果对象A给对象B发送一个消息,对象A会等待对象B执行完这个消息,接着才进行自身的工作;
(3)异步消息:异步意味着非阻塞,如果对象A给对象B发送一个消息,对象A不必等待对象B执行完这个消息,就可以接着进行自身的工作。
4.2顺序图
顺序图(也称序列图)是一种交互图(Interaction Diagram,用于描述执行系统功能的各个角色之间相互传递消息的顺序关系,显示跨越多个对象的系统控制流程),强调的是时间和消息的次序,用来说明系统的动态情况,顺序图由参与者、对象、对象生命线和消息组成。一个顺序图显示了一系列的对象(通常是类的实例,也可以代表其他事物的实例,例如协作、组件和节点)和在这些对象之间发送和接收的消息。
图4.1 图书入库顺序图
图书管理系统中图书入库的顺序图如图4.1所示,对于顺序图,往往在文字表述上会出现"当…时…"、"首先"、"然后"、"接着"、"…发出…消息","…响应…消息"等词汇。例如图4.1的顺序图可用文字表达为:
当管理人员把新书入库时,首先要求登录(输入用户名和口令),经系统的"注册表单"验证,若正确无误,则可继续下一步交互,否则拒绝该管理人员进入系统。若登录正确,管理人员可发出查询请求消息,系统的"图书入库表单"对象响应请求。若管理人员发出增加或删除库存图书请求,"库存图书"对象将响应该消息,找出数据库中的相关数据并执行相应的操作。此后,管理人员应按下提交键确认请求,"图书入库表单"接口对象应该响应该请求,并发出存储消息,才由"库存图书"对象响应存储消息,进行数据库存储操作。如果管理人员结束图书入库,发出退出系统的请求,则系统的"注册表单"接口对象响应请求,关闭系统。
图4.2 购买商品顺序图
而图4.2则给出了电子购物系统中购买商品的顺序图,通过观察顺序图,我们可以很清晰地看出顾客购买商品的流程。
软件频道精品推荐
更多精彩
点击体验>>
状态图是UML中的状态机视图。状态机由对象的各个状态和连接这些状态的转换组成。每个状态对一个对象在其生命期中满足某种条件的一个时间段建模,当一个事件发生时,它会触发状态间的转换,导致对象从一种状态转化到另一新的状态。与转换相关的活动执行时,转换也同时发生。
状态图用于描述对象可以拥有的状态以及引起状态相互转移的事件和条件,它揭示了对象的生命周期,是针对类的一种建模工具。状态是对象前一次操作的结果,事件是引起状态向另一状态转化的活动。所有对象都有状态,但通常只对具有复杂行为的类建立状态图。状态图强调的是事件驱动的对象的动作,这在对反应式系统的建模是相当重要的。
两个类的状态图之间可以相互发送消息,一个状态还可以有嵌套的子状态,各子状态之间的关系可以为与/或关系。
在如图4.3所示的车载GPS终端系统中,车载GPS终端一方面与GPS卫星通信,另一方面将从GPS卫星获得的位置信息(经度、维度等)通过GSM短消息与车辆监控调度中心进行交互。
图4.3 车载GPS终端系统
在这样的系统中,鉴于通信过程中GPS终端可能处于不同的状态,我们可用状态图来对其进行描述,这样很直观和明确。图4.4给出了GPS终端的状态(待命、有问题、通话中、短消息通讯中)及其状态之间的变迁关系。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:如何绘制UML活动图
下一篇:CMMI模型对软件测试技术的扩充
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash