Anastasia Terzi, Orfeas Christou, S. Bibi, P. Angelidis
{"title":"JavaScript应用程序中的软件重用和演化","authors":"Anastasia Terzi, Orfeas Christou, S. Bibi, P. Angelidis","doi":"10.1109/SEAA56994.2022.00048","DOIUrl":null,"url":null,"abstract":"JavaScript (JS) is one of the most popular programming languages on GitHub. Most JavaScript applications are reusing third-party components to acquire various functionalities. Despite the benefits offered by software reuse there are still challenges, during the evolution of JavaScript applications, related to the management and maintenance of the third-party dependencies. Our key objective is to explore the evolution of library dependencies constraints in the context of JavaScript applications in terms of (a) the changeability (i.e., number of removed, added, or maintained libraries) (b) the update frequency of the library dependencies. For this purpose, we conducted a case study on the 86 most forked JavaScript applications hosted on GitHub and analyzed reuse data from a total of 2.363 successive releases. In general, 39% of the packages introduced in the first version of the project are being reused in the entire project’s lifetime. The number of package dependencies slightly grows over time, while several other are being permanently removed. Regarding the evolution of third-party applications, it is observed that developers do not update the dependencies constraints to a most recent version, waiting to reach probably “breaking points” when the updates will be inevitable.","PeriodicalId":269970,"journal":{"name":"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Software Reuse and Evolution in JavaScript Applications\",\"authors\":\"Anastasia Terzi, Orfeas Christou, S. Bibi, P. Angelidis\",\"doi\":\"10.1109/SEAA56994.2022.00048\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"JavaScript (JS) is one of the most popular programming languages on GitHub. Most JavaScript applications are reusing third-party components to acquire various functionalities. Despite the benefits offered by software reuse there are still challenges, during the evolution of JavaScript applications, related to the management and maintenance of the third-party dependencies. Our key objective is to explore the evolution of library dependencies constraints in the context of JavaScript applications in terms of (a) the changeability (i.e., number of removed, added, or maintained libraries) (b) the update frequency of the library dependencies. For this purpose, we conducted a case study on the 86 most forked JavaScript applications hosted on GitHub and analyzed reuse data from a total of 2.363 successive releases. In general, 39% of the packages introduced in the first version of the project are being reused in the entire project’s lifetime. The number of package dependencies slightly grows over time, while several other are being permanently removed. Regarding the evolution of third-party applications, it is observed that developers do not update the dependencies constraints to a most recent version, waiting to reach probably “breaking points” when the updates will be inevitable.\",\"PeriodicalId\":269970,\"journal\":{\"name\":\"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)\",\"volume\":null,\"pages\":null},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-08-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/SEAA56994.2022.00048\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SEAA56994.2022.00048","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Software Reuse and Evolution in JavaScript Applications
JavaScript (JS) is one of the most popular programming languages on GitHub. Most JavaScript applications are reusing third-party components to acquire various functionalities. Despite the benefits offered by software reuse there are still challenges, during the evolution of JavaScript applications, related to the management and maintenance of the third-party dependencies. Our key objective is to explore the evolution of library dependencies constraints in the context of JavaScript applications in terms of (a) the changeability (i.e., number of removed, added, or maintained libraries) (b) the update frequency of the library dependencies. For this purpose, we conducted a case study on the 86 most forked JavaScript applications hosted on GitHub and analyzed reuse data from a total of 2.363 successive releases. In general, 39% of the packages introduced in the first version of the project are being reused in the entire project’s lifetime. The number of package dependencies slightly grows over time, while several other are being permanently removed. Regarding the evolution of third-party applications, it is observed that developers do not update the dependencies constraints to a most recent version, waiting to reach probably “breaking points” when the updates will be inevitable.