DOI QR코드

DOI QR Code

JarBot: Automated Java Libraries Suggestion in JAR Archives Format for a given Software Architecture

  • P. Pirapuraj (Department of Information & Communication technology, Faculty of Technology, South Eastern University of Sri Lanka) ;
  • Indika Perera (Department of Computer Science and Engineering, Faculty of Engineering University of Moratuwa)
  • 투고 : 2024.05.05
  • 발행 : 2024.05.30

초록

Software reuse gives the meaning for rapid software development and the quality of the software. Most of the Java components/libraries open-source are available only in Java Archive (JAR) file format. When a software design enters into the development process, the developer needs to select necessary JAR files manually via analyzing the given software architecture and related JAR files. This paper proposes an automated approach, JarBot, to suggest all the necessary JAR files for given software architecture in the development process. All related JAR files will be downloaded from the internet based on the extracted information from the given software architecture (class diagram). Class names, method names, and attribute names will be extracted from the downloaded JAR files and matched with the information extracted from the given software architecture to identify the most relevant JAR files. For the result and evaluation of the proposed system, 05 software design was developed for 05 well-completed software project from GitHub. The proposed system suggested more than 95% of the JAR files among expected JAR files for the given 05 software design. The result indicated that the proposed system is suggesting almost all the necessary JAR files.

키워드

참고문헌

  1. M. Kechagia, X. Devroey, A. Panichella, G. Gousios, and A. Van Deursen, "Effective and efficient API misuse detection via exception propagation and search-based testing," ISSTA 2019 - Proc. 28th ACM SIGSOFT Int. Symp. Softw. Test. Anal., pp. 192-203, 2019, doi: 10.1145/3293882.3330552.
  2. M. Lamothe and W. Shang, "Exploring the use of automated API migrating techniques in practice," Proc. 15th Int. Conf. Min. Softw. Repos. - MSR '18, pp. 503-514, 2018.
  3. N. Murakami and H. Masuhara, "Optimizing a search-based code recommendation system," 2012 3rd Int. Work. Recomm. Syst. Softw. Eng. RSSE 2012 - Proc., pp. 68-72, 2012, doi: 10.1109/RSSE.2012.6233414.
  4. M. Di Penta, D. M. German, and G. Antoniol, "Identifying licensing of jar archives using a code-search approach," Proc. - Int. Conf. Softw. Eng., pp. 151-160, 2010, doi: 10.1109/MSR.2010.5463282.
  5. P. Pirapuraj and I. Perera, "Analyzing source code identifiers for code reuse using NLP techniques and WordNet," 3rd Int. Moratuwa Eng. Res. Conf. MERCon 2017, no. May, pp. 105-110, 2017, doi: 10.1109/MERCon.2017.7980465.
  6. E. Linstead, P. Rigor, S. Bajracharya, C. Lopes, and P. Baldi, "Mining concepts from code with probabilistic topic models," ASE'07 - 2007 ACM/IEEE Int. Conf. Autom. Softw. Eng., no. January, pp. 461-464, 2007, doi: 10.1145/1321631.1321709.
  7. A. T. Nguyen et al., "API code recommendation using statistical learning from fine-grained changes," Proc. ACM SIGSOFT Symp. Found. Softw. Eng., vol. 13-18-Nove, pp. 511-522, 2016, doi: 10.1145/2950290.2950333.
  8. S. Vargas-Baldrich, M. Linares-Vasquez, and D. Poshyvanyk, "Automated tagging of software projects using bytecode and dependencies," Proc. - 2015 30th IEEE/ACM Int. Conf. Autom. Softw. Eng. ASE 2015, pp. 289-294, 2016, doi: 10.1109/ASE.2015.38.
  9. A. T. Nguyen and T. N. Nguyen, "Graph-based statistical language model for code," Proc. - Int. Conf. Softw. Eng., vol. 1, pp. 858-868, 2015, doi: 10.1109/ICSE.2015.336.
  10. X. Liu, L. G. Huang, and V. Ng, "Effective API recommendation without historical software repositories," ASE 2018 - Proc. 33rd ACM/IEEE Int. Conf. Autom. Softw. Eng., pp. 282-292, 2018, doi: 10.1145/3238147.3238216.
  11. H. Alrubaye, M. W. Mkaouer, and A. Ouni, "MigrationMiner: An Automated Detection Tool of Third-Party Java Library Migration at the Method Level," Proc. - 2019 IEEE Int. Conf. Softw. Maint. Evol. ICSME 2019, pp. 414-417, 2019, doi: 10.1109/ICSME.2019.00072.
  12. A. Gyori, B. Lambeth, A. Shi, O. Legunsen, and D. Marinov, "NonDex: A tool for detecting and debugging wrong assumptions on Java api specifications," Proc. ACM SIGSOFT Symp. Found. Softw. Eng., vol. 13-18-Nove, pp. 993-997, 2016, doi: 10.1145/2950290.2983932.
  13. "ASM." [Online]. Available: https://asm.ow2.io/. [Accessed: 10-Feb-2021].
  14. "Apache Lucene - Welcome to Apache Lucene." [Online]. Available: https://lucene.apache.org/. [Accessed: 10-Feb-2021].