CN103955368B - 一种软件模糊自适应支撑系统和开发方法 - Google Patents
一种软件模糊自适应支撑系统和开发方法 Download PDFInfo
- Publication number
- CN103955368B CN103955368B CN201410175451.9A CN201410175451A CN103955368B CN 103955368 B CN103955368 B CN 103955368B CN 201410175451 A CN201410175451 A CN 201410175451A CN 103955368 B CN103955368 B CN 103955368B
- Authority
- CN
- China
- Prior art keywords
- fuzzy
- adaptive
- adaption
- software
- logic
- 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
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 241
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000011161 development Methods 0.000 title claims abstract description 19
- 238000012360 testing method Methods 0.000 claims abstract description 65
- 230000000007 visual effect Effects 0.000 claims abstract description 42
- 238000003860 storage Methods 0.000 claims abstract description 41
- 230000002085 persistent effect Effects 0.000 claims abstract description 29
- 238000012800 visualization Methods 0.000 claims abstract 11
- 238000013459 approach Methods 0.000 claims abstract 4
- 230000006870 function Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 11
- 230000003993 interaction Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 230000006978 adaptation Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 2
- 238000007689 inspection Methods 0.000 claims 2
- 238000005192 partition Methods 0.000 claims 2
- 230000004913 activation Effects 0.000 claims 1
- 238000009954 braiding Methods 0.000 claims 1
- 238000004064 recycling Methods 0.000 claims 1
- 238000009941 weaving Methods 0.000 abstract description 11
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000007704 transition Effects 0.000 abstract 1
- 238000004088 simulation Methods 0.000 description 37
- 230000018109 developmental process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 230000011218 segmentation Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件模糊自适应支撑系统和开发方法。该支撑系统包括:软件模糊自适应可视化编辑与仿真测试模块、软件模糊自适应逻辑持久化存储模块、模糊自适应Aspect设施自动生成模块、模糊逻辑基本运算模块、模糊逻辑执行引擎模块。该开发方法基于软件模糊自适应支撑系统,提供领域特定语言来实现软件模糊自适应策略的编辑,并对模糊自适应策略进行语法检查,然后对模糊自适应逻辑进行可视化仿真和测试;最后自动将基于领域特定语言的模糊自适应逻辑转变为可执行编程语言Aspect代码;利用通用的Aspect编织系统可将自动生成的Aspect织入到目标软件内部。本发明屏蔽了复杂的模糊控制技术细节,为软件模糊自适应开发提供了可视化、自动化的支撑手段。
Description
技术领域
本发明属于软件自适应技术领域,特别是一种软件模糊自适应支撑系统和基于该系统的软件模糊自适应开发方法。
背景技术
当前软件系统面临着外部环境和需求的日益频繁的变化,而这些变化会以干扰的形式,对复杂软件系统(如军事信息系统)的运行连续性和服务可用性等造成负面影响,造成中断、服务不可用等问题。软件自适应被认为是软件应对变化问题的方法,其核心思想就是运用反馈闭环(closed-loop)的思想,将软件作为动态可调整的对象,在运行过程中根据感知的变化在线自我调整以适应新的环境和需求。软件自适应过程在本质上是一种对环境和用户进行频繁交互的过程。
然而,与环境和用户的密切交互使得软件自适应环不可避免地存在不确定性,而这种不确定性又常常表现为模糊性,如恶劣环境干扰导致的数据不精确性、用户需求表达的含糊性等。如何应对和处理自适应环中的模糊性、实现模糊条件下的CMIS自适应,已成为一个亟待解决的问题。而软件模糊自适应的方法被认为一种能够直接而自然地处理自适应模糊性的一种有效方法,其基本思想是将模糊控制理论引入到软件自适应研究中,使得软件呈现出这样一种形态:在开放、动态、难控的计算环境(如战场环境)中,在环境与需求信息的完整与精确获取已不可能、对外部变化的部分或不精确感知已成必然的约束下,软件能以感知到的不确定和不完备的需求变化和环境要素变化等模糊性信息为基础,借助模糊逻辑及反馈控制理论,自动进行模糊推理和决策,调整自身的参数、结构和行为。
较之常规软件开发过程,软件模糊自适应开发需要一定的模糊控制理论知识,具有一定的复杂性,这对于软件开发人员来说仍然是一件较为困难的事,造成了软件工程与控制工程之间的存在知识鸿沟。因而需要有相应的软件支撑系统来支持软件模糊自适应开发,减轻软件开发人员负担。但是,现有的软件自适应支撑系统,较为著名的如美国IBM的ACT、美国卡耐基梅隆大学的Rainbow RAIDE、加拿大滑铁卢大学的StarMX等,都尚不支持对自适应模糊性的处理,无法满足软件模糊自适应工程化实现的要求。
发明内容
本发明的目的在于提供一种软件模糊自适应支撑系统和开发方法,该系统和方法能够实现软件模糊自适应逻辑的可视化编辑、测试、仿真、存储和自动化转换生成可执行程序的功能。
实现本发明目的的技术解决方案为:
一种软件模糊自适应支撑系统,该支撑系统支持软件模糊自适应逻辑可视化编辑与自动化生成,具体包括:软件模糊自适应可视化编辑与仿真测试模块、软件模糊自适应逻辑持久化存储模块、模糊自适应Aspect设施自动生成模块、模糊逻辑基本运算模块、模糊逻辑执行引擎模块,其中模糊逻辑基本运算模块分别接入软件模糊自适应可视化编辑与仿真测试模块、模糊逻辑执行引擎模块、模糊自适应Aspect设施自动生成模块,模糊逻辑执行引擎模块分别与软件模糊自适应可视化编辑与仿真测试模块、模糊自适应Aspect设施自动生成模块相连接,软件模糊自适应逻辑持久化存储模块与软件模糊自适应可视化编辑与仿真测试模块相连接,软件模糊自适应可视化编辑与仿真测试模块接入模糊自适应Aspect设施自动生成模块,各模块作用如下:
软件模糊自适应可视化编辑与仿真测试模块提供基于领域特定语言的软件模糊自适应策略可视化编辑和测试环境,其中模糊自适应策略采用“if-then”模糊规则的形式进行表达;
软件模糊自适应逻辑持久化存储模块实现对编辑好的模糊自适应策略及相关配置进行持久化存储;
模糊自适应Aspect设施自动生成模块将基于领域特定语言的模糊自适应逻辑自动转化为基于Native语言的Aspect设施和一个数据黑板对象;
模糊逻辑基本运算模块实现对模糊逻辑的基本操作和算法进行管理;
模糊逻辑执行引擎模块支撑系统的总调度,负责对模糊自适应策略进行解释执行,完成模糊自适应推理运算。
一种基于所述软件模糊自适应支撑系统的软件模糊自适应开发方法,该方法实现软件模糊自适应逻辑可视化编辑与自动化生成,步骤如下:
步骤1,利用软件模糊自适应可视化编辑与仿真测试模块编辑与仿真测试模糊自适应策略:首先根据模糊自适应需求和模糊自适应目标确定模糊自适应输入、输出变量,然后将模糊自适应变量进行模糊化处理;其次编辑基于模糊规则的模糊自适应策略,然后对编辑好的模糊自适应策略进行语法错误检查;最后对模糊自适应策略进行仿真测试;
步骤2,存储模糊自适应策略:首先利用模糊逻辑基本运算模块对模糊操作子进行配置,然后利用模糊自适应逻辑持久化存储模块设置存储路径,存储上述配置信息和步骤1所述模糊自适应输入、输出变量、模糊自适应规则,实现模糊自适应逻辑的重复利用和共享;
步骤3,生成模糊自适应Aspect:利用模糊自适应Aspect设施自动生成模块自动生成基于可执行语言代码的模糊自适应Aspect文件;
步骤4,编织模糊自适应Aspect:借助通用的Aspect编织工具,将步骤3生成的Aspect文件织入到目标软件中,从而在目标软件内部形成软件模糊自适应环;
本发明与现有技术相比,其显著优点为:(1)为开发人员提供图形化的基于领域特定语言的模糊自适应逻辑编辑、仿真、测试环境;(2)自动生成基于Native语言的模糊自适应代码,使开发人员在无需深入理解模糊控制理论的情况下也能较为方便地开展软件模糊自适应的开发工作;(3)提供了模糊自适应逻辑的保存和导入功能,并建立了模糊逻辑存储格式的标准,方便不同团体之间的共享,从而能降低了软件模糊自适应的开发难度,提高了软件开发效率。
附图说明
图1为本发明软件模糊自适应支撑系统的总体结构和开发方法的原理框图。
图2为本发明系统中模糊自适应逻辑的编辑与仿真测试模块的结构图。
图3为本发明系统中软件模糊自适应逻辑的持久化存储模块结构图。
图4为本发明系统中模糊自适应Aspect设施自动生成模块的原理示意图。
图5为本发明系统中模糊自适应Aspect设施间数据通信实现机制图。
图6为本发明系统中模糊自适应Aspect设施自动批量生成示意图。
图7为本发明软件模糊自适应逻辑的可视化编辑与自动化生成方法示意图。
图8为本发明实施例中软件模糊自适应规则编辑与仿真的示意图。
具体实施方式
本发明提供了一种能够支撑软件模糊自适应逻辑可视化编辑、测试、仿真和自动生成可执行程序代码的系统和基于该系统的软件模糊自适应开发方法,下面结合附图及具体实施例对本发明作进一步详细说明。
结合图1,本发明软件模糊自适应支撑系统,该支撑系统支持软件模糊自适应逻辑可视化编辑与自动化生成,具体包括:软件模糊自适应可视化编辑与仿真测试模块、软件模糊自适应逻辑持久化存储模块、模糊自适应Aspect设施自动生成模块、模糊逻辑基本运算模块、模糊逻辑执行引擎模块,其中模糊逻辑基本运算模块分别接入软件模糊自适应可视化编辑与仿真测试模块、模糊逻辑执行引擎模块、模糊自适应Aspect设施自动生成模块,模糊逻辑执行引擎模块分别与软件模糊自适应可视化编辑与仿真测试模块、模糊自适应Aspect设施自动生成模块相连接,软件模糊自适应逻辑持久化存储模块与软件模糊自适应可视化编辑与仿真测试模块相连接,软件模糊自适应可视化编辑与仿真测试模块接入模糊自适应Aspect设施自动生成模块,各模块作用如下:
1、软件模糊自适应可视化编辑与仿真测试模块提供基于领域特定语言的软件模糊自适应策略可视化编辑和测试环境,其中模糊自适应策略采用“if-then”模糊规则的形式进行表达;
2、软件模糊自适应逻辑持久化存储模块实现对编辑好的模糊自适应策略及相关配置进行持久化存储;具体为:
(1)采用XML格式对编辑好的软件模糊自适应规则进行存储;
(2)采用XML格式对配置信息进行存储,所述配置信息包括:模糊推理参数配置、定义的输入输出变量、及该输入输出变量的模糊分割;
3、模糊自适应Aspect设施自动生成模块将基于领域特定语言的模糊自适应逻辑自动转化为基于Native语言的Aspect设施和一个数据黑板对象,具体为:
(1)模块面向对象,设有专门的Aspect代码生成类,从编辑环境中获取模糊自适应逻辑相关信息;
(2)依据用户对自适应设施类名、存储路径的预定义配置一次性生成模糊感知器、模糊自适应器、模糊执行器三个Aspect设施和一个数据黑板对象,该数据黑板对象用于模糊感知器Aspect、模糊自适应器Aspect和模糊执行器Aspect在目标软件内的交互;
4、模糊逻辑基本运算模块实现对模糊逻辑的基本操作和算法进行管理;
5、模糊逻辑执行引擎模块支撑系统的总调度,负责对模糊自适应策略进行解释执行,完成模糊自适应推理运算。
本发明基于所述软件模糊自适应支撑系统的软件模糊自适应开发方法,该方法实现软件模糊自适应逻辑可视化编辑与自动化生成,步骤如下:
步骤1,利用软件模糊自适应可视化编辑与仿真测试模块编辑与仿真测试模糊自适应策略:首先根据模糊自适应需求和模糊自适应目标确定模糊自适应输入、输出变量,然后将模糊自适应变量进行模糊化处理;其次编辑基于模糊规则的模糊自适应策略,然后对编辑好的模糊自适应策略进行语法错误检查;最后对模糊自适应策略进行仿真测试;具体为:
(1)确定自适应变量:根据模糊自适应需求和目标软件的模糊自适应目标确定模糊自适应输入、输出变量,在软件模糊自适应可视化编辑与仿真测试模块逐个添加所需模糊自适应输入、输出变量;
(2)模糊化自适应变量:在软件模糊自适应可视化编辑与仿真测试模块将步骤(1)所添加的模糊自适应输入、输出变量进行模糊分割,生成多个模糊语言值,并为每一个模糊语言值定义隶属度函数;
(3)编辑模糊自适应策略:在软件模糊自适应可视化编辑与仿真测试模块编辑基于模糊规则的模糊自适应策略,然后对编辑好的模糊自适应策略进行语法错误检查;
(4)测试模糊自适应策略:在软件模糊自适应可视化编辑与仿真测试模块对编辑好的模糊自适应策略进行图形化仿真和测试,以发现模糊自适应推理中隐含的逻辑错误,测试过程需要模糊逻辑基本运算模块、模糊逻辑执行引擎模块的支撑;
步骤2,存储模糊自适应策略:首先利用模糊逻辑基本运算模块对模糊操作子进行配置,然后利用模糊自适应逻辑持久化存储模块设置存储路径,存储上述配置信息和步骤1所述模糊自适应输入、输出变量、模糊自适应规则,实现模糊自适应逻辑的重复利用和共享;
步骤3,生成模糊自适应Aspect:利用模糊自适应Aspect设施自动生成模块自动生成基于可执行语言代码的模糊自适应Aspect文件;
步骤4,编织模糊自适应Aspect:借助通用的Aspect编织工具,将步骤3生成的Aspect文件织入到目标软件中,从而在目标软件内部形成软件模糊自适应环;
上述步骤1~4的实现均基于模糊逻辑执行引擎模块的支撑。
下面结合具体实施例对本发明作进一步详细说明。
实施例1
本发明提供的软件模糊自适应支撑系统可通过对FuzzyLite模糊逻辑软件工具进行扩展实现。
图1为软件模糊自适应支撑系统的总体结构,该系统包括软件模糊自适应可视化编辑与仿真测试环境、软件模糊自适应逻辑持久化存储模块、模糊自适应Aspect设施自动生成模块、模糊逻辑基本运算模块、模糊逻辑执行引擎模块等5个部分,处于核心的是模糊逻辑执行引擎,这些模块之间相互作用,构成了一个初步支持软件模糊自适应较为高效地进行开发的支撑环境。这些模块的主要功能和相互之间的联系分别如下:
(1)软件模糊自适应可视化编辑与仿真测试模块
该模块主要提供基于领域特定语言的软件模糊自适应策略可视化编辑和测试环境。在这个模块中,采用模糊控制领域的“if-then”模糊规则定义语句(又称模糊控制语言Fuzzy Control Language,FCL)作为软件模糊自适应策略的定义语言,使用简单、易用理解,且接近普通人的思维方式;同时,也提供模糊自适应环的感知、执行环节的输入输出语言变量的模糊分割、隶属度函数的形状设定、推理规则选择等功能;该模块能对编辑好的自适应策略进行语法检查,对不符合语法的自适应规则进行错误提示,还能对模糊自适应策略进行仿真测试,来直观察看分析模糊自适应的决策结果,从而可以依据仿真结果进一步优化规则。
(2)软件模糊自适应逻辑持久化存储模块
该模块实现对编辑好的模糊自适应规则及相关配置进行持久化存储。模糊自适应逻辑的信息具有树状数据结构的特征,所以这里采用标准的XML文档作为持久化存储的载体。为了实现对模糊自适应逻辑的格式化和持久化存储,该模块还提供了相应的导出(写)、载入(读)操作。导出操作首先将编辑环境中的模糊自适应规则、语言变量模糊分割、隶属度函数等数据进行标准的树状化处理,然后将这个树结构信息写入到XML文件中。载入操作是导出操作的逆过程,即从XML文件中解析出模糊自适应逻辑的相应信息,并将这些信息在图形化的自适应逻辑编辑环境中进行显示。
(3)软件模糊自适应逻辑Aspect设施自动生成模块
该模块负责将基于领域特定语言的模糊自适应逻辑自动转化为基于Native语言(本实施例采用的是C++)的Aspect设施,包括模糊感知器Aspect、模糊自适应器Aspect和模糊执行器Aspect,以便于直接将模糊自适应逻辑直接织入到基于Native语言的可执行软件系统中。具体而言,该模块首先借助用户对话框来收集基本信息包括Aspect名称、文件保存位置等,然后依据可视化编辑环境中的定义好的模糊自适应逻辑,生成相应的类和Aspect。该模块还同时生成了一个基于全局数组的软件数据总线,用于感知器Aspect、自适应器Aspect和模糊自适应Aspect之间在目标软件内部进行交互的数据交换通道。织入到目标软件之后的Aspect设施在执行模糊化运算、模糊推理运算、清晰化运算等操作时需要与模糊逻辑引擎模块进行交互。
(4)模糊逻辑引擎模块
该模块是支撑系统的总调度,负责对模糊自适应策略进行解释执行、模糊自适应推理运算等。由于本模块主要完成的模糊逻辑运算,因此,这一部分直接从FuzzyLite中继承而来。
(5)模糊逻辑基本运算模块
该模块负责对模糊逻辑的基本操作和算法进行管理,包括对模糊集合的求交、求并运算,隶属度函数库等进行管理。该模块也是直接从从FuzzyLite中继承而来。
图2为模糊自适应逻辑编辑与仿真测试模块的总体实现结构,当开发者明确软件模糊自适应环的概念框架之后,就可利用该模块进行软件模糊自适应逻辑的编辑和测试工作,具体为:
(1)自适应环输入输出变量的模糊化。实现对自适应环中感知、执行等环节变量的模糊化处理,包括隶属度函数定义,模糊分割数确定等。
(2)模糊自适应策略的编辑与语法检查。基于FCL模糊规则对模糊自适应策略进行编辑,同时对编辑后的策略进行语法检查。
(3)模糊自适应逻辑仿真测试。对编辑完成后的模糊自适应逻辑进行图形化仿真测试,动态分析自适应逻辑的决策结果,同时能利用分析结果反馈优化模糊自适应策略。
图3为支撑系统持久化存储模块的总体结构。模糊自适应逻辑的信息具有树状数据结构的特征,所以这里采用标准的XML文档作为持久化存储的载体。在实现上,仍然采用了面向对象思想,分别定义了树构造器类、XML读写操作类、存储类等软件实体来负责完成基于XML的持久化存储功能。本发明所定义的XML文件存储格式如表1所示。另外,为了方便生成的XML文档共享,使之能够形成一套标准体系,我们还为生成的XML文档定义了DTD文件。DTD(Document Type Definition)用于定义标记符的语法规则。它属于XML1.0规格的一部分,是XML文件的一种验证机制,一般包含在XML文件内,是XML文件的一部分。DTD是一种控制XML文档格式正确性的有效方法,可通过对比XML文档和DTD文件的定义来判断文档是否符合规范,标签或者元素使用的是否正确。XML文件为应用程序提供了一种数据交换的载体,DTD文件的作用正是让XML文件能够成为一种特定的数据交换标准,因为不同的团体只需定义好标准DTD,其他团体都能依DTD建立标准格式的XML文件,并且进行验证,从而建立数据格式的标准,并在网络上进行数据交互。定义的DTD文件内容见表1。
表1模糊自适应逻辑的XML存储格式
在模糊自适应逻辑持久化存储模块的菜单中,提供了相应的导出(写)、载入(读)操作菜单项。导出操作首先将编辑环境中的模糊自适应规则、语言变量模糊分割、隶属度函数等数据进行标准的树状化处理,然后将这个树结构信息写入到XML文件中。载入操作是导出操作的逆过程,即从XML文件中解析出模糊自适应逻辑的相应信息,并将这些信息在图形化的自适应逻辑编辑环境中进行显示。
图4为模糊自适应Aspect设施自动生成模块的实现原理。支撑系统专门提供了模糊自适应Aspect设施自动生成模块,实现在完成模糊自适应逻辑的测试仿真之后,生成模糊自适应相关Aspect设施。该模块在实现上采用了面向对象思想,设计有专门的Aspect代码生成类,其首先从编辑环境中获取模糊自适应逻辑相关信息,然后依据用户的预定义配置(如自适应设施类名、生成路径),一次性批量生成模糊感知器、模糊自适应器、模糊执行器等三个Aspect和一个数据黑板对象。
图5为模糊自适应Aspect设施间数据通信实现机制。数据黑板是用来为被植入到目标软件内部的模糊感知器对象、模糊自适应器对象和模糊自适应器对象之间进行通信和数据交换的软件设施,也可称之为软件总线,用于管理模糊自适应的流程。静态类R起到了软件总线的作用,它内部维护了两个消息队列Input队列和Output队列,其中Input队列存放输入的传感值,Output队列存放模糊自适应决策的结果。
图6为利用模糊自适应Aspect设施自动生成模块实现模糊自适应时生成Aspect相关文件的过程。在支撑系统中,提供有Aspect生成菜单项,点击该菜单项就弹出Aspect预配置对话框,在该对话框中允许用户自定义将要生成的模糊自适应器(FuzzyAdpator)、模糊感知器(FuzzySensor)、模糊执行器类(FuzzyActuator)、数据黑板类等的名称,以及Aspect相关文件的保存路径。上述工作完成之后,点击对话框中的“OK”按钮,就可自动批量生成Aspect等文件。
本发明提供了一种基于上述软件模糊自适应支撑系统的软件模糊自适应的可视化编辑与自动化生成方法。图7示意了该方法的基本步骤,包括确定模糊自适应需求(Specifying SFSA Requirements)、模糊化自适应变量(Fuzzifying SFSA Variables)、编辑模糊自适应策略(Editing SFSA Policies)、测试模糊自适应逻辑(Testing SFSALogic)、生成模糊自适应Aspect(Generating SFSA Aspects)和编织模糊自适应Aspect(Weaving SFSA Aspects),当每一步骤发现问题,返回到上一步骤进行重新修改和优化。具体为:
步骤1,编辑与仿真测试模糊自适应策略:利用软件模糊自适应可视化编辑与仿真测试模块编辑与仿真测试模糊自适应策略。首先根据模糊自适应需求和模糊自适应目标确定模糊自适应输入、输出变量,然后将模糊自适应变量进行模糊化处理,其次编辑基于模糊规则的模糊自适应策略,然后对编辑好的模糊自适应策略进行语法错误检查,最后对模糊自适应策略进行仿真测试,具体为:
(1)确定模糊自适应需求。明确目标软件的模糊自适应的目标、模糊自适应涉及的输入、输出变量等内容。图8左侧单输入变量(Temperature)和单输出变量(CPU)添加过程的实施例。
(2)模糊化自适应变量。利用支撑系统创建模糊自适应的输入、输出变量,并对每一个变量进行模糊分割、定义每一个模糊语言值得隶属度函数等。图8右侧是对模糊自适应变量Temperature进行两次模糊分割(High和Mid),并为每一个模糊语言值定义隶属度函数的实施例。
(3)编辑模糊自适应策略。利用支撑系统编辑基于模糊规则的模糊自适应策略,编辑过程中可进行语法错误检查。图8左侧下方是模糊自适应策略编辑与测试区,如规则“ifTemperature is Mid then CPU is High”。
(4)测试模糊自适应逻辑。利用支撑系统对编辑好的模糊自适应逻辑进行图形化仿真和测试,以发现模糊自适应推理中隐含的逻辑错误。图8左侧上方实现对上述9条模糊自适应规则的图形化仿真和测试。
步骤2,存储模糊自适应策略:首先利用模糊逻辑基本运算模块对模糊操作子进行配置,然后利用模糊自适应逻辑持久化存储模块设置存储路径,存储上述配置信息和步骤1所述模糊自适应输入、输出变量、模糊自适应规则,实现模糊自适应逻辑的重复利用和共享;
步骤3,生成模糊自适应Aspect。当仿真和测试完毕后,利用支撑系统自动生成基于可执行语言(如C++)代码的模糊自适应aspect文件。图6为模糊自适应Aspect设施自动批量生成示意图,该实施例中批量生成13个Aspect相关文件。
步骤4,编织模糊自适应Aspect。借助通用的Aspect编织工具,如Aspect C++Weaver,将步骤3生成的aspect文件织入到目标软件中,从而在目标软件内部形成了软件模糊自适应环。
本发明提供的软件模糊自适应逻辑支撑系统和开发方法,以控制领域中一种可扩展的模糊控制软件系统(如Fuzzylite)为基础,结合软件工程中的AOP(面向方面编程)和OOP(面向对象编程)等技术来构造软件模糊自适应支撑系统。系统提供可视化的图形界面来编辑模糊自适应逻辑,让软件自适应开发人员直观地看到模糊逻辑执行效果,并方便对模糊逻辑的各项参数和设置进行修改,然后对于编辑好的模糊逻辑能够直接生成基于Aspect的native语言模糊自适应逻辑源代码,利用Aspect编织器可直接将这些自动的Aspect织入到目标软件中。该系统提供了模糊自适应逻辑的保存和导入功能,并建立了模糊逻辑存储格式的标准,方便不同团体之间的共享。从而能降低了软件模糊自适应的开发难度,为软件模糊自适应开发提供了可视化、自动化的支撑手段,提高了软件开发效率。
Claims (5)
1.一种软件模糊自适应支撑系统,其特征在于:该支撑系统支持软件模糊自适应逻辑可视化编辑与自动化生成,具体包括:软件模糊自适应可视化编辑与仿真测试模块、软件模糊自适应逻辑持久化存储模块、模糊自适应Aspect设施自动生成模块、模糊逻辑基本运算模块、模糊逻辑执行引擎模块,其中模糊逻辑基本运算模块分别接入软件模糊自适应可视化编辑与仿真测试模块、模糊逻辑执行引擎模块、模糊自适应Aspect设施自动生成模块,模糊逻辑执行引擎模块分别与软件模糊自适应可视化编辑与仿真测试模块、模糊自适应Aspect设施自动生成模块相连接,软件模糊自适应逻辑持久化存储模块与软件模糊自适应可视化编辑与仿真测试模块相连接,软件模糊自适应可视化编辑与仿真测试模块接入模糊自适应Aspect设施自动生成模块,各模块作用如下:
软件模糊自适应可视化编辑与仿真测试模块提供基于领域特定语言的软件模糊自适应策略可视化编辑和测试环境,其中模糊自适应策略采用“if-then”模糊规则的形式进行表达;
软件模糊自适应逻辑持久化存储模块实现对编辑好的模糊自适应策略及相关配置进行持久化存储;
模糊自适应Aspect设施自动生成模块将基于领域特定语言的模糊自适应逻辑自动转化为基于Native语言的Aspect设施和一个数据黑板对象;该数据黑板对象用于模糊感知器Aspect、模糊自适应器Aspect和模糊执行器Aspect在目标软件内的交互;
模糊逻辑基本运算模块实现对模糊逻辑的基本操作和算法进行管理;
模糊逻辑执行引擎模块支撑系统的总调度,负责对模糊自适应策略进行解释执行,完成模糊自适应推理运算;
所述Aspect是方面的意思,是Aspect Oriented Programming这一软件开发范型中的概念,Aspect是对软件业务逻辑中的横切关注点进行封装的程序模块。
2.根据权利要求1所述的软件模糊自适应支撑系统,其特征在于:所述软件模糊自适应逻辑持久化存储模块实现对编辑好的模糊自适应规则及相关配置信息进行持久化存储,具体为:
(1)采用XML格式对编辑好的软件模糊自适应规则进行存储;
(2)采用XML格式对配置信息进行存储,所述配置信息包括:模糊推理参数配置、定义的输入输出变量、及该输入输出变量的模糊分割。
3.根据权利要求1所述的软件模糊自适应支撑系统,其特征在于:所述模糊自适应Aspect设施自动生成模块将基于领域特定语言的模糊自适应逻辑自动转化为基于native语言的Aspect设施和一个数据黑板对象,该Aspect设施包括模糊感知器Aspect、模糊自适应器Aspect和模糊执行器Aspect,具体为:
(1)模块面向对象,设有专门的Aspect代码生成类,从编辑环境中获取模糊自适应逻辑相关信息;
(2)依据用户对自适应设施类名、存储路径的预定义配置一次性生成模糊感知器、模糊自适应器、模糊执行器三个Aspect设施和一个数据黑板对象,该数据黑板对象用于模糊感知器Aspect、模糊自适应器Aspect和模糊执行器Aspect在目标软件内的交互。
4.一种基于权利要求1所述软件模糊自适应支撑系统的软件模糊自适应开发方法,其特征在于:该方法实现软件模糊自适应逻辑可视化编辑与自动化生成,步骤如下:
步骤1,利用软件模糊自适应可视化编辑与仿真测试模块编辑与仿真测试模糊自适应策略:首先根据模糊自适应需求和模糊自适应目标确定模糊自适应输入、输出变量,然后将模糊自适应变量进行模糊化处理;其次编辑基于模糊规则的模糊自适应策略,然后对编辑好的模糊自适应策略进行语法错误检查;最后对模糊自适应策略进行仿真测试;
步骤2,存储模糊自适应策略:首先利用模糊逻辑基本运算模块对模糊操作子进行配置,然后利用模糊自适应逻辑持久化存储模块设置存储路径,存储配置信息和步骤1所述模糊自适应输入、输出变量、模糊自适应规则,实现模糊自适应逻辑的重复利用和共享;
步骤3,生成模糊自适应Aspect:利用模糊自适应Aspect设施自动生成模块自动生成基于可执行语言代码的模糊自适应Aspect文件;
步骤4,编织模糊自适应Aspect:借助通用的Aspect编织工具,将步骤3生成的Aspect文件织入到目标软件中,从而在目标软件内部形成软件模糊自适应环。
5.根据权利要求4所述的软件模糊自适应开发方法,其特征在于:步骤1中所述利用软件模糊自适应可视化编辑与仿真测试模块编辑与仿真测试模糊自适应策略,具体为:
(1)确定自适应变量:根据模糊自适应需求和目标软件的模糊自适应目标确定模糊自适应输入、输出变量,在软件模糊自适应可视化编辑与仿真测试模块逐个添加所需模糊自适应输入、输出变量;
(2)模糊化自适应变量:在软件模糊自适应可视化编辑与仿真测试模块将步骤(1)所添加的模糊自适应输入、输出变量进行模糊分割,生成多个模糊语言值,并为每一个模糊语言值定义隶属度函数;
(3)编辑模糊自适应策略:在软件模糊自适应可视化编辑与仿真测试模块编辑基于模糊规则的模糊自适应策略,然后对编辑好的模糊自适应策略进行语法错误检查;
(4)测试模糊自适应策略:在软件模糊自适应可视化编辑与仿真测试模块对编辑好的模糊自适应策略进行图形化仿真和测试,以发现模糊自适应推理中隐含的逻辑错误,测试过程需要模糊逻辑基本运算模块、模糊逻辑执行引擎模块的支撑。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201410175451.9A CN103955368B (zh) | 2014-04-28 | 2014-04-28 | 一种软件模糊自适应支撑系统和开发方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201410175451.9A CN103955368B (zh) | 2014-04-28 | 2014-04-28 | 一种软件模糊自适应支撑系统和开发方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN103955368A CN103955368A (zh) | 2014-07-30 |
| CN103955368B true CN103955368B (zh) | 2017-08-04 |
Family
ID=51332644
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201410175451.9A Active CN103955368B (zh) | 2014-04-28 | 2014-04-28 | 一种软件模糊自适应支撑系统和开发方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN103955368B (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104486334A (zh) * | 2014-12-11 | 2015-04-01 | 北京国双科技有限公司 | 文件传输协议账号添加方法及装置 |
| CN106411626A (zh) * | 2015-08-03 | 2017-02-15 | 中兴通讯股份有限公司 | 一种基于dsl网元模拟器的测试方法及装置 |
| CN112346334B (zh) * | 2019-08-06 | 2022-01-11 | 北京东土科技股份有限公司 | 模糊控制参数的配置方法、装置、设备及存储介质 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1224515A (zh) * | 1997-02-21 | 1999-07-28 | 贝克·休斯公司 | 自适应面向对象的优化软件系统 |
| US6807535B2 (en) * | 2000-03-08 | 2004-10-19 | Lnk Corporation | Intelligent tutoring system |
-
2014
- 2014-04-28 CN CN201410175451.9A patent/CN103955368B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1224515A (zh) * | 1997-02-21 | 1999-07-28 | 贝克·休斯公司 | 自适应面向对象的优化软件系统 |
| US6807535B2 (en) * | 2000-03-08 | 2004-10-19 | Lnk Corporation | Intelligent tutoring system |
Non-Patent Citations (1)
| Title |
|---|
| 自适应模糊控制方法研究及仿真软件设计;吴泽伟;《中国优秀硕士学位论文全文数据库》;20060601;全文 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN103955368A (zh) | 2014-07-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Leng et al. | Digital twins-based remote semi-physical commissioning of flow-type smart manufacturing systems | |
| CA3153937A1 (en) | Visually creating and monitoring machine learning models | |
| US6167406A (en) | System, method and article of manufacture for building an enterprise-wide data model | |
| US6157864A (en) | System, method and article of manufacture for displaying an animated, realtime updated control sequence chart | |
| EP1849064B1 (en) | Applying coding standards in graphical programming environments | |
| US9600241B2 (en) | Unified state transition table describing a state machine model | |
| US12175212B2 (en) | System and method for using a graphical user interface to develop a virtual programmable logic controller | |
| JP6033891B2 (ja) | 状態図の生成 | |
| US20140013313A1 (en) | Editor/Development Tool for Dataflow Programs | |
| CN103052943A (zh) | 源代码转换方法和源代码转换程序 | |
| Molcho et al. | Computer aided manufacturability analysis: Closing the knowledge gap between the designer and the manufacturer | |
| Shao et al. | Modeling and optimization of manufacturing process performance using Modelica graphical representation and process analytics formalism | |
| Tolvanen et al. | Advanced tooling for domain-specific modeling: MetaEdit+ | |
| Seiger et al. | Test modeling for context-aware ubiquitous applications with feature petri nets | |
| CN103955368B (zh) | 一种软件模糊自适应支撑系统和开发方法 | |
| Ciavotta et al. | Interoperable meta model for simulation-in-the-loop | |
| Heinecke et al. | Generating test plans for acceptance tests from uml activity diagrams | |
| CN115033221A (zh) | 基于风险演变网的软件产品责任管理系统及方法 | |
| US20250061043A1 (en) | Methods and systems for an intelligent technical debt helper bot | |
| Ferrer et al. | A knowledge-based solution for automatic mapping in component based automation systems | |
| Schou et al. | Determining manufacturing system changes based on new product specifications | |
| Neumann et al. | Metric-based identification of target conflicts in the development of industrial automation software libraries | |
| Weiß et al. | Towards establishing formal verification and inductive code synthesis in the PLC domain | |
| US20230289150A1 (en) | System and method for engineering a technical system | |
| Strasser et al. | Engineering and validating cyber-physical energy systems: needs, status quo, and research trends |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |