软件开发者在开发过程遇到应用程序编程接口(application programming interface,API)使用问题时,通常希望能够得到有效的API使用模式建议,从而帮助其学习和使用.传统的API推荐方法会挖掘和学习代码库中API的使用知识,然后给开发者推荐...软件开发者在开发过程遇到应用程序编程接口(application programming interface,API)使用问题时,通常希望能够得到有效的API使用模式建议,从而帮助其学习和使用.传统的API推荐方法会挖掘和学习代码库中API的使用知识,然后给开发者推荐与上下文相关的API.然而由于上下文信息表征不够充分,以及推荐列表中冗余项和同质化内容的出现影响了推荐性能.针对这一问题,构建项目和方法与API的API层次调用图(API hierarchy call graph,AHCG)模型以更好地表达API上下文关系,充分利用API结构信息和语义信息来减少冗余项和降低同质化内容被推荐的可能性,进而提出基于上下文感知并面向多样性的API推荐(context-aware based API recommendation with diversity,CAPIRD)方法.该方法中引入相关性度量和关联性度量,最大限度地保留相关结果,同时平衡已选API与候选API的关联性,以尽可能挖掘到合理的初选API列表.最后结合最大边缘相关算法,在标准模式数据集上学习相关性和关联性的最佳权重组合,并进行多样性重排推荐.在2210个项目构成的3类数据集上进行实验并验证推荐性能,实验结果表明,CAPIRD在基于上下文的API推荐场景下能够有效提高推荐性能.在所有数据集的API推荐中,平均精度(mean average precision,MAP)指标平均提升值约9%,在Top-1的推荐中,成功率(success rate)指标平均提升约13%.展开更多
在Web应用软件模型表示研究领域中,研究对象主要为不含Ajax技术的应用程序。少数针对Ajax(Asynchronous JavaScript and XML)的模型构建采用传统的FSM模型表示方法,并不能描述客户端消息触发后的参数传递问题;在FSM模型的基础上引入UML...在Web应用软件模型表示研究领域中,研究对象主要为不含Ajax技术的应用程序。少数针对Ajax(Asynchronous JavaScript and XML)的模型构建采用传统的FSM模型表示方法,并不能描述客户端消息触发后的参数传递问题;在FSM模型的基础上引入UML分层模型的表示方法因需要人工干预,不利于测试用例的自动生成。针对上述问题,借鉴EFSM模型这一重要的软件描述模型,从用户的Session数据出发,通过日志数据分析用户的行为,并记录客户端的操作事件。通过对用户行为和客户端操作事件进行匹配,生成完整的用户会话,从而建立EFSM模型。实验结果表明,该EFSM模型能够有效地表示Web应用程序的状态以及状态的变化情况,并可以有效地为测试用例自动生成服务。展开更多
文摘软件开发者在开发过程遇到应用程序编程接口(application programming interface,API)使用问题时,通常希望能够得到有效的API使用模式建议,从而帮助其学习和使用.传统的API推荐方法会挖掘和学习代码库中API的使用知识,然后给开发者推荐与上下文相关的API.然而由于上下文信息表征不够充分,以及推荐列表中冗余项和同质化内容的出现影响了推荐性能.针对这一问题,构建项目和方法与API的API层次调用图(API hierarchy call graph,AHCG)模型以更好地表达API上下文关系,充分利用API结构信息和语义信息来减少冗余项和降低同质化内容被推荐的可能性,进而提出基于上下文感知并面向多样性的API推荐(context-aware based API recommendation with diversity,CAPIRD)方法.该方法中引入相关性度量和关联性度量,最大限度地保留相关结果,同时平衡已选API与候选API的关联性,以尽可能挖掘到合理的初选API列表.最后结合最大边缘相关算法,在标准模式数据集上学习相关性和关联性的最佳权重组合,并进行多样性重排推荐.在2210个项目构成的3类数据集上进行实验并验证推荐性能,实验结果表明,CAPIRD在基于上下文的API推荐场景下能够有效提高推荐性能.在所有数据集的API推荐中,平均精度(mean average precision,MAP)指标平均提升值约9%,在Top-1的推荐中,成功率(success rate)指标平均提升约13%.
文摘在Web应用软件模型表示研究领域中,研究对象主要为不含Ajax技术的应用程序。少数针对Ajax(Asynchronous JavaScript and XML)的模型构建采用传统的FSM模型表示方法,并不能描述客户端消息触发后的参数传递问题;在FSM模型的基础上引入UML分层模型的表示方法因需要人工干预,不利于测试用例的自动生成。针对上述问题,借鉴EFSM模型这一重要的软件描述模型,从用户的Session数据出发,通过日志数据分析用户的行为,并记录客户端的操作事件。通过对用户行为和客户端操作事件进行匹配,生成完整的用户会话,从而建立EFSM模型。实验结果表明,该EFSM模型能够有效地表示Web应用程序的状态以及状态的变化情况,并可以有效地为测试用例自动生成服务。