软件工程状态图.ppt

上传人:李司机 文档编号:4096079 上传时间:2023-04-04 格式:PPT 页数:60 大小:1.03MB
返回 下载 相关 举报
软件工程状态图.ppt_第1页
第1页 / 共60页
软件工程状态图.ppt_第2页
第2页 / 共60页
软件工程状态图.ppt_第3页
第3页 / 共60页
软件工程状态图.ppt_第4页
第4页 / 共60页
软件工程状态图.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《软件工程状态图.ppt》由会员分享,可在线阅读,更多相关《软件工程状态图.ppt(60页珍藏版)》请在三一办公上搜索。

1、状态图,状态和状态图状态图的组成转换的种类状态图建模技术,用例图(功能模型):从用户的角度描述系统能提供哪些功能。结构模型视图(静态):类图:描述系统的静态结构;对 象图:描述系统在某个时刻的静态结构;包图:将类分组成更高层次的静态结构。行为模型视图(动态)顺序图:按时间顺序描述系统元素之间的交互;协作图:从时间和空间的顺序描述系统元素之间的交互;状态图:描述系统元素对事件的响应引起的状态转换;活动图:描述系统元素的活动。实现模型视图 构件图:描述实现系统的元素的组织结构;配置图:描述环境元素的配置,并把实现系统的元素映射 到配置上。,状态图(Statechart Diagram),状态图主要

2、用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的状态序列,引起状态转移的事件(event),以及因状态转移而伴随的动作(action)。,状态的概念,所有的对象均有状态。下面一些例子形像地说明了对象和状态。(1)支票(对象)已付(状态)。(2)汽车(对象)已启动(状态)。(3)小王(对象)睡着了(状态)。(4)小红(对象)未婚(状态)。,描述一个门的状态图,状态图是为系统的动态行为建模,是系统分析的常用工具,因为系统中对象状态的变化比较容易发现和理解,并且在检查、调试和描述类的动态行为时非常有用。,2 状态图的组成,状态图主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经

3、历的状态序列,引起状态转移的事件,以及因状态转移而伴随的动作。状态图的组成 状态(State):表示一个对象在其生存期内的状况转移(转换)(Transition):表示不同状态之间的联系。事件(Event):事件触发状态转移。动作(Action):执行的行为。(动作可以与状态相关,也可以与转移相关),2 状态图,动作可以与状态相关,也可以与转移相关:如果动作与状态相关,则对象在进入一个状态时将触发此动作,而不管是从哪个状态转入这个状态的。如果动作与转移相关,当对象在不同的状态转移时,将触发相应的动作。,判定,状态的类型,简单状态,(1)初始状态和终止状态状态,(2)中间状态-由一个带圆角的矩形

4、表示。,内部活动,与状态相关的动作在一个状态中允许有多个动作。,1.入口动作(entry action),用来指定进入状态时发生的动作。语法形式:entry/动作名 2.出口动作(exit action),用来指定离开该状态时发生的动作。语法形式:exit/动作名,注意:由于入口动作和出口动作是隐式地激活,因此它们既没有参数也没有守卫条件。,3.内部转移-Do动作(do action),用于标记内部活动,用来指定处于该状态时执行的动作。语法形式:do/动作名 内部转移不会改变对象的状态,内部转移在入口动作执行完毕后开始执行。,4.还可以添加其他事件和动作 event用来指定当特定事件触发时发生

5、指定动作,但此事件不会激发状态的改变,属于内部活动。,语法形式为 延迟事件/defer,子状态,(3)组合(成)状态(复合状态),当状态机通过转换从某种状态转入组成状态时,此转换的目的可能是这个组成状态本身(从子初始状态开始进行),也可能是这个组成状态的子状态(从该子状态开始进行)。类似的,可以从组合状态中的子状态直接转移到目标状态,也可以从组合状态本身转移到目标状态。,(3)组成状态,组成状态中子状态可以是顺序子状态,也可以是并发子状态。组成状态可以使用“与”(and)关系分解为并发子状态,或者通过“或”(or)关系分解为互相排斥的顺序子状态。“或”(or)关系说明在某一时刻仅可以到达组合状

6、态中的一个子状态,“与”(and)关系说明组合状态中在某一时刻可以同时到达多个子状态。,1.顺序子状态,如果一个组成状态的子状态对应的对象在其生命期内的任何时刻都只能处于一个子状态,即多个子状态之间是互斥的,不能同时存在,这种子状态称为顺序子状态。,2.并发子状态-,有时组合状态有两个或者多个并发的子状态机,此时称组成状态的子状态为并发子状态。顺序子状态与并发子状态的区别在于后者在同一层次给出两个或多个顺序子状态,对象处于同一层次中来自每个并发子状态的一个时序状态中。,(4)历史状态,当离开一个组成状态重新进入此状态时,不希望从它的初始状态开始执行,而是希望直接进入上次离开组成状态时的最后一个

7、子状态,这种情况下就要用到历史状态。历史状态代表上次离开组成状态时的最后一个活动子状态,它用一个包含字母“H”的小圆圈表示。每当转换到组成状态的历史状态时,对象便恢复到上次离开该组成状态时的最后一个活动子状态,并执行入口动作。,音乐播放器对象的状态图,子状态中还可以嵌套子状态。如果能记忆任何嵌套层次的组合状态的历史,这个历史状态就是深的(deep)。深的历史状态用圈中“H*”表示。如果只能记忆最外层次组合状态的历史,那这个历史状态时浅的(shallow)。注意:如果一个组合状态到达了其终态,则会丢失历史状态中的信息,就好像还没有进入这个组合状态一样。,图 带有历史指示器的软件安装过程状态图,2

