category: 交互设计

状态机在交互场景中的应用

最近接触到一个新的概念:状态机。在稍微深入的了解了一下之后觉得这个东西很有意思,完全可以引用到设计中来,作为描述交互场景的一种工具或者方法。

什么是状态机呢?
状态机是一个数学模型的概念,在数学中的定义为:它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态, 状态机停止。

我通过了解以及朋友的描述,将状态机的的模型画成了一个图示(参看右图)。A、B、C是三个节点,条件1-6是三个节点之间相互转换的条件,或者可以理解为操作。A、B、C三个节点都具有各自的属性,这张图中我暂时没有给增加属性。

那状态机怎么应用到交互场景中来呢?我们举个简单的例子,对于一个程序软件的三个窗口尺寸状态:最大化(假设是图中的A状态)、最小化(假设是图中的B状态)、普通窗口(假设是图中的C状态)。A向B转化,需要点击窗口右上角的最小化按钮,即为条件1;B向A转化时需要点击任务栏按钮,即为条件2.B和C之间、A和C之间相互转化也是类似于AB间的转化。当然,如果AB之间有数个路径可以相互转化是,那么条件就可以列出很多。

由此可见,状态机可以很合适的应用到交互场景去。从一定意义上讲,状态机就是流程图的一个特殊状态和表现方式。与一般的流程图相比,状态机的任务相对直接,任务也相对简单,这应该算是影响状态机应用的一个限制因素。

另外,状态机可以作为简单的沟通语言,在不同身份的人交流时,如果遇到一些问题,可以画一些简单的状态机来描述任务流程,我最典型的一个例子就是整理了IM软件中登录、登陆中和主窗口等几个界面的最大化、最小化、普通窗口三者之间的状态切换关系。

我现在对于状态机的了解也还是在初级的层面上,有很多领悟不透的,欢迎大家分享你们对状态机的认识,一同学习。

3 Responses to “状态机在交互场景中的应用”

  1. hauy Says:

    一般指的是不是有限状态机finite state machine (FSM)?

    [回复此评论]

  2. dte Says:

    没听过,不过好像蛮有意思的

    [回复此评论]

  3. BanLon Says:

    en ,一般是说有限状态机。

    [回复此评论]

Leave a Reply