- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
state
On-demand Learning SeriesSoftware Engineering of Web Application - State Activity Diagram 什么是状态图 状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的状态序列、引起状态转移的事件(event)以及因状态转移而伴随的动作(action)。 状态 人的生命 -----”生”,”老”,”病”,”死” 可能需要建模的事物:系统、窗口、控制者、事务、设备、自身类型或角色发生变化的事物。 对象均有状态,状态是对象操作的前一次活动的结果。通常情况下,状态由对象的属性值以及指向其它对象的链来决定的。 状态示例: ?? 支票(对象)已付(状态) ?? 汽车(对象)停在那儿(状态) ?? 发动机(对象)正在运行(状态) ?? 吉姆(对象)正在卖货(状态) ?? 小王(对象)已婚(状态) 状态图例子 状态图中基本概念 事件(event) 状态(state) 动作(action) 转换(transition) 事件(1) 事件(event)是对一个在时间和空间上占有一定位置的有意义的事情的详细说明。 事件产生的原因有调用、满足条件的状态的出现、到达时间点或经历某一时间段、发送信号等。 事件(2) 在UML中,事件可以分为以下4类: 调用事件(call event) 变化事件(change event) 时间事件(time event) 信号事件(signal event) 调用事件 调用事件表示的是对操作的调度,其格式为:event-name’(‘comma-separated-parameter-list’)’ 变化事件 如果当一个布尔表达式中的变量发生变化,使得该布尔表达式的值相应地变化,从而满足某些条件,则这种事件称作变化事件。 变化事件用关键字when表示。 时间事件 时间事件指的是满足某一时间表达式的情况的出现,例如到了某一时间点或经历了某一时间段。 时间事件用关键字after或when表示 时间事件例子 信号事件 信号事件表示的是对象接收到了信号这种情况,信号事件往往会触发状态的转移。(所谓信号,就是由一个对象异步地发送、并由另一对象接收的已命名的对象) 信号事件和调用事件比较相似,它们的表示格式是一样的,区别在于信号事件是异步事件,调用事件一般是同步事件。 状态 状态是对象(类)生命周期的一个阶段,在该阶段中该对象要满足一些特定的条件,并可从事特定的活动。 进入时做开灯(turnOn)动作; 离开做关灯(turnOff)动作; 当对象处于这个状态时,灯要闪烁5次(blinkFivetimes); 当电源关闭时,使用自供应电源(powerSupplySelf) 当出现自检时,对象将延迟响应这个事件 动作 动作(action)是一个可执行的原子计算。也就是说,动作是不可中断的,其执行时间可忽略不计。 总而言之,状态图描述一个对象在其生命期内响应事件所经历的状态序列,以及对这些事件所做出的反应。 通常用状态图描述类的行为,也可以用它描述其它模型实体(如用例、参与者、子系统、操作或方法)的行为。 案例1 为简易的电子表建立状态图 案例2 在图书馆中,购入书在半个月内为新书,以后为旧书。书无论新旧,都可以向外借阅。思考针对上述要求如何建立状态图。 课堂练习 为简易的电梯建立状态图 活动图(activity diagram) 什么是活动图? 活动图用于描述系统的工作流程和并发行为,活动图可以看作状态图的特殊形式,活动图中一个活动结束后将立即进入下一个活动。 活动图用途 描述一个操作执行过程中所完成的工作 描述对象内部的工作 显示如何执行一组相关的动作以及这些动作如何影响它们周围的对象 显示用例的实例是如何执行动作以及如何改变对象状态 说明一次商务活动中的工人(角色)、工作流、组织和对象是如何工作的 活动图基本概念 活动(activity) 泳道(swimlane) 分支(branch) 分叉(frok ) 汇合(join) 活动(activity) 活动表示某流程中的任务的执行过程,它可以表示某算法过程中语句的执行。 泳道(swimlane) 泳道是活动图中的区域划分,根据每个活动的职责对所有活动进行划分,每个泳道代表一个责任区。 泳道和类并不是一一对应的关系,泳道关心的是其所代表的职责,一个泳道可能由一个类实现,也可能由多个类实现。 分支(branch) 在活动图中,对于同一个触发事件,可以根据不同的警戒条件转向不同的活动,每个可能的转移是一个分支(branch)。
文档评论(0)