مجله علمی  رایانش نرم و فناوری اطلاعات

مجله علمی رایانش نرم و فناوری اطلاعات

چالش‌های توسعه برنامه‌های کاربردی وب پیشرو: یک مطالعه تجربی با استفاده از استک اورفلو

نوع مقاله : مقاله پژوهشی انگلیسی

نویسندگان
1 دانشکده مهندسی کامپیوتر، دانشگاه یزد، یزد، ایران.
2 انستیتوی فناوری نیویورک پردیس ونکوور، ونکوور، کانادا.
چکیده
برنامه‌های کاربردی وب پیشرو یک نگرش جدید در توسعه وب هستند که در انواع برنامه‌های کاربردی وب مورد استفاده قرار می گیرند. این نگرش جدید باعث می‌شود که برنامه‌های کاربردی وب، ویژگی‌هایی مشابه با برنامه‌های کاربردی بومی ارائه دهند و مرز بین وب‌سایت‌ها و برنامه‌های کاربردی بومی از بین برود. با این حال، چالش‌های جدیدی ممکن است در توسعه برنامه‌های کاربردی وب پیشرو به وجود آید. به دلیل علاقه روزافزون به برنامه‌های کاربردی وب پیشرو، درک چالش‌هایی که توسعه‌دهندگان ممکن است در هنگام توسعه این برنامه‌های کاربردی با آنها مواجه شوند، ضروری است. این چالش‌ها هنوز در تحقیقات موجود مورد شناسایی و تحلیل قرار نگرفته‌اند. بنابراین، هدف این پژوهش از میان بردن این کاستی در دانش موجود با انجام یک مطالعه تجربی بر روی سوالات مربوط به برنامه‌های کاربردی وب پیشرو در استک اورفلو، یک وب‌سایت مشهور برای توسعه‌دهندگان، است. فرآیند ما شامل به دست آوردن لیستی از برچسب‌های مربوط به برنامه‌های کاربردی وب پیشرو و استخراج 8654 سوال مربوط به آنها از استک اورفلو است. برای درک چالش‌هایی که توسط توسعه‌دهندگان برنامه‌های کاربردی وب پیشرو در استک اورفلو بحث می‌شود، از مدلسازی موضوعات استفاده می‌کنیم. پس از آن، ویژگی های آنها (مانند محبوبیت و دشواری چالش ها) را تجزیه و تحلیل می‌کنیم. بررسی ما نشان می‌دهد که توسعه‌دهندگان با یازده چالش از جمله «چرخه عمر Service Worker» مواجه هستند. این پژوهش درک ما را از چالش‌های توسعه برنامه‌های کاربردی وب پیشرو عمیق‌تر می‌کند و توصیه‌هایی را برای محققان، آموزش‌دهندگان و توسعه‌دهندگان به منظور گسترش استفاده از فناوری برنامه‌های کاربردی وب پیشرو ارائه می‌دهد.
کلیدواژه‌ها

