[發明專利]基于文本二維表格的狀態機定義方法及其系統在審
| 申請號: | 201810079584.4 | 申請日: | 2018-01-26 |
| 公開(公告)號: | CN110083406A | 公開(公告)日: | 2019-08-02 |
| 發明(設計)人: | 石巍;何廣柏;李麗鋒;黃俊威;李家弟;林忠 | 申請(專利權)人: | 廣東億迅科技有限公司 |
| 主分類號: | G06F9/448 | 分類號: | G06F9/448 |
| 代理公司: | 深圳市精英專利事務所 44242 | 代理人: | 馮筠 |
| 地址: | 510000 廣東省廣州*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 狀態機定義 二維表格 單元格 后續狀態 文本文件 文本 普通文本文件 定義表格 事件觸發 填充狀態 分隔線 可移植 狀態機 交會 重用 遷移 繪制 靈活 維護 | ||
本發明涉及基于文本二維表格的狀態機定義方法及其系統,該方法包括采用字符繪制表格分隔線;在表格的第一行與第一列的交會單元格內定義表格的方向;根據表格方向,在表格的首行非首列與在表格的首列非首行的單元格內對應填充狀態以及事件;在表格的單元格中定義對應狀態下被對應事件觸發的動作及后續狀態。本發明通過基于普通文本文件為載體,在文本文件上采用二維表格,利用四個狀態和三大事件對狀態機的動作及后續狀態進行定義,實現解決狀態機定義的現有技術中的不易理解性、難以維護、不夠靈活以及無法可移植、遷移、重用的問題。
技術領域
本發明涉及狀態機,更具體地說是指基于文本二維表格的狀態機定義方法及其系統。
背景技術
在程序設計領域,狀態機是一種常用的管理復雜程序邏輯的工具。命令行程序等簡單程序可以不依賴于運行過程中外部事件而獨立地運行,這種程序的邏輯是線性的。而對于圖形界面程序、網頁程序等較為復雜的應用程序,需要由運行過程中外部發生的事件來驅動。事件在應用程序之外生成,無法由應用程序或程序員來控制。具體需要執行的代碼取決于接收到的事件,或者它相對于其他事件的抵達時間。所以,控制流程既不能是順序的,也不能是事先設定好的,因為它要依賴于外部事件,而外部事件發生的種類及順序在開發程序時是未知的。顯然,必須采取一種能夠管理外部事件與程序邏輯之間關系的技術來處理這些情況。狀態機就是這樣的技術之一。它能處理任何順序的事件,并能提供有意義的響應,即使這些事件發生的順序是無法預先確定的。
狀態機把程序邏輯抽象成程序對外部事件的響應操作。更進一步,操作不僅取決于接收到的事件,還取決于事件發生時程序所處的狀態,從而能夠使程序適應各個事件相對發生順序的任意排列。狀態機維護一個內部狀態,它會在收到事件后進行更新。為一個事件而響應的行動不僅取決于事件本身,還取決于機器的內部狀態。另外,采取的行動還會決定并更新機器的狀態。從而,任何邏輯都可建模成一系列事件/狀態的組合。
滿足以下條件的程序邏輯,都可以使用狀態機進行組織,一是有限個狀態、有限個事件;二是一次事件觸發一次狀態轉移,進入一種新狀態。由此,狀態機可歸納為四大要素,即現態、條件、動作、次態。這樣的歸納,主要是出于對狀態機的內在因果關系的考慮。“現態”和“條件”是因,“動作”和“次態”是果。詳解如下:現態是指當前所處的狀態;條件又稱為“事件”,當一個條件被滿足,將會觸發一個動作,或者執行一次狀態的遷移;動作是條件滿足后執行的動作,動作執行完畢后,可以遷移到新的狀態,也可以仍舊保持原狀態,動作不是必需的,當條件滿足后,也可以不執行任何動作,直接遷移到新狀態;而次態是條件滿足后要遷往的新狀態,“次態”是相對于“現態”而言的,“次態”一旦被激活,就轉變成新的“現態”了。因此,為了定義一個狀態機,需要用某種方式對這4大要素加以組織,并且由于狀態機是為程序服務,狀態機自身也是程序邏輯的一部分。
現有的狀態機定義方式有以下幾種:一是程序代碼直接構造狀態機,這種方式的原理是用全局變量保存狀態機的當前狀態,事件作為輸入參數,用嵌套的if-else鏈或switch-case機制組織狀態機的規則,每條規則的形式為:當前狀態=X且事件=Y時,執行相應的操作并更新當前狀態;但是該方式由于狀態機的事件、操作、狀態轉移等邏輯分散在代碼的各處,沒有一個全局直觀的展現方式,需要通讀代碼才能理解狀態機的邏輯,因此很難理解,且如果狀態機的邏輯改變,需要修改的地方分散在代碼的各處,沒有一個統一的地方可以修改,很難維護,在狀態機邏輯改變后,需要重新編譯、部署程序,才能讓改動生效,無法靈活使用,另外,狀態機邏輯與程序代碼緊密耦合,難以從程序中分離,無法重用到其他語言、平臺、程序,這種方式定義的狀態機難以移植、遷移、重用。
二是用程序代碼中用表格組織狀態,狀態機的四大要素可以組織成一個二維的表格,現態與事件是表格的行和列,動作、次態是單元格中的內容。通常這樣的二維表格使用程序語言的二維數組表示,數組的第一維是現態,第二維是事件,數組中的元素是對應于該現態與事件的操作。這種方式與上一種方式相比,把邏輯集中到了表格中,但仍不夠直觀,因為程序語言的二維數組語法并不是為表達表格而設計;且仍存在不靈活、難以移植、遷移、重用的問題。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣東億迅科技有限公司,未經廣東億迅科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810079584.4/2.html,轉載請聲明來源鉆瓜專利網。





