软件工程状态图.ppt

上传人:王** 文档编号:168392 上传时间:2023-03-10 格式: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_第6页
第6页 / 共60页
软件工程状态图.ppt_第7页
第7页 / 共60页
软件工程状态图.ppt_第8页
第8页 / 共60页
软件工程状态图.ppt_第9页
第9页 / 共60页
软件工程状态图.ppt_第10页
第10页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、状态图状态图l状态和状态图状态和状态图l状态图的组成状态图的组成l转换的种类转换的种类l状态图建模技术状态图建模技术 用例图(用例图(功能模型功能模型):): 从用户的角度描述系统能提供哪些功能。从用户的角度描述系统能提供哪些功能。 结构模型结构模型视图(静态):视图(静态): 类图:描述系统的静态结构;类图:描述系统的静态结构; 对对 象图:描述系统在某个时刻的静态结构;象图:描述系统在某个时刻的静态结构; 包图:将类分组成更高层次的静态结构。包图:将类分组成更高层次的静态结构。 行为模型行为模型视图(动态)视图(动态) 顺序图:按时间顺序描述系统元素之间的交互;顺序图:按时间顺序描述系统元

2、素之间的交互; 协作图:从时间和空间的顺序描述系统元素之间的交互;协作图:从时间和空间的顺序描述系统元素之间的交互; 状态图:描述系统元素对事件的响应引起的状态转换;状态图:描述系统元素对事件的响应引起的状态转换; 活动图:描述系统元素的活动。活动图:描述系统元素的活动。 实现模型实现模型视图视图 构件图:描述实现系统的元素的组织结构;构件图:描述实现系统的元素的组织结构; 配置图:描述环境元素的配置,并把实现系统的元素映射配置图:描述环境元素的配置,并把实现系统的元素映射 到配置上。到配置上。状态图(状态图(Statechart Diagram)l状态图状态图主要用于描述一个对象在其生存期间

3、的主要用于描述一个对象在其生存期间的动动态行为态行为,表现一个对象所经历的状态序列,引起,表现一个对象所经历的状态序列,引起状态转移的状态转移的事件事件(event),以及因状态转移而伴随,以及因状态转移而伴随的的动作动作(action)。状态的概念状态的概念l所有的对象均有状态。所有的对象均有状态。l下面一些例子形像地说明了对象和状态。下面一些例子形像地说明了对象和状态。(1)支票(对象)已付(状态)。)支票(对象)已付(状态)。(2)汽车(对象)已启动(状态)。)汽车(对象)已启动(状态)。(3)小王(对象)睡着了(状态)。)小王(对象)睡着了(状态)。(4)小红(对象)未婚(状态)。)小

4、红(对象)未婚(状态)。描述一个门的状态图描述一个门的状态图l状态图是为系统的动态行为建模,是系统分析的常用工状态图是为系统的动态行为建模,是系统分析的常用工具,因为系统中对象状态的变化比较容易发现和理解,具,因为系统中对象状态的变化比较容易发现和理解,并且在检查、调试和描述类的动态行为时非常有用。并且在检查、调试和描述类的动态行为时非常有用。2 状态图的组成状态图的组成l状态图状态图主要用于描述一个对象在其生存期间的动态行主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的为,表现一个对象所经历的状态状态序列,引起序列,引起状态转移状态转移的的事件事件,以及因状态转移而伴随的,以

