图形化开发的活动推荐方法及系统、图形化开发软件与流程

文档序号:15828733发布日期:2018-11-03 00:12阅读:239来源:国知局

本发明属于编程技术领域,具体涉及一种图形化开发的活动推荐方法、图形化开发的活动推荐系统和图形化开发软件。

背景技术

基于图形化界面进行软件开发的方法不仅快速简便,而且不易出错。目前图形化开发软件开发可借助半自动化工具进行,这些半自动化工具包括vc、vb、bpel等,这些开发工具无需开发人员手工编写具体图标控件代码,而仅需要设计其中的逻辑关系,从而实现了半自动图形化的编程方式。然而,尽管有半自动化开发工具的帮助,软件的编写仍然需要开发人员创建新的活动图标并决定这个图标应该被赋予一个特定的活动,特性的活动对应一个服务,该服务用来实现一个特定的功能。

随着越来越多的开发语言依赖图形化的设计工具进行软件开发,局限于这些半自动化工具中的每一个图标对应一个具体的活动,当开发人员在设计一个规模庞大的系统时,代表具体活动的、单一的原子活动往往是有限的,大大降低了开发人员的开发效率。

如何提高开发人员的开发效率成为目前亟待解决的技术问题。



技术实现要素:

本发明所要解决的技术问题是针对现有技术中存在的上述不足,提供一种图形化开发的活动推荐方法、图形化开发的活动推荐系统和图形化开发软件,通过活动推荐极大的提高开发人员的开发效率。

解决本发明技术问题所采用的技术方案是该图形化开发的活动推荐方法,包括步骤:

步骤s1):根据各原子活动之间的逻辑关系,获得包括以所述原子活动为粒度组合得到的多种不同支持度的活动集的频繁项集的集合;

步骤s2):基于所述频繁项集,根据相邻所述原子活动的紧密度,建立与所述原子活动具有上下文语义相关的关联活动集合。

优选的是,步骤s1)包括步骤:

步骤s11):预先设置最小支持度;

步骤s12):扫描图形数据库,根据不同的支持度,采用迭代方法,获得频繁项集的集合,包括:

对每个项计数,收集满足最小支持度的项,作为频繁1项集;

以及,以频繁1项集为起点,依次扩展频繁f项集,直到不能再继续往下扩展的频繁k项集;

其中:f、k为大于1的自然数,且1<f≤k。

优选的是,步骤s2)包括步骤:

步骤s21):根据相邻所述原子活动之间的因果关系,将所述频繁项集按照逻辑顺序构建标记活动树;

步骤s22):基于所述标记活动树,获取所有完整的最长活动序列;

步骤s23):设置滑动窗口,将所述最长活动序列转换为不同支持度的可能关联活动的输入事务集合;

步骤s24):设置最小置信度,计算与所述输入事务集合中所述可能关联活动的支持度相应的置信度,以确定与所述原子活动具有上下文语义相关的关联活动集合。

优选的是,

步骤s21)中,活动以triple=(activitytype_activityname,m,n)进行标识;

步骤s22)中,所有完整的最长活动序列为从根节点到叶子节点遍历所述标记活动树的集合;

步骤s23)中,每次滑动的所述滑动窗口的窗口大小与所述可能关联活动的支持度相当;

步骤s24)中,所述可能关联活动的置信度大于最小置信度,满足:confidence(x→y)>min_confidence,则所述可能关联活动为关联活动,所述关联活动集合成立。

优选的是,还进一步包括:重新设置最小置信度和最小支持度,根据新设最小置信度和新设最小支持度对所述关联活动集合中的所述关联活动进行核定,使得其中的任一所述原子活动与所述频繁项集中具有相同支持度的所述活动集相比,均满足:confidence(x→y)>min_confidence。

一种图形化开发的活动推荐系统,包括活动集挖掘模块和关联活动集合生成模块,其中:

所述活动集挖掘模块,配置为根据各原子活动之间的逻辑关系,获得包括以所述原子活动为粒度组合得到的多种不同支持度的活动集的频繁项集的集合;

所述关联活动集合生成模块,配置为基于所述频繁项集,根据相邻所述原子活动的紧密度,建立与所述原子活动具有上下文语义相关的关联活动集合。

