一种对象使用场景提取方法及装置的制造方法_3

文档序号:9349727阅读:来源:国知局
3,m02,ml2,m31,m32, m20, m23, m33>,其中所有函数均给予的同一个对象实例被调用,由类继承树知类A3的继承 深度为3。
[0100] 请参考图2,图2顶部给出了各函数的动态类和定义基类。对于每个函数采用之 前所述的方法逐一确定所述N个函数中的每个函数属于哪些父类。
[0101] 以函数mil为例,确定mil属于哪些父类的方法为:
[0102] 先初始化类型变量t的值为mil的动态类A3 ;根据类继承树判断出mil是类A3的 函数,则确定类A3的对象使用场景中包含函数mil ;
[0103] 再使t为t的父类型,即t = suptype(A3) = A2,然后根据类继承树判断出mil是 类A2的函数,则确定类A2的对象使用场景中包含函数mil ;
[0104] 再使t为t的父类型,即t = suptype(A2) = A1,然后根据类继承树判断出mil是 类Al的函数,则确定类Al的对象使用场景中包含函数mil ;
[0105] 再使t为t的父类型,即t = suptype(Al) = A0,然后根据类继承树判断出mil不 是类AO的函数,则结束对mil的处理。
[0106] 当所有函数均按照上述方法处理后获得如图2底部所示的类A3、类A2、类Al和类 AO的函数队列。将各队列中的函数按<m01, mil, m03, m02, ml2, m31, m32, m20, m23, m33>的顺 序串联起来即获得如下所示的4个对象使用场景:
[0107] (1)类 A3 的对象使用场景:〈mOl, mil, m03, m02, ml2, m31, m32, m20, m23, m33> ;
[0108] (2)类 A2 的对象使用场景:〈mOl, mil, m03, m02, ml2, m20, m23> ;
[0109] (3)类 Al 的对象使用场景:〈mOl, mil, m03, m02, ml2> ;
[0110] (4)类 AO 的对象使用场景:<m01,m03,m02>。
[0111] 即完成从一个对象使用场景分离出了 3个继承子对象使用场景,分别为类A2、Al 和AO的对象使用场景。继承子对象使用场景的数量与类A3的继承深度相同。
[0112] 在具体实施过程中,本实施例提供的对象使用场景提取方法不仅可以应用于程序 约束挖掘,还可以应用于其它根据程序执行轨迹进行序列模式挖掘的情况。
[0113] 基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置:
[0114] 实施例二
[0115] 本实施例提供了一种对象使用场景提取装置,如图3所示,所述装置包括:
[0116] 获取单元301,用于获取目标类的第一对象使用场景;所述第一对象使用场景为 依第一顺序调用的N个函数的序列,N为大于1的整数;
[0117] 第一确定单元302,用于根据所述目标类确定第一父类;所述第一父类为所述目 标类的父类;
[0118] 第二确定单元303,用于从所述N个函数中确定出L个函数;所述L个函数均为所 述第一父类的函数;N彡L > 1 ;
[0119] 生成单元304,用于按照所述第一顺序排列所述L个函数,以生成所述第一父类的 第二对象使用场景;所述第二对象使用场景为所述第一对象使用场景的继承子对象使用场 景。
[0120] 在本实施例中,所述第一确定单元302还用于:
[0121] 根据预先定义的类继承树和所述目标类确定第一父类;所述类继承树中定义了类 之间的继承关系和类包含的函数。
[0122] 在本实施例中,所述第一父类的函数包括:从所述第一父类的父类处继承的函数, 和定义到所述第一父类的函数。
[0123] 在本实施例中,当所述目标类的继承深度为M时,能根据所述第一对象使用场景 提取出的继承子对象使用场景的最大数量为M ;M为正整数。
[0124] 本实施例中提供的装置与实施例一中的对象使用场景提取方法,是基于同一发明 构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员 可根据前述描述清楚的了解本实施例中的装置结构及实施过程,为了说明书的简洁,在此 就不再赘述了。
[0125] 上述本申请实施例中的技术方案,具有至少一个如下的技术效果或优点:
[0126] 本申请实施例提供的对象使用场景提取方法及装置,根据面向对象程序中对象之 间具有的继承关系,能够从目标类的单个对象使用场景,分离出其父类的对象使用场景,而 重复使用所述对象场景提取方法,可以从单个对象使用场景提取出多个对象使用场景;即 实现了可以通过运行少量应用程序来获得大量的对象使用场景的技术效果,为挖掘准确而 完备的组件协议奠定了数据基础。
[0127] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造 性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优 选实施例以及落入本发明范围的所有变更和修改。
[0128] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1. 一种对象使用场景提取方法,其特征在于,包括: 获取目标类的第一对象使用场景;所述第一对象使用场景为依第一顺序调用的N个函 数的序列,N为大于1的整数; 根据所述目标类确定第一父类;所述第一父类为所述目标类的父类; 从所述N个函数中确定出L个函数;所述L个函数均为所述第一父类的函数;N多L > 1 ; 按照所述第一顺序排列所述L个函数,以生成所述第一父类的第二对象使用场景;所 述第二对象使用场景为所述第一对象使用场景的继承子对象使用场景。2. 如权利要求1所述的方法,其特征在于,所述根据所述目标类确定第一父类,具体 为: 根据预先定义的类继承树和所述目标类确定第一父类;所述类继承树中定义了类之间 的继承关系和类包含的函数。3. 如权利要求1所述的方法,其特征在于,所述第一父类的函数包括:从所述第一父类 的父类处继承的函数,和定义到所述第一父类的函数。4. 如权利要求1-3任一所述的方法,其特征在于,当所述目标类的继承深度为M时,能 根据所述第一对象使用场景提取出的继承子对象使用场景的最大数量为M ;M为正整数。5.-种对象使用场景提取装置,其特征在于,包括: 获取单元,用于获取目标类的第一对象使用场景;所述第一对象使用场景为依第一顺 序调用的N个函数的序列,N为大于1的整数; 第一确定单元,用于根据所述目标类确定第一父类;所述第一父类为所述目标类的父 类; 第二确定单元,用于从所述N个函数中确定出L个函数;所述L个函数均为所述第一父 类的函数;N彡L > 1 ; 生成单元,用于按照所述第一顺序排列所述L个函数,以生成所述第一父类的第二对 象使用场景;所述第二对象使用场景为所述第一对象使用场景的继承子对象使用场景。6. 如权利要求5所述的装置,其特征在于,所述第一确定单元还用于: 根据预先定义的类继承树和所述目标类确定第一父类;所述类继承树中定义了类之间 的继承关系和类包含的函数。7. 如权利要求5所述的装置,其特征在于,所述第一父类的函数包括:从所述第一父类 的父类处继承的函数,和定义到所述第一父类的函数。8. 如权利要求5-7任一所述的装置,其特征在于,当所述目标类的继承深度为M时,能 根据所述第一对象使用场景提取出的继承子对象使用场景的最大数量为M ;M为正整数。
【专利摘要】本发明公开了一种对象使用场景提取方法及装置,该方法包括:获取目标类的第一对象使用场景;所述第一对象使用场景为依第一顺序调用的N个函数的序列;根据目标类确定第一父类;第一父类为目标类的父类;从N个函数中确定出L个函数;L个函数均为第一父类的函数;N≥L>1;按照第一顺序排列L个函数,以生成第一父类的第二对象使用场景;第二对象使用场景为第一对象使用场景的继承子对象使用场景。本发明提供的方法及装置用以解决现有技术中进行组件协议挖掘时,存在的对象使用场景数量不足的技术问题。实现了可以通过运行少量应用程序来获得大量的对象使用场景的函数调用序列的技术效果。
【IPC分类】G06F9/44
【公开号】CN105068789
【申请号】CN201510404171
【发明人】陈灯, 魏巍, 张彦铎, 李迅, 于宝成, 鲁统伟, 闵峰, 周华兵, 朱锐, 彭丽
【申请人】武汉工程大学
【公开日】2015年11月18日
【申请日】2015年7月10日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1