第10章 状态机图
- 格式:ppt
- 大小:1.15 MB
- 文档页数:55
绪论单元测试1【判断题】(20分)UML是面向对象的软件建模语言,可应用到软件开发全过程。
A.对B.错2【判断题】(20分)面向对象是当今主流的软件开发思想。
()A.对B.错3【多选题】(20分)下列哪些工具可以用来进行UML建模?()A.MicrosoftOfficeVisioB.EnterpriseArchitect(EA)C.RationalRoseD.StarUML4【多选题】(20分)我们要从本课程中学到哪些知识?()A.面向对象的基础知识B.UML软件建模C.面向对象的设计原则D.面向对象编程语言5【多选题】(3分)平时分析问题,总要获取哪些方面的信息?()A.事物之间的关系是什么?B.事物的特征和行为是什么?C.问题中涉及哪些事物?D.事物之间如何协作完成任务?第一章测试1【多选题】(20分)以下对软件建模描述正确的是()A.每个模型可以有多种表达方式,从不同角度来刻画系统。
B.描述同一个系统的多个模型只能相对孤立,不能完全孤立,完全孤立的模型是不完整的C.要正确建模,模型必须准确反映软件系统的真实情况。
D.越庞大复杂的系统,建模的重要性越大。
E.模型是对现实世界的简化,但不能掩盖重要的细节。
2【单选题】(20分)模型的实质是什么?()A.对现实的复杂化B.对现实的简化C.便于交流D.可视化3【单选题】(20分)对软件模型而言,下面说法的是()A.是软件的标准文档B.是软件的中间形态C.是人员交流的媒介D.是软件升级和维护的依据4【单选题】(20分)以下关于模型的说法的是()A.一个好的模型包括那些有广泛影响的主要元素,而忽略那些与给定的抽象水平不相关的次要元素。
B.模型必须是可视化的。
C.通过建模可以帮助人们理解复杂的问题。
D.模型是对现实的简化。
5【单选题】(20分)以下哪一个选项不能当做模型?()A.交通地图B.地球仪C.电路设计图D.灭火器第二章测试1【单选题】(20分)在下面所述中,关于UML的说法不正确的是()A.UML不是过程也不是方法,但允许每一种过程和方法使用它。
状态机图1.概述状态机图(State Machine Diagram)是用来显示状态机的图,包括简单状态、转换和嵌套的复合状态等,一个典型的状态机图如图1所示:图1. 状态机图2.基本表示符号状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态。
2.1状态(State)状态是对象生命周期中的一个条件或形态。
状态由对象的属性值、与其他对象的关系以及正在执行的活动来确定。
在UML中,状态用圆角矩形和状态名表示,初始状态用实心圆表示,终止状态用牛眼表示,如图2所示:图2. 状态状态可以有一个或多个分栏,这些分栏是可选的,包括名称分栏、嵌套区域、内部转换分栏等,如图3所示:图3. 带分栏的状态状态也可用圆角矩形上带有状态名称标签的方框表示,如图4所示:图4. 带有名称标签符号的状态2.2转移(Transaction)转移表示状态之间可能的路径,可以表示外部转换(用箭头表示),也可以表示内部转换(嵌套在状态内部)。
如图5所示:图5. 转移2.3事件(Event)事件是对,在特定时间和空间上,所发生的有意义的事情。
在状态机中,事件触发转移,事件或者显示在转换之上,或显示在状态以内。
共有四种类型的事件:信号事件、调用事件、时间事件、改变事件。
信号用于对象间异步传递的信息包,它没有任何操作,只有自身携带的信息。
信号事件是通过信号来触发的事件,在UML中,信号如图6所示:图6. 信号调用事件是请求在类语境的实例上调用特定的操作,在UML中,调用事件如图7所示:图7. 调用事件时间事件用关键字after表示,说明事件被触发的临界时间。
改变事件用关键字when表示,说明将事件改变所满足的条件。
如图8所示:图8. 时间事件和改变事件2.4伪状态(Pseudo State)伪状态指在一个状态机中具有状态的形式,同时具有特殊行为的顶点。
它是一个瞬时状态,用于构造转换的细节。
当伪状态处于活动时,状态机还没有完成从运行到完成的步骤,也不会处理事件。
UML状态机图1.状态机图的作用状态机图是用来为对象的状态及造成状态改变的事件建模。
UML的状态机图主要用于建立对象类或对象的动态行为模型,表现一个对象所经历的状态序列,引起状态或活动转移的事件,以及因状态或活动转移而伴随的动作。
状态机图也可用于描述Use Case,以及全系统的动态行为。
状态机图表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起,响应事件,执行某些动作,引起转移到新状态,又在新状态下响应事件,执行动作,引起转移到另一个状态,如此继续,直到终结状态。
2.状态机图的基本元素状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态。
状态图由状态(state,圆角矩形)与转换(transition,连接状态的箭头)组成。
引起状态改变的触发器(trigger)或者事件(event)沿着转换箭头标示。
如图所示灯光有2个状态:off与on。
当lift switch或者lower switch事件被触发时,灯光状态会改变。
图表1 状态图的基本元素状态图通常有初始伪状态(initial pseudostate)和最终状态(final state),分别表示状态机的开始和结束。
初始状态用实心圆表示,终止状态用牛眼表示。
图表2状态图中的初始伪状态与最终状态2.1状态(state)状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况。
一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成。
图表3 带分栏的状态在状态图的下面部分可以标识内部活动,包括事件和动作(event/action)。
Entry和exit事件是标准的,任何一个进入状态的转换都将会调用entry动作,任何一个退出状态的转换都将会调用exit动作,而且也可以添加自己的事件。
与do行为不同,进入和退出行为是无法被中断的。
图表4状态的内部行为例如,咖啡机正在煮咖啡的状态(Brewing),并且可以把行为写在状态内。
145 10.3 复合状态在本章前面介绍的内容中,所涉及的状态都是不包含嵌套子结构的简单状态。
然而,在建模过程中,需要表现的状态可能会很复杂,这时就需要用到复合状态来进行建模。
复合状态是指包含有一个或多个嵌套状态机的状态。
当想要描述的系统非常复杂,而有一些状态又构成了紧密的相互关联的时候,我们可以先将一部分细小的状态组合成一个状态机,把这个新的状态机作为总状态图中的一个复合状态来呈现。
复合状态中包含的状态称为子状态。
复合状态可以分为顺序复合状态与并发复合状态。
1.顺序复合状态顺序复合状态,在UML 2规范后又被称为非正交状态,是仅包含一个状态机的复合状态。
当顺序复合状态被激活时,只有一个子状态会被激活。
它只增加了一层子结构,没有增加额外的并发性。
例如,在一个游戏中需要有对游戏角色的动画控制。
这个角色的动画控制就可以使用一个状态图来描述。
例如,这个游戏角色在地面上可以站立、蹲下、行走、跑动和起跳,但在空中的时候就没有什么可选动作,只能听候重力的安排随时准备着地了。
那么我们可以先设计一个Ground 状态机,在Ground 状态机中定义了站立、蹲下、行走、跑动这几个状态和它们之间的状态转移,在这里我们排除了“起跳”,因为这实际上是地面状态到空中状态的一个转换。
之后把Ground 本身作为一个状态,和Fly (空中)状态以起跳事件作为转移触发点进行关联,一个比较复杂的行为规范就已经通过复合状态的方式来巧妙解决了,其状态图如图10-7所示。
图10-7 顺序复合状态2.并发复合状态当一个复合状态中包括两个或多个并发执行的子状态机时,这个复合状态称为并发复合状态,也称正交复合状态。
并发复合状态将复合状态分成若干个正交区域,每个区域都有一个相对独立的子状态机。
如果该并发复合状态是激活的,那么该状态中每个区域都将有一个状态是激活的。
例如,参加某门课程的学生需要完成课程任务与期末考试才能获得课程通过。
在课程任务与期末考试完成前应该属于课程的“未完成”状态。
第10章形式化方法用于开发计算机系统的形式化方法是描述系统性质的基于数学的技术。
它一般用于一致性检查、类型检查、有效性验证、行为预测以及设计求精验证。
本章内容主要包括:形式化方法的概念、有限状态机、Pertri网、净室方法学等。
10.1 基础知识10.1.1 形式化方法的概念形式化方法提供了一个框架,人们可以在框架中以系统的方式刻画、开发和验证系统。
形式化方法提供了规约环境的基础,它使得所生成的分析模型必用传统的或面向对象的方法生成的模型更完整、一致和无二义性。
支配形式化方法的基本概念是:数据不变式、状态、离散数学、序列相关联的符号体系、形式化规约语言。
形式化规约的目标是无二义性、一致性和完整性。
然而,形式化方法的使用导致了达到这些理想的更高的可能性。
10.1.2 有限状态机有限状态机是实时系统设计中的一种数学模型,是一种重要的、易于建立的、应用比较广泛的、以描述控制特性为主的建模方法,它可以应用于从系统分析到设计的所有阶段。
有限状态机的组成如下:(1)一个有限的状态集合Q。
(2)一个有限的输入集合I。
(3)一个变迁函数ò:Q×I—〉Q变迁函数也是一个状态函数,在某一状态下,给定输入后,FSM转入该函数产生的新状态。
ò的定义域内的某些数值可以是未定义的。
有限状态机的优点在于简单易用,状态的关系能够直观看到。
但应用在实时系统中时,其最大的缺点是:任何时刻系统只能有一个状态,无法表示并发性,不能描述异步并发的系统。
另外,在系统部件较多时,状态数随之增加导致复杂性显著增长。
10.1.3Petri网Petri网是在软件分析中,用一种系统的数学和图形的描述与分析的方法。
对于具有并发、异步、分布、并行、不确定性或随机性的信息处理系统,都可以利用Petri网方法构造出要开发的Petrie网模型。
Petri网行为特性包括可达性、有界性、活性、可逆性、可覆盖性、持久性、异步距离和公平性等。