8、.2 转换(转移),转换用带箭头的直线表示,一端连接源状态即转出的状态,箭头一端连接目标状态即转入的状态。转移连接了源状态和目标状态。但需要各种条件才能激活转移。这些条件包括事件、监护条件和动作。需要上述条件才能转移的转移叫触发转移。不需要任何条件的转移叫无触发转移(完成转移),它在源状态完成活动时隐式地触发。,注意:,监护条件:是用方括号括起来的布尔表达式,它放在事件的后面。只有在引起转移的事件触发后才进行监护条件的计算。转移时,监护条件只在发生事件时计算一次。如果转移被重新触发,则监护条件再次被计算。如果监护条件和事件放在一起使用,则当且仅当事件发生且监护条件为真时,转移发生;如果只有监护

9、条件,只要监护条件为真就发生转移。,从相同的状态出来的、事件相同的几个转移之间的条件应该时互斥的。,PC机状态建模:初始化、工作、关闭状态,PC机添加一个屏幕保护状态,例题,一个汽车的状态有前进、后退、低速、高速。,2.3事件,调用(call)事件,一个调用事件代表一个操作的调用。当一个对象调用另一个具有状态机对象的某个操作时,控制就从发送者送到接受者。该事件触发转移,完成操作后,接受者转到一个新的状态,并将控制返回给发送者。一般是同步调用。,变化事件隐含了对控制条件的连续测试,相当于编程语言中的循环,当条件从假变成真,事件发生。还可以使用when(time=8:00)形式,实现类似if语句的

10、功能。,延迟事件-状态内部事件,延迟事件是在本状态不处理,要推迟到另外一个状态才处理的事件。延迟事件用关键字defer来标识语法形式为 延迟事件/defer,2.4 动作,动作是一组可执行语句或者计算处理过程。动作可以包括发送消息给另一个对象、操作调用、设置返回值、创建和销毁对象等。动作是原子的,不可中断的,动作或动作序列的执行不会被同时发生的其他动作影响或终止。整个系统可以在同一时间执行多个动作。在一个状态中允许有多个动作。,动作,1.入口动作(entry action),用来指定进入状态时发生的动作。语法形式:entry/动作名 2.出口动作(exit action),用来指定离开该状态时

11、发生的动作。语法形式:exit/动作名,3.Do动作(do action),用于标记内部活动,用来指定处于该状态时执行的动作。语法形式:do/动作名 活动不会改变对象的状态,内部活动在入口动作执行完毕后开始执行,当内部活动执行完毕,如果没有完成转移就触发它,否则状态等待一个显式触发的转移。如果内部活动被一个转移触发,则内部活动被终止,然后执行出口动作。,4.还可以添加其他事件和动作 event用来指定当特定事件触发时发生指定动作,但此事件不会激发状态的改变,属于内部活动。不是用关键字来标记事件的,,3 转换的种类,转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成一定的

12、动作后将发生状态转变,转向另一个称之为目标状态的状态。转换进入的状态为活动状态,转换离开的状态变为非活动状态。转换种类:外部转换、自转换、内部转换、复合转换,1.外部转换,外部转换是一种改变对象状态的转换,是最常见的一种转换。外部转换用从源状态到目标状态的箭头表示。,2.自转换,当事件发生时,导致状态中断,使对象退出当前状态,然后又重新回到该状态。自转换在作用时首先将当前状态下的活动终止,然后执行该状态的出口动作,接着执行引起转移事件的相关动作,紧接着返回该状态,开始执行该状态的入口动作和其他操作。,3.内部转换,内部转换有一个源状态但是没有目标状态,它转换后的状态仍旧是它本身。内部转换的激发

13、规则和改变状态的外部转换的激发规则相同。如果一个内部转换带有动作,动作也要被执行,但是由于没有状态改变发生,因此不需要执行入口和出口动作。,内部转换和自转换(完成转换)不同:,自转换是离开本状态后重新进入该状态,它会激发状态的入口动作和出口动作的执行。内部转换自始至终都不离开本状态,所以没有出口或入口事件,也就不执行入口和出口动作。,状态图的应用,状态图中的状态一般是给定类对象中的一组属性值,这组属性值是对象所有属性的子集。在对系统建模时,我们可以只关心那些明显影响对象行为的属性以及由他们表达的对象状态,而不用理睬那些于对象行为无关的状态。,事件体现了状态改变这种动态性,该动态性反应在两个方面:交互和内部状态改变。交互描述对象的外部行为以及对象如何与其他对象交换信息;内部状态改变描述对象是如何改变其状态的。(通过改变对象的属性),4 状态图建模技术,建模步骤:找出适合用模型描述其行为的类。确定对象可能存在的状态。确定引起状态转换的事件。确定转换进行时对象执行的相应动作。对建模的结果进行相应的精化和细化。,例图1(订单对象的状态变化过程),6 实例图书馆管理系统的状态图,1.书的状态图,2.借阅凭证的状态图,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号