欢迎来到天天文库
浏览记录
ID:42194405
大小:1010.51 KB
页数:35页
时间:2019-09-10
《系统分析-状态图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2021/9/161第3讲状态图2021/9/1621什么是状态图?状态图描述了一个对象或交互过程在它的生命周期中对一系列外界激励所呈现出的不同状态以及它相应的响应和活动状态机用状态和瞬时过程的变化图形来表示一个对象对外界激励下的响应,状态机一般附着在一个对象或具体的方法上状态图描述了一个状态机,在我们考虑的范围内,它们是同一件事UML中关于状态图的定义和描述主要是采用DavidHare提出的状态图方法并加上了面向对象的含义2021/9/1632状态图的构成状态图由一组表示状态和迁移组成。一个简单的编辑器可以被看作为一个有限状态机,它
2、具有状态Empty,Waitingforacommand,和Waitingfortext.事件Loadfile,Inserttext,Insertcharacter,Saveandquit引发状态机中的状态的迁移2021/9/1643什么是状态?状态表示的是一个对象或交互过程中的一个特定阶段:满足了某一个条件,进行某项活动或等待某个事件的发生,状态对应一段有限的时间。状态对应于一组对象属性的值状态由一个带圆角的矩形表示两个特殊状态:初始状态:一个小实心黑圆终止状态:一个套有小实心黑圆得圆2021/9/1654什么是迁移?一个迁移表示由
3、事件、条件或事件触发后状态的改变状态间的迁移用一根带箭头的直线来表示。2021/9/1665.动作可以在状态内使用动作表示其行为动作是选取一段输入且产生一组输出并最终可改变系统的状态动作的执行只需要一小段时间且执行不可中断动作可发生在以下3个位置:当一条迁移被选中时当进入一个状态时(entry)当退出一个状态时(exit)2021/9/1672021/9/1686.活动一个状态可关联到一个活动,该活动的执行与驻留在这一状态上的对象的生命周期一样长动作与活动的区别:动作的执行时间短且不可中断,而一个活动的执行需要一段时间且其执行是可以中
4、断的,其中断的时机就是该状态的一个迁移被时活动使用“do标识”2021/9/1692021/9/16102021/9/16112021/9/16122021/9/16137.内部迁移内部迁移指一个未离开该状态的迁移。通过事件触发内部迁移,并可出现与这些事件相关联的动作2021/9/16148.嵌套状态图嵌套简化了复杂性,可用于取代内部迁移2021/9/16152021/9/1616打电话的状态图2021/9/16179.建模技巧/1状态机最经常被用以对一个对象的生命周期中的行为进行建模,特别是在对象具有依赖于状态的行为的时候可以具有状
5、态机的包括类,子系统,用例和接口(确定实现接口的对象必须满足的状态)2021/9/16189.建模技巧/2在实时系统中,状态机可以用于进程(capsules)和协议(确定实现协议的对象需要满足的状态)并不是所有的对象都需要状态机.如果对象的行为是简单的,比如说它只是简单的存储和获取数据,对象的行为是状态不变的(state-invariant),那么其状态机就没有多少意义对对象的生命周期的建模涉及到三件事情:描述对象需要响应的事件对这些事件的响应过去对当前行为的影响对对象的生命周期的建模也涉及到决定对象响应事件的次序,这种响应始于对象的
6、创建时刻,继续直到其销毁2021/9/16199.建模技巧/3为了对对象的生命周期进行建模:确定状态机的背景,是类,用例,还是整个系统如果背景是类或者是一个用例,收集邻近的类,包括父类或者通过关联或依赖关系能够到达的类,这些邻居是动作的可能的目标,或者是保安条件中包含的内容如果背景是整个系统,将焦点放在系统的某一个行为上,然后考虑对象在该方面的生命周期。整个系统的生命周期太大了。建立对象的初始和最终状态,如果对于初始和最终状态有前置条件或后置条件,也要定义它们2021/9/1620确定对象能够响应的事件,它们可以从对象的接口中找到,在
7、实时系统中,它们可以从对象的协议中找到从初始状态到最终状态,画出对象的最高层的状态,将这些状态用转移连接起来,这些连接由特定的事件触发确定进入和退出动作通过使用子状态能够扩展和简化状态机2021/9/16219.建模技巧/4检查是否状态机中所有的事件触发转换与由对象实现的接口所期望的事件匹配所有的对象接口期望的事件都包含在状态机中在实时系统中,对进程的协议进行同样的检查。确定那些明确希望忽略事件的地方(例如延迟事件)2021/9/1622是否状态机中的所有的动作得到了包含的对象的关系、方法和操作支持在状态图中进行跟踪检查,将它与期待的
8、事件和响应的顺序进行比较,搜索那些到达不了的状态和“死锁”状态在调整状态机图时,确保语义不变2021/9/16239.建模技巧/5在有选择的情形下,尽量使用状态机的可视化语义而不是写详细的转移说明。例如,不要在一个转移上
此文档下载收益归作者所有