资源预览内容
第1页 / 共58页
第2页 / 共58页
第3页 / 共58页
第4页 / 共58页
第5页 / 共58页
第6页 / 共58页
第7页 / 共58页
第8页 / 共58页
第9页 / 共58页
第10页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
* 1 1第五章 建立辅助模型建立辅助模型1 顺序图2 通信(合作)图3 活动图4 状态图5 包图* 2 *Junwei Ge2Microwave OvenMicrowave Oven如何获得行为?* 3 状态图 人的生命货物运输定单 可能需要建模的事物:系统、窗口、控制者、事务、设备、自身类型或 角色发生变化的事物。对事物所处的状态及其变迁的考虑: n大多数事物在其生命周期中经历了不同的状态; n在特定的时间,一个事物精确地位于一个状态; n在现实世界存在着引起事物的状态发生变化的事件; n事物在其状态间按次序转化; n事物从一个状态到另一个状态的转化通常是即时的。 n当事件发生时,事物可能需要采取一些动作。 * 4 事物的一般生命周期形式:目前主要有两种对生命周期进行建模的形式:周期性生命周期如:飞机、微波炉出生-死亡生命周期 把状态图赋予一个对象一个对象的状态:创建、状态变化序列、撤消 它有明确的生命期阶段(状态),且需要通过状态分析 对其复杂性进行深刻地认识。在实际系统中,无法建立全系统的状态图。为了可视化、详述、构造和文档化一个单独对象的动态 特性,状态图可以被附加到类(把一个状态模型作为定义一个 类的一部分)、用例或整个系统上。 * 5 什么是对象的状态? 关于对象状态的不同解释 状态 = 属性 只是一个别名,没有更多的意义 状态 = 属性值 没错,但没有必要辨别这么多状态 对象技术词典的另一种定义: 对象或者类的整体行为(例如响应消息)的某些规则 所能适应的(对象或类的)状况、情况、条件、形式 或生存周期阶段。 按某种规定,按对象的属性值划分等价类* 6 *Junwei Ge6StatesStatesnStates are used to abstract each stage of a lifecyclenLight Globe - on, off, brokennLibrary Book - available, borrowed, lostnCar - stopped, accelerating, decelerating, cruisingnStates are determined from the rules, policies, regulations and physical laws of the domain being modeled* 7 例1:一个容量为1000的栈,需要区分几种状态*?空半满满压入弹出可执行可执行可执行可执行不可执行不可执行服务状态在此例中 ,每一种状态是一组使对象呈现共同行为规则的属性值组合。弹出状态转换图(STD):空半满满创建弹出(已空)压入压入(未满) 弹出(未空)压入(已满)弹出压入* 8 例2:为“设备”对象设立一个属性,名为“状态”。属性值:关闭、待命、运行、故障等。在这里,“状态”是一个专门设置的属性,它的值反 映了实际事物的状态。* 9 状态图示例* 10 概念与表示法1、事件从一般意义上讲,事件是指在时间和空间 上可以定位并具有实际意义、值得注意的所发 生的事情。在OO中,事件是对一个可观察的事情的规 格说明,这种事情的发生可以引发状态的转换 。 * 11 *Junwei Ge11EventsEventsnEvents are abstractions of incidents that occur in the domain being modelednLight Globe - power applied/removed, filament breaksnLibrary Book - book is requested, book is lost, book is returnednCar - brakes applied/released, accelerator pushed/released, engine started/stoppednEvents tell us that something has happened* 12 通常事件后面还跟有一个监护条件(布尔表达式)。当 事件发生后,还要检验其监护条件。如果监护条件为假, 则该事件不触发转换。可以按如下的格式定义事件:事件名(用逗号分隔的参数列表)参数的格式如下:参数名: 类型表达式参数值由监护条件和动作表达式使用. * 13 *Junwei Ge13Events - RepresentationnIn addition to showing Events on the State Chart, they can also be shown on Class Diagrams* 14 概念与表示法 1、事件 事件可以分为多种:1)信号事件 一个对象对一个信号实例 (在不引起混淆的情况下,以下简称信 号)的接收,导致一个信号事件。可在一个类的符号中加一个附件的 信号栏,列出其能接收的信号。信号可以作为状态机中的状态转换 上的动作被发送,或者作为交互中的一 个消息被发送。* 15 2)调用事件 对操作的调用的接收(这样的操作由 接收事件的对象实现)。 调用事件一般来说是同步的。3)时间事件 经过了一定的时间或到了指定日期/时 间,导致一个时间事件。时间经历事件能用后跟有计算时间量的表达式的关键词 “after”表示,例如:“after (5 秒)”或者”after (从状态A退出后经历了10秒 )”。如果没指明时间起始点,那么从进入当前状态开始计时。使用关键字at来指出在某个绝对时间点上发生的时间事件 。例如,at(1 Jan 2005, 12:00 UT)指出该事件发生在格林尼 治时间2005 年1 月1 日的中午12点。* 16 4)改变事件(条件变为真事件)用布尔表达式描述的指派条件变为真,就导致了一个改变事件。与改变 事件关联的布尔表达式的值变成真时事件发生一次,即使之后布尔表达式的 值变为假,产生的事件仍将保持,直到它被处理为止。用后有跟布尔表达式的关键词“when”表示变为真的条件,比如when (altitude 字母串;如deFCAccount;WaitingGettingTokenGettingBodyPut(c)c/ token.append(c); return falsePut(c)c;/ body.append(c); return falsePut(c)c=; /return truePut(c)c=“ * 34 空闲、门开entry/开灯烹饪完成entry/关灯entry/关功率管entry/发滴滴声空闲、门关entry/关灯烹饪中断entry/关功率管entry/清除计时器延长烹饪entry/计时器增1分钟初始烹饪entry/设置定时器entry/开功率管entry/开灯开门关门开门关门按按纽开门按按纽开门按按纽定时器 时间到定时器 时间到例3 为简易微波炉(只有一个按钮)建模* 35 *Junwei Ge35Creating and Deleting Objects* 36 6、组合状态(1)语义组合状态是由两个或多个子状态构成的状态,其中的子 状态是顺序的或并发的,而且子状态还可以是组合状态。 * 37 (2)表示法把组合状态展开是为了表示它的内部状态机结构。除了(可选的) 名称和内部转换分栏外,状态可以包含容纳嵌套图的附加分栏。通过在 图形区域里显示嵌套状态图,把状态展开,表示其不相交的子状态。顺序子状态示意图 * 38 并发子状态示意图从带有正交区域的组合状态内的任一状态离开的转移导致控制离开所有的其他正交区域。这种转 移通常表示有错误发生或例外发生,从而迫使所有并行计算都被中断。用虚线划分图形区域,以表示把状态展开,描述其并发的子状态。由于一个对象可以同时处于几个状态,所以也可以显示该对象当前状态的一个列表。* 39 建立状态图建立状态图 对对象的状态变迁建模,应遵循如下策略: n 设置状态机的语境 n 建立初始状态和终止状态。 n 选定对象中的一组有意义的对对象状态有影响的属性,结合有关的事件 和动作,对象可能在其中存在各段时间的条件,以决定该对象所在的稳定状 态。 n 在对象的整个生命期中,决定稳定状态的有意义的偏序。从初态开始到 终态,列出这个对象可能处于的顶层状态 n 决定这个对象可能响应的事件。可在对象的接口处发现这些事件,并给 出一个唯一的名字。这些事件可能触发从一个合法状态到另一个合法状态 的转换。 n 用被适当的事件触发的转换将这些状态连接起来,接着向这些转换中 添加事件、监护条件或动作。对于内部转换也是如此。 n 识别各状态的进入或退出的动作n 如果需要,从这个对象的高层状态开始,然后考虑各自的可能子状态 ,用子状态进行扩充。 * 40 n 检查l 检查在状态机中提到的所有事件是否和该对象接口所期望的事件 相匹配。类似地,检查该对象的接口所期望的所有事件,是否都被状 态机所处理。l 检查在状态机中提到的所有动作是否被闭合对象的关系和操作所 支持。l 通过状态机,跟踪检查事件的顺序和它们的响应,尤其要努力地 寻找那些未达到的状态和导致状态机不能走通的状态。l 在重新安排状态机后,按所期望的顺序再一次检查,以确保你没 有改变该对象的语义。 * 41 讨论:1.建立微波炉的状态图。 2. 在图书馆中,购入的书在半个月内为新书,以后为旧书。书无论 新旧,都可以向外借阅。针对上述要求建立状态图。3. 针对简易电梯,建立状态图。 * 42 *Junwei Ge42A B
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号