CN109117130B - 一种基于mdd的时序图自动生成状态迁移矩阵的方法、***及存储器 - Google Patents
一种基于mdd的时序图自动生成状态迁移矩阵的方法、***及存储器 Download PDFInfo
- Publication number
- CN109117130B CN109117130B CN201810850370.2A CN201810850370A CN109117130B CN 109117130 B CN109117130 B CN 109117130B CN 201810850370 A CN201810850370 A CN 201810850370A CN 109117130 B CN109117130 B CN 109117130B
- Authority
- CN
- China
- Prior art keywords
- state
- events
- states
- event
- state transition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及基于MDD的时序图自动生成状态迁移矩阵的方法、***及存储器,通过ruby语言解析按照Plantuml语法格式编写的时序图脚本,获取所有的事件和状态,以及某个状态下收到某个事件后所执行的活动语句,并将其保存为元素对象;然后使用ruby的erb技术按照HTML标记语言的语法格式编写HTML文件模板,模板中调用上述解析步骤中保存的元素对象,并将这些元素对象组合成一个状态迁移矩阵。本发明整体上提高软件开发的效率,减少开发工时,保证状态迁移设计与时序图设计的一致性,同时提高状态迁移矩阵设计的正确性。
Description
技术领域
本发明涉及计算机软件程序应用领域,具体涉及一种基于MDD的时序图自动生成状态迁移矩阵的方法、***及存储器。
背景技术
随着车载电子产品越来越多,功能越来越丰富,使得各产品软件层面上的交互时序越来越频繁和复杂,随之而来的是触发事件和状态越来越多,所以现在的软件程序对状态迁移矩阵设计手法的应用越来越广泛。但是传统的状态矩阵设计方法比较繁琐,耗费大量工时,需要设计者手动时序图里状态和事件,以及各状态下每一个事件触发的活动一一填写在状态迁移矩阵中,当遇到复杂的交互时序时,可能状态和事件分别有几十个,两两组合起来的工作量非常之大,并且很容易出错。因此,我们提出了一种基于MDD(Model DriveDesign,模型驱动设计)的时序图自动生成状态迁移矩阵的方法。
发明内容
本发明针对现有技术中存在的技术问题,提供一种基于MDD的时序图自动生成状态迁移矩阵的方法、***及存储器,通过Plantuml(UML建模语言的一种)构建出来时序图模型,然后采用HTML格式绘制表格技术,根据时序图生成状态迁移矩阵。
本发明解决上述技术问题的技术方案如下:
一方面,本发明提供一种基于MDD的时序图自动生成状态迁移矩阵的方法,包括以下步骤:
根据需求编写时序图脚本的文本语句;
解析所述文本语句,获取所有事件、状态以及某状态下收到某事件后的执行语句,并将所述事件、状态、执行语句保存为元素对象;
利用erb技术按照HTML标记语言的语法格式编写HTML文件模板,并根据所述HTML文件模板生成包含有状态迁移矩阵的HTML文件。
进一步,所述的文本语句为通过Plantuml脚本语法编写的时序图脚本;所述的解析所述文本语句,具体为通过ruby语言解析所述文本语句。
进一步,所述的解析所述文本语句,获取所有事件、状态以及某状态下收到某事件后的执行语句,并将所述事件、状态、执行语句保存为元素对象,包括:
读取时序图脚本文件的每一行语句;
根据脚本语法提取状态和事件以及某状态下收到某事件后的执行语句;
将状态和事件作为元素对象存入数组;
将执行语句存入与状态事件绑定的键值对二维数组。
进一步,将状态和事件存入数组后,执行去重复操作。
进一步,所述HTML文件为一表格矩阵,所述表格矩阵的列对应每一事件,所述表格矩阵的行对应每一状态,所述表格矩阵中的每一单元格表示该单元格对应事件与状态的触发活动。
另一方面,本发明还提供一种基于MDD的时序图自动生成状态迁移矩阵的***,包括:
脚本输入模块,用于获取根据需求编写的时序图脚本的文本语句;
语句解析模块,用于解析所述文本语句,获取所有事件、状态以及某状态下收到某事件后的执行语句,并将所述事件、状态、执行语句保存为元素对象;
矩阵生成模块,用于利用erb技术按照HTML标记语言的语法格式编写HTML文件模板,并根据所述HTML文件模板生成包含有状态迁移矩阵的HTML文件。
进一步,所述的文本语句为通过Plantuml脚本语法编写的时序图脚本;所述语句解析模块通过ruby语言解析所述文本语句。
进一步,所述语句解析模块,具体用于:
读取时序图脚本文件的每一行语句;
根据脚本语法提取状态和事件以及某状态下收到某事件后的执行语句;
将状态和事件作为元素对象存入数组,然后执行去重复操作;
将执行语句存入与状态事件绑定的键值对二维数组。
进一步,所述矩阵生成模块生成的HTML文件为一表格矩阵,所述表格矩阵的列对应每一事件,所述表格矩阵的行对应每一状态,所述表格矩阵中的每一单元格表示该单元格对应事件与状态的触发活动。
第三方面,本发明还提供一种存储器,该存储器存储有用于实现上述的一种基于MDD的时序图自动生成状态迁移矩阵的方法的计算机程序。
本发明的有益效果是:
1.通过Plantuml脚本语法编写时序,将图形时序变成了文本语句,使得解析时序并获取时序图中的对象(状态,事件,以及执行语句)变得容易。
2.采用文本生成模板技术(比如Ruby的erb技术),对最终期待生成的HTML文本进行模板编写,对于HTML文件模板中的可变参数与时序图中提取的对象(状态,事件,以及执行语句)进行绑定,从而使得生成状态迁移矩阵变成可能。
本发明整体上提高软件开发的效率,减少开发工时,保证状态迁移设计与时序图设计的一致性,同时提高状态迁移矩阵设计的正确性。
附图说明
图1为本发明方法流程图;
图2为本发明***结构图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明公开了一种基于MDD的时序图自动生成状态迁移矩阵的方法、***以及存储器,通过ruby语言解析按照Plantuml语法格式编写的时序图脚本,获取所有的事件和状态,以及某个状态下收到某个事件后所执行的活动语句,并将其保存为元素对象;然后使用ruby的erb技术按照HTML标记语言的语法格式编写HTML文件模板,HTML文件模板中调用上述解析步骤中保存的元素对象,并将这些元素对象组合成一个状态迁移矩阵,最终呈现在网页上,并在网页上提供以下按钮供用户调整状态矩阵:左右移动事件,上下移动状态,编辑网页,保存网页。
MDD:Model Drive Design(模型驱动设计)
这里的Model指的是一种模型,比如该方法中通过Plantuml(UML建模语言的一种)构建出来的时序图就是一种模型。而根据时序图生成状态迁移矩阵就是基于模型来驱动状态迁移矩阵的设计。
具体的:
如图1所示,本发明提供一种基于MDD的时序图自动生成状态迁移矩阵的方法,包括以下步骤:
根据需求,通过Plantuml脚本语法编写时序图脚本;通过Plantuml脚本语法编写时序,将图形时序变成了文本语句,使得解析时序并获取时序图中的对象(状态,事件,以及执行语句)变得容易。
通过ruby语言解析所述文本语句,读取时序图脚本文件的每一行语句;
根据脚本语法提取状态和事件以及某状态下收到某事件后的执行语句;
将状态和事件作为元素对象存入数组,并执行去重复操作;
将执行语句存入与状态事件绑定的键值对二维数组。
利用erb技术按照HTML标记语言的语法格式编写HTML文件模板,并根据所述HTML文件模板生成包含有状态迁移矩阵的HTML文件。
进一步,所述HTML文件为一表格矩阵,所述表格矩阵的列对应每一事件,所述表格矩阵的行对应每一状态,在文本模板中遍历状态和事件,并将两者的执行语句写入对应的单元格。
采用文本生成模板技术(比如Ruby的erb技术),对最终期待生成的HTML文本进行模板编写,对于HTML文件模板中的可变参数与时序图中提取的对象(状态,事件,以及执行语句)进行绑定,从而使得生成状态迁移矩阵变成可能。
另一方面,本发明还提供一种基于MDD的时序图自动生成状态迁移矩阵的***,如图2所示,包括:
脚本输入模块,用于获取根据需求编写的时序图脚本的文本语句;
语句解析模块,用于解析所述文本语句,获取所有事件、状态以及某状态下收到某事件后的执行语句,并将所述事件、状态、执行语句保存为元素对象;
矩阵生成模块,用于利用erb技术按照HTML标记语言的语法格式编写HTML文件模板,并根据所述HTML文件模板生成包含有状态迁移矩阵的HTML文件。
第三方面,本发明还提供一种存储器,该存储器存储有用于实现上述的一种基于MDD的时序图自动生成状态迁移矩阵的方法的计算机程序。
本发明整体上提高软件开发的效率,减少开发工时,保证状态迁移设计与时序图设计的一致性,同时提高状态迁移矩阵设计的正确性。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于模型驱动设计的时序图自动生成状态迁移矩阵的方法,其特征在于,包括以下步骤:
根据需求编写时序图脚本的文本语句;
解析所述文本语句,获取所有事件、状态以及某状态下收到某事件后的执行语句,并将所述事件、状态、执行语句保存为元素对象;
利用erb技术按照HTML标记语言的语法格式编写HTML文件模板,并根据所述HTML文件模板生成包含有状态迁移矩阵的HTML文件。
2.根据权利要求1所述的方法,其特征在于,所述的文本语句为通过Plantuml脚本语法编写的时序图脚本;所述的解析所述文本语句,具体为通过ruby语言解析所述文本语句。
3.根据权利要求1所述的方法,其特征在于,所述的解析所述文本语句,获取所有事件、状态以及某状态下收到某事件后的执行语句,并将所述事件、状态、执行语句保存为元素对象,包括:
读取时序图脚本文件的每一行语句;
根据脚本语法提取状态和事件以及某状态下收到某事件后的执行语句;
将状态和事件作为元素对象存入数组;
将执行语句存入与状态事件绑定的键值对二维数组。
4.根据权利要求3所述的方法,其特征在于,将状态和事件存入数组后,对数组中的状态和事件执行去重复操作。
5.根据权利要求1所述的方法,其特征在于,所述HTML文件为一表格矩阵,所述表格矩阵的列对应每一事件,所述表格矩阵的行对应每一状态,所述表格矩阵中的每一单元格表示该单元格对应事件与状态的触发活动。
6.一种基于模型驱动设计的时序图自动生成状态迁移矩阵的***,其特征在于,包括:
脚本输入模块,用于获取根据需求编写的时序图脚本的文本语句;
语句解析模块,用于解析所述文本语句,获取所有事件、状态以及某状态下收到某事件后的执行语句,并将所述事件、状态、执行语句保存为元素对象;
矩阵生成模块,用于利用erb技术按照HTML标记语言的语法格式编写HTML文件模板,并根据所述HTML文件模板生成包含有状态迁移矩阵的HTML文件。
7.根据权利要求6所述的***,其特征在于,所述的文本语句为通过Plantuml脚本语法编写的时序图脚本;所述语句解析模块通过ruby语言解析所述文本语句。
8.根据权利要求6所述的***,其特征在于,所述语句解析模块,具体用于:
读取时序图脚本文件的每一行语句;
根据脚本语法提取状态和事件以及某状态下收到某事件后的执行语句;
将状态和事件作为元素对象存入数组,然后执行去重复操作;
将执行语句存入与状态事件绑定的键值对二维数组。
9.根据权利要求6所述的***,其特征在于,所述矩阵生成模块生成的HTML文件为一表格矩阵,所述表格矩阵的列对应每一事件,所述表格矩阵的行对应每一状态,所述表格矩阵中的每一单元格表示该单元格对应事件与状态的触发活动。
10.一种存储器,其特征在于,该存储器存储有用于实现权利要求1-5任一项所述的一种基于模型驱动设计的时序图自动生成状态迁移矩阵的方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810850370.2A CN109117130B (zh) | 2018-07-28 | 2018-07-28 | 一种基于mdd的时序图自动生成状态迁移矩阵的方法、***及存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810850370.2A CN109117130B (zh) | 2018-07-28 | 2018-07-28 | 一种基于mdd的时序图自动生成状态迁移矩阵的方法、***及存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109117130A CN109117130A (zh) | 2019-01-01 |
CN109117130B true CN109117130B (zh) | 2022-02-11 |
Family
ID=64863556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810850370.2A Active CN109117130B (zh) | 2018-07-28 | 2018-07-28 | 一种基于mdd的时序图自动生成状态迁移矩阵的方法、***及存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109117130B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112614205B (zh) * | 2020-12-28 | 2021-09-28 | 推想医疗科技股份有限公司 | 图像重建方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282345B (zh) * | 2008-03-03 | 2011-12-07 | 北京航空航天大学 | 一种基于形式化描述和状态迁移的xml转换方法 |
CN102685128B (zh) * | 2012-05-09 | 2015-09-30 | 东南大学 | 一种基于状态机的协议构造方法 |
CN107292043A (zh) * | 2017-06-29 | 2017-10-24 | 同济大学 | 一种基于uml‑opn建模的可重组制造***分析方法 |
-
2018
- 2018-07-28 CN CN201810850370.2A patent/CN109117130B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109117130A (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107295050B (zh) | 前端用户行为统计方法及装置 | |
CN106469140A (zh) | 一种报表生成***及其方法 | |
CN109766529B (zh) | 一种报表的生成方法及设备 | |
CN112083920A (zh) | 一种前端页面设计方法、装置、存储介质及设备 | |
CN104503793A (zh) | 代码练习软件中代码的运行和图形化的解析方法 | |
CN108595334B (zh) | 一种计算Java程序动态切片的方法、装置及可读存储介质 | |
CN102696012A (zh) | 从代码使用中创建所推断的符号 | |
CN111966336A (zh) | 一种基于vue与可视化图形操作的页面生成方法及装置 | |
CN108920382B (zh) | 测试用例生成方法、装置、存储介质及服务器 | |
US8595622B1 (en) | Merging electronic document redraws | |
CN110109658B (zh) | 一种基于形式化模型的ros代码生成器及代码生成方法 | |
CN114138244A (zh) | 模型类文件自动生成方法、装置、存储介质及电子设备 | |
CN109117130B (zh) | 一种基于mdd的时序图自动生成状态迁移矩阵的方法、***及存储器 | |
CN112286814A (zh) | 一种测试用例脚本的自动化生成***及方法 | |
CN104375940A (zh) | 一种对javaScript文件的调试方法 | |
CN106776779B (zh) | 基于Mac平台的JSON数据生成实体文件的方法 | |
CN112799670B (zh) | 一种统一多端逻辑开发的方法及*** | |
CN113297831B (zh) | 一种Excel生成可校验报表网页的方法和*** | |
CN110187886A (zh) | 一种文档网站生成方法及终端 | |
CN104317580A (zh) | 虚拟试验应用集成开发环境 | |
CN106372359B (zh) | 一种设备虚拟样机*** | |
CN103455307B (zh) | 对命令行输出的信息进行处理的方法和装置 | |
CN112446189A (zh) | 一种数据处理方法 | |
Weyprecht et al. | Model-driven development of simulation solution based on SysML starting with the simulation core. | |
CN111736834B (zh) | 一种基于dsl的用户界面生成方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |