CN110673843B - 一种基于数据的软件模块行为状态机还原方法 - Google Patents
一种基于数据的软件模块行为状态机还原方法 Download PDFInfo
- Publication number
- CN110673843B CN110673843B CN201910869507.3A CN201910869507A CN110673843B CN 110673843 B CN110673843 B CN 110673843B CN 201910869507 A CN201910869507 A CN 201910869507A CN 110673843 B CN110673843 B CN 110673843B
- Authority
- CN
- China
- Prior art keywords
- data
- software module
- state machine
- behavior
- machine model
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于数据的软件模块行为状态机还原方法,涉及计算机黑盒软件模块的行为状态还原技术领域,所述方法包括以下步骤:首先对软件模块的原始数据进行预处理,将所述原始数据转化为布尔数值型数据,并分离成训练数据集、验证数据集、测试数据集;其次构造状态机模型的生成规则,得到所述状态机模型;最后通过所述状态机模型,实现所述软件模块行为的还原。本发明基于已有的大量工业控制软件运行反馈的数据,对无源码软件的行为功能进行还原,增强工业软件模块的可塑性与可扩展性,缩减工业控制软件的开发周期,降低其开发成本。
Description
技术领域
本发明涉及计算机黑盒软件模块的行为状态还原技术领域,尤其涉及一种基于数据的软件模块行为状态机还原方法。
背景技术
工业控制系统软件中的逻辑控制代码主要是由可编程逻辑控制器(PLC)或分布式控制系统(DCS)实现的。但在工业系统中,软件的源代码往往由于可编程逻辑控制器的生命周期过长,一般长达十年或者二十年,从而难以有效保留,致使大部分现有工业软件一旦发生故障或者需求发生变更,便无法在现有基础上对软件进行维护或改进升级,只能重新开发,这样不仅耗时且耗力。
目前,在现有的工业控制软件开发过程中,大多数技术方案主要是从需求出发的正向开发模式,即在开发过程中不断补充并修正原有的需求,持续循环迭代构建符合需求的软件。在缺少软件源代码的情况下,一方面无法继续可控地维护现有的工业系统,另一方面软件功能模块黑盒的行为无法还原,因而无法根据需求对功能进行更改或复用。
综上所述,本领域的技术人员致力于开发一种基于数据的软件模块行为状态机还原方法,通过数据驱动的方式还原无源码软件模块的行为模型,增强工业软件模块的可塑性与可扩展性,提高工业控制软件与需求的吻合度与准确性,缩减工业控制软件的开发周期,降低其开发成本。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是克服现有技术中通过从无源码软件需求侧出发的正向开发模式而导致无法在现有基础上对软件进行维护或改进升级的问题。
为实现上述目的,本发明提供了一种基于数据的软件模块行为状态机还原方法,其特征在于,所述方法包括以下步骤:
步骤1、对软件模块的原始数据进行预处理,将所述原始数据转化为布尔数值型数据,并分离成训练数据集、验证数据集、测试数据集;
步骤2、构造状态机模型的生成规则,得到所述状态机模型;
步骤3、通过所述状态机模型,实现所述软件模块行为的还原。
进一步地,所述步骤1中的原始数据包括所述软件模块的输入和输出数据;所述原始数据的类型包括原始布尔数值型数据、原始事件型数据、原始非布尔数值型数据;所述布尔数值型数据被配置为统一变化的数据可合并成一个布尔数值型数据。
进一步地,所述原始非布尔数值型数据被配置为通过结合物理含义确定临界值将所述原始非布尔数值型数据转化为布尔数值型数据。
进一步地,所述步骤1中的原始数据的预处理过程被配置为采用机器学习算法对所述原始数据进行分析和分类;所述机器学习算法为决策树、贝叶斯、最小二乘法、逻辑回归、集成方法中一种或几种的组合。
进一步地,所述步骤2中的状态机模型包括所述软件模块的行为状态和跳转条件。
进一步地,所述软件模块的行为状态和跳转条件被配置为所述软件模块的输入和输出数据的组合逻辑表达式。
进一步地,所述步骤2中的状态机模型的生成规则被配置为所述布尔数值型数据中出现最多的最初状态为所述状态机模型的初始状态,所述软件模块中相同的输出数据结果被配置为一种新状态,所述软件模块中不同状态间跳转的输入数据组合被配置为所述状态间的一种跳转条件。
进一步地,所述不同状态间跳转的输入数据组合被配置为可通过对比多组所述跳转条件去除无关的所述输入数据。
进一步地,所述步骤2中的状态机模型被配置为通过所述训练数据集训练并生成所述状态机模型,利用所述验证数据集验证生成的所述软件模块的行为状态是否重复,若不重复需将该条状态剔除,最后通过所述测试数据集测试所述状态机模型的准确度。
进一步地,所述还原方法还可通过需求构造数据对所述软件模块进行还原。
与现有技术相比,通过本发明的实施,至少具有以下有益的技术效果:
(1)本发明提供的一种基于数据的软件模块行为状态机还原方法,是基于已有的大量工业控制软件运行反馈的数据,对无源码软件的行为功能进行还原,增强现有工业系统的可持续性;
(2)利用本发明提供的基于数据的软件模块行为状态机还原方法,可实现工业系统中各种类型控制器的软件还原,通用性高;
(3)本发明提供的一种基于数据的软件模块行为状态机还原方法,提出了黑盒软件模块行为状态机的整体还原过程,并给出详细的数据处理方法与过程,缩减了工业控制软件的开发周期,降低其开发成本。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的一个较佳实施例提供的一种基于数据的软件模块行为状态机还原方法的流程图;
图2是本发明的一个较佳实施例提供的布尔数值型数据转化示意图。
具体实施方式
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。
如图1所示,为本发明的一个较佳实施例提供的一种基于数据的软件模块行为状态机还原方法,其特征在于,所述方法包括以下步骤:
步骤1、对软件模块的原始数据进行预处理,将所述原始数据转化为布尔数值型数据,并分离成训练数据集、验证数据集、测试数据集;
本实施例以已有的大量工业控制软件模块运行反馈的数据作为原始数据,所述原始数据包括软件模块的输入和输出数据;所述原始数据的类型包括原始布尔数值型数据、原始事件型数据、原始非布尔数值型数据;在原始数据的预处理过程中,通过采用决策树、贝叶斯、最小二乘法、逻辑回归、集成方法中一种或几种组合的机器学习算法对原始数据进行分析和分类,并据此将原始的输入和输出数据转化为布尔数值型数据,以缩减状态机模型还原软件模块行为的复杂度。
在原始输入和输出数据转化为布尔数值型数据的过程中,须遵循相应的转化规则,图2给出了本发明的一个较佳实施例提供的布尔数值型数据转化的示意图,具体如下:
1.)对于非一直存在的某项原始输入和输出数据,可根据其是否存在布尔数值型数据来判断转化方式,若存在则可直接使用;
2.)对于某项原始事件型数据,可根据其是否触发作为一个布尔数值型数据来处理;
3.)对于一直存在的某项原始输入和输出数据,在已知其物理含义的情况下,可由软件功能描述推断其数据临界值,并转化为布尔数值型数据(如T>T0为1,T<T0为0);
4.)对于一直存在的却无从了解其具体物理量含义的原始输入和输出数据,可以该项数据与已推断布尔数值型数据的相互关系找到数据临界值,并转化为布尔数值型数据(如T在T0上下,与已推断布尔数值型数据的相互关系相似,可认定T0为T的临界值);
5.)在转化后的布尔数值型数据流中,统一变化的数据可以进行合并为一个布尔数值型数据(如A,B两项数据,当A为1时B恒为0;当A为0时B恒为1,则可使用布尔值C替换A,B进行状态机的还原)。
步骤2、构造状态机模型的生成规则,得到所述状态机模型;
对于本实施例中的工业控制软件模块,原始输入事件和输入数据共同构成所述软件模块的输入,原始输出事件和输出数据共同构成所述软件模块的输出,通过对黑盒软件模型的输入与输出进行分析,将软件行为描述为可理解的、易编程实现的状态机模型,从而实现工业控制软件模块的还原。
所构造状态机模型包括工业控制软件模块的行为状态和跳转条件,所述软件模块的行为状态和跳转条件被配置为所述软件模块的输入和输出数据的组合逻辑表达式,通过输入和输出数据构建软件行为的轨迹流,分析轨迹流来确定软件行为状态以及状态间的跳转条件,并根据算法不断完善状态间的跳转条件。
本实施例中,所构造状态机模型的生成规则具体如下:
1.)在整体数据中出现最多的最初状态为要生成状态机模型的初始状态;
2.)相同的输出数据结果认定为状态机模型的一种新状态;
3.)不同状态间跳转的输入数据组合可视为此状态间的一种跳转条件;
4.)对于两状态间的跳转条件,比对多组跳转条件逻辑去除与此跳转无关的输入变量,精简跳转条件的逻辑表达式。
状态机模型被配置为通过训练数据集输出得到可能的软件模块的行为状态;利用验证数据集验证生成的所述软件模块的行为状态是否重复,若不重复需将重复状态剔除后继续对所述模型进行训练,若重复则确认状态间的跳转条件;最后通过所述测试数据集验证生成的状态机模型的准确度和有效性,若生成的状态机模型不满意则更新数据后继续训练所述模型以达到目标要求,若生成的状态机模型满意则可生成状态机模型并投入使用。
步骤3、通过所述状态机模型,实现所述软件模块行为的还原。
在其他的一些实施例中,本发明提供的基于数据的软件模块行为状态机还原方法还可通过需求构造数据对所述软件模块进行还原。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (8)
1.一种基于数据的软件模块行为状态机还原方法,其特征在于,所述方法包括以下步骤:
步骤1、对软件模块的原始数据进行预处理,将所述原始数据转化为布尔数值型数据,并分离成训练数据集、验证数据集、测试数据集;
步骤2、构造状态机模型的生成规则,得到所述状态机模型;
步骤3、通过所述状态机模型,实现所述软件模块行为的还原;
所述步骤1中的原始数据包括所述软件模块的输入和输出数据;所述原始数据的类型包括原始布尔数值型数据、原始事件型数据、原始非布尔数值型数据;所述布尔数值型数据被配置为统一变化的数据可合并成一个布尔数值型数据;
所述还原方法还可通过需求构造数据对所述软件模块进行还原。
2.如权利要求1所述的基于数据的软件模块行为状态机还原方法,其特征在于,所述原始非布尔数值型数据被配置为通过结合物理含义确定临界值将所述原始非布尔数值型数据转化为布尔数值型数据。
3.如权利要求1所述的基于数据的软件模块行为状态机还原方法,其特征在于,所述步骤1中的原始数据的预处理过程被配置为采用机器学习算法对所述原始数据进行分析和分类;所述机器学习算法为决策树、贝叶斯、最小二乘法、逻辑回归、集成方法中一种或几种的组合。
4.如权利要求1所述的基于数据的软件模块行为状态机还原方法,其特征在于,所述步骤2中的状态机模型包括所述软件模块的行为状态和跳转条件。
5.如权利要求4所述的基于数据的软件模块行为状态机还原方法,其特征在于,所述软件模块的行为状态和跳转条件被配置为所述软件模块的输入和输出数据的组合逻辑表达式。
6.如权利要求1所述的基于数据的软件模块行为状态机还原方法,其特征在于,所述步骤2中的状态机模型的生成规则被配置为所述布尔数值型数据中出现最多的最初状态为所述状态机模型的初始状态,所述软件模块中相同的输出数据结果被配置为一种新状态,所述软件模块中不同状态间跳转的输入数据组合被配置为所述状态间的一种跳转条件。
7.如权利要求6所述的基于数据的软件模块行为状态机还原方法,其特征在于,所述不同状态间跳转的输入数据组合被配置为可通过对比多组所述跳转条件去除无关的所述输入数据。
8.如权利要求1所述的基于数据的软件模块行为状态机还原方法,其特征在于,所述步骤2中的状态机模型被配置为通过所述训练数据集训练并生成所述状态机模型,利用所述验证数据集验证生成的所述软件模块的行为状态是否重复,若不重复需将该条状态剔除,最后通过所述测试数据集测试所述状态机模型的准确度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910869507.3A CN110673843B (zh) | 2019-09-16 | 2019-09-16 | 一种基于数据的软件模块行为状态机还原方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910869507.3A CN110673843B (zh) | 2019-09-16 | 2019-09-16 | 一种基于数据的软件模块行为状态机还原方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110673843A CN110673843A (zh) | 2020-01-10 |
CN110673843B true CN110673843B (zh) | 2021-07-16 |
Family
ID=69076937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910869507.3A Active CN110673843B (zh) | 2019-09-16 | 2019-09-16 | 一种基于数据的软件模块行为状态机还原方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110673843B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434424A (zh) * | 2021-07-06 | 2021-09-24 | 上海交通大学 | 一种黑盒工业控制系统模块化代码还原方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254763A (zh) * | 2018-09-13 | 2019-01-22 | 中国核动力研究设计院 | 一种基于有限状态机的核电厂控制软件设计方法 |
CN109933309A (zh) * | 2019-03-06 | 2019-06-25 | 上海工业控制安全创新科技有限公司 | 机器学习算法应用于汽车软件开发功能安全的流程方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013452A (zh) * | 2007-02-05 | 2007-08-08 | 江苏大学 | 一种符号化的模型检测方法 |
CN102567555A (zh) * | 2010-12-27 | 2012-07-11 | 北京国睿中数科技股份有限公司 | 时序电路的拓扑结构分析方法和状态机模型提取方法 |
US8732669B2 (en) * | 2011-03-11 | 2014-05-20 | Oracle International Corporation | Efficient model checking technique for finding software defects |
CN102591713B (zh) * | 2011-12-31 | 2013-12-18 | 浙江大学 | 基于有限状态机的软件功能模块的调度系统 |
CN107016214B (zh) * | 2017-04-26 | 2020-09-11 | 上海工程技术大学 | 一种基于有限状态机的参数依赖模型的生成方法 |
CN108228455B (zh) * | 2017-12-29 | 2020-06-23 | 北京航空航天大学 | 一种软件控制危险分析方法 |
CN108804326B (zh) * | 2018-06-12 | 2022-05-27 | 上海新炬网络技术有限公司 | 一种软件代码自动检测方法 |
CN109753713B (zh) * | 2018-12-28 | 2023-06-02 | 中国人民解放军国防科技大学 | 基于内部实体状态转移的数字电路功能建模方法及系统 |
-
2019
- 2019-09-16 CN CN201910869507.3A patent/CN110673843B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254763A (zh) * | 2018-09-13 | 2019-01-22 | 中国核动力研究设计院 | 一种基于有限状态机的核电厂控制软件设计方法 |
CN109933309A (zh) * | 2019-03-06 | 2019-06-25 | 上海工业控制安全创新科技有限公司 | 机器学习算法应用于汽车软件开发功能安全的流程方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110673843A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649882B2 (en) | Automated log analysis and problem solving using intelligent operation and deep learning | |
Riggs et al. | Disassembly line balancing under high variety of end of life states using a joint precedence graph approach | |
CN110221975B (zh) | 创建接口用例自动化测试脚本的方法及装置 | |
US11415975B2 (en) | Deep causality learning for event diagnosis on industrial time-series data | |
Zhang et al. | Autotrainer: An automatic dnn training problem detection and repair system | |
US20230176562A1 (en) | Providing an alarm relating to anomaly scores assigned to input data method and system | |
US20230185253A1 (en) | Graph convolutional reinforcement learning with heterogeneous agent groups | |
CN113396370A (zh) | 协调型学习系统以及监视系统 | |
CN104076809A (zh) | 数据处理装置以及数据处理方法 | |
CN111125634B (zh) | 基于质量方法的可靠性分析方法及系统 | |
CN110673843B (zh) | 一种基于数据的软件模块行为状态机还原方法 | |
CN108595815A (zh) | 人工智能体训练系统及无源电路优化设计系统及方法 | |
CN110531963B (zh) | 一种基于数据的工业软件系统行为模型还原方法 | |
Vargas et al. | A hybrid feature learning approach based on convolutional kernels for ATM fault prediction using event-log data | |
Chen et al. | Reliability analysis using deep learning | |
Khalid et al. | Early cost estimation of software reworks using fuzzy requirement-based model | |
Borges et al. | Learning to adapt requirements specifications of evolving systems (NIER track) | |
Krejčí et al. | Model-based testing of automotive distributed systems with automated prioritization | |
Chernyshev et al. | Digital Object Detection of Construction Site Based on Building Information Modeling and Artificial Intelligence Systems. | |
Abdelkarim et al. | TCP-Net++: Test Case Prioritization Using End-to-End Deep Neural Networks-Deployment Analysis and Enhancements | |
CN112214922A (zh) | 用于测试系统的方法 | |
Krupalija et al. | Usage of machine learning methods for cause-effect graph feasibility prediction | |
Holasova et al. | Automated Neural Network Structure Design for Efficient | |
Dhillon et al. | Advancing Vehicle Diagnostic: Exploring the Application of Large Language Models in the Automotive Industry | |
CN112463578B (zh) | 一种基于组件合约的逐级求解的系统测试用例生成方法 |
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 |