[1] “Push API.” https://w3c.github.io/push-api/ (accessed Mar. 02, 2023).
[2] S. Huber, L. Demetz, and M. Felderer, “PWA vs the Others: A Comparative Study on the UI Energy-Efficiency of Progressive Web Apps,” in Web Engineering, M. Brambilla, R. Chbeir, F. Frasincar, and I. Manolescu, Eds., Cham: Springer International Publishing, 2021, pp. 464–479.
[3] S. Huber, L. Demetz, and M. Felderer, “A comparative study on the energy consumption of Progressive Web Apps,” Inf. Syst., p. 102017, 2022, doi: https://doi.org/10.1016/j.is.2022.102017.
[4] “PWA Stats.” https://www.pwastats.com/ (accessed May 05, 2022).
[5] “Service Workers Nightly.” https://w3c.github.io/ServiceWorker/ (accessed May 05, 2023).
[6] R. Fauzan, I. Krisnahati, B. D. Nurwibowo, and D. A. Wibowo, “A systematic literature review on progressive web application practice and challenges,” IPTEK J. Technol. Sci., vol. 33, no. 1, pp. 43–58, 2022.
[7] J. Lee, H. Kim, J. Park, I. Shin, and S. Son, “Pride and Prejudice in Progressive Web Apps: Abusing Native App-like Features in Web Applications,” in Proceedings of the ACM SIGSAC Conference on Computer and Communications Security, in CCS ’18. New York, NY, USA: Association for Computing Machinery, 2018, pp. 1731–1746. doi: 10.1145/3243734.3243867.
[8] P. Chinprutthiwong, R. Vardhan, G. Yang, and G. Gu, “Security Study of Service Worker Cross-Site Scripting.,” in Annual Computer Security Applications Conference, in ACSAC ’20. New York, NY, USA: Association for Computing Machinery, 2020, pp. 643–654. doi: 10.1145/3427228.3427290.
[9] P. Chinprutthiwong, R. Vardhan, G. Yang, Y. Zhang, and G. Gu, “The Service Worker Hiding in Your Browser: The Next Web Attack Target?,” in 24th International Symposium on Research in Attacks, Intrusions and Defenses, in RAID ’21. New York, NY, USA: Association for Computing Machinery, 2021, pp. 312–323. doi: 10.1145/3471621.3471845.
[10] I. Malavolta, G. Procaccianti, P. Noorland, and P. Vukmirovic, “Assessing the Impact of Service Workers on the Energy Efficiency of Progressive Web Apps,” in IEEE/ACM 4th International Conference on Mobile Software Engineering and Systems, 2017, pp. 35–45. doi: 10.1109/MOBILESoft.2017.7.
[11] I. Malavolta, K. Chinnappan, L. Jasmontas, S. Gupta, and K. A. K. Soltany, “Evaluating the impact of caching on the energy consumption and performance of progressive web apps,” in IEEE/ACM 7th International Conference on Mobile Software Engineering and Systems, in MOBILESoft ’20. New York, NY, USA: Association for Computing Machinery, 2020, pp. 109–119. doi: 10.1145/3387905.3388593.
[12] “All Sites - Stack Exchange.” https://stackexchange.com/sites (accessed Aug. 26, 2022).
[13] C. Rosen and E. Shihab, “What are mobile developers asking about? A large scale study using stack overflow,” Empir. Softw. Eng., vol. 21, no. 3, pp. 1192–1223, 2016, doi: 10.1007/s10664-015-9379-3.
[14] M. Bagherzadeh and R. Khatchadourian, “Going Big: A Large-Scale Study on What Big Data Developers Ask,” in Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, in ESEC/FSE 2019. New York, NY, USA: Association for Computing Machinery, 2019, pp. 432–442. doi: 10.1145/3338906.3338939.
[15] G. L. Scoccia, P. Migliarini, and M. Autili, “Challenges in Developing Desktop Web Apps: a Study of Stack Overflow and GitHub,” in 2021 IEEE/ACM 18th International Conference on Mining Software Repositories (MSR), May 2021, pp. 271–282. doi: 10.1109/MSR52588.2021.00039.
[16] P. Chakraborty, R. Shahriyar, A. Iqbal, and G. Uddin, “How do developers discuss and support new programming languages in technical Q&A site? An empirical study of Go, Swift, and Rust in Stack Overflow,” Inf. Softw. Technol., vol. 137, 2021, doi: 10.1016/j.infsof.2021.106603.
[17] S. Ahmed and M. Bagherzadeh, “What Do Concurrency Developers Ask about? A Large-Scale Study Using Stack Overflow,” in Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, in ESEM ’18. New York, NY, USA: Association for Computing Machinery, 2018, pp. 1–10. doi: 10.1145/3239235.3239524.
[18] D. M. Blei, A. Y. Ng, and M. I. Jordan, “Latent Dirichlet Allocation,” J. Mach. Learn. Res., vol. 3, pp. 993–1022, 2003.
[19] G. Uddin, F. Sabir, Y.-G. Guéhéneuc, O. Alam, and F. Khomh, “An empirical study of IoT topics in IoT developer discussions on Stack Overflow,” Empir. Softw. Eng., vol. 26, no. 6, p. 121, 2021, doi: 10.1007/s10664-021-10021-5.
[20] “Progressive Web Apps (Chrome Dev Summit 2015).” https://developers.google.com/web/shows/cds/2015/progressive-web-apps-chrome-dev-summit-2015 (accessed May 27, 2023).
[21] “Background Synchronization API - Web APIs | MDN.” https://developer.mozilla.org/en-US/docs/Web/API/Background_Synchronization_API (accessed Jun. 26, 2023).
[22] “Web Application Manifest.” https://w3c.github.io/manifest/ (accessed Sep. 05, 2023).
[23] “Cache - Web APIs | MDN.” https://developer.mozilla.org/en-US/docs/Web/API/Cache (accessed May 27, 2023).
[24] “A Tinder Progressive Web App Performance Case Study | by Addy Osmani | Medium.” https://medium.com/@addyosmani/a-tinder-progressive-web-app-performance-case-study-78919d98ece0 (accessed May 21, 2022).
[25] “A Pinterest Progressive Web App Performance Case Study | by Addy Osmani | Dev Channel | Medium.” https://medium.com/dev-channel/a-pinterest-progressive-web-app-performance-case-study-3bd6ed2e6154 (accessed May 21, 2022).
[26] “Twitter Lite PWA Significantly Increases Engagement and Reduces Data Usage.” https://developers.google.com/web/showcase/2017/twitter (accessed May 21, 2022).
[27] A. Biørn-Hansen, T. A. Majchrzak, and T.-M. Grønli, “Progressive Web Apps: The Possible Web-native Unifier for Mobile Development,” in Web Information Systems and Technologies, T. A. Majchrzak, P. and Traverso, K.-H. and Krempels, and V. and Monfort, Eds., Springer International Publishing, 2018, pp. 64–86. doi: 10.1007/978-3-319-93527-0_4.
[28] T. A. Majchrzak, A. Biørn-Hansen, and T.-M. Grønli, “Progressive Web Apps: the Definite Approach to Cross-Platform Development?,” in 51st Hawaii International Conference on System Sciences, T. Bui, Ed., Hilton Waikoloa Village, Hawaii, USA: ScholarSpace / {AIS} Electronic Library (AISeL), 2018, pp. 1–10. doi: 10.24251/HICSS.2018.718.
[29] “IndexedDB API - Web APIs | MDN.” https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API (accessed May 27, 2022).
[30] W. Yang, C. Zhang, M. Pan, C. Xu, Y. Zhou, and Z. Huang, “Do Developers Really Know How to Use Git Commands? A Large-Scale Study Using Stack Overflow,” ACM Trans. Softw. Eng. Methodol., vol. 31, no. 3, Apr. 2022, doi: 10.1145/3494518.
[31] A. Abdellatif, D. Costa, K. Badran, R. Abdalkareem, and E. Shihab, “Challenges in Chatbot Development: A Study of Stack Overflow Posts,” in Proceedings of the 17th International Conference on Mining Software Repositories, in MSR ’20. New York, NY, USA: Association for Computing Machinery, 2020, pp. 174–185. doi: 10.1145/3379597.3387472.
[32] J. Han, E. Shihab, Z. Wan, S. Deng, and X. Xia, “What do Programmers Discuss about Deep Learning Frameworks,” Empir. Softw. Eng., vol. 25, no. 4, pp. 2694–2747, 2020, doi: 10.1007/s10664-020-09819-6.
[33] A. Kamienski and C.-P. Bezemer, “An empirical study of Q&A websites for game developers,” Empir. Softw. Eng., vol. 26, no. 6, p. 115, 2021, doi: 10.1007/s10664-021-10014-4.
[34] X.-L. Yang, D. Lo, X. Xia, Z.-Y. Wan, and J.-L. Sun, “What Security Questions Do Developers Ask? A Large-Scale Study of Stack Overflow Posts,” J. Comput. Sci. Technol., vol. 31, no. 5, pp. 910–924, 2016, doi: 10.1007/s11390-016-1672-0.
[35] K. Bajaj, K. Pattabiraman, and A. Mesbah, “Mining Questions Asked by Web Developers,” in Proceedings of the 11th Working Conference on Mining Software Repositories, in MSR 2014. New York, NY, USA: Association for Computing Machinery, 2014, pp. 112–121. doi: 10.1145/2597073.2597083.
[36] “NLTK’s list of english stopwords · GitHub.” https://gist.github.com/sebleier/554280?permalink_comment_id=2838837#gistcomment-2838837 (accessed Aug. 26, 2022).
[37] C. C. Silva, M. Galster, and F. Gilson, “Topic modeling in software engineering research,” Empir. Softw. Eng., vol. 26, no. 6, p. 120, 2021, doi: 10.1007/s10664-021-10026-0.
[38] “MALLET homepage.” http://mallet.cs.umass.edu/ (accessed Jan. 14, 2023).
[39] S. Syed and M. Spruit, “Full-Text or Abstract? Examining Topic Coherence Scores Using Latent Dirichlet Allocation,” in 2017 IEEE International Conference on Data Science and Advanced Analytics (DSAA), 2017, pp. 165–174. doi: 10.1109/DSAA.2017.61.
[40] M. Röder, A. Both, and A. Hinneburg, “Exploring the Space of Topic Coherence Measures,” in Proceedings of the Eighth ACM International Conference on Web Search and Data Mining, in WSDM ’15. New York, NY, USA: Association for Computing Machinery, 2015, pp. 399–408. doi: 10.1145/2684822.2685324.
[41] “Spearman Rank Correlation Coefficient,” in The Concise Encyclopedia of Statistics, New York, NY: Springer New York, 2008, pp. 502–505. doi: 10.1007/978-0-387-32833-1_379.
[42] B. Dagenais, H. Ossher, R. K. E. Bellamy, M. P. Robillard, and J. P. de Vries, “Moving into a New Software Project Landscape,” in Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, in ICSE ’10. New York, NY, USA: Association for Computing Machinery, 2010, pp. 275–284. doi: 10.1145/1806799.1806842.
[43] I. Srba and M. Bielikova, “Why is Stack Overflow Failing? Preserving Sustainability in Community Question Answering,” IEEE Softw., vol. 33, no. 4, pp. 80–89, Jul. 2016, doi: 10.1109/MS.2016.34.
[44] A. Mazuera-Rozo et al., “Taxonomy of security weaknesses in Java and Kotlin Android apps,” J. Syst. Softw., vol. 187, p. 111233, 2022, doi: https://doi.org/10.1016/j.jss.2022.111233.
[45] D. Movshovitz-Attias, Y. Movshovitz-Attias, P. Steenkiste, and C. Faloutsos, “Analysis of the reputation system and user contributions on a question answering website: StackOverflow,” in 2013 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining (ASONAM 2013), Aug. 2013, pp. 886–893. doi: 10.1145/2492517.2500242.