Challenges and Solutions of Free and Open Source Software Documentation: A Systematic Mapping Study

  • Giniele Pinho UFC
  • Aguiar Jeová Caçula UFC
  • Lucas Costa UFCA
  • Igor Wiese UTFPR
  • Allysson Allex Araújo UFCA

Resumo


Software documentation is a relevant process for delivering quality software, as it assists stakeholders in using, understanding, maintaining, and implementing software productively. However, notable particularities emerge when investigating the context of Free and Open Source Software (FOSS) projects, which require special attention. Therefore, through a Systematic Mapping Study (SMS), this work aims to map the challenges and solutions regarding software documentation in FOSS based on the last ten years of scientific research (published between 2013 and 2023). From an initial set of 1271 papers, 12 primary studies were identified from which it was possible to categorize five challenges (Collaboration, Quality, Incompleteness, Maintainability, and Categorization) and three general perspectives of solutions (Strategic Use of README, Adoption of Artificial Intelligence, and Support Tools & Approaches). As an academic contribution, we provide an SMS revealing a set of challenges and solutions related to software documentation, a topic still underexplored in the FOSS research context. From a practical and industrial standpoint, this paper promotes a reflection on the use of documentation in FOSS projects, echoing challenges and solutions that can contribute to improving the quality of documentation.
Palavras-chave: Software Documentation, Free Software, Open Source, Systematic Mapping Study

Referências

Mark Aberdour. 2007. Achieving quality in open-source software. IEEE software 24, 1 (2007), 58–64.

Emad Aghajani, Csaba Nagy, Mario Linares-Vásquez, Laura Moreno, Gabriele Bavota, Michele Lanza, and David C Shepherd. 2020. Software documentation: the practitioners’ perspective. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering. 590–601.

Emad Aghajani, Csaba Nagy, Olga Lucero Vega-Márquez, Mario Linares-Vásquez, Laura Moreno, Gabriele Bavota, and Michele Lanza. 2019. Software documentation issues unveiled. In 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE). IEEE, 1199–1210.

Eman Abdullah AlOmar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian D Newman, and Ali Ouni. 2021. Behind the Scenes: On the Relationship Between Developer Experience and Refactoring. arXiv e-prints (2021), arXiv–2109.

Scott W Ambler. 2001. Agile Documentation. 2001-2004. The Official Agile Modeling (AM) Site (2001).

Apostolos Ampatzoglou, Stamatia Bibi, Paris Avgeriou, Marijn Verbeek, and Alexander Chatzigeorgiou. 2019. Identifying, categorizing and mitigating threats to validity in software engineering secondary studies. Information and Software Technology 106 (2019), 201–230.

Guilherme Avelino, Eleni Constantinou, Marco Tulio Valente, and Alexander Serebrenik. 2019. On the abandonment and survival of open source projects: An empirical investigation. In 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). IEEE, 1–12.

Lerina Aversano, Daniela Guardabascio, and Maria Tortorella. 2017. Evaluating the quality of the documentation of open source software. In International Conference on Evaluation of Novel Approaches to Software Engineering, Vol. 2. SciTePress, 308–313.

Luca Bigliardi, Michele Lanza, Alberto Bacchelli, Marco D’Ambros, and Andrea Mocci. 2014. Quantitatively exploring non-code software artifacts. In 2014 14th International Conference on Quality Software. IEEE, 286–295.

Lionel C Briand. 2003. Software documentation: how much is enough?. In Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings. IEEE, 13–15.

Nuno Ramos Carvalho, Alberto Simoes, and José Joao Almeida. 2014. DMOSS: Open source software documentation assessment. Computer Science and Information Systems 11, 4 (2014), 1197–1207.

Chapin. 2000. Trends in preserving and enhancing the value of software. In Proceedings 2000 International Conference on Software Maintenance. IEEE, 6–8.

Frank A Cioch, Michael Palazzolo, and Scott Lohrer. 1996. A documentation suite for maintenance programmers. In 1996 Proceedings of International Conference on Software Maintenance. IEEE Computer Society, 286–286.

Adelina Ciurumelea, Carol V Alexandru, Harald C Gall, and Sebastian Proksch. 2023. Completing Function Documentation Comments Using Structural Information. Empirical Software Engineering 28, 4 (2023), 86.

