一种基于状态机的软件快速编程方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201910995549.1
(22)申请日 2019.10.18
(71)申请人 贵州云辰软件开发有限公司
地址 550000 贵州省贵阳市贵阳国家高新
技术产业开发区金阳科技产业园标准
厂房辅助用房B302室
(72)发明人 游明琦 舒涛 
(74)专利代理机构 成都明涛智创专利代理有限
公司 51289
代理人 何娜
(51)Int.Cl.
G06F  8/34(2018.01)
(54)发明名称一种基于状态机的软件快速编程方法(57)摘要本发明涉及软件开发技术领域,且公开了一种基于状态机的软件快速编程方法,包括步骤:构建由状态图(graph)集合与接口(interface)集合组成的资源(Res );创建状态图(graph )的graphtop实例,并初始化起点(point  start)和终点(point  end)为未激活状态;根据资源(Res)指定的状态图(graph)关系创建状态图(graph),并初始化所有状态点(point)为未激活状态。本发明的优点在于,通过构建由状态图(graph)与状态点(point),并通过激活状态点获取状态值,经过状态点筛选出的状态值调取出代码块,可有效简化软件编程的方式,成功的将编程问题转换成了画图问题。从此,用户在开发时无需再面对大量代码,只需要创建几个状态图,填写几个属
性和极少部分代码块即可完成软件编程。权利要求书1页  说明书4页  附图3页CN 110908650 A 2020.03.24
C N  110908650
A
1.一种基于状态机的软件快速编程方法,其特征在于,包括以下步骤:
1)构建由状态图(graph)集合与接口(interface)集合组成的资源(Res);
2)创建状态图(graph)的graphtop实例,并初始化起点(point  start)和终点(point  end)为未激活状态;
3)根据资源(Res)指定的状态图(graph)关系创建状态图(graph),并初始化所有状态点(point)为未激活状态;
4)激活graphtop实例的起点(point  start),等待工作线程执行该点;
5)多个上级状态点欲激活当前状态点,及代码块的返回值等于当前状态点的状态值;
6)当前状态点通过逻辑控制器输出逻辑值;
7)输出逻辑值是否等于一,
8)激活状态点;
9)取消激活状态点;
10)经过逻辑判断激活相应状态点后开始调用该点所绑定的代码块;
11)代码块返回一个结果,该结果为下一个需要激活状态点的状态值;
12)生成所需要软件的程序代码。
2.根据权利要求1所述的一种基于状态机的软件快速编程方法,其特征在于,所述步骤
1)中的状态图(graph)包括有若干状态点(point)与连线集合组成。
3.根据权利要求2所述的一种基于状态机的软件快速编程方法,其特征在于,所述若干所述状态点(point)分为起点(point  start)、终点(point  end)、状态点(point)与错误处理点(error)。
4.根据权利要求3所述的一种基于状态机的软件快速编程方法,其特征在于,所述起点(point  start)与终点(point  end)组成graphtop实例,所述状态点(point)与错误处理点(error)组成graphtopmgr实例。
5.根据权利要求1所述的一种基于状态机的软件快速编程方法,其特征在于,所述步骤
3)中的状态点由逻辑控制器与代码块组成,所述步骤6)中的输出逻辑值只有零和一两个值。
6.根据权利要求1所述的一种基于状态机的软件快速编程方法,其特征在于,所述步骤
7)中当输出逻辑值等于一的则执行步骤8),所述步骤7)中当输出逻辑值不等于一的则执行步骤9)。
7.根据权利要求5所述的一种基于状态机的软件快速编程方法,其特征在于,所述代码块中代码由资源(Res)中的接口(interface)集合提供。
权 利 要 求 书1/1页CN 110908650 A
一种基于状态机的软件快速编程方法
技术领域
[0001]本发明涉及软件开发技术领域,具体为一种基于状态机的软件快速编程方法。
背景技术
[0002]状态机从数学上来说,它是一个有向图,由一组节点和一组对应的转移函数组成,状态机通过响应一系列事件而运行。状态机可归纳为4个要素:现态,条件,动作,次态。在计算机科学中,状态机被广泛应用于建模应用行为、硬件电路设计、软件工程等,已经是信息技术领域的核心基础,但目前还没有将状态机运用到软件编程之中。
[0003]目前在软件编程技术领域中,基本还在完全采用代码编写的编程方式,这样的编程方式需要编辑人员储备大量的代码与符号,而且容易出错,编写效率也很低,急迫需要一种方便简洁的软件快速编程方法,因此本发明提出一种基于状态机的软件快速编程方法,可有效解决上述问题。
发明内容
[0004](一)解决的技术问题
[0005]针对现有技术的不足,本发明提供了一种基于状态机的软件快速编程方法,具备编程方式简便,编程效率高等优点,解决了现有编程方式效率低下的问题。
[0006](二)技术方案
[0007]为实现上述程方式简便,编程效率高目的,本发明提供如下技术方案:一种基于状态机的软件快速编程方法,其特征在于,包括以下步骤:
[0008]1)构建由状态图(graph)集合与接口(interface)集合组成的资源(Res);[0009]2)创建状态图(graph)的graphtop实例,并初始化起点(point start)和终点(point end)为未激活状态;
[0010]3)根据资源(Res)指定的状态图(graph)关系创建状态图(graph),并初始化所有状态点(point)为未激活状态;
[0011]4)激活graphtop实例的起点(point start),等待工作线程执行该点;
[0012]5)多个上级状态点欲激活当前状态点,及代码块的返回值等于当前状态点的状态值;
[0013]6)当前状态点通过逻辑控制器输出逻辑值;
[0014]7)输出逻辑值是否等于一,
[0015]8)激活状态点;
[0016]9)取消激活状态点;
[0017]10)经过逻辑判断激活相应状态点后开始调用该点所绑定的代码块;
[0018]11)代码块返回一个结果,该结果为下一个需要激活状态点的状态值;
[0019]12)生成所需要软件的程序代码。
[0020]优选的,所述步骤1)中的状态图(graph)包括有若干状态点(point)与连线集合组
成。
[0021]优选的,所述若干所述状态点(point)分为起点(point start)、终点(point end)、状态点(point)与错误处理点(error)。
[0022]优选的,所述起点(point start)与终点(point end)组成graphtop实例,所述状态点(point)与错误处理点(error)组成graphtopmgr实例。
[0023]优选的,所述步骤3)中的状态点由逻辑控制器与代码块组成,所述步骤6)中的输出逻辑值只有零
和一两个值。
[0024]优选的,所述步骤7)中当输出逻辑值等于一的则执行步骤8),所述步骤7)中当输出逻辑值不等于一的则执行步骤9)。
[0025]优选的,所述代码块中代码由资源(Res)中的接口(interface)集合提供。[0026](三)有益效果
[0027]与现有技术相比,本发明提供了一种基于状态机的软件快速编程方法,具备以下有益效果:
[0028]1、该基于状态机的软件快速编程方法,通过构建由状态图(graph)与状态点(point),并通过激活状态点获取状态值,经过状态点筛选出的状态值调取出代码块,可有效简化软件编程的方式,有现有的纯代码编辑,转化为构建状态图来自动生成代码,成功的将编程问题转换成了画图问题。从此,用户在开发时无需再面对大量代码,只需要创建几个状态图,填写几个属性和极少部分代码块即可完成软件的开发。
[0029]2、该基于状态机的软件快速编程方法,通过采用构建状态图的方式来生成代码,从而使得软件编辑人员无需再花费大量的时间学习代码由编程语法,只需按照自己对程序的需要构建状态图(graph)即可,状态图的逻辑更加简洁清晰,更加容易理解,可大大降低编程的编写难度与学习难度,达到降低编程难度的目的。
附图说明
[0030]图1为本发明资源(Res)的构成示意图;
[0031]图2为本发明状态图(graph)的构成示意图;
[0032]图3为本发明状态点(point)的构成示意图;
[0033]图4为本发明状态图(graph)的运行流程图;
[0034]图5为本发明状态点(point)的运行流程图。
具体实施方式
[0035]下面将结合本发明的实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036]实施例一:
[0037]一种基于状态机的软件快速编程方法,其特征在于,包括以下步骤:
[0038]1)构建由状态图(graph)集合与接口(interface)集合组成的资源(Res);[0039]2)创建状态图(graph)的graphtop实例,并初始化起点(point start)和终点
(point end)为未激活状态;
[0040]3)根据资源(Res)指定的状态图(graph)关系创建状态图(graph),并初始化所有状态点(point)为未激活状态;
[0041]4)激活graphtop实例的起点(point start),等待工作线程执行该点;
[0042]5)多个上级状态点欲激活当前状态点,及代码块的返回值等于当前状态点的状态值;
[0043]6)当前状态点通过逻辑控制器输出逻辑值;
[0044]7)输出逻辑值是否等于一,
[0045]8)激活状态点;
[0046]9)取消激活状态点;
[0047]10)经过逻辑判断激活相应状态点后开始调用该点所绑定的代码块;
[0048]11)代码块返回一个结果,该结果为下一个需要激活状态点的状态值;
[0049]12)生成所需要软件的程序代码。
[0050]所述步骤1)中的状态图(graph)包括有若干状态点(point)与连线集合组成,连线用于连接状态图内部状态点或状态图之间的状态点,每个状态点都会绑定一个代码块或res的一个成员函数且每个状态点都有一个状态值同一状态图中的状态点不能有相同的状态值,每个函数或代码块都会返回一个状态值用于激活后续状态点。
[0051]所述若干所述状态点(point)分为起点(point start)、终点(point end)、状态点(point)与错误处理点(error),误处理点(error)用于处理错误,程序启动时graphtop的起点(point start)处于激活状态,根据用户配置的连接关系激活指定graphmgr的某个指定的点,系统遍历出被激活的状态点并调用该点所绑定的代码。
[0052]所述起点(point start)与终点(point end)组成graphtop实例,所述状态点(point)与错误处理点(error)组成graphtopmgr实例。
[0053]所述步骤3)中的状态点由逻辑控制器与代码块组成,所述步骤6)中的输出逻辑值只有零和一两个值,逻辑控制器负责逻辑判断,一般由用户指定逻辑关系。
[0054]所述步骤7)中当输出逻辑值等于一的则执行步骤8),所述步骤7)中当输出逻辑值不等于一的则执行步骤9)。
[0055]所述代码块中代码由资源(Res)中的接口(interface)集合提供。
[0056]本发明的有益效果是:该基于状态机的软件快速编程方法,通过构建由状态图(graph)与状态点(point),并通过激活状态点获取状态值,经过状态点筛选出的状态值调取出代码块,可有效简化软件编程的方式,有现有的纯代码编辑,转化为构建状态图来自动生成代码,成功的将编程问题转换成了画图问题。从此,用户在开发时无需再面对大量代码,只需要创建几个状态图,填写几个属性和极少部分代码块即可完成软件的开发,再通过采用构建状态图的方式来生成代码,从而使得软件编辑人员无需再花费大量的时间学习代码由编程语法,只需按照自己对程序的需要构建状态图(graph)即可,状态图的逻辑更加简洁清晰,更加容易理解,可大大降低编程的编写难度与学习难度,达到降低编程难度的目的。
[0057]典型案例:
[0058]一种基于状态机的软件快速编程方法,其特征在于,包括以下步骤:

本文发布于:2024-09-20 19:38:35,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/435165.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:编程   代码   软件   状态机   状态图   状态   方法   方式
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议