ArCode: Facilitating the Use of Application Frameworks to Implement Tactics and Patterns

A. Shokri, Joanna C. S. Santos, Mehdi Mirakhorli
{"title":"ArCode: Facilitating the Use of Application Frameworks to Implement Tactics and Patterns","authors":"A. Shokri, Joanna C. S. Santos, Mehdi Mirakhorli","doi":"10.1109/ICSA51549.2021.00021","DOIUrl":null,"url":null,"abstract":"Software designers and developers are increasingly relying on application frameworks as first-class design concepts. They instantiate the services that frameworks provide to implement various architectural tactics and patterns. One of the challenges in employing frameworks for such tasks is the difficulty of learning and correctly using the APIs of the frameworks. This paper introduces a learning-based approach called ARCODE to help novice programmers correctly use frameworks’ APIs to implement architectural tactics and patterns. ARCODE has several novel components: a graph-based approach for learning specification of a framework from a limited number of training software, a program analysis algorithm to eliminate erroneous training data, and a recommender module to help programmers use APIs correctly and identify API misuses in their program. We evaluated our technique across two popular frameworks: JAAS security framework used for authentication and authorization tactic and Java RMI framework used to enable remote method invocation between client and server and other object oriented patterns. Our results demonstrate (i) the feasibility of using ARCODE to learn the specification of a framework; (ii) ARCODE generates accurate recommendations for finding the next API call to implement an architectural tactic/pattern based on the context of the programmer’s code; (iii) it accurately detects API misuses in the code that implements a tactic/pattern and provides fix recommendations. We also demonstrate that ArCode outperforms two famous techniques, MAPO and GrouMiner, on API recommendation and misuse detection tasks.","PeriodicalId":284628,"journal":{"name":"2021 IEEE 18th International Conference on Software Architecture (ICSA)","volume":"6 6","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-02-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2021 IEEE 18th International Conference on Software Architecture (ICSA)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSA51549.2021.00021","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5

Abstract

Software designers and developers are increasingly relying on application frameworks as first-class design concepts. They instantiate the services that frameworks provide to implement various architectural tactics and patterns. One of the challenges in employing frameworks for such tasks is the difficulty of learning and correctly using the APIs of the frameworks. This paper introduces a learning-based approach called ARCODE to help novice programmers correctly use frameworks’ APIs to implement architectural tactics and patterns. ARCODE has several novel components: a graph-based approach for learning specification of a framework from a limited number of training software, a program analysis algorithm to eliminate erroneous training data, and a recommender module to help programmers use APIs correctly and identify API misuses in their program. We evaluated our technique across two popular frameworks: JAAS security framework used for authentication and authorization tactic and Java RMI framework used to enable remote method invocation between client and server and other object oriented patterns. Our results demonstrate (i) the feasibility of using ARCODE to learn the specification of a framework; (ii) ARCODE generates accurate recommendations for finding the next API call to implement an architectural tactic/pattern based on the context of the programmer’s code; (iii) it accurately detects API misuses in the code that implements a tactic/pattern and provides fix recommendations. We also demonstrate that ArCode outperforms two famous techniques, MAPO and GrouMiner, on API recommendation and misuse detection tasks.
ArCode:促进应用程序框架实现策略和模式的使用
软件设计人员和开发人员越来越依赖应用程序框架作为一流的设计概念。它们实例化框架为实现各种体系结构策略和模式而提供的服务。在这些任务中使用框架的挑战之一是很难学习和正确使用框架的api。本文介绍了一种名为ARCODE的基于学习的方法,以帮助新手程序员正确使用框架的api来实现架构策略和模式。ARCODE有几个新颖的组件:一个基于图形的方法,用于从有限数量的训练软件中学习框架规范,一个程序分析算法,用于消除错误的训练数据,以及一个推荐模块,用于帮助程序员正确使用API并识别程序中API的误用。我们在两个流行的框架上评估了我们的技术:用于身份验证和授权策略的JAAS安全框架和用于支持客户机和服务器之间的远程方法调用的Java RMI框架以及其他面向对象的模式。我们的结果证明(i)使用ARCODE学习框架规范的可行性;(ii) ARCODE生成准确的建议,查找下一个API调用,以实现基于程序员代码上下文的架构策略/模式;(iii)它准确地检测到在实现策略/模式的代码中API的滥用,并提供修复建议。我们还证明,在API推荐和误用检测任务上,ArCode优于MAPO和GrouMiner这两种著名的技术。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信