CN107402764B - 一种图形化页面程序功能特征码计算刷新方法 - Google Patents
一种图形化页面程序功能特征码计算刷新方法 Download PDFInfo
- Publication number
- CN107402764B CN107402764B CN201710629456.8A CN201710629456A CN107402764B CN 107402764 B CN107402764 B CN 107402764B CN 201710629456 A CN201710629456 A CN 201710629456A CN 107402764 B CN107402764 B CN 107402764B
- Authority
- CN
- China
- Prior art keywords
- page
- symbol
- feature code
- feature
- code
- 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/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种图形化页面程序功能特征码计算刷新方法:为页面程序分别定义1个静态特征码、1个动态特征码,并在图形化页面的页眉或页脚区域显示静态特征码、动态特征码。在打开页面、主动保存页面时计算静态特征码,并将静态特征码赋值给动态特征码。在页面程序编辑过程中获取鼠标或键盘触发的编辑操作,即时计算刷新页面动态特征码,当2个特征码不一致时,采用不同颜色或字体绘制显示特征码,可直观标识页面编辑过程中相关操作是否影响程序功能。通过深度优先遍历汇总输入源符号的能量流传递路径上各个符号,提取和拼接各个符号的特征数据,计算形成MD5摘要值或CRC值作为图形化页面程序功能特征码。
Description
技术领域
本发明属于图形化编程领域,具体涉及一种图形化页面程序功能特征码计算刷新方法。
背景技术
图形化编程由于直观方便、易于理解和调试,已经在嵌入式装置程序开发中进行了广泛应用。图形化程序最终要转换为某种语言的文本,并调用编译器形成目标代码。图形化编程在应用过程中也出现了一些新的问题:由于权限管理等方面的要求,部分用户并无权限查看源代码,故无法直观判断页面的操作修改是否直接影响了对应的功能代码,另外部分编辑操作,并不影响程序功能,例如不改变连接关系时符号的上下左右移动、非编程相关的属性修改,需要有一种特征码能关联页面对应的程序功能,并去除非相关修改的影响。已有的方法,通常是静态分析导入页面文件,计算提取页面的CRC,无法在页面编辑过程中即时刷新显示和比较,故需要一种直观简便的方法,在页面程序编辑过程中,提取分析当前断面数据,计算刷新当前程序功能的特征码,并和上次打开、保存的静态特征码进行对比显示,从而用户可直观地知晓当前编辑操作是否修改了对应的页面功能代码,动态计算页面的特征码,要求计算方法快速准确。本案由此产生。
发明内容
本发明的目的是在图形化页面编辑过程中,通过动态即时计算页面功能特征码,来直观明确地标识当前编辑操作是否影响了对应的页面代码。
为了达成上述目的,本发明提供一种图形化页面程序功能特征码计算刷新方法,为图形化页面程序分别定义1个静态特征码、1个动态特征码,并在图形化页面的指定区域显示静态特征码、动态特征码;在执行打开页面或主动保存页面操作时计算静态特征码,并将静态特征码赋值给动态特征码;在页面程序编辑过程中获取鼠标或键盘触发的编辑操作,即时自动计算刷新页面动态特征码,当2个特征码不一致时,采用指示手段作出提示。
作为本发明的进一步优选方案,所述图形化页面的指定区域为页眉或页脚区域。作为本发明的进一步优选方案,所述指示手段为采用不同颜色或字体绘制显示特征码。
特征码形成过程包括以下步骤:
a)获取内存中页面的编程符号数据;
b)汇总输入点个数为0的符号,按照位置(从上到下,从左到右)进行快速排序,形成数据源符号链表[0-N];
c)设定I=0,I为当前数据源符号链表索引序号,N为数据源符号总数。
d)依次对各个数据源符号的输出分支进行深度优先遍历,将数据流传输路径上的各个节点符号加入到排序链表,符号只加入1次;
e)迭代计算I=I+1,若I<=N则重复步骤d;
f)提取并汇总合并排序链表内各个符号的特征数据和页面属性数据,计算形成MD5签名值或CRC作为页面特征码。
作为本发明的进一步优选方案,步骤f中,所述的符号特征数据包括:符号类型、符号名称、符号执行顺序,符号内各个变量的名字、类型、设置值;符号对应的函数代码或对应的二进制封装库的CRC值,符号的各个输入变量对应的形参变量信息;所述的页面属性数据包括:页面的任务等级、页面的任务周期、页面的任务类型、页面执行顺序值。
作为本发明的进一步优选方案,所述的在页面程序编辑过程中获取鼠标或键盘触发的编辑操作,包括:符号新建事件、符号删除事件、符号粘帖事件、符号属性修改事件、符号移动事件、取消-恢复操作事件、输入-输出连接线修改事件,当上述单个事件操作状态结束后,即时计算当前内存中页面的特征码,作为动态特征码刷新展示。
作为本发明的进一步优选方案,所述静态特征码可以锁定,被锁定后,打开或保存页面时,只更新动态特征码不更新静态特征码;输入预设密码后可以解除锁定;打开页面后动态特征码和静态特征码显示不一致,可以断定程序被修改。
采用上述方案后,本发明具有如下有益效果:
1)在页面的编辑修改过程中,能实时显示对应的功能特征码,通过和静态特征码的比较,有差异时通过不同的颜色、字体绘制,可直观标识当前编辑操作是否修改了页面的功能,已经在国内外大量的工程中进行了批量应用,通过了实践检验,从而提高了图形化工程的防误校验能力,提高了工程实施的可靠性。
2)页面静态特征码具有锁定功能,当设置锁定后,打开或保存页面时,不更新静态特征码,工程出厂归档前可批量设置为静态特征码锁定状态,需要输入预设密码解锁,则多次修改页面并保存打开后,页面的动态特征码和静态特征码显示不一致,可追溯验证工程出厂后页面程序是否被修改。
附图说明
图1是图形化页面程序功能特征码计算刷新方法;
图2是图形化页面和符号特征数据的组成结构
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。图形化页面程序功能特征码计算和步骤如图1所示:为图形化页面程序分别定义1个静态特征码、1个动态特征码,并在图形化页面的页眉或页脚区域显示静态特征码、动态特征码。在打开页面、主动保存页面时可选计算静态特征码,并将静态特征码赋值给动态特征码。在页面程序编辑过程中获取鼠标或键盘触发的编辑操作,即时自动计算刷新页面动态特征码,当2个特征码不一致时,采用不同颜色或字体绘制显示特征码。其中形成符号和页面的特征数据是关键步骤,具体实施如下:
1)获取内存中页面的数据,包括各种编程符号、连接线;
2)汇总输入点个数为0的符号,按照位置(从上到下,从左到右)进行快速排序,形成数据源符号链表[0-N];
3)设定I=0,I:数据源符号链表索引序号,N为数据源符号总数。
4)依次对各个数据源符号的输出分支进行深度优先遍历,将数据流传输路径上的各个节点符号加入到排序链表,并确保符号只加入1次(若符号已经在排序链表中,则终止该符号后续的深度优先遍历,从而加快排序速度);
5)迭代计算I=I+1,若I<=N则重复步骤4;
6)提取并汇总合并排序链表内各个符号的特征数据,单个符号的特征数据如图2所示,包括如下内容:符号类型、符号名称、符号执行顺序;符号内各个变量的名字、类型、设置值;符号对应的函数代码或对应的二进制封装库的CRC值;符号的各个输入变量对应的形参变量信息。将各个排序后符号的特征数据、页面属性数据(页面的任务等级、页面的任务周期、页面的任务类型、页面执行顺序值)拼接形成页面二进制特征数据,计算页面二进制特征数据形成MD5签名值或CRC作为页面特征码(优选地,默认采用MD5签名计算后作为页面特征码)。
在页面编辑过程中,鼠标或键盘事件会触发相关编辑操作,包括:符号新建事件、符号删除事件、符号粘帖事件、符号属性修改事件、符号移动事件、取消-恢复操作事件、输入-输出连接线修改事件,当上述单个事件操作状态结束后,即时计算当前内存中页面的特征码,作为动态特征码刷新展示。
优选地,在研发版本状态下,研发人员可选设置是否固化锁定页面静态特征码,当设置锁定后,打开或保存页面时,不更新静态特征码(工程出厂归档前可批量设置为静态特征码锁定状态,需要输入预设密码解锁)。则多次修改页面并保存打开后,页面的动态特征码和静态特征码显示不一致,可追溯验证工程出厂后页面程序是否被修改。
优选地,在页面底部显示页面的静态特征码和动态特征码,当2者不一致时,动态特征码用红色绘制。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (7)
1.一种图形化页面程序功能特征码计算刷新方法,其特征在于:为图形化页面程序分别定义1个静态特征码、1个动态特征码,并在图形化页面的指定区域显示静态特征码、动态特征码;在执行打开页面或主动保存页面操作时计算静态特征码,并将静态特征码赋值给动态特征码;在页面程序编辑过程中获取鼠标或键盘触发的编辑操作,即时自动计算刷新页面动态特征码,当2个特征码不一致时,采用指示手段作出提示。
2.如权利要求1所述的一种图形化页面程序功能特征码计算刷新方法,其特征在于:所述图形化页面的指定区域为页眉或页脚区域。
3.如权利要求1所述的一种图形化页面程序功能特征码计算刷新方法,其特征在于:所述指示手段为采用不同颜色或字体绘制显示特征码。
4.如权利要求1所述的一种图形化页面程序功能特征码计算刷新方法,其特征在于:所述的特征码形成过程包括如下步骤:
a)获取内存中页面的编程符号数据;
b)汇总输入点个数为0的符号,按照位置进行快速排序,形成数据源符号链表[0-N];
c)设定I=0,I为当前数据源符号链表索引序号,N为数据源符号总数;
d)依次对各个数据源符号的输出分支进行深度优先遍历,将数据流传输路径上的各个节点符号加入到排序链表,符号只加入1次;
e)迭代计算I=I+1,若I<=N则重复步骤d;
f)提取并汇总合并排序链表内各个符号的特征数据和页面属性数据,计算形成MD5签名值或CRC作为页面特征码。
5.如权利要求4所述的一种图形化页面程序功能特征码计算刷新方法,其特征在于:步骤f中,所述符号的特征数据包括:符号类型、符号名称和符号执行顺序,符号内各个变量的名字、类型和设置值,符号对应的函数代码或对应的二进制封装库的CRC值,以及符号的各个输入变量对应的形参变量信息;所述的页面属性数据包括:页面的任务等级、页面的任务周期、页面的任务类型和页面执行顺序值。
6.如权利要求1所述的一种图形化页面程序功能特征码计算刷新方法,其特征在于:所述的在页面程序编辑过程中获取鼠标或键盘触发的编辑操作,包括:符号新建事件、符号删除事件、符号粘帖事件、符号属性修改事件、符号移动事件、取消-恢复操作事件、输入-输出连接线修改事件,当上述单个事件操作状态结束后,即时计算当前内存中页面的特征码,作为动态特征码刷新展示。
7.如权利要求1所述的一种图形化页面程序功能特征码计算刷新方法,其特征在于:所述静态特征码可以锁定,被锁定后,打开或保存页面时,只更新动态特征码不更新静态特征码;输入预设密码后可以解除锁定;打开页面后动态特征码和静态特征码显示不一致,可以断定程序被修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710629456.8A CN107402764B (zh) | 2017-07-28 | 2017-07-28 | 一种图形化页面程序功能特征码计算刷新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710629456.8A CN107402764B (zh) | 2017-07-28 | 2017-07-28 | 一种图形化页面程序功能特征码计算刷新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107402764A CN107402764A (zh) | 2017-11-28 |
CN107402764B true CN107402764B (zh) | 2020-09-08 |
Family
ID=60401296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710629456.8A Active CN107402764B (zh) | 2017-07-28 | 2017-07-28 | 一种图形化页面程序功能特征码计算刷新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107402764B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112954060B (zh) * | 2021-02-19 | 2023-03-28 | 南京南瑞继保电气有限公司 | 一种数据分析方法、装置、电子设备以及存储介质 |
CN113238748B (zh) * | 2021-06-17 | 2023-05-23 | 南方电网科学研究院有限责任公司 | 一种直流控保程序页面修改校验方法、装置、终端及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924762A (zh) * | 2010-08-18 | 2010-12-22 | 奇智软件(北京)有限公司 | 一种基于云安全的主动防御方法 |
CN104461886A (zh) * | 2014-12-10 | 2015-03-25 | 深圳航天东方红海特卫星有限公司 | 一种控制流错误检测方法 |
CN105868043A (zh) * | 2016-03-25 | 2016-08-17 | 南京南瑞继保电气有限公司 | 一种可视化页面程序修改一致性校验方法 |
CN105897807A (zh) * | 2015-01-14 | 2016-08-24 | 江苏博智软件科技有限公司 | 一种基于行为特征的移动智能终端异常代码云检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101051600B1 (ko) * | 2010-03-29 | 2011-07-22 | 주식회사 소프트 포 소프트 | 아밥 소스코드의 코드 검사를 수행하는 코드검사 수행시스템 |
-
2017
- 2017-07-28 CN CN201710629456.8A patent/CN107402764B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924762A (zh) * | 2010-08-18 | 2010-12-22 | 奇智软件(北京)有限公司 | 一种基于云安全的主动防御方法 |
CN104461886A (zh) * | 2014-12-10 | 2015-03-25 | 深圳航天东方红海特卫星有限公司 | 一种控制流错误检测方法 |
CN105897807A (zh) * | 2015-01-14 | 2016-08-24 | 江苏博智软件科技有限公司 | 一种基于行为特征的移动智能终端异常代码云检测方法 |
CN105868043A (zh) * | 2016-03-25 | 2016-08-17 | 南京南瑞继保电气有限公司 | 一种可视化页面程序修改一致性校验方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107402764A (zh) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9639332B2 (en) | Applying coding standards in graphical programming environments | |
CN107193739B (zh) | 一种黑盒回归测试方法 | |
WO2018095261A1 (zh) | 页面渲染的方法、装置和存储介质 | |
US8832646B1 (en) | Obfuscation of automatically generated code | |
US7523440B2 (en) | Dynamic generation of formatted user interfaces in software environments | |
US8726233B1 (en) | System and method of using an active link in a state programming environment to locate an element | |
US20070198565A1 (en) | Visual design of annotated regular expression | |
US8666999B2 (en) | Search utility program for software developers | |
CN108027721B (zh) | 用于使用控件来配置通用程序的技术 | |
WO2010147950A2 (en) | Data visualization system and method | |
CN107168705B (zh) | 图形界面语义描述系统及其建立方法和操作路径生成方法 | |
Morgado et al. | Dynamic reverse engineering of graphical user interfaces | |
CN111581920A (zh) | 文档转换方法、装置、设备及计算机存储介质 | |
CN107402764B (zh) | 一种图形化页面程序功能特征码计算刷新方法 | |
US7958073B2 (en) | Software and methods for task method knowledge hierarchies | |
US8700374B1 (en) | System and method of using an active link in a state programming environment to locate an element in a graphical programming environment | |
Jelinek et al. | GUI generation from annotated source code | |
Lutteroth | Automated reverse engineering of hard-coded GUI layouts | |
Luckow et al. | Symbolic pathfinder v7 | |
CN111414632B (zh) | 基于ast自合成的嵌入式程序数据流安全验证方法 | |
CN101118492A (zh) | 一种可设置多值域区间的编辑控件的创建方法 | |
CN117472359B (zh) | 可视化配置多级联动约束方法、装置、计算机设备 | |
CN115390849A (zh) | 一种代码功能流程图生成方法及装置 | |
US7885800B1 (en) | Synchronous models in modeling environments | |
Stallmann et al. | Galant: A graph algorithm animation tool |
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 |