5、及因状态转移而伴随的动作动作。l状态图的组成状态图的组成 1.状态(状态(State) :表示一个对象在其生存期内的状况:表示一个对象在其生存期内的状况2.转移(转换)转移(转换)(Transition) :表示不同状态之间的联:表示不同状态之间的联系。系。3.事件(事件(Event):):事件触发状态转移。事件触发状态转移。4.动作(动作(Action):):执行的行为执行的行为。(动作可以与状态相。(动作可以与状态相关,也可以与转移相关)关,也可以与转移相关)2 状态图状态图动作可以与状态相动作可以与状态相关,也可以与转关,也可以与转移相关:移相关:1. 如果动作与状态如果动作与状态相关,

6、则对象在相关,则对象在进入一个状态时进入一个状态时将触发此动作,将触发此动作,而不管是从哪个而不管是从哪个状态转入这个状状态转入这个状态的。态的。2. 如果动作与转移如果动作与转移相关,当对象在相关,当对象在不同的状态转移不同的状态转移时,将触发相应时,将触发相应的动作。的动作。判定判定状态的类型状态的类型l 简单状态简单状态(1)初始状态和终止状态状态)初始状态和终止状态状态(2)中间状态)中间状态-由一个带圆角的矩形表示。由一个带圆角的矩形表示。内部活动内部活动与状态相关的动作与状态相关的动作在一个状态中允许有多个动作。在一个状态中允许有多个动作。1.入口动作入口动作 (entry act

7、ion),),用来指定进入状态时用来指定进入状态时发生的动作。发生的动作。 语法形式:语法形式: entry/动作名动作名 2.出口动作(出口动作(exit action),),用来指定离开该状态时用来指定离开该状态时发生的动作。发生的动作。 语法形式:语法形式: exit/动作名动作名注意:由于入口动作和注意:由于入口动作和出口动作是隐式地激活,出口动作是隐式地激活,因此它们既没有参数也因此它们既没有参数也没有守卫条件。没有守卫条件。3.内部转移内部转移-Do动作(动作(do action),),用于标用于标记内部活动,用来指定处于该状态时执行的记内部活动,用来指定处于该状态时执行的动作。动

8、作。 语法形式:语法形式: do/动作名动作名l 内部转移内部转移不会改变对象的状态,内部转移在不会改变对象的状态,内部转移在入口动作执行完毕后开始执行。入口动作执行完毕后开始执行。4. 还可以添加其他事件和动作还可以添加其他事件和动作 event用来指定当特定事件触发时发生指定动用来指定当特定事件触发时发生指定动作,但此事件不会激发状态的改变,属于内部作,但此事件不会激发状态的改变,属于内部活动。活动。 l语法形式为语法形式为 延迟事件延迟事件/defer子状态子状态(3)组合(成)状态(复合状态)组合(成)状态(复合状态)l当状态机通过转换从某种状态转入组成状态时,此转当状态机通过转换从某

9、种状态转入组成状态时,此转换的目的可能是这个组成状态本身(换的目的可能是这个组成状态本身(从子初始状态开从子初始状态开始进行始进行),也可能是这个组成状态的子状态(),也可能是这个组成状态的子状态(从该子从该子状态开始进行状态开始进行) 。 l类似的,可以从组合状态中的子状态直接转移到目标类似的,可以从组合状态中的子状态直接转移到目标状态,也可以从组合状态本身转移到目标状态。状态,也可以从组合状态本身转移到目标状态。 (3) 组成状态组成状态l组成状态中子状态可以是组成状态中子状态可以是顺序子状态顺序子状态,也可以,也可以是是并发子状态并发子状态。l组成状态可以使用组成状态可以使用“与与”(a

10、nd)关系)关系分解为分解为并并发子状态发子状态,或者通过,或者通过“或或”(or)关系)关系分解为互分解为互相排斥的相排斥的顺序子状态顺序子状态。l“或或”(or)关系)关系说明在某一时刻仅可以到达组说明在某一时刻仅可以到达组合状态中的一个子状态,合状态中的一个子状态, “与与”(and)关系)关系说说明组合状态中在某一时刻可以同时到达多个子状明组合状态中在某一时刻可以同时到达多个子状态。态。1. 顺序子状态顺序子状态l如果一个组成状态的子状态对应的对象在其生如果一个组成状态的子状态对应的对象在其生命期内的任何时刻都只能处于一个子状态,即命期内的任何时刻都只能处于一个子状态,即多个子状态之间

11、是互斥的,不能同时存在,这多个子状态之间是互斥的,不能同时存在,这种子状态称为顺序子状态。种子状态称为顺序子状态。2. 并发子状态并发子状态-l有时组合状态有两个或者多个并发的子状态机,有时组合状态有两个或者多个并发的子状态机,此时称组成状态的子状态为并发子状态。此时称组成状态的子状态为并发子状态。l顺序子状态与并发子状态的区别在于后者在同一顺序子状态与并发子状态的区别在于后者在同一层次给出两个或多个顺序子状态,对象处于同一层次给出两个或多个顺序子状态,对象处于同一层次中来自每个并发子状态的一个时序状态中。层次中来自每个并发子状态的一个时序状态中。 (4) 历史状态历史状态l当离开一个组成状态

12、重新进入此状态时,不希望从当离开一个组成状态重新进入此状态时,不希望从它的初始状态开始执行,而是希望直接进入上次离它的初始状态开始执行,而是希望直接进入上次离开组成状态时的最后一个子状态,这种情况下就要开组成状态时的最后一个子状态,这种情况下就要用到用到历史状态历史状态。l历史状态代表上次离开组成状态时的最后一个活动历史状态代表上次离开组成状态时的最后一个活动子状态,它用一个包含字母子状态,它用一个包含字母“H”的小圆圈表示。的小圆圈表示。l每当转换到组成状态的历史状态时,对象便恢复到每当转换到组成状态的历史状态时,对象便恢复到上次离开该组成状态时的最后一个活动子状态,并上次离开该组成状态时的

13、最后一个活动子状态,并执行入口动作。执行入口动作。 音乐播放器对象的状态图音乐播放器对象的状态图l子状态中还可以嵌套子状态。子状态中还可以嵌套子状态。l如果能记忆任何嵌套层次的组合状态的历史,如果能记忆任何嵌套层次的组合状态的历史,这个这个历史状态就是深的(历史状态就是深的(deep)。深的历史状。深的历史状态用圈中态用圈中“H*”表示。表示。l如果只能记忆最外层次组合状态的历史,那这如果只能记忆最外层次组合状态的历史,那这个个历史状态时浅的(历史状态时浅的(shallow)。l注意:如果一个组合状态到达了其终态,则会注意:如果一个组合状态到达了其终态,则会丢失历史状态中的信息,就好像还没有进

14、入这丢失历史状态中的信息,就好像还没有进入这个组合状态一样。个组合状态一样。图图 带有历史指示器的软件安装过程状态图带有历史指示器的软件安装过程状态图 2.2 转换(转移)转换(转移)l转换用带箭头的直线表示,一端连接源状态即转转换用带箭头的直线表示,一端连接源状态即转出的状态,箭头一端连接目标状态即转入的状态。出的状态,箭头一端连接目标状态即转入的状态。l转移连接了源状态和目标状态。但需要各种条件转移连接了源状态和目标状态。但需要各种条件才能激活转移。这些条件包括事件、监护条件和才能激活转移。这些条件包括事件、监护条件和动作。动作。l需要上述条件才能转移的转移叫需要上述条件才能转移的转移叫触

15、发转移触发转移。l不需要任何条件的转移叫不需要任何条件的转移叫无触发转移无触发转移(完成转(完成转移),它在源状态完成活动时隐式地触发。移),它在源状态完成活动时隐式地触发。注意:注意:l监护条件:是用方括号括起来的布尔表达式,它监护条件:是用方括号括起来的布尔表达式,它放在事件的后面。放在事件的后面。l只有在引起转移的事件触发后才进行监护条件的只有在引起转移的事件触发后才进行监护条件的计算。转移时,监护条件只在发生事件时计算一计算。转移时,监护条件只在发生事件时计算一次。如果转移被重新触发,则监护条件再次被计次。如果转移被重新触发,则监护条件再次被计算。算。l如果监护条件和事件放在一起使用,

16、则当且仅当如果监护条件和事件放在一起使用,则当且仅当事件发生且监护条件为真时,转移发生;如果只事件发生且监护条件为真时,转移发生;如果只有监护条件,只要监护条件为真就发生转移。有监护条件,只要监护条件为真就发生转移。 l从相同的状态出来的、事件相同的几个转移之从相同的状态出来的、事件相同的几个转移之间的条件应该时互斥的。间的条件应该时互斥的。PC机状态建模:初始化、工作、关闭状态机状态建模:初始化、工作、关闭状态PC机添加一个屏幕保护状态机添加一个屏幕保护状态例题,一个汽车的状态有前进、例题,一个汽车的状态有前进、后退、低速、高速。后退、低速、高速。2.3事件事件调用(调用(call)事件)事件l一个调用事件代表一个操作的调用。一个调用事件代表一个操作的调用。l当一个对象调用另一个具有状态机对象的某个操当一个对象调用另一个具有状态机对象的某个操作时,控制就从发送者送到接受者。该事件触发作时,控制就从发送者送到接受者。该事件触发转移,完成操作后,接受者转到一个新的状态,转移,完成操作后,接受者转到一个新的状态,并将控制返回给发送者。并将控制返回给发送者。l一般是同步调用。一般是同步调用。

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

当前位置:首页 > IT计算机 > 软件测试

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!