CN104850311B - 一种移动应用版本更新的图形化说明生成方法及系统 - Google Patents

一种移动应用版本更新的图形化说明生成方法及系统 Download PDF

Info

Publication number
CN104850311B
CN104850311B CN201510276003.2A CN201510276003A CN104850311B CN 104850311 B CN104850311 B CN 104850311B CN 201510276003 A CN201510276003 A CN 201510276003A CN 104850311 B CN104850311 B CN 104850311B
Authority
CN
China
Prior art keywords
class
mobile application
source code
modification
lda
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
Application number
CN201510276003.2A
Other languages
English (en)
Other versions
CN104850311A (zh
Inventor
周凡
林格
邹啟文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN201510276003.2A priority Critical patent/CN104850311B/zh
Publication of CN104850311A publication Critical patent/CN104850311A/zh
Application granted granted Critical
Publication of CN104850311B publication Critical patent/CN104850311B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种移动应用版本更新的图形化说明生成方法及系统,其中,该方法包括:对移动应用修改前后版本更新的类进行聚类,获得聚类结果;根据所述聚类结果定位修改所述移动应用对应的用户界面;根据修改后的用户界面生成更新描述的图形化说明。在本发明实施例中,通过生成图形化更新描述,可以为用户展现软件更新对应的用户界面,可以帮助用户更为清晰直观地了解软件的变化,为用户提供更好的服务,明显改善用户体验。

Description

一种移动应用版本更新的图形化说明生成方法及系统
技术领域
本发明涉及移动应用展示技术领域,尤其涉及一种移动应用版本更新的图形化说明生成方法及系统。
背景技术
近年来,随着信息技术的高速发展和移动终端的快速普及,移动应用产业取得了突飞猛进的发展。面对用户层出不穷的需求,当前的应用软件一直处于持续更新的状态,各种移动软件已成功应用于生活的各个领域,各种便捷的应用在用户的手指点击下变为现实,比如购物、打车、地图等。软件产业的兴起为用户的生活带来了新的变革,然而多样化的移动应用以及频繁更新的软件版本,为用户选择合适的软件提出了新的挑战。
对于频繁更新的移动应用,用户希望能在更新应用之前直观地了解相应的修改并决定是否要进行更新,查看更新日志是较好的选择。然而,软件更新描述往往包含技术相关的叙述,比如修改界面的控件(list等),调整配置信息等,这对于不熟悉软件开发的用户是陌生而晦涩的。另外,更新描述还会包括一些模糊的描述,如bug修复、性能提升等,用户更希望直观的查看相应的修改界面。如手机端的12306软件,近期的版本对验证码的输入样式做了更改,由传统的字符输入改为选出给定关键字对应的图片,显然直接展示修改前后的对应验证码界面比用文本描述更为清晰直观。
另外,通过对谷歌市场(google play store)306个应用程序(Application,app),1007个修改记录的调研,发现接近45%的更新与用户界面相关,这些与界面布局或界面功能相关的修改信息正是用户感兴趣的。针对当前的更新描述不够清晰直观的现状,生成更为直观的图形化修改说明来帮助普通用户了解app更新状态是非常必要的。
现在谷歌市场等app应用程序商店提供的都是新版本修改的文本描述,没有针对具体的修改展现对应的用户界面。而新版本修改的文本描述可以比较准确的叙述修改的信息,帮助一定经验的用户了解版本修改详情。然而文本描述不够直观,而且部分更新描述包含技术实现相关的信息,普通用户很难理解,体验感不好。
发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种移动应用版本更新的图形化说明生成方法及系统,可以为用户展现软件更新对应的用户界面,可以帮助用户更为清晰直观地了解软件的变化,为用户提供更好的服务,明显改善用户体验。
为了解决上述问题,本发明提出了一种移动应用版本更新的图形化说明生成方法,所述方法包括:
对移动应用修改前后版本更新的类进行聚类,获得聚类结果;
根据所述聚类结果定位修改所述移动应用对应的用户界面;
根据修改后的用户界面生成更新描述的图形化说明。
优选地,所述根据所述聚类结果定位修改所述移动应用对应的用户界面的步骤,包括:
在所述聚类结果中提取类名,并对类名做基本的处理;
以修改类所属的源代码文档作为输入,对源代码进行预处理;
对经过预处理的文档集合进行建模,生成主题模型;
在所述主题模型中匹配查询对应的主题,匹配对应的源代码类,对主题中的类按照相关程度进行排序得到类的概率逐步减小的文档主题生成模型LDA列表;
通过类的结构依赖分析在结构耦合层次上找出与修改的类相关的类列表,构建依赖图;
根据所述类列表对所述LDA列表中的类按照相关程度重新排序;
识别最靠前的交互界面。
优选地,所述在所述聚类结果中提取类名,并对类名做基本的处理的步骤,包括:
对修改中的某个类作为输入,通过源代码静态分析方式提取类名;
对所述类名进行基本处理。
优选地,所述对所述类名进行基本处理的步骤,包括:对所述类名作切分单词处理,将处理后的多个词作为关键字进行LDA查询。
相应地,本发明实施例还提供一种移动应用版本更新的图形化说明生成系统,所述系统包括:
聚类模块,用于对移动应用修改前后版本更新的类进行聚类,获得聚类结果;
修改模块,用于根据所述聚类模块所获得的聚类结果定位修改所述移动应用对应的用户界面;
生成模块,用于根据修改后的用户界面生成更新描述的图形化说明。
优选地,所述修改模块包括:
基本处理单元,用于在所述聚类结果中提取类名,并对类名做基本的处理;
预处理单元,用于以修改类所属的源代码文档作为输入,对源代码进行预处理;
主题模型生成单元,用于对经过预处理的文档集合进行建模,生成主题模型;
查询单元,用于在所述主题模型中匹配查询对应的主题,匹配对应的源代码类,对主题中的类按照相关程度进行排序得到类的概率逐步减小的文档主题生成模型LDA列表;
构建单元,用于通过类的结构依赖分析在结构耦合层次上找出与修改的类相关的类列表,构建依赖图;
排序单元,用于根据所述类列表对所述LDA列表中的类按照相关程度重新排序;
识别单元,用于识别最靠前的交互界面。
优选地,所述基本处理单元还用于对修改中的某个类作为输入,通过源代码静态分析方式提取类名;并对所述类名进行基本处理。
优选地,所述基本处理单元还用于对所述类名作切分单词处理,将处理后的多个词作为关键字进行LDA查询。
在本发明实施例中,通过生成图形化更新描述,可以为用户展现软件更新对应的用户界面,可以帮助用户更为清晰直观地了解软件的变化,为用户提供更好的服务,明显改善用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例的移动应用版本更新的图形化说明生成方法的流程示意图;
图2是本发明实施例中更新类的聚类结果示意图;
图3是本发明实施例中定位修改移动应用对应的用户界面的过程示意图;
图4是本发明实施例中生成更新对应的图形化说明的流程示意图;
图5是本发明实施例的移动应用版本更新的图形化说明生成系统的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例的移动应用版本更新的图形化说明生成方法的流程示意图,如图1所示,该方法包括:
S101,对移动应用修改前后版本更新的类进行聚类,获得聚类结果;
S102,根据聚类结果定位修改移动应用对应的用户界面;
S103,根据修改后的用户界面生成更新描述的图形化说明。
在S101中,本发明基于源代码比较处理方式,即对于给定的两个源代码版本,分析版本之间的修改并找出每个修改对应的用户界面。然而,源代码版本之间的修改可能包含多重目的,这里以修改前后的源代码版本作为输入,采用机器学习的方法将有同样修改目的的类聚集到一个集合中,即聚类。图2是某两个源代码版本更新类的聚类结果,其中包括多个修改,每个修改表示与该修改相关的源代码类的集合。
在移动应用工程中,一个用户界面对应一个activity组件(移动应用中的基本组件),即一种源代码类,而且每个activity都会在配置文件中注册。因此,对于步骤1中得到的各个修改,该步骤主要是找出修改是与哪个activity相关的。
通过S102中定位到的修改对应的用户界面(activity),用命令定向修改前后版本中的源代码类activity,最后按照一定的规则来生成修改对应的图形化说明。
在S102中,利用源代码的语义和结构依赖的特点识别出与修改对应的用户界面。每个修改是若干个相关类的集合,分别以每个类作为起点,结合信息检索模型LDA和源代码类的依赖关系,生成一个与修改的类相关的类的排序列表(修改的类,(类1,类2,...,类n)),其中每个类都有一个表示与修改类相关程度的概率值,通过排序列表找出最靠前的activity作为该修改类对应的用户界面。最后,分析修改集合中所有类对应的activity,命中次数最多的即为该修改对应的用户界面。
下面结合图3说明识别修改中的一个类对应的activity的具体过程。
如图3所示,S102包括:
S1021,在聚类结果中提取类名,并对类名做基本的处理;其中,对修改中的某个类作为输入,通过源代码静态分析方式提取类名;对类名进行基本处理。
S1022,以修改类所属的源代码文档作为输入,对源代码进行预处理;这里主要根据编程习惯,标识符(类名,方法名,变量名)和注释都包含功能实现相关的信息,利用这些潜在的重要信息可以挖掘相关的类。然而不同于自然语言文档,面向对象程序是结构性的,且很多单词都没有功能性的意义。因此,在主题模型生成前对源代码进行预处理是关键的。该步骤以修改类所属的源代码文档作为输入,对源代码进行预处理,主要包括信息提取、单词切分、提取词干、去停用词,以及针对app源码规模小的特点提出的基于结构信息和词频-逆向文档频率(tf-idf)的词权重的方法来过滤噪音词。
S1023,对经过预处理的文档集合进行建模,生成主题模型;这里利用信息检索中常用的文本模型LDA对S1022中经过预处理的文档(由无先后顺序的单词组成)集合进行建模,各个文档被建模成主题的集合(每个文档有对应于相应主题的概率),而主题被建模成单词的集合(每个单词有反映该主题的概率)。
S1024,在主题模型中匹配查询对应的主题,匹配对应的源代码类,对主题中的类按照相关程度进行排序得到类的概率逐步减小的文档主题生成模型LDA列表;这里以S1021中提取的关键字作为查询,在S1023中得到的主题模型中去匹配该查询对应的主题进而匹配到对应的源代码类。
S1025,通过类的结构依赖分析在结构耦合层次上找出与修改的类相关的类列表,构建依赖图;以S1021中选择的类作为起点,通过静态代码分析技术构建依赖图。其实质是一棵树,根节点是初始类,每个类的孩子节点是与该类有相互依赖的类,在构造树的过程中如果某个类的孩子节点已经存在于树中,则该孩子节点不再重复加入。最后按照树的深度将该树存储为有先后顺序的DG列表,列表中的每一项为一个类以及其对应的父类。
S1026,根据类列表对LDA列表中的类按照相关程度重新排序;结合S1025得到的DG列表对S1024得到的LDA列表中的类重新排序,首先排除掉在DG列表中不可达的类,然后根据父子节点的概率对其相互调整,其中父子关系可在DG列表中得到。若子节点的概率比父节点的概率大,那么父节点很可能是连接到子节点的接口,理论上这时候父节点也很重要,因此可把父节点的概率值调整为其子节点的最大概率值。另外,如果一个父节点概率值很大,说明这个父节点在功能层次很相关,那么与其紧密依赖的子节点应该也不会有太低的概率值,如果子节点的概率值很小,将子节点的概率值调整为父节点的概率/子节点的个数,最后再把调整好的类的列表按照相关程度重新排序。
S1027,识别最靠前的交互界面(activity)。每个移动应用工程有个注册activity的配置文件,可以获取整个移动应用的用户界面对应的activity。对S1026重新排序生成的相关类的列表从前到后进行筛选,找出第一个activity作为该类对应的用户界面。
在S102中,可以获得修改中的类对应的用户界面,对修改中所有类进行相同操作,最后找到各个类对应的activity进而找出命中次数最多的作为该修改对应的activity。
下面结合图4对如何生成更新对应的图形化说明。
对于每一个修改,运行移动应用两个版本的代码,通过命令定向activity查看前后两个源代码版本中修改对应的activity是否存在。如果都存在,再利用图片对应位置像素的比较来判断这两个界面是否一样,如果只是修改该界面背后的功能而不对界面布局进行修改,只显示该界面告诉用户该界面发生了功能修改,否则将前后两个版本生成的对应用户界面都显示用以给用户产生直观的对比。如果修改前版本中的activity不存在,则生成修改后版本中该修改对应的用户界面,并配上文字“增加界面”,给用户一个直观感受,如果用户不想用这个新界面对应的功能,可以选择不更新。如果修改后版本中的activity不存在,则生成修改前版本中该修改对应的用户界面,并配上文字“删除界面”,告诉用户该界面对应功能被删除,如果用户仍想继续使用这个界面对应的功能,可以选择不更新。
相应地,本发明实施例还提供一种移动应用版本更新的图形化说明生成系统,如图5所示,该系统包括:
聚类模块51,用于对移动应用修改前后版本更新的类进行聚类,获得聚类结果;
修改模块52,用于根据聚类模块51所获得的聚类结果定位修改移动应用对应的用户界面;
生成模块53,用于根据修改后的用户界面生成更新描述的图形化说明。
其中,修改模块52包括:
基本处理单元,用于在聚类结果中提取类名,并对类名做基本的处理;
预处理单元,用于以修改类所属的源代码文档作为输入,对源代码进行预处理;
主题模型生成单元,用于对经过预处理的文档集合进行建模,生成主题模型;
查询单元,用于在主题模型中匹配查询对应的主题,匹配对应的源代码类,对主题中的类按照相关程度进行排序得到类的概率逐步减小的文档主题生成模型LDA列表;
构建单元,用于通过类的结构依赖分析在结构耦合层次上找出与修改的类相关的类列表,构建依赖图;
排序单元,用于根据类列表对LDA列表中的类按照相关程度重新排序;
识别单元,用于识别最靠前的交互界面。
基本处理单元还用于对修改中的某个类作为输入,通过源代码静态分析方式提取类名;并对类名进行基本处理。进一步地,对类名作切分单词处理,将处理后的多个词作为关键字进行LDA查询。
具体地,本发明实施例的系统相关功能模块的工作原理可参见方法实施例的相关描述,这里不再赘述。
在本发明实施例中,通过生成图形化更新描述,可以为用户展现软件更新对应的用户界面,可以帮助用户更为清晰直观地了解软件的变化,为用户提供更好的服务,明显改善用户体验。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
另外,以上对本发明实施例所提供的移动应用版本更新的图形化说明生成方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (2)

1.一种移动应用版本更新的图形化说明生成方法,其特征在于,所述方法包括:
对移动应用修改前后版本更新的类进行聚类,获得聚类结果;
在所述聚类结果中提取类名,并对修改中的某个类作为输入,通过源代码静态分析方式提取类名;
对所述类名作切分单词处理,将处理后的多个词作为关键字进行LDA查询处理;
以修改类所属的源代码文档作为输入,对源代码进行预处理;
对经过预处理的文档集合进行建模,生成主题模型;
在所述主题模型中匹配查询对应的主题,匹配对应的源代码类,对主题中的类按照相关程度进行排序得到类的概率逐步减小的文档主题生成模型LDA列表;
通过类的结构依赖分析在结构耦合层次上找出与修改的类相关的类列表,构建依赖图;
根据所述类列表对所述LDA列表中的类按照相关程度重新排序;
识别最靠前的交互界面;
根据修改后的用户界面生成更新描述的图形化说明。
2.一种移动应用版本更新的图形化说明生成系统,其特征在于,所述系统包括:
聚类模块,用于对移动应用修改前后版本更新的类进行聚类,获得聚类结果;
修改模块,用于根据所述聚类模块所获得的聚类结果定位修改所述移动应用对应的用户界面,包括:
基本处理单元,用于在所述聚类结果中提取类名,并对修改中的某个类作为输入,通过源代码静态分析方式提取类名,并对所述类名作切分单词处理,将处理后的多个词作为关键字进行LDA查询;
预处理单元,用于以修改类所属的源代码文档作为输入,对源代码进行预处理;
主题模型生成单元,用于对经过预处理的文档集合进行建模,生成主题模型;
查询单元,用于在所述主题模型中匹配查询对应的主题,匹配对应的源代码类,对主题中的类按照相关程度进行排序得到类的概率逐步减小的文档主题生成模型LDA列表;
构建单元,用于通过类的结构依赖分析在结构耦合层次上找出与修改的类相关的类列表,构建依赖图;
排序单元,用于根据所述类列表对所述LDA列表中的类按照相关程度重新排序;
识别单元,用于识别最靠前的交互界面;
生成模块,用于根据修改后的用户界面生成更新描述的图形化说明。
CN201510276003.2A 2015-05-26 2015-05-26 一种移动应用版本更新的图形化说明生成方法及系统 Active CN104850311B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510276003.2A CN104850311B (zh) 2015-05-26 2015-05-26 一种移动应用版本更新的图形化说明生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510276003.2A CN104850311B (zh) 2015-05-26 2015-05-26 一种移动应用版本更新的图形化说明生成方法及系统

Publications (2)

Publication Number Publication Date
CN104850311A CN104850311A (zh) 2015-08-19
CN104850311B true CN104850311B (zh) 2018-05-01

Family

ID=53849991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510276003.2A Active CN104850311B (zh) 2015-05-26 2015-05-26 一种移动应用版本更新的图形化说明生成方法及系统

Country Status (1)

Country Link
CN (1) CN104850311B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547585B (zh) * 2015-09-23 2020-03-06 Tcl集团股份有限公司 一种引导用户升级应用程序的方法和装置
CN110990281B (zh) * 2019-12-04 2023-11-07 中国直升机设计研究所 一种自动化静态分析方法
CN111522615B (zh) * 2020-04-23 2023-08-15 深圳赛安特技术服务有限公司 命令行界面的更新方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729197A (zh) * 2014-01-22 2014-04-16 扬州大学 一种基于lda模型的多粒度层次软件聚类方法
CN104035772A (zh) * 2014-06-09 2014-09-10 中国科学院软件研究所 基于静态分析的源码多版本函数调用关系差异性标识方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546522B2 (en) * 2004-12-20 2009-06-09 Microsoft Corporation Method, system, and computer-readable medium for applying a global formatting scheme to a chart in an electronic document
US8543380B2 (en) * 2007-10-05 2013-09-24 Fujitsu Limited Determining a document specificity
JP2015004996A (ja) * 2012-02-14 2015-01-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 複数の文書をクラスタリングする装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729197A (zh) * 2014-01-22 2014-04-16 扬州大学 一种基于lda模型的多粒度层次软件聚类方法
CN104035772A (zh) * 2014-06-09 2014-09-10 中国科学院软件研究所 基于静态分析的源码多版本函数调用关系差异性标识方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Automated topic naming to support cross-project analysis of software maintenance activities;Abram Hindle等;《Proceedings of the 8th International working Conference on Mining Software Repositories》;20110131;全文 *
基于共享背景主题的Labeled LDA模型;江雨燕等;《电子学报》;20130930;第41卷(第9期);全文 *
基于概率潜在语义分析的软件变更分类研究;鄢萌;《中国优秀硕士学位论文全文数据库信息科技辑》;20140215(第02期);全文 *

Also Published As

Publication number Publication date
CN104850311A (zh) 2015-08-19

Similar Documents

Publication Publication Date Title
US10657161B2 (en) Intelligent navigation of a category system
US20180032606A1 (en) Recommending topic clusters for unstructured text documents
JP5079367B2 (ja) リアルタイムアップデートを行う階層的クラスタリング
CN100489841C (zh) 用于开发自然语言理解应用的方法和集成开发工具
US10460372B1 (en) Method and apparatus of creating electronic forms to include Internet list data
CN105068661A (zh) 基于人工智能的人机交互方法和系统
US20130046771A1 (en) Systems and methods for facilitating the gathering of open source intelligence
EP3161618A1 (en) Code recommendation
US20070027858A1 (en) Method for generating properly formed expressions
CN105138671A (zh) 基于人工智能的人机交互的交互引导方法和装置
JP2016532942A (ja) イベント知識データベースの構築方法および装置
US20150127688A1 (en) Facilitating discovery and re-use of information constructs
WO2020215692A1 (zh) 页面生成方法、装置、终端及存储介质
CN111563385A (zh) 语义处理方法、装置、电子设备和介质
US9063742B1 (en) Version histories for multiple portions of program code
CN104850311B (zh) 一种移动应用版本更新的图形化说明生成方法及系统
CN104850241A (zh) 一种在移动终端中进行文字输入的方法及移动终端
CN107729481A (zh) 一种自定义规则的文本信息抽取结果筛选方法及装置
CN104281648A (zh) 基于维度标签的搜索结果多维度导航方法
US9996535B1 (en) Efficient hierarchical user interface
CN113516491A (zh) 推广信息展示方法、装置、电子设备及存储介质
CN106527912B (zh) 一种基于Voronoi树图的信息检索可视化系统及方法
JP2010146430A (ja) 情報処理装置
Huang et al. Eiffel: Evolutionary flow map for influence graph visualization
CN107368504A (zh) 一种信息处理方法、系统及相关设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20150819

Assignee: HUIZHOU TCL MOBILE COMMUNICATION Co.,Ltd.

Assignor: SUN YAT-SEN University

Contract record no.: X2021440000050

Denomination of invention: A graphical description generation method and system for mobile application version update

Granted publication date: 20180501

License type: Common License

Record date: 20210207

EE01 Entry into force of recordation of patent licensing contract