找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 620|回复: 0
打印 上一主题 下一主题

产品之术:一目了然的状态机图

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-17 16:30:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                                                什么状态机图,它的使用场景是什么?文章为你解读。

一、什么是状态机?
做产品的时候,我们总能遇到一些比较复杂的逻辑问题。
比如状态的转换,字段状态的确认,权限的控制,状态的对应。
而普通的流程图,或时序图,更侧重于流程和动作的描述,对于对象和状态的解读缺乏直观。
这里我们推荐一种方式,就是画一个简单的状态机图:
那么什么是状态机呢?状态机我们将的一般是指有限状态机:
有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。[1]
有限状态机,又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。[1]
有限状态机可以将复杂的逻辑简化为有限个稳定状态,在稳定状态中判断事件。其中有限不是指有限次处理,而是有限个稳定状态,并且有限状态机是一个闭环系统,可以用有限的状态处理无尽的事务。
有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究。

二 状态机图怎么画?
基本元素
当你需要描述一个对象或系统的行为状态时,相比于直接的语言描述,更推荐使用状态机表或状态机图的形式。
首先我们看一下基本元素:

做需求时,至少要了解以下四种元素:起始、终止、状态、历史状态。
再加上动作和条件,我们就可以完成一个状态机图了:

所以对于状态机图来说,基本要用到6个元素:
[ol]
  • 起始
  • 终止
  • 状态
  • 历史状态
  • 动作
  • 条件
    [/ol]
    对于历史状态的使用,我们可以参考下面的案例。
    比如我们举个简单的例子,一个洗衣机的快洗模式状态图:

    遇到断电的时候,机器是有缓存的,所以跳出流程恢复流程之后,是会回到历史状态。
    状态机表怎么画?
    首先我们看下下面这张状态机图,展示了一张简单的单审批人文件的状态流转情况。

    那么如何把他写成表呢?这里有多种写法,区别于纵坐标的不同,我们举两种:

    左侧的纵坐标为初始状态,横坐标为终止状态。
    右侧的纵坐标为动作条件,横坐标为终止状态。
    那么对于动作比较多且复杂的情况下,可以考虑采用右侧的表格,这样会比较一目了然。
    三 使用场景
  • 在讲解逻辑的时候,或泳道图过于麻烦的时候,你可能会用到状态机图。
  • 可能很多你提出的需求,工程师都会自己去把他画成状态机图来方便编码。
  • 所以能为别人多做一步,别人就对你多一份感激。
  • 在梳理需求的时候,状态机图也是一个帮助思维思考的好工具。
  • 状态机图更是一个代入感很强的表现形式。

    比如我们可以画一个状态机图来展示某岗位的一生:

    最后希望这个岗位的同事都能够做到逻辑清晰,身体健康。
                   
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端