UML系列文章(22)高级行为---状态机

本章内容:

  • 状态、转移和活动
  • 为对象的生命周期建模
  • 创建结构良好的算法

使用交互,可以对共同工作的对象群体的行为建模。使用状态机,可以对单个对象的行为建模。状态机是一个行为,它说明对象在它的生命周期中响应事件所经历的状态序列以及对那些事件的响应。

状态机用于对系统的动态方面建模。在大多数情况下,这包括描述一个类、一个用况或整个系统实例的生命期。这些实例可能响应诸如信号、操作或计时这样的事件。当事件发生时,某些效应将依赖对象的当前状态而发生。效应(effect)是对状态机中的行为执行的规约。效应最后将细化为某些引起对象状态改变或值的返回的动作的执行。对象的状态(state)是指对象满足某些条件,执行某些活动或等待某些事件的一段时间。

可以用两种方式来可视化执行的状态:一种是强调从活动到活动的控制流(使用活动图),另一种是强调对象潜在的状态之间的转移(使用状态图)。

结构良好的状态机就像结构良好的算法一样:简单、高效、易适应而且易理解。

1.入门

在UML中,使用像类图和对象图这样的元素对系统的静态方面建模。这些图允许对系统中的事物(包括类、接口、构件、结点、用况以及它们的实例)以及它们之间的关系进行可视化、详述、构造和文档化。

    在UML中,使用状态机对系统的动态方面建模。交互是共同完成某些动作的对象群体建模,而状态机是对单个对象的生命周期建模,不管它是一个类、用况还是整个系统的实例。在一个对象的生命周期中,可能出现各种各样的事件,如信号、操作的调用、对象的创建和撤销、时间的推移或某些条件的改变。在响应这些事件时,对象通过通过某些动作(某种计算)做出反应

UML StateWizard for VS.NET/VC6/EVC4可为嵌入式系统或Win32/WinCE开发带来可视化、基于可移植C语言的UML状态机编程机制。同时,作为Visual C++的插件,它使得开发者可以在强大的Visual C++开发环境中进行嵌入式系统的编写、调试以及模拟,从而使您的程序可以在最短时间内投入使用! UML StateWizard采用了状态机模型的开发方法,并与Visual C++紧密合作。有效地利用了Visual Studio强大的代码编写和调试能力,完成嵌入式应用程序在Windows平台上的设计和模拟。 如同Visual C++中的Class Wizard(类向导)一样,UML StateWizard具有以下特点: > (1)在集成开发环境中使用流畅,免去您在设计和开发环境间的不断切换之苦 > (2)不需要价格昂贵的重量级建模工具,您一样可以运用状态图 / 状态树为嵌入式系统建模 > (3)在基于状态机框架下,您可以快捷地开发嵌入式软件 > (4)充分地发挥状态图的能力,为您实现可自由移植的标准C语言代码 > > UML StateWizard为嵌入式系统开发提供了整套解决方案,包括: > 1)状态图 > 无需使用昂贵的重量级CASE工具,状态图即可让您一览应用程序的逻辑结构和流程。它形象地描述了层次化的状态关系。此外,状态图还可以直观地将状态间的迁移展现在您的眼前 > 2)状态树 > 是运用状态机进行开发的有利助手,状态树位于Visual C++的Workspace Tab窗口。在开发过程中,它能够提供一个状态机代码自动生成框架,帮您轻松地完成诸如“新建一个状态机应用”、“新建一个状态”、“定义状态的入口/出口函数”以及“定义事件处理函数”这些重复性的工作。在调试期,您还可以在状态树中获得跟踪功能支持 > 3)状态自动机引擎 > 管理着所有的状态机应用(包括激活应用和非激活应用)。每个状态机应用都运行在一个状态机之上。引擎可以将状态机事件合理分派到具体的应用中,同时调用相关函数以处理状态机事件 > 4)数据资源产生器 > 只需使用Visual C++的资源编辑器,您就魔术般产生多种基于嵌入式系统开发的UI数据资源,包括ASCII / Unicode文本字符串,层次化菜单,位图和字体 > 5)模拟和调试支持 > 提供了大量用于在Windows平台下模拟嵌入式应用程序的API函数和调试工具。通过运用这些工具,您可以不费劲地找出内存泄露 / 内存覆盖的“臭虫”、判断内存是否分配合理、检测程序在限定内存下的运行情况和为后期分析记录下分配信息 > 6)代码量统计支持 > 让您轻松统计C / C++项目的工作量 > 7)内存开销分析器 > 让您及时了解程序中内存的使用情况 > > UML StateWizard 没有任何功能限制,您可尽情使用.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值