一种面向移动应用软件的修改影响分析方法_2

文档序号:9564453阅读:来源:国知局
it messages)进行预处 理。首先进行托肯化(tokenization),比如去除标点符号(例如"0","?"),去除数字(例 如"1","23")等。其次去除停用词(stopping),比如介词"for","to";代词"it","he";冠 词" &","811""也6"等。最后词干化(5^111^即),将每个单词转化为它的原型,比如"打扣(1" 为过去时,转化为原型"fix"!"moving"为现在进行时,转化为原型"move"。词干化时选用 的算法为Porter stemming algorithm。三步操作之后,产生去除噪声的预处理后的文档。
[0058] 2)将预处理后的文档使用K-Means算法进行聚类,得到k个修改簇。然后根据 修改请求匹配其修改簇,找到与其相关的修改文档,在文档里找到相关的修改代码。如 图2,对HAD00P软件修改历史库的挖掘,并把修改分成了 " INCOMPATIBLE CHANGES"、 "NEW FEATURES"、"頂PR0VEMENTS"、"BUG FIXES" "OPTIMIZATIONS"。针对修改请求"Race condition in JMX cache update" 可知属于 "BUG FIXES",根据"BUG FIXES" 中修改请求 的预处理以及聚类,可看到与修改请求相关的修改文档以及其修改代码,如图3。
[0059] 3)将修改方法、修改类映射到代码层次,利用调用和继承等依赖关系计算代码层 次的影响集。构建一个包含影响集中所有方法的调用以及所有类的继承关系的传播图, 然后通过推导的数学公式计算传播图中被影响节点的可能性的总和,以量化整体的修改 影响。例如,类继承图,如图4 AirExpressCenters类和GroundShippingCenters类继 承 FullfillmentCenters 类。getEligibleCenters ()在 FullfillmentCenters 中申明, AirExpressCenters 中方法覆盖 FullfillmentCenters 中的方法。FullfillmentCenters 类中方法的改变可能影响GroundShippingCenters类但不会影响AirExpressCenters中的 方法。调用关系图,如图5,2,3调用1,4调用3,当1改变时,3会被直接影响,而4可能会 间接被影响。然后将类继承图和方法调用图结合起来,构造整体的传播图,并用公式计算影 响值,值越小,影响越小,如图6。
[0060] 4)使用APK分析器组件从程序源代码中提取事件列表,使用数据采集器(Data Collctor)从事件日志中提取事件列表,如图7,最终以元组e;=〈Activity,Window, GUI-Component,Action〉的形式表示,一个元组表示一个事件。
[0061] 5)将修改代码在源代码中找到其所在的Activity,与事件序列中的Activity相 匹配,得到修改对应的事件序列,分析其可能影响软件的功能。例如,根据修改代码可知修 改影响Activity为EditTaskActivity,则可找到关于EditTaskActivity对应的事件序列, 如图8,影响了内容,文本的单击事件以及键盘的显示。
[0062] 6)从移动应用市场利用网页爬虫技术收集APP的原数据,提取用户评论,并进行 预处理;如图9,从百度手机助手上提取"拉钩"软件的用户评论,对其进行托肯化,去停用 词,词干化三步操作。
[0063] 7)对用户评论使用K-Means算法进行聚类,得到k个评论簇,然后与软件修改请求 匹配,找到与修改相关的评论。
[0064] 8)将评论按时间间隔T进行划分,T可以为任意的时间间隔。一般将T设置为月 或周。当T为月时,表示按月进行划分;当T为周时,表示按周进行划分。划分的结果将记 录在时间序列文档(SEQ)中。时间序列文档记录一共有多少个时间段以及每个时间段内的 评论数量,其格式为:第一行记录一共有多少个时间段,其数目记为N ;第二行到第N+1行分 别为每个时间段内的提交消息数量。时间序列文档的格式见图10。时间序列文档的示例见 图11,第一行的3代表一共有3个时间段,第二行的100代表第一个时间段内有100篇评 论,第三行的90代表第二个时间段内有90篇评论,第四行的80代表第三个时间段内有80 篇评论。
[0065] 9)绘制直方图,更清晰方便地分析不同时间段受影响的用户群体。例如,如图12 可知,前20天的时候,该修改对用户的影响很大,有将近43个人发现了此类的问题;后来, 该修改对用户的影响很小很小。
【主权项】
1. 一种面向移动应用软件的修改影响分析方法,给定某个移动应用APP和修改请求, 其特征在于如下步骤: 1) 对该移动应用APP的软件历史库中的提交消息进行托肯化,去停用词,词干化Ξ步 操作,生成去除噪声的预处理后的文档; 2) 将预处理后的文档使用K-Means算法聚类,得到k个修改簇,根据修改请求匹配其修 改簇,找到与其相关的修改文档,在文档里找到相关的修改代码; 3) 在修改代码中找到修改方法,修改类,利用调用和继承依赖关系计算代码层次的影 响集;先构建一个包含影响集中所有方法的调用W及所有类的继承关系的传播图,然后通 过数学公式其中,Mj是传播图中的方法,D(Mj)是影响方法到修改方法的最短距离,计算传播图中 被影响节点的可能性的总和,W量化整体的修改影响; 4) 从用户使用软件时生成的事件日志W及软件源代码中提取事件序列,最终W元组 =<Activity,Window,GUI-Component,Action> 的形式表不,一个元组表不一个事件; 5) 将修改代码在源代码中找到其所在的Activity,与事件序列中的Activity相匹配, 得到修改对应的事件序列,分析其可能影响软件的功能; 6) 从移动应用市场利用网页爬虫技术收集APP的原数据,提取用户评论,并进行预处 理; 7) 将用户评论K-Means算法进行聚类,得到k个评论簇,然后与软件修改请求匹配,找 到与修改相关评论; 8) 对修改相关评论按时间间隔T进行划分,T可W为任意的时间间隔,将T设置为月或 周;当T为月时,表示按月进行划分;当T为周时,表示按周进行划分;然后生成时间序列文 档,记录一共有多少个时间段W及每个时间段内的提交消息数量,时间序列文档的格式为: 第一行记录一共有多少个时间段,其数目记为N;第二行到第N+1行分别为每个时间段内 的提交消息数量,根据时间序列表分析不同时间段受影响的用户群; 9) 绘制直方图,更清晰方便地分析不同时间段受影响的用户群体。2. 根据权利要求1所述的一种面向移动应用软件的修改影响分析方法,其特征在于: 步骤1)中对修改特征信息的预处理及步骤6)中对评论的预处理的具体步骤如下: a) 托肯化:去除标点符号、去除数字; b) 去除停用词、去除英文停用词、去除代词、去除冠词; C)词干化:将每个单词转化为它的原型。3. 根据权利要求1所述的一种面向移动应用软件的修改影响分析方法,其特征在于: 步骤2)中对预处理文档的聚类K-Means算法具体步骤如下: a) 从η个文档任意选择k个对象作为初始聚类中屯、; b) 根据每个聚类对象的均值,计算每个对象与运些中屯、对象的距离,并根据最小距离 重新对相应对象进行划分; C)重新计算每个聚类的均值; d)计算标准测度函数,当满足一定条件,如函数收敛时,则算法终止;如果条件不满足 则回到步骤b)。4.根据权利要求1所述的一种面向移动应用软件的修改影响分析方法,其特征在于: 步骤4)中从事件日志W及软件源代码中提取事件序列的具体步骤如下: A. 使用APK分析仪从程序源代码中静态挖掘事件序列: a)APK-AnaIyze;r先使用dexSjar和Procyon工具反编译,然后通过srcML将源文件转 换为基于XML的表现形式,再依赖apktool,从XML文件中提取ID、类型和GUI组件的层次 结构; b) 将每个GUI组件链接到其各自的行为/手势:APK-Analyzer将固定手势分配给 GUI组件的类型;对于标准的Amlroid组件类型,与预期的手势做链接;对于自定义组件, APK-Analyzer解析源代码W确定手势处理器和事件侦听器; c)APK-AnaIyze;r将组件链接到它们出现的活动; B. 使用数据采集器从事件日志中挖掘事件序列: a)收集low-I巧el事件日志,在APP正常使用过程中,通过getevent命令产生单击,长 按,滑动W及一些复杂手势的事件日志,并保存在日志存储库中; b) 使用化tacollector将事件日志转换成标志序列。
【专利摘要】本发明提出了一种面向移动应用软件的修改影响分析方法。本发明将软件修改历史库中的提交信息进行聚类,找到与修改请求相关的修改代码,利用调用继承等依赖关系计算代码层次上的影响集,并根据修改影响的Activity找到对应的事件序列,预估对软件功能的影响,还挖掘与某次修改请求的相关评论,得到评论的时间序列表,来分析不同时间段受影响的用户群。本发明克服了软件修改影响分析技术对移动应用软件没有针对性,不能满足移动应用软件快速响应,快速发布,快速反馈,快速维护等缺陷。本发明从用户群体分析,可以挖掘与某次修改请求的相关评论,得到评论的时间序列表,来分析不同时间段受影响的用户群。
【IPC分类】G06F9/44
【公开号】CN105320525
【申请号】CN201510916069
【发明人】孙小兵, 唐莉, 李斌, 李云
【申请人】扬州大学
【公开日】2016年2月10日
【申请日】2015年12月9日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1