Hilda Simone Coelho. 2009. Documentação de software: uma necessidade. Texto Livre: linguagem e tecnologia 2, 1 (2009), 17–21.

Kevin Crowston, Qing Li, Kangning Wei, U Yeliz Eseryel, and James Howison. 2007. Self-organization of teams for free/libre open source software development. Information and software technology 49, 6 (2007), 564–575.

Sergio Cozzetti B de Souza, Nicolas Anquetil, and Káthia M de Oliveira. 2005. A study of the documentation essential to software maintenance. In Proceedings of the 23rd annual international conference on Design of communication: documenting & designing for pervasive information. 68–75.

Wei Ding, Peng Liang, Antony Tang, and Hans van Vliet. 2014. Knowledgebased approaches in software documentation: A systematic literature review. Information and Software Technology 56, 6 (2014), 545–567. DOI: 10.1016/j.infsof.2014.01.008

Wei Ding, Peng Liang, Antony Tang, and Hans Van Vliet. 2014. Knowledgebased approaches in software documentation: A systematic literature review. Information and Software Technology 56, 6 (2014), 545–567.

Wei Ding, Peng Liang, Antony Tang, Hans Van Vliet, and Mojtaba Shahin. 2014. How do open source communities document software architecture: An exploratory survey. In 2014 19th International conference on engineering of complex computer systems. IEEE, 136–145.

Tore Dybå, Rafael Prikladnicki, Kari Rönkkö, Carolyn Seaman, and Jonathan Sillito. 2011. Qualitative research in software engineering. Empirical Software Engineering 16 (2011), 425–429.

Andrew Forward. 2002. Software documentation: Building and maintaining artefacts of communication. University of Ottawa (Canada).

Oscar Franco-Bedoya, David Ameller, Dolors Costal, and Xavier Franch. 2017. Open source software ecosystems: A Systematic mapping. Information and software technology 91 (2017), 160–185.

Felipe Fronchetti, David C. Shepherd, Igor Wiese, Christoph Treude, Marco Aurélio Gerosa, and Igor Steinmacher. 2023. Do CONTRIBUTING Files Provide Information about OSS Newcomers’ Onboarding Barriers?. In Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (, San Francisco, CA, USA,) (ESEC/FSE 2023). Association for Computing Machinery, New York, NY, USA, 16–28. DOI: 10.1145/3611643.3616288

Golara Garousi. 2012. A Hybrid Methodology for Analyzing Software Documentation Quality and Usage. Master’s thesis. Graduate Studies.

Golara Garousi, Vahid Garousi, Mahmoud Moussavi, Guenther Ruhe, and Brian Smith. 2013. Evaluating usage and quality of technical software documentation: an empirical study. In Proceedings of the 17th international conference on evaluation and assessment in software engineering. 24–35.

Golara Garousi, Vahid Garousi-Yusifoğlu, Guenther Ruhe, Junji Zhi, Mahmoud Moussavi, and Brian Smith. 2015. Usage and usefulness of technical software documentation: An industrial case study. Information and software technology 57 (2015), 664–682.

Basit Habib and Rohaida Romli. 2021. A systematic mapping study on issues and importance of documentation in agile. In 2021 IEEE 12th International Conference on Software Engineering and Service Science (ICSESS). IEEE, 198–202.

James D. Herbsleb and Audris Mockus. 2003. An empirical study of speed and communication in globally distributed software development. IEEE Transactions on software engineering 29, 6 (2003), 481–494.

Leila Lage Humes. 2007. Communities of practice for open source software. In Handbook of Research on Open Source Software: Technological, Economic, and Social Perspectives. IGI Global, 610–623.

Zilia Iskoujina and Joanne Roberts. 2015. Knowledge sharing in open source software communities: motivations and management. Journal of Knowledge Management (2015).

Md Athikul Islam, Rizbanul Hasan, and Nasir U Eisty. 2023. Documentation Practices in Agile Software Development: A Systematic Literature Review. In 2023 IEEE/ACIS 21st International Conference on Software Engineering Research, Management and Applications (SERA). IEEE, 266–273.

Pankaj Jalote. 2012. An integrated approach to software engineering. Springer Science & Business Media.