优选的是,所述活动集挖掘模块包括设置单元、扫描单元和迭代单元,根据不同的支持度有:

所述设置单元,配置为至少预先设置最小支持度;

所述扫描单元,配置为扫描图形数据库;

所述迭代单元,配置为根据不同的支持度,获得频繁项集的集合,包括:

对每个项计数,收集满足最小支持度的项,作为频繁1项集;以及,

以频繁1项集为起点,采用迭代方法,依次扩展频繁f项集,直到不能再继续往下扩展的频繁k项集;

其中:f、k为大于1的自然数,且1<f≤k。

优选的是,所述关联活动集合生成模块包括构建单元21、序列单元、窗口单元和关联单元,其中:

所述构建单元21,配置为根据相邻所述原子活动之间的因果关系,将所述频繁项集按照逻辑顺序构建标记活动树;

所述序列单元,配置为基于所述标记活动树,基于所述标记活动树,获取所有完整的最长活动序列;

所述窗口单元,配置为设置滑动窗口,将所述最长活动序列转换为不同支持度的可能关联活动的输入事务集合;

所述设置单元,还配置为预先设置最小置信度;

所述关联单元,配置为计算与所述输入事务集合中所述可能关联活动的支持度相应的置信度,以确定与所述原子活动具有上下文语义相关的关联活动集合。

优选的是,

所述构建单元中,活动以triple=(activitytype_activityname,m,n)进行标识;

所述序列单元中,所有完整的最长活动序列为从根节点到叶子节点遍历所述标记活动树的集合;

所述窗口单元中,每次滑动的所述滑动窗口的窗口大小与所述可能关联活动的支持度相当;

所述关联单元中,所述可能关联活动的置信度大于最小置信度,满足:confidence(x→y)>min_confidence,则所述可能关联活动为关联活动,所述关联活动集合成立。

一种图形化开发软件,包括上述的图形化开发的活动推荐系统。

本发明的有益效果是:

该图形化开发的活动推荐方法及图形化开发的活动推荐系统,首创性地采用数据挖掘中的关联规则技术去发现活动的关联关系,这种关联关系可以用在设计阶段时的活动推荐,在原子活动这个粒度上进行复用,实现活动推荐,为开发人员减轻编辑流程的工作量,极大提高了开发人员的开发效率,加快开发流程。

附图说明

图1为本发明实施例中图形化开发的活动推荐方法的流程图;

图2a、图2b为图1中图形化开发的活动推荐方法中各步骤的详细步骤流程图;

图3为本发明实施例中图形化开发的活动推荐系统的结构框图;

图4a、图4b为图3中图形化开发的活动推荐系统中各模块的详细结构框图;

附图标识中:

1-活动集挖掘模块;11-设置单元;12-扫描单元;13-迭代单元;

2-关联活动集合生成模块;21-构建单元;22-序列单元;23-窗口单元;24-关联单元。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明图形化开发的活动推荐方法、图形化开发的活动推荐系统和图形化开发软件作进一步详细描述。

基于图形化界面进行软件开发中,区别于结构化活动而言,原子活动对应一个单一服务,在某种程度上可视为一条程序语句(而结构化活动可以理解为类似于if,while等结构化语句)。一个结构化活动中包含很多原子活动,原子活动为最小单元。

本发明的技术构思在于:通过研究分析发现,将这些单一的原子活动进行组合,这些活动之间往往存在着某种因果关系。如果能够挖掘出原子活动之间的关联关系,则可以形成一个新的具有一定语义的活动,供开发人员在设计中提供相关的活动推荐。因此,本发明创造性地将关联规则分析方法应用到活动推荐或者说是活动挖掘中来,预先将紧密关联的可能的活动提取出来,以在软件开发过程中供开发人员选择,从而大大提高软件编写的正确性和效率。

本发明提供一种基于关联规则的图形化开发的活动推荐方法,通过候选集生成和情节向下封闭检测,首先挖掘频繁项集,进而获得基于图形化界面的半自动化开发软件中关联的多个活动的集合,并基于树型结构节省存储空间,为软件开发人员所用。

如图1所示,该图形化开发的活动推荐方法包括如下步骤:

步骤s1):根据各原子活动之间的逻辑关系,获得包括以原子活动为粒度组合得到的多种不同支持度的活动集的频繁项集的集合。

所谓活动推荐就是要找出活动x出现后活动y肯定出现的情况,因此首先要寻找各原子活动之间的可能关联。该步骤采用一种迭代方法,预先设置最小支持度,根据最小支持度挖掘频繁项集,从而生成活动候选集,也即频繁项集。这里将支持度大于最小支持度的项集称为频繁项集,并逐一通过k项集探索(k+1)项集,其中,k为大于1的自然数。

如图2a所示,该步骤具体包括如下各分步骤:

步骤s11):预先设置最小支持度。

通常情况下,可以为最小支持度提供一个默认值,也可以由挖掘人员自己设置。

步骤s12):扫描图形数据库,根据不同的支持度,采用迭代方法,获得频繁项集的集合,包括:

对每个项计数,收集满足最小支持度的项,作为频繁1项集,记作l1;

以及,以频繁1项集为起点,扩展频繁f项集,直到不能再继续往下扩展的频繁k项集;

其中,f、k为大于1的自然数,且1<f≤k。

通常情况下,半自动化开发工具的图形数据库中至少存储软件自带的所有原子活动,每一项代表一个原子活动。随着使用该开发工具进行的开发活动,该图形数据库还收集并存储以原子活动相关而构成的活动组合。因此,通过扫描图形数据库,还可以收集以原子活动为粒度衍生得到的多种活动组合。

根据l1找频繁2项集l2,根据l2找频繁3项集l3,……,如此下去,直到不能再继续往下扩展的频繁k项集,形成频繁项集的集合。即活动x在满足最小支持度的情况下,活动x的出现不能再找到可能出现的活动y,便结束频繁项集。

步骤s2):基于频繁项集,根据相邻原子活动的紧密度,建立与原子活动具有上下文语义相关的关联活动集合。

该步骤产生关联规则,找出如果活动a出现则活动b肯定出现的情形,并实现活动推荐。这意味着活动x执行完,紧接着便是执行活动y,找出这样的y即是索要寻找的活动推荐。例如,在会议流程中,活动x的功能是查询用户所支持的媒体状态,活动y的作用为用户设置新的媒体状态,在调用原子活动x后,通常会接着调用活动y。

如图2b所示,该步骤具体包括如下各分步骤:

步骤s21):根据相邻原子活动之间的因果关系,将频繁项集按照逻辑顺序构建标记活动树。

在整个流程中的原子活动,结构化活动使得流程之间具有一定的分支、并发等逻辑结构。活动推荐方法的目的是挖掘活动之间的内在关联,因此需要关心活动x(activity)之间的因果关系,基于这个特性将感兴趣的活动x提取出来。因此首先按照原逻辑顺序构建标记活动树(lat:labeledactivitytree)。

活动树的标记方法为:对于活动树at中的每一个节点,用一个二元组(m,n)来标记,m表示这个节点在at中的层数,n表示这个节点是在m层中的第n个节点。标记后的活动a用三元组triple=(activitytype_activityname,m,n)来表示。由于结构化活动只是规定原子活动之间的执行顺序,采用三元组triple将原子活动标记出来,活动类型activitytype记录了该类原子活动类型,活动名称activityname记录了能够唯一标识该原子活动所带的参数。这里仅提供一种标记活动的方式示例,根据实际使用场景,也可以采用其他的方式标识活动,这里不做限定。

例如,bpel语言中原子活动receive用于接收外部一个消息,其语句表达式为:

<receivepartnerlink=”a”operation=”b”porttype=”c”variable=…>

该语句通过a、b、c三个参数能够唯一标识一个receive活动,因此在以活动标记三元组triple=(activitytype_activityname,m,n)来表示时,activitytype即代表receive活动,活动类型是bpel语言自带的;activityname代表的a、b、c三个能够标识该活动的参数值,活动名称则需要开发人员在开发环境中进行赋值的;m和n是在生成标记树的过程中设置的,用来识别活动所在的位置。

步骤s22):基于标记活动树,获取所有完整的最长活动序列。

最长活动序列实际上就是从根节点到叶子节点遍历标记活动树的集合,记录了不同活动的所有最长路径。从标记活动树中获取所有完整的最长活动序列(laseq:longestactivitysequence),其中的每一个元原子活动以triple=(activitytype_activityname,m,n)作为记录形式,用来唯一识别一个原子活动,类似于x1,x2,x3等。选取最长路径中的活动作为分析粒度,能保证活动组合的实际意义,而不是零碎的无实际意义的活动拼凑。以bpel语言定义为例,选择活动和并发活动类似于传统程序中的if,while,for等。由于选择活动和并发活动的存在,导致了流程中包含了很多分支,每一个分支对应一个执行路径,该执行路径的个数往往大于活动树的叶子节点数。因此,活动序列的个数一般会超过活动树中的叶子节点,最长活动序列可以理解为就是寻找一条从根节点到叶子节点的最长路径。

步骤s23):设置滑动窗口,将最长活动序列转换为不同支持度的可能关联活动的输入事务集合。

在实际的例子中,经统计发现,发现活动x的出现紧跟着活动y的出现概率是很大的。有了最长活动序列laseq后,引入滑动窗口理论,即通过设置滑动窗口的大小,挖掘出有在内关系的活动个数,获取活动之间的关联关系。每次滑动的滑动窗口的窗口大小与可能关联活动的支持度相当,滑动窗口从最长活动序列的头结点,依次沿着活动序列向后滑动。

滑动窗口的初始值一般设置为2,然后再逐渐增大,找出具有内在关联的更多活动。

步骤s24):设置最小置信度,计算与输入事务集合中可能关联活动的支持度相应的置信度,以确定与原子活动具有上下文语义相关的关联活动集合。

滑动窗口滑动的同时,即可计算置信度,将满足置信度要求的活动的集合查找出来,可能关联活动的置信度大于最小置信度,满足:confidence(x→y)>min_confidence,则可能关联活动为关联活动,关联活动集合成立。

对于每一个频繁项集f,子集x的发生必然导致其补集y的发生,产生它所有的子集x和x的补集y,即,y=f-x。如果频繁项集包含x和y两个元素,则x→y代表x的出现,必然导致y的发生。min_confidence相当于事先人为定义好的一个阈值,如果置信度confidence大于设置好的最小置信度值min_confidence,即confidence(x→y)>min_confidence,则认为元素x和元素y是强相关的,也即x→y是一个强规则。强相关可以理解为活动之间的先后顺序,为满足设置好的置信度活动序列的集合。

最小支持度和置信度这两个参数是关联规则的必要条件,用来衡量挖掘出来的活动之间的关系,比如活动x和活动y之间,支持度代表了同时出现活动x和活动y的概率,置信度代表了活动x出现的情况下活动y能出现的概率,即条件概率。

进一步优选的是,设置验证支持度和置信度,用来提升挖掘精度。即可以重新设置最小置信度和最小支持度,根据新设最小置信度和新设最小支持度对关联活动集合中的关联活动进行核定,使得其中的任一原子活动与频繁项集中具有相同支持度的活动集相比,均满足:confidence(x→y)>min_confidence。

数据挖掘的结果好坏取决于人为判断,滑动窗口不同窗口参数的设置有助于挖掘不同深度的关联关系,可通过后评价进行维护。例如,滑动窗口的窗口参数值的设置可以通过人工对结果进行判断。实际使用挖掘工具时,一般都是从小范围到大范围进行挖掘,因此初始窗口参数值可以默认为最小值2。如果参数值设置过大,活动粒度太大,则挖掘出来的结果不具备强关联性,导致活动之间的关联关系不饱和(不饱和通过人工判断),导致挖掘结果中活动之间的关系很松散,就可以减小数值继续挖掘,直到满足人们的预期。例如,理想的挖掘结果为当发现活动x出现了,挖掘结果中活动y也必然出现,但是实际的挖掘结果是活动x的出现不一定导致活动y出现,则说明挖掘粒度太大,此时则可通过减小滑动窗口的大小重新进行挖掘。

最小支持度和最小置信度一般是经验值,在不同的场合衡量的标准可能不同,因此可进行调整或修正。在使用滑动窗口工具进行计算时,可以在设置界面中输入最小支持度和最小置信度这两个参数值。如果该最小支持度和最小置信度设置不合理,则可继续调节,再次挖掘,直到挖掘结果达标为止。

相应的,本发明提供一种基于关联规则的图形化开发的活动推荐系统,如图3所示,该图形化开发的活动推荐系统,包括活动集挖掘模块1和关联活动集合生成模块2,其中:

活动集挖掘模块1,配置为根据各原子活动之间的逻辑关系,获得包括以原子活动为粒度组合得到的多种不同支持度的活动集的频繁项集的集合;

关联活动集合生成模块2,配置为基于频繁项集,根据相邻原子活动的紧密度,建立与原子活动具有上下文语义相关的关联活动集合。

如图4a所示,活动集挖掘模块1包括设置单元11、扫描单元12和迭代单元13,根据不同的支持度有:

设置单元11,配置为至少预先设置最小支持度以及预先设置最小置信度。设置单元11用于提供人机交互界面;

扫描单元12,配置为扫描图形数据库;

迭代单元13,配置为根据不同的支持度,获得频繁项集的集合,包括:

对每个项计数,收集满足最小支持度的项,作为频繁1项集;以及,

以频繁1项集为起点,采用迭代方法,依次扩展频繁f项集,直到不能再继续往下扩展的频繁k项集;

其中:f、k为大于1的自然数,且1<f≤k。

如图4b所示,关联活动集合生成模块2包括构建单元21、序列单元22、窗口单元23和关联单元24,其中:

构建单元21,配置为根据相邻原子活动之间的因果关系,将频繁项集按照逻辑顺序构建标记活动树。构建单元21中,活动以triple=(activitytype_activityname,m,n)进行标识;

序列单元22,配置为基于标记活动树,基于标记活动树,获取所有完整的最长活动序列。序列单元22中,所有完整的最长活动序列为从根节点到叶子节点遍历标记活动树的集合;

窗口单元23,配置为设置滑动窗口,将最长活动序列转换为不同支持度的可能关联活动的输入事务集合。窗口单元23中,每次滑动的滑动窗口的窗口大小与可能关联活动的支持度相当;

关联单元24,配置为计算与输入事务集合中可能关联活动的支持度相应的置信度,以确定与原子活动具有上下文语义相关的关联活动集合。关联单元24中,可能关联活动的置信度大于最小置信度,满足:confidence(x→y)>min_confidence,则可能关联活动为关联活动,关联活动集合成立。

针对挖掘结果的验证步骤,可以手动在设置单元11中重新设置参数,并重新开启接下来的挖掘过程;也可以将整个挖掘过程程序化为自动执行方式,通过阈值限定进行循环验证获得符合标准的挖掘结果。在第二种方式中,可以如此设置:

关联活动集合生成模块2还包括核定单元,配置为使得设定单元重新设置最小置信度和最小支持度;以及,

根据新设最小置信度和新设最小支持度对关联活动集合中的关联活动进行核定,使得其中的任一原子活动与频繁项集中具有相同支持度的活动集相比,满足:

confidence(x→y)>min_confidence。

本发明还提供一种基于上述图形化开发的活动推荐系统的图形化开发软件。人工审核完毕以后,确定活动推荐的应用,即可将此规则得到的活动推荐集内嵌在软件开发工具中,软件开发人员在后续的开发过程中,便可以在这个粒度的活动上进行复用,例如当选用某一图标控件时,即可自动联想弹出与此图标空间可能组合的各种活动推荐,从而大大加快开发流程。

关联规则是数据挖掘中一项重要的技术,目前出现的一些关联规则算法和应用的研究通常都限制在子流程的粒度内。如基于时间序列的预测,基于控制流图和活动依赖图的静态切片技术,通过变量进行分割的复用技术等。而本发明中的图形化开发的活动推荐方式从活动序列的关联规则挖掘角度出发,原子活动粒度更小,效率更高。

该图形化开发的活动推荐方法及图形化开发的活动推荐系统,首创性地采用数据挖掘中的关联规则技术去发现活动的关联关系,这种关联关系可以用在设计阶段时的活动推荐,在原子活动这个粒度上进行复用,实现活动推荐,为开发人员减轻编辑流程的工作量,极大提高了开发人员的开发效率,加快开发流程。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1