Rajdeep Kaur, Kuljit Kaur Chahal, and Munish Saini. 2022. Understanding community participation and engagement in open source software Projects: A systematic mapping study. journal of king saud university-computer and information sciences 34, 7 (2022), 4607–4625.

Barbara Kitchenham, Stuart Charters, et al. 2007. Guidelines for performing systematic literature reviews in software engineering version 2.3. Engineering 45, 4ve (2007), 1051.

Daniel Klug, Christopher Bogart, and James D Herbsleb. 2021. " They Can Only Ever Guide" How an Open Source Software Community Uses Roadmaps to Coordinate Effort. Proceedings of the ACM on Human-Computer Interaction 5, CSCW1 (2021), 1–28.

Miika Koskela, Inka Simola, and Kostas Stefanidis. 2018. Open source software recommendations using github. In Digital Libraries for Open Knowledge: 22nd International Conference on Theory and Practice of Digital Libraries, TPDL 2018, Porto, Portugal, September 10–13, 2018, Proceedings 22. Springer, 279–285.

Modi Lakulu, Rusli Abdullah, Mohd Hasan Selamat, Hamidah Ibrahim, and Mohd Zali Mohd Nor. 2010. A framework of collaborative knowledge management system in open source software development environment. Computer and Information Science 3, 1 (2010), 81.

Yuyang Liu, Ehsan Noei, and Kelly Lyons. 2022. How ReadMe files are structured in open source Java projects. Information and Software Technology 148 (2022), 106924.

Yuzhan Ma, Sarah Fakhoury, Michael Christensen, Venera Arnaoudova, Waleed Zogaan, and Mehdi Mirakhorli. 2018. Automatic classification of software artifacts in open-source applications. In Proceedings of the 15th International Conference on Mining Software Repositories. 414–425.

PA Michelazzo. 2008. Documentação de software, 2006.

Martin Michlmayr, Francis Hunt, and David Probert. 2005. Quality practices and problems in free software projects. In Proceedings of the first international conference on open source systems. 24–28.

Martin Michlmayr, Francis Hunt, and David Probert. 2007. Release management in free software projects: Practices and problems. In Open Source Development, Adoption and Innovation: IFIP Working Group 2.13 on Open Source Software, June 11–14, 2007, Limerick, Ireland 3. Springer, 295–300.

Vanessa B Nunes, Andrea O Soares, and Ricardo A Falbo. 2004. Apoio à Documentação em um Ambiente de Desenvolvimento de Software. In Memorias de VII Workshop Iberoamericano de Ingeniería de Requisitos y Desarrollo de Ambientes de Software-IDEAS. 50–55.

David Lorge Parnas. 2010. Precise documentation: The key to better software. In The future of software engineering. Springer, 125–148.

Jirat Pasuksmit, Patanamon Thongtanunam, and Shanika Karunasekera. 2022. Towards reliable agile iterative planning via predicting documentation changes of work items. In Proceedings of the 19th International Conference on Mining Software Repositories. 35–47.

Bruce Perens et al. 1999. The open source definition. Open sources: voices from the open source revolution 1 (1999), 171–188.

Kai Petersen, Robert Feldt, Shahid Mujtaba, and Michael Mattsson. 2008. Systematic mapping studies in software engineering. In 12th International Conference on Evaluation and Assessment in Software Engineering (EASE) 12. 1–10.

Kai Petersen, Sairam Vakkalanka, and Ludwik Kuzniarz. 2015. Guidelines for conducting systematic mapping studies in software engineering: An update. Information and software technology 64 (2015), 1–18.

Giniele Pinho, Aguiar Jeová Caçula, Lucas Costa, Igor Wiese, and Allysson Allex Araújo. 2024. Challenges and Solutions of Free and Open Source Software Documentation: A Systematic Mapping Study - Supporting repository. DOI: 10.5281/zenodo.12953652

Victor Hugo Miranda Pinto. 2021. O papel da documentação no desenvolvimento de software open source: Uma análise e um estudo de caso. (2021).

Reinhold Plösch, Andreas Dautovic, and Matthias Saft. 2014. The value of software documentation quality. In 2014 14th International Conference on Quality Software. IEEE, 333–342.

Gede Artha Azriadi Prana, Christoph Treude, Ferdian Thung, Thushari Atapattu, and David Lo. 2019. Categorizing the content of github readme files. Empirical Software Engineering 24 (2019), 1296–1327.

Tim Puhlfürß, Lloyd Montgomery, andWalid Maalej. 2022. An Exploratory Study of Documentation Strategies for Product Features in Popular GitHub Projects. SBES’24, September 30 – October 04, 2024, Curitiba, PR Pinho et al. In 2022 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, 379–383.

Johnny Saldaña. 2021. The coding manual for qualitative researchers. (2021).

David M Schweiger, William R Sandberg, and James W Ragan. 1986. Group approaches for improving strategic decision making: A comparative analysis of dialectical inquiry, devil’s advocacy, and consensus. Academy of management Journal 29, 1 (1986), 51–71.

André Santiago da Fonseca Silva. 2020. Documentação de software: uma análise comparativa entre documentação tradicional e living documentation. Master’s thesis. Universidade Federal do Rio Grande do Norte.

Ioannis Stamelos, Lefteris Angelis, Apostolos Oikonomou, and Georgios L Bleris. 2002. Code quality analysis in open source software development. Information systems journal 12, 1 (2002), 43–60.

Igor Steinmacher, Ana Paula Chaves, Tayana Uchoa Conte, and Marco Aurélio Gerosa. 2014. Preliminary empirical identification of barriers faced by newcomers to Open Source Software projects. In 2014 Brazilian Symposium on Software Engineering. IEEE, 51–60.

Weijie Sun, Samuel Iwuchukwu, Abdul Ali Bangash, and Abram Hindle. 2023. An Empirical Study to Investigate Collaboration Among Developers in Open Source Software (OSS). In 2023 IEEE/ACM 20th International Conference on Mining Software Repositories (MSR). IEEE, 352–356.

Theo Theunissen,Uwe van Heesch, and Paris Avgeriou. 2022. A mapping study on documentation in Continuous Software Development. Information and software technology 142 (2022), 106733.

Bianca Trinkenreich. 2021. Please Don’t Go—A Comprehensive Approach to Increase Women’s Participation in Open Source Software. In 2021 IEEE/ACM 43rd International Conference on Software Engineering: Companion Proceedings (ICSE-Companion). IEEE, 293–298.

Joey Van Angeren, Jaap Kabbedijk, Slinger Jansen, and Karl Michael Popp. 2011. A Survey of Associate Models used within Large Software Ecosystems.. In IWSECO@ ICSOB. 27–39.

Georg Von Krogh and Eric Von Hippel. 2006. The promise of research on open source software. Management science 52, 7 (2006), 975–983.

Dominik Wermke, Jan H Klemmer, Noah Wöhler, Juliane Schmüser, Harshini Sri Ramulu, Yasemin Acar, and Sascha Fahl. 2023. " Always Contribute Back": A Qualitative Study on Security Challenges of the Open Source Supply Chain. In 2023 IEEE Symposium on Security and Privacy (SP). IEEE, 1545–1560.

Joel West and Marcel Bogers. 2014. Leveraging external sources of innovation: A review of research on open innovation. Journal of product innovation management 31, 4 (2014), 814–831.

Titus Winters, Tom Manshreck, and Hyrum Wright. 2020. Software engineering at google: Lessons learned from programming over time. O’Reilly Media.

Ming-Wei Wu and Ying-Dar Lin. 2001. Open Source software development: An overview. Computer 34, 6 (2001), 33–38.

Junji Zhi, Vahid Garousi-Yusifoğlu, Bo Sun, Golara Garousi, Shawn Shahnewaz, and Guenther Ruhe. 2015. Cost, benefits and quality of software development documentation: A systematic mapping. Journal of Systems and Software 99 (2015), 175–198.
Publicado
30/09/2024
PINHO, Giniele; CAÇULA, Aguiar Jeová; COSTA, Lucas; WIESE, Igor; ARAÚJO, Allysson Allex. Challenges and Solutions of Free and Open Source Software Documentation: A Systematic Mapping Study. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 38. , 2024, Curitiba/PR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 114-125. DOI: https://doi.org/10.5753/sbes.2